/* * SliTaz Website 2026 - Modern Design * Lightweight, fast, semantic CSS for SliTaz GNU/Linux */ /* ========================================================================== CSS VARIABLES - Color System ========================================================================== */ :root { /* Primary colors */ --primary: #e74c3c; /* SliTaz red */ --primary-dark: #c0392b; --primary-light: #ff6b61; /* Secondary colors */ --secondary: #3498db; /* Action blue */ --secondary-dark: #2980b9; /* Accent colors */ --accent: #2ecc71; /* Success green */ --accent-dark: #27ae60; /* Neutrals */ --dark: #2c3e50; /* Main text */ --text: #34495e; /* Body text */ --text-light: #7f8c8d; /* Muted text */ --light: #dde3e8; /* Light backgrounds */ --white: #ffffff; --border: #b8c4ca; /* Functional */ --success: #27ae60; --warning: #f39c12; --error: #e74c3c; --info: #3498db; /* Spacing */ --space-xs: 0.25rem; /* 4px */ --space-sm: 0.5rem; /* 8px */ --space-md: 1rem; /* 16px */ --space-lg: 1.5rem; /* 24px */ --space-xl: 2rem; /* 32px */ --space-2xl: 3rem; /* 48px */ /* Typography */ --font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; --font-size-sm: 0.875rem; /* 14px */ --font-size-base: 1rem; /* 16px */ --font-size-lg: 1.125rem; /* 18px */ --font-size-xl: 1.25rem; /* 20px */ --font-size-2xl: 1.5rem; /* 24px */ --font-size-3xl: 2rem; /* 32px */ --font-size-4xl: 2.5rem; /* 40px */ /* Borders */ --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; --radius-xl: 16px; --radius-full: 9999px; /* Shadows */ --shadow-sm: 0 1px 2px rgba(0,0,0,0.05); --shadow-md: 0 4px 6px rgba(0,0,0,0.1); --shadow-lg: 0 10px 15px rgba(0,0,0,0.1); --shadow-xl: 0 20px 25px rgba(0,0,0,0.15); /* Transitions */ --transition: 0.2s ease-in-out; } /* ========================================================================== RESET & BASE ========================================================================== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 16px; scroll-behavior: smooth; } html, body { scroll-padding-top: 100px; } body { font-family: var(--font-family); font-size: var(--font-size-base); line-height: 1.6; color: var(--text); background-color: var(--white); min-height: 100vh; display: flex; flex-direction: column; } /* ========================================================================== TYPOGRAPHY ========================================================================== */ h1, h2, h3, h4, h5, h6 { color: var(--dark); line-height: 1.3; margin-bottom: var(--space-md); font-weight: 600; } h1 { font-size: var(--font-size-4xl); } h2 { font-size: var(--font-size-3xl); } h3 { font-size: var(--font-size-2xl); } h4 { font-size: var(--font-size-xl); } p { margin-bottom: var(--space-md); } a { color: var(--secondary); text-decoration: none; transition: color var(--transition); } a:hover { color: var(--secondary-dark); text-decoration: underline; } /* ========================================================================== HEADER ========================================================================== */ #header { background: #2c3e50; border-bottom: 1px solid #1a252f; padding: var(--space-md) var(--space-xl); position: sticky; top: 0; z-index: 1000; display: flex; align-items: center; gap: var(--space-md); box-shadow: var(--shadow-sm); } #header #network { margin-left: auto; } #header h1 { font-size: var(--font-size-lg); margin: 0; display: flex; align-items: center; gap: var(--space-sm); font-weight: 600; } #header h1 a { color: #f0f2f4; text-decoration: none; display: flex; align-items: center; gap: var(--space-sm); } #header h1 a:hover { color: var(--primary-light); text-decoration: none; } #header img { height: 28px; width: auto; } /* Network Navigation (top right) */ #network ul { display: flex; list-style: none; gap: var(--space-lg); } #network a { color: #b0bec5; font-weight: 500; font-size: var(--font-size-sm); padding: var(--space-xs) 0; transition: color var(--transition); } #network a:hover { color: var(--primary); text-decoration: none; } /* Language switcher (footer only) */ #footer-lang .flag { margin-right: var(--space-sm); } /* ========================================================================== NAVIGATION (Main Menu) ========================================================================== */ #nav { background: #f5f7f8; border-bottom: 1px solid var(--border); padding: var(--space-sm) var(--space-xl); position: relative; } #nav ul { display: flex; list-style: none; gap: var(--space-xs); flex-wrap: wrap; justify-content: center; } #nav a { display: inline-block; padding: var(--space-sm) var(--space-md); border-radius: var(--radius-sm); font-weight: 500; font-size: var(--font-size-sm); color: var(--text); text-decoration: none; transition: all var(--transition); } #nav a:hover { background: var(--light); color: var(--primary); text-decoration: none; } /* Nav colors - subtle */ .nav1:hover { background: rgba(52, 152, 219, 0.1); } .nav2:hover { background: rgba(231, 76, 60, 0.1); } .navpi:hover { background: rgba(233, 30, 99, 0.1); } /* Hamburger — lives in header, controls nav via :has() */ #nav-toggle { display: none; } #nav-burger { display: none; cursor: pointer; font-size: var(--font-size-xl); background: none; color: var(--text); border: 1px solid var(--border); padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-sm); line-height: 1; user-select: none; } /* Burger and theme toggle on dark header */ #header #nav-burger, #header #theme-toggle { color: #f0f2f4; border-color: rgba(255,255,255,0.25); } #theme-toggle { display: flex; align-items: center; justify-content: center; cursor: pointer; background: none; border: 1px solid var(--border); padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-sm); line-height: 1; width: 34px; height: 34px; } #theme-toggle:hover { background: rgba(255,255,255,0.1); } /* Mobile-only nav items (network links duplicated for hamburger) */ .nav-mobile-only { display: none; } .nav-mobile-divider { display: none; } /* Mobile nav */ @media (max-width: 768px) { #nav-burger { display: block; } #header #network { display: none; } #header #theme-toggle { margin-left: auto; } #nav { padding: 0; border-bottom: none; } #nav ul { display: none; flex-direction: column; border-bottom: 1px solid var(--border); padding: var(--space-sm) 0; } body:has(#nav-toggle:checked) #nav { position: fixed; top: 60px; left: 0; right: 0; z-index: 999; box-shadow: var(--shadow-md); } body:has(#nav-toggle:checked) #nav ul { display: flex; } #nav a { width: 100%; text-align: center; } .nav-mobile-only { display: list-item; } .nav-mobile-divider { display: block; border-top: 1px solid var(--border); margin: var(--space-xs) var(--space-xl); } } /* ========================================================================== HERO SECTION (optional) ========================================================================== */ .hero { background: var(--light); padding: var(--space-xl) var(--space-xl); text-align: center; border-bottom: 1px solid var(--border); } .hero h2 { color: var(--dark); font-size: var(--font-size-3xl); margin-bottom: var(--space-xs); } .hero .tagline { font-size: var(--font-size-lg); color: var(--text-light); margin-bottom: var(--space-md); } .hero-buttons { display: flex; gap: var(--space-md); justify-content: center; flex-wrap: wrap; } /* ========================================================================== BUTTONS ========================================================================== */ .btn { display: inline-flex; align-items: center; gap: var(--space-sm); padding: var(--space-md) var(--space-xl); border-radius: var(--radius-md); font-weight: 600; font-size: var(--font-size-base); text-decoration: none; transition: all var(--transition); border: none; cursor: pointer; } .btn:hover { transform: translateY(-2px); text-decoration: none; } .btn-primary { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: var(--white); box-shadow: var(--shadow-md); } .btn-primary:hover { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); box-shadow: var(--shadow-lg); color: var(--white); } .btn-secondary { background: var(--white); color: var(--dark); border: 2px solid var(--border); } .btn-secondary:hover { background: var(--light); border-color: var(--secondary); color: var(--dark); } .btn-large { padding: var(--space-lg) var(--space-2xl); font-size: var(--font-size-lg); } /* ========================================================================== DOWNLOAD SECTION ========================================================================== */ .download-section { padding-top: var(--space-2xl); padding-bottom: var(--space-2xl); padding-left: var(--space-xl); padding-right: var(--space-xl); max-width: 1100px; margin: 0 auto; } .download-section h2 { text-align: center; margin-bottom: var(--space-xl); } .download-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-lg); } .download-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-lg); text-align: center; transition: border-color var(--transition), box-shadow var(--transition); } .download-card:hover { border-color: var(--secondary); box-shadow: var(--shadow-md); } .download-card.featured { border-color: var(--primary); background: rgba(231, 76, 60, 0.02); } .download-card h3 { font-size: var(--font-size-lg); margin-bottom: var(--space-xs); } .download-card .version { color: var(--text-light); font-size: var(--font-size-sm); margin-bottom: var(--space-sm); } .download-card .size { display: inline-block; background: var(--light); padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-sm); font-size: var(--font-size-xs); color: var(--text-light); margin-bottom: var(--space-md); } .download-card .btn { width: 100%; justify-content: center; margin-bottom: var(--space-sm); } .download-links { margin-top: var(--space-md); font-size: var(--font-size-xs); } .download-links a { color: var(--text-light); margin: 0 var(--space-xs); text-decoration: underline; } .download-links a:hover { color: var(--secondary); } /* ========================================================================== FEATURES SECTION ========================================================================== */ .features { padding: var(--space-2xl) var(--space-xl); max-width: 1100px; margin: 0 auto; } .features h2 { text-align: center; margin-bottom: var(--space-xl); } .features-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-lg); } .feature-card { text-align: center; padding: var(--space-lg); border-radius: var(--radius-md); background: var(--white); border: 1px solid var(--border); } .feature-card:hover { border-color: var(--primary); } .feature-icon { margin-bottom: var(--space-md); color: var(--primary); display: flex; justify-content: center; } .feature-icon svg { width: 44px; height: 44px; } .feature-card-links { margin-top: var(--space-md); display: flex; flex-direction: column; gap: var(--space-xs); } .feature-card-links a { font-size: var(--font-size-sm); color: var(--secondary); text-align: center; } .feature-card h3 { font-size: var(--font-size-base); margin-bottom: var(--space-sm); } .feature-card p { color: var(--text-light); font-size: var(--font-size-sm); margin: 0; } /* ========================================================================== ABOUT SECTION ========================================================================== */ .about { padding: var(--space-2xl) var(--space-xl); max-width: 900px; margin: 0 auto; } .about h2 { margin-bottom: var(--space-md); } .about p { line-height: 1.8; } .about ul { list-style: none; margin-top: var(--space-md); display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-sm); } .about li { padding: var(--space-sm); padding-left: var(--space-lg); position: relative; } .about li::before { content: '✓'; position: absolute; left: 0; color: var(--accent); font-weight: bold; } /* ========================================================================== NEWS SECTION ========================================================================== */ .news-section { background: var(--light); padding: var(--space-2xl) var(--space-xl); } .news-section h2 { text-align: center; margin-bottom: var(--space-xl); } .news-list { max-width: 800px; margin: 0 auto; background: var(--white); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; } .news-item { padding: var(--space-lg); border-bottom: 1px solid var(--border); } .news-item:last-child { border-bottom: none; } .news-item h3 { font-size: var(--font-size-lg); margin-bottom: var(--space-xs); } .news-item h3 a { color: var(--dark); } .news-item h3 a:hover { color: var(--primary); text-decoration: none; } .news-item .date { font-size: var(--font-size-sm); color: var(--text-light); margin-bottom: var(--space-sm); } .news-item p { color: var(--text); font-size: var(--font-size-sm); margin: 0; } /* ========================================================================== ACTIVITY SECTION ========================================================================== */ .activity-section { padding: var(--space-2xl) var(--space-xl); max-width: 900px; margin: 0 auto; } .activity-section h2 { text-align: center; margin-bottom: var(--space-xl); } .activity-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-lg); } .activity-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-lg); } .activity-card h3 { display: flex; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-md); font-size: var(--font-size-base); } .activity-card h3 svg { flex-shrink: 0; color: var(--primary); } .activity-list { list-style: none; } .activity-list li { padding: var(--space-sm) 0; border-bottom: 1px solid var(--border); font-size: var(--font-size-sm); } .activity-list li:last-child { border-bottom: none; } .activity-list a { color: var(--text); } .activity-list a:hover { color: var(--secondary); } .activity-list span { color: var(--text-light); font-size: var(--font-size-xs); display: block; margin-top: var(--space-xs); } /* ========================================================================== COMMUNITY SECTION ========================================================================== */ .community { background: var(--light); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: var(--space-2xl) var(--space-xl); text-align: center; } .community h2 { font-size: var(--font-size-xl); margin-bottom: var(--space-lg); } .community-links { display: flex; justify-content: center; gap: var(--space-sm); flex-wrap: wrap; margin-bottom: var(--space-xl); } .community-links a { color: var(--text); padding: var(--space-sm) var(--space-md); border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: var(--font-size-sm); transition: all var(--transition); } .community-links a:hover { background: var(--dark); color: var(--white); border-color: var(--dark); text-decoration: none; } .community .box { background: var(--white); margin: var(--space-xl) auto 0; } /* ========================================================================== FOOTER ========================================================================== */ #footer { background: var(--white); border-top: 1px solid var(--border); padding: var(--space-xl) var(--space-xl) var(--space-lg); text-align: center; color: var(--text-light); font-size: var(--font-size-sm); margin-top: auto; line-height: 1.8; } #footer p { margin-bottom: var(--space-sm); } #footer a { color: var(--text-light); margin: 0 var(--space-md); } #footer a:hover { color: var(--secondary); } #footer-lang { margin-top: var(--space-md); font-size: var(--font-size-sm); } #footer-lang a, #footer-lang strong, #footer-lang span { margin: 0 var(--space-xs); } #footer-lang strong { color: var(--dark); font-weight: 600; } #footer-lang a { color: var(--text-light); } #footer-lang a:hover { color: var(--secondary); } /* ========================================================================== UTILITY CLASSES ========================================================================== */ .container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-xl); } /* Inner page content wrapper */ .content { max-width: 900px; margin: 0 auto; padding: var(--space-2xl) var(--space-xl); } .content h2 { margin-top: var(--space-xl); margin-bottom: var(--space-md); } .content h2:first-child { margin-top: 0; } .content ul, .content ol { margin-left: var(--space-xl); margin-bottom: var(--space-md); } .content li { margin-bottom: var(--space-xs); } .content pre { background: var(--light); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: var(--space-md); overflow-x: auto; font-size: var(--font-size-sm); margin-bottom: var(--space-md); } .content code { background: var(--light); padding: 2px 6px; border-radius: var(--radius-sm); font-size: var(--font-size-sm); } .text-center { text-align: center; } .text-left { text-align: left; } .text-right { text-align: right; } .mt-1 { margin-top: var(--space-md); } .mt-2 { margin-top: var(--space-lg); } .mt-3 { margin-top: var(--space-xl); } .mb-1 { margin-bottom: var(--space-md); } .mb-2 { margin-bottom: var(--space-lg); } .mb-3 { margin-bottom: var(--space-xl); } .mobile { display: none !important; } /* Box styles */ .box { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-xl); margin: var(--space-2xl) 0; } .box h3 { margin-bottom: var(--space-md); } .box > *:last-child { margin-bottom: 0; } /* ========================================================================== RESPONSIVE DESIGN ========================================================================== */ @media (max-width: 768px) { :root { --font-size-4xl: 2rem; --font-size-3xl: 1.5rem; --font-size-2xl: 1.25rem; } #header { flex-wrap: wrap; padding: var(--space-md); } #network { display: none; } .hero { padding: var(--space-xl) var(--space-md); } .download-cards, .features-grid { grid-template-columns: 1fr; } .activity-grid { grid-template-columns: 1fr; } .about ul { grid-template-columns: 1fr; } } /* ========================================================================== SCREENSHOTS GALLERY ========================================================================== */ #gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-lg); margin-top: var(--space-xl); } #gallery div { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; transition: box-shadow var(--transition), transform var(--transition); text-align: center; font-size: var(--font-size-sm); color: var(--text-light); } #gallery div:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); } #gallery a { display: block; } #gallery img { width: 100%; height: 140px; object-fit: cover; display: block; } #gallery br { display: none; } #gallery div > :last-child { padding: var(--space-sm); display: block; } @media (max-width: 768px) { #gallery { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); } } /* Print styles */ @media print { #header, #nav, .hero, .download-section, .community, #footer { display: none; } body { background: white; color: black; } } /* ========================================================================== DARK MODE — must be at end to override all preceding rules ========================================================================== */ @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --dark: #f0f0f0; --text: #b8b8b8; --text-light: #787878; --light: #1e1e1e; --white: #141414; --border: #2a2a2a; --shadow-sm: 0 1px 2px rgba(0,0,0,0.4); --shadow-md: 0 4px 6px rgba(0,0,0,0.5); --shadow-lg: 0 10px 15px rgba(0,0,0,0.6); } :root:not([data-theme="light"]) #header { background: var(--white); border-bottom-color: var(--border); } :root:not([data-theme="light"]) #header h1 a { color: var(--dark); } :root:not([data-theme="light"]) #header h1 a:hover { color: var(--primary); } :root:not([data-theme="light"]) #nav a:hover { color: var(--primary); } :root:not([data-theme="light"]) #network a { color: var(--text-light); } :root:not([data-theme="light"]) #network a:hover { color: var(--primary); } :root:not([data-theme="light"]) #nav { background: var(--light); } } html[data-theme="dark"] { --dark: #f0f0f0; --text: #b8b8b8; --text-light: #787878; --light: #1e1e1e; --white: #141414; --border: #2a2a2a; --shadow-sm: 0 1px 2px rgba(0,0,0,0.4); --shadow-md: 0 4px 6px rgba(0,0,0,0.5); --shadow-lg: 0 10px 15px rgba(0,0,0,0.6); } html[data-theme="dark"] #header { background: var(--white); border-bottom-color: var(--border); } html[data-theme="dark"] #header h1 a { color: var(--dark); } html[data-theme="dark"] #header h1 a:hover { color: var(--primary); } html[data-theme="dark"] #nav a:hover { color: var(--primary); } html[data-theme="dark"] #network a { color: var(--text-light); } html[data-theme="dark"] #network a:hover { color: var(--primary); } html[data-theme="dark"] #nav { background: var(--light); }