Vapora/docs/theme/vapora-custom.css
Jesús Pérez 7110ffeea2
Some checks failed
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
chore: extend doc: adr, tutorials, operations, etc
2026-01-12 03:32:47 +00:00

369 lines
7.2 KiB
CSS

/* 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;
}
}