diff options
Diffstat (limited to 'css')
| -rw-r--r-- | css/style.css | 353 |
1 files changed, 353 insertions, 0 deletions
diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..cf0805c --- /dev/null +++ b/css/style.css @@ -0,0 +1,353 @@ +/* CSS Custom Properties for Theming */ +:root { + --primary-color: #2563eb; + --secondary-color: #64748b; + --accent-color: #f59e0b; + --text-color: #1f2937; + --bg-color: #ffffff; + --bg-secondary: #f8fafc; + --border-color: #e2e8f0; + --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + --font-size-base: 16px; + --line-height: 1.6; + --spacing-xs: 0.5rem; + --spacing-sm: 0.75rem; + --spacing-md: 1rem; + --spacing-lg: 1.5rem; + --spacing-xl: 2rem; + --max-width: 1200px; + --header-height: 60px; +} + +@media (prefers-color-scheme: dark) { + :root { + --text-color: #f1f5f9; + --bg-color: #0f172a; + --bg-secondary: #1e293b; + --border-color: #334155; + --shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + } +} + +/* Reset and Base Styles */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--font-family); + font-size: var(--font-size-base); + line-height: var(--line-height); + color: var(--text-color); + background-color: var(--bg-color); +} + +/* Typography */ +h1, h2, h3, h4, h5, h6 { + margin-bottom: var(--spacing-md); + font-weight: 600; +} + +h1 { font-size: 2.5rem; } +h2 { font-size: 2rem; } +h3 { font-size: 1.5rem; } +h4 { font-size: 1.25rem; } + +p { + margin-bottom: var(--spacing-md); +} + +a { + color: var(--primary-color); + text-decoration: none; + transition: color 0.2s ease; +} + +a:hover { + color: var(--accent-color); +} + +code { + background-color: var(--bg-secondary); + padding: 0.125rem 0.25rem; + border-radius: 4px; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; + font-size: 0.875rem; +} + +pre { + background-color: var(--bg-secondary); + padding: var(--spacing-md); + border-radius: 8px; + overflow-x: auto; + margin: var(--spacing-md) 0; +} + +pre code { + background: none; + padding: 0; +} + +.cta-button { + display: inline-block; + background-color: var(--primary-color); + color: white; + padding: var(--spacing-sm) var(--spacing-md); + border-radius: 6px; + font-weight: 600; + transition: background-color 0.2s ease; +} + +.cta-button:hover { + background-color: #1d4ed8; +} + +/* Layout */ +.container { + max-width: var(--max-width); + margin: 0 auto; + padding: 0 var(--spacing-md); +} + +/* Header and Navigation */ +header { + position: sticky; + top: 0; + background-color: var(--bg-color); + border-bottom: 1px solid var(--border-color); + z-index: 100; + height: var(--header-height); +} + +nav { + display: flex; + align-items: center; + justify-content: space-between; + height: 100%; + padding: 0 var(--spacing-md); +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary-color); +} + +.nav-links { + display: flex; + list-style: none; + gap: var(--spacing-lg); +} + +.nav-links a { + padding: var(--spacing-sm); + transition: all 0.2s ease; +} + +.nav-links a:hover, +.nav-links a.active { + color: var(--accent-color); + border-bottom: 2px solid var(--accent-color); +} + +/* Mobile Navigation */ +.mobile-menu-toggle { + display: none; + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; +} + +#mobile-menu { + display: none; +} + +#mobile-menu:checked ~ .nav-links { + display: flex; + flex-direction: column; + position: absolute; + top: var(--header-height); + left: 0; + right: 0; + background-color: var(--bg-color); + border-top: 1px solid var(--border-color); + padding: var(--spacing-md); +} + +/* Main Content */ +main { + padding-top: var(--spacing-xl); +} + +section { + padding: var(--spacing-xl) 0; + border-bottom: 1px solid var(--border-color); +} + +section:last-of-type { + border-bottom: none; +} + +/* Hero Section */ +.hero { + text-align: center; + background-color: var(--bg-secondary); + padding: var(--spacing-xl) 0; +} + +.hero h1 { + margin-bottom: var(--spacing-md); +} + +.hero p { + font-size: 1.25rem; + margin-bottom: var(--spacing-lg); +} + +/* Content Sections */ +.content-section { + display: grid; + grid-template-columns: 1fr; + gap: var(--spacing-lg); +} + +@media (min-width: 768px) { + .content-section { + grid-template-columns: 1fr 2fr; + } +} + +.sidebar { + background-color: var(--bg-secondary); + padding: var(--spacing-lg); + border-radius: 8px; +} + +.main-content { + padding-left: var(--spacing-lg); +} + +/* Features Grid */ +.features { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: var(--spacing-lg); + margin-top: var(--spacing-lg); +} + +.feature-card { + background-color: var(--bg-secondary); + padding: var(--spacing-lg); + border-radius: 8px; + box-shadow: var(--shadow); +} + +.feature-card h3 { + color: var(--primary-color); + margin-bottom: var(--spacing-sm); +} + +/* Footer */ +footer { + background-color: var(--bg-secondary); + padding: var(--spacing-xl) 0; + text-align: center; + border-top: 1px solid var(--border-color); +} + +/* Responsive Design */ +@media (max-width: 768px) { + .nav-links { + display: none; + } + + .mobile-menu-toggle { + display: block; + } + + #mobile-menu:checked ~ .nav-links { + display: flex; + } +} + + h1 { font-size: 2rem; } + h2 { font-size: 1.75rem; } + + .container { + padding: 0 var(--spacing-sm); + } + + section { + padding: var(--spacing-lg) 0; + } +} + +@media (max-width: 480px) { + .hero h1 { + font-size: 1.75rem; + } + + .features { + grid-template-columns: 1fr; + } +} + +/* Parallax Styles */ +[data-speed] { + will-change: transform; + backface-visibility: hidden; + transform: translateZ(0); +} + +@media (max-width: 768px) { + [data-speed] { + will-change: auto; + transform: none !important; + } +} + +/* WebGL Background Canvas */ +#webgl-bg { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + z-index: -1; + pointer-events: none; +} + +/* Accessibility */ +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + * { + transition: none; + } + + [data-speed] { + will-change: auto; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +}
\ No newline at end of file |
