/* VAPORA Custom Theme for mdBook */ :root { /* Primary Colors */ --vapora-primary: #2563eb; /* Blue - Primary action */ --vapora-primary-dark: #1e40af; /* Darker blue */ --vapora-secondary: #7c3aed; /* Violet - Secondary */ --vapora-accent: #059669; /* Green - Success/Good */ --vapora-warning: #f59e0b; /* Amber - Warning */ --vapora-danger: #dc2626; /* Red - Danger */ /* Neutral Palette */ --vapora-bg-light: #ffffff; --vapora-bg-dark: #0f172a; --vapora-text-primary: #1e293b; --vapora-text-secondary: #64748b; --vapora-border: #e2e8f0; --vapora-border-dark: #1e293b; /* Typography */ --vapora-font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif; --vapora-mono-family: 'Fira Code', 'Source Code Pro', monospace; } html.dark { --vapora-primary: #60a5fa; --vapora-primary-dark: #3b82f6; --vapora-secondary: #a78bfa; --vapora-text-primary: #f1f5f9; --vapora-text-secondary: #cbd5e1; --vapora-border: #334155; } /* General Typography */ body { font-family: var(--vapora-font-family); color: var(--vapora-text-primary); } code, pre { font-family: var(--vapora-mono-family); } /* Headings */ h1, h2, h3, h4, h5, h6 { color: var(--vapora-text-primary); border-bottom: none; margin-top: 1.5rem; margin-bottom: 0.75rem; font-weight: 700; } h1 { font-size: 2rem; color: var(--vapora-primary); padding-bottom: 0.5rem; border-bottom: 2px solid var(--vapora-primary); } h2 { font-size: 1.5rem; color: var(--vapora-primary-dark); border-bottom: 1px solid var(--vapora-border); padding-bottom: 0.5rem; } h3 { font-size: 1.25rem; color: var(--vapora-secondary); } /* Links */ a { color: var(--vapora-primary); text-decoration: none; border-bottom: 1px solid transparent; transition: all 0.2s ease; } a:hover { color: var(--vapora-primary-dark); border-bottom-color: var(--vapora-primary); } /* Code Blocks */ pre { background: var(--vapora-bg-dark); color: #e0e0e0; padding: 1rem; border-radius: 6px; border-left: 3px solid var(--vapora-primary); overflow-x: auto; line-height: 1.5; } pre > code { color: #e0e0e0; } code { background: rgba(156, 163, 175, 0.1); padding: 0.2em 0.4em; border-radius: 3px; font-size: 0.9em; color: var(--vapora-secondary); } pre code { background: transparent; padding: 0; color: inherit; } html.dark code { background: rgba(100, 116, 139, 0.3); } /* Tables */ table { border-collapse: collapse; width: 100%; margin: 1rem 0; } table th { background: var(--vapora-primary); color: white; padding: 0.75rem; text-align: left; font-weight: 700; } table td { border: 1px solid var(--vapora-border); padding: 0.75rem; } table tr:nth-child(even) { background: rgba(156, 163, 175, 0.05); } html.dark table tr:nth-child(even) { background: rgba(148, 163, 184, 0.1); } /* Blockquotes */ blockquote { border-left: 4px solid var(--vapora-secondary); padding: 0.5rem 1rem; margin: 1rem 0; background: rgba(124, 58, 237, 0.05); color: var(--vapora-text-secondary); } html.dark blockquote { background: rgba(167, 139, 250, 0.05); } /* Lists */ ul, ol { margin: 1rem 0; padding-left: 2rem; } li { margin: 0.5rem 0; line-height: 1.6; } /* Buttons & Interactive Elements */ button, .button { background: var(--vapora-primary); color: white; border: none; padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; transition: all 0.2s ease; font-family: var(--vapora-font-family); font-weight: 600; } button:hover, .button:hover { background: var(--vapora-primary-dark); box-shadow: 0 4px 6px rgba(37, 99, 235, 0.2); } /* Sidebar Styling */ .sidebar { background: var(--vapora-bg-light); border-right: 1px solid var(--vapora-border); } html.dark .sidebar { background: var(--vapora-bg-dark); border-right: 1px solid var(--vapora-border-dark); } .sidebar-scrollbox { padding: 1rem; } .sidebar a { color: var(--vapora-text-primary); display: block; padding: 0.5rem 0.75rem; margin: 0.25rem 0; border-radius: 4px; transition: all 0.2s ease; } .sidebar a:hover { background: rgba(37, 99, 235, 0.1); color: var(--vapora-primary); border-bottom: none; } .sidebar li.chapter > a.active { background: rgba(37, 99, 235, 0.15); color: var(--vapora-primary); font-weight: 600; border-left: 3px solid var(--vapora-primary); padding-left: calc(0.75rem - 3px); } /* Menu Bar */ #menu-bar { background: var(--vapora-bg-light); border-bottom: 1px solid var(--vapora-border); } html.dark #menu-bar { background: var(--vapora-bg-dark); border-bottom: 1px solid var(--vapora-border-dark); } #menu-bar h1 { color: var(--vapora-primary); border: none; padding: 0; margin: 0; } /* Content Styling */ #content { padding: 2rem; max-width: 900px; line-height: 1.8; } /* Admonitions / Info Boxes */ .admonition { padding: 1rem; border-radius: 6px; border-left: 4px solid var(--vapora-primary); margin: 1rem 0; background: rgba(37, 99, 235, 0.05); } .admonition.note { border-left-color: var(--vapora-primary); background: rgba(37, 99, 235, 0.05); } .admonition.warning { border-left-color: var(--vapora-warning); background: rgba(245, 158, 11, 0.05); } .admonition.danger { border-left-color: var(--vapora-danger); background: rgba(220, 38, 38, 0.05); } .admonition.success { border-left-color: var(--vapora-accent); background: rgba(5, 150, 105, 0.05); } /* Navigation */ .nav-wrapper { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--vapora-border); } .nav-chapters { color: var(--vapora-primary); text-decoration: none; display: flex; align-items: center; padding: 0.5rem 1rem; border-radius: 4px; transition: all 0.2s ease; } .nav-chapters:hover { background: rgba(37, 99, 235, 0.1); color: var(--vapora-primary-dark); } /* Search Bar */ #searchbar { background: var(--vapora-bg-light); color: var(--vapora-text-primary); border: 1px solid var(--vapora-border); border-radius: 4px; padding: 0.5rem 1rem; font-family: var(--vapora-font-family); } html.dark #searchbar { background: rgba(255, 255, 255, 0.05); border-color: var(--vapora-border-dark); color: var(--vapora-text-primary); } /* Responsive Design */ @media (max-width: 1200px) { #content { padding: 1.5rem; } } @media (max-width: 768px) { #content { padding: 1rem; } h1 { font-size: 1.5rem; } h2 { font-size: 1.25rem; } } /* Print Styles */ @media print { .sidebar, #menu-bar, .nav-wrapper { display: none; } #content { padding: 0; max-width: 100%; } a { color: var(--vapora-primary); } code { background: none; color: inherit; } pre { border: 1px solid var(--vapora-border); page-break-inside: avoid; } }