Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ <h4 style="margin-top: 1.5rem; margin-bottom: 0.5rem;">What You'll Find:</h4>
</ul>

<div style="margin-top: 1.5rem;">
<a href="https://openrocketsmag.com" target="_blank" class="btn-professional">Visit Magazine</a>
<a href="https://mag.openrockets.com" target="_blank" class="btn-professional">Visit Magazine</a>
</div>
</div>
</div>
Expand Down Expand Up @@ -235,7 +235,7 @@ <h4>Community</h4>
<ul>
<li><a href="https://github.com/OpenRockets">GitHub</a></li>
<li><a href="https://bit.ly/openrockets-discord">Discord</a></li>
<li><a href="https://openrocketsmag.com">Magazine</a></li>
<li><a href="https://mag.openrockets.com">Magazine</a></li>
<li><a href="join.html">Join Us</a></li>
</ul>
</div>
Expand Down
19 changes: 13 additions & 6 deletions scripts/calendar.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,22 @@ document.addEventListener('DOMContentLoaded', function() {
const closeEventModal = document.getElementById('closeEventModal');
const eventForm = document.getElementById('eventForm');

// Sample events data
// Sample events data - using relative dates from the current date
const baseDate = new Date();
const getDateOffset = (daysOffset) => {
const date = new Date(baseDate);
date.setDate(baseDate.getDate() + daysOffset);
return date;
};

const sampleEvents = [
{
id: 1,
title: 'Advanced React Patterns',
type: 'lecture',
instructor: 'Sarah Chen',
time: '10:00 AM - 11:30 AM',
date: new Date(2024, 11, 23),
date: getDateOffset(0),
description: 'Deep dive into advanced React patterns including HOCs, render props, and custom hooks.',
attendees: 45,
maxAttendees: 50,
Expand All @@ -44,7 +51,7 @@ document.addEventListener('DOMContentLoaded', function() {
type: 'workshop',
instructor: 'Mike Johnson',
time: '2:00 PM - 4:00 PM',
date: new Date(2024, 11, 23),
date: getDateOffset(0),
description: 'Hands-on workshop covering lists, dictionaries, sets, and tuples in Python.',
attendees: 32,
maxAttendees: 40,
Expand All @@ -56,7 +63,7 @@ document.addEventListener('DOMContentLoaded', function() {
type: 'lecture',
instructor: 'Alex Rodriguez',
time: '11:00 AM - 12:30 PM',
date: new Date(2024, 11, 24),
date: getDateOffset(1),
description: 'Optimization techniques for Node.js applications including clustering and caching.',
attendees: 28,
maxAttendees: 35,
Expand All @@ -68,7 +75,7 @@ document.addEventListener('DOMContentLoaded', function() {
type: 'workshop',
instructor: 'Emma Davis',
time: '1:00 PM - 3:30 PM',
date: new Date(2024, 11, 25),
date: getDateOffset(2),
description: 'Complete guide to CSS Grid layout with practical examples and exercises.',
attendees: 38,
maxAttendees: 45,
Expand All @@ -80,7 +87,7 @@ document.addEventListener('DOMContentLoaded', function() {
type: 'lecture',
instructor: 'Dr. James Wilson',
time: '9:00 AM - 10:30 AM',
date: new Date(2024, 11, 26),
date: getDateOffset(3),
description: 'Fundamental principles of database design, normalization, and optimization.',
attendees: 52,
maxAttendees: 60,
Expand Down
2 changes: 0 additions & 2 deletions scripts/community.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ class CommunityManager {
this.socket.on('stop-typing', (data) => {
this.hideTypingIndicator(data);
});
}
}

// Real-time message handlers
this.socket.on('new-message', (message) => {
Expand Down
14 changes: 10 additions & 4 deletions styles/professional.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* OpenRockets - Professional Linux Foundation-Inspired Design */
/* Professional, clean, and enterprise-focused design system */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
/* Professional Color Palette - Inspired by Linux Foundation */
Expand All @@ -17,9 +17,10 @@
--text-secondary: #666666;
--border-color: #d0d0d0;

/* Typography - Professional IBM Plex family */
--font-primary: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-mono: 'IBM Plex Mono', 'Courier New', monospace;
/* Typography - Modern distinctive fonts */
--font-primary: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-secondary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--font-mono: 'JetBrains Mono', 'Courier New', monospace;

/* Spacing - Consistent and professional */
--space-xs: 0.5rem;
Expand Down Expand Up @@ -127,6 +128,7 @@ a:hover {
.nav-logo img {
height: 40px;
width: auto;
filter: invert(1) brightness(0.3);
}

.nav-links {
Expand Down Expand Up @@ -306,6 +308,10 @@ a:hover {
width: 100%;
border-radius: var(--border-radius);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
/* Invert white logo to dark for visibility on light background */
filter: invert(1) brightness(0.3);
background: var(--neutral-white);
padding: 1rem;
}

/* Stats Section */
Expand Down