Skip to content

Commit d500c54

Browse files
committed
feat: Implement advanced theme system with dark, light, and auto modes
- Added ThemeManager class to manage theme preferences and apply styles dynamically. - Created theme toggle button with keyboard shortcut for easy theme switching. - Implemented system theme detection to automatically adjust theme based on user preference. - Added custom theme creation functionality. - Included CSS styles for theme-specific adjustments and transitions. chore: Add manifest.json for PWA support - Defined application metadata including name, description, icons, and shortcuts. - Included screenshots and related applications for better discoverability. chore: Create robots.txt for SEO optimization - Allowed crawling of main content while disallowing demo source files. - Specified sitemap location for search engines. chore: Generate sitemap.xml for better indexing - Included main page and external links with last modified dates and change frequencies. chore: Add structured data for improved search visibility - Implemented JSON-LD structured data for the application to enhance search engine understanding. feat: Introduce service worker for offline support - Cached static assets and demo files for offline access. - Implemented fetch event handling for serving cached content with network fallback. - Added background sync and push notification capabilities for future enhancements.
1 parent 555710c commit d500c54

15 files changed

Lines changed: 5456 additions & 9 deletions

site/css/advanced.css

Lines changed: 570 additions & 0 deletions
Large diffs are not rendered by default.

site/css/components.css

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
display: flex;
1616
align-items: center;
1717
justify-content: space-between;
18+
gap: var(--space-8); /* Add proper spacing between sections */
1819
}
1920

2021
.navbar-brand {
@@ -24,12 +25,15 @@
2425
font-weight: 700;
2526
font-size: var(--text-xl);
2627
color: var(--color-primary);
28+
flex-shrink: 0; /* Prevent logo from shrinking */
2729
}
2830

2931
.navbar-nav {
3032
display: flex;
3133
gap: var(--space-6);
3234
list-style: none;
35+
margin-left: auto; /* Push navigation to the right side */
36+
margin-right: var(--space-4); /* Add space before search/theme toggle */
3337
}
3438

3539
.navbar-nav a {
@@ -407,6 +411,15 @@
407411
text-align: center;
408412
}
409413

414+
.demo-content-item {
415+
display: none;
416+
animation: fadeIn 0.3s ease-in-out;
417+
}
418+
419+
.demo-content-item.active {
420+
display: block;
421+
}
422+
410423
.demo-video {
411424
max-width: 100%;
412425
border-radius: var(--radius-md);
@@ -547,3 +560,72 @@
547560
opacity: 1;
548561
}
549562
}
563+
564+
/* Responsive Navigation */
565+
@media (max-width: 1024px) {
566+
.navbar-content {
567+
gap: var(--space-6); /* Reduce gap on tablets */
568+
}
569+
570+
.navbar-nav {
571+
gap: var(--space-4); /* Reduce menu item spacing */
572+
margin-right: var(--space-3);
573+
}
574+
}
575+
576+
@media (max-width: 768px) {
577+
.navbar {
578+
padding: var(--space-3) 0; /* Reduce navbar height on mobile */
579+
}
580+
581+
.navbar-content {
582+
gap: var(--space-4); /* Further reduce gap on mobile */
583+
flex-wrap: nowrap; /* Prevent wrapping */
584+
}
585+
586+
.navbar-brand {
587+
font-size: var(--text-lg); /* Slightly smaller logo text */
588+
gap: var(--space-2);
589+
}
590+
591+
.navbar-nav {
592+
gap: var(--space-3); /* Tighter spacing on mobile */
593+
margin-right: var(--space-2);
594+
}
595+
596+
.navbar-nav a {
597+
font-size: var(--text-sm); /* Smaller menu text */
598+
padding: var(--space-2) 0; /* Add vertical padding for better touch targets */
599+
}
600+
}
601+
602+
@media (max-width: 640px) {
603+
.navbar-content {
604+
gap: var(--space-3);
605+
}
606+
607+
.navbar-nav {
608+
gap: var(--space-2);
609+
margin-right: var(--space-1);
610+
}
611+
612+
/* Hide some menu items on very small screens if needed */
613+
.navbar-nav li:nth-child(n+4) {
614+
display: none;
615+
}
616+
}
617+
618+
@media (max-width: 480px) {
619+
.navbar-brand {
620+
font-size: var(--text-base);
621+
}
622+
623+
.navbar-nav {
624+
gap: var(--space-1);
625+
}
626+
627+
/* Show only essential menu items */
628+
.navbar-nav li:nth-child(n+3) {
629+
display: none;
630+
}
631+
}

0 commit comments

Comments
 (0)