Skip to main content

STYLES_CSS

Constant STYLES_CSS 

Source
pub const STYLES_CSS: &str = "/* Chant Site Theme - Default Styles */\n\n:root {\n    --color-bg: #ffffff;\n    --color-text: #1a1a1a;\n    --color-text-muted: #666666;\n    --color-border: #e0e0e0;\n    --color-link: #0066cc;\n    --color-link-hover: #004499;\n    --color-code-bg: #f5f5f5;\n\n    /* Status colors */\n    --color-completed: #22c55e;\n    --color-completed-bg: #dcfce7;\n    --color-in-progress: #3b82f6;\n    --color-in-progress-bg: #dbeafe;\n    --color-pending: #f59e0b;\n    --color-pending-bg: #fef3c7;\n    --color-failed: #ef4444;\n    --color-failed-bg: #fee2e2;\n\n    --font-sans: -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, Oxygen, Ubuntu, sans-serif;\n    --font-mono: \'SF Mono\', Monaco, Consolas, \'Liberation Mono\', monospace;\n\n    --spacing-xs: 0.25rem;\n    --spacing-sm: 0.5rem;\n    --spacing-md: 1rem;\n    --spacing-lg: 1.5rem;\n    --spacing-xl: 2rem;\n\n    --max-width: 1200px;\n}\n\n/* Reset */\n*, *::before, *::after {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n}\n\n/* Base */\nhtml {\n    font-size: 16px;\n    line-height: 1.6;\n}\n\nbody {\n    font-family: var(--font-sans);\n    color: var(--color-text);\n    background: var(--color-bg);\n    min-height: 100vh;\n    display: flex;\n    flex-direction: column;\n}\n\na {\n    color: var(--color-link);\n    text-decoration: none;\n}\n\na:hover {\n    color: var(--color-link-hover);\n    text-decoration: underline;\n}\n\ncode, pre {\n    font-family: var(--font-mono);\n    font-size: 0.9em;\n}\n\ncode {\n    background: var(--color-code-bg);\n    padding: 0.1em 0.3em;\n    border-radius: 3px;\n}\n\npre {\n    background: var(--color-code-bg);\n    padding: var(--spacing-md);\n    border-radius: 6px;\n    overflow-x: auto;\n}\n\npre code {\n    background: none;\n    padding: 0;\n}\n\n/* Navigation */\n.site-nav {\n    background: var(--color-bg);\n    border-bottom: 1px solid var(--color-border);\n    padding: var(--spacing-md) var(--spacing-lg);\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    gap: var(--spacing-md);\n}\n\n.nav-brand a {\n    font-weight: 600;\n    font-size: 1.25rem;\n    color: var(--color-text);\n}\n\n.nav-links {\n    display: flex;\n    list-style: none;\n    gap: var(--spacing-lg);\n    flex-wrap: wrap;\n}\n\n.nav-links a {\n    color: var(--color-text-muted);\n}\n\n.nav-links a:hover {\n    color: var(--color-link);\n}\n\n.dropdown {\n    position: relative;\n}\n\n.dropdown > span {\n    cursor: pointer;\n    color: var(--color-text-muted);\n}\n\n.dropdown-menu {\n    display: none;\n    position: absolute;\n    top: 100%;\n    left: 0;\n    background: var(--color-bg);\n    border: 1px solid var(--color-border);\n    border-radius: 6px;\n    padding: var(--spacing-sm) 0;\n    min-width: 150px;\n    list-style: none;\n    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n    z-index: 100;\n}\n\n.dropdown:hover .dropdown-menu {\n    display: block;\n}\n\n.dropdown-menu li a {\n    display: block;\n    padding: var(--spacing-xs) var(--spacing-md);\n}\n\n/* Main Content */\n.site-content {\n    flex: 1;\n    max-width: var(--max-width);\n    width: 100%;\n    margin: 0 auto;\n    padding: var(--spacing-xl) var(--spacing-lg);\n}\n\nh1, h2, h3, h4, h5, h6 {\n    margin-bottom: var(--spacing-md);\n    line-height: 1.3;\n}\n\nh1 { font-size: 2rem; }\nh2 { font-size: 1.5rem; margin-top: var(--spacing-xl); }\nh3 { font-size: 1.25rem; }\n\np {\n    margin-bottom: var(--spacing-md);\n}\n\n/* Stats Summary */\n.stats-summary {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n    gap: var(--spacing-md);\n    margin-bottom: var(--spacing-xl);\n}\n\n.stat-card {\n    background: var(--color-code-bg);\n    padding: var(--spacing-lg);\n    border-radius: 8px;\n    text-align: center;\n}\n\n.stat-card.completed { background: var(--color-completed-bg); }\n.stat-card.in-progress { background: var(--color-in-progress-bg); }\n.stat-card.pending { background: var(--color-pending-bg); }\n\n.stat-number {\n    display: block;\n    font-size: 2rem;\n    font-weight: 700;\n}\n\n.stat-label {\n    display: block;\n    font-size: 0.875rem;\n    color: var(--color-text-muted);\n    margin-top: var(--spacing-xs);\n}\n\n/* Tables */\n.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin-bottom: var(--spacing-xl);\n}\n\n.spec-table th,\n.spec-table td {\n    padding: var(--spacing-sm) var(--spacing-md);\n    text-align: left;\n    border-bottom: 1px solid var(--color-border);\n}\n\n.spec-table th {\n    font-weight: 600;\n    background: var(--color-code-bg);\n}\n\n.spec-table tr:hover {\n    background: var(--color-code-bg);\n}\n\n/* Badges */\n.status-badge,\n.label-badge,\n.type-badge {\n    display: inline-block;\n    padding: 0.15em 0.5em;\n    border-radius: 4px;\n    font-size: 0.75rem;\n    font-weight: 500;\n    text-transform: uppercase;\n}\n\n.status-badge {\n    background: var(--color-code-bg);\n}\n\n.status-badge.status-completed { background: var(--color-completed-bg); color: #166534; }\n.status-badge.status-in-progress,\n.status-badge.status-in_progress { background: var(--color-in-progress-bg); color: #1e40af; }\n.status-badge.status-pending { background: var(--color-pending-bg); color: #92400e; }\n.status-badge.status-failed { background: var(--color-failed-bg); color: #991b1b; }\n\n.label-badge {\n    background: #e0e7ff;\n    color: #3730a3;\n    margin-right: var(--spacing-xs);\n}\n\n.label-badge.small {\n    font-size: 0.65rem;\n}\n\n.type-badge {\n    background: var(--color-code-bg);\n    color: var(--color-text-muted);\n}\n\n/* Spec Page */\n.spec-page {\n    max-width: 800px;\n}\n\n.spec-header {\n    margin-bottom: var(--spacing-xl);\n    padding-bottom: var(--spacing-lg);\n    border-bottom: 1px solid var(--color-border);\n}\n\n.spec-meta {\n    display: flex;\n    gap: var(--spacing-sm);\n    flex-wrap: wrap;\n    margin-top: var(--spacing-md);\n}\n\n.spec-id {\n    font-family: var(--font-mono);\n    font-size: 0.875rem;\n    color: var(--color-text-muted);\n}\n\n.spec-details {\n    margin-bottom: var(--spacing-xl);\n}\n\n.spec-properties {\n    display: grid;\n    grid-template-columns: auto 1fr;\n    gap: var(--spacing-sm) var(--spacing-lg);\n}\n\n.spec-properties dt {\n    font-weight: 600;\n    color: var(--color-text-muted);\n}\n\n.spec-properties dd {\n    margin: 0;\n}\n\n.file-list {\n    list-style: none;\n    margin: 0;\n}\n\n.spec-body {\n    line-height: 1.7;\n}\n\n.spec-body h1,\n.spec-body h2,\n.spec-body h3 {\n    margin-top: var(--spacing-xl);\n}\n\n.spec-body ul,\n.spec-body ol {\n    margin-bottom: var(--spacing-md);\n    padding-left: var(--spacing-lg);\n}\n\n.spec-body li {\n    margin-bottom: var(--spacing-xs);\n}\n\n/* Spec Navigation */\n.spec-nav {\n    display: flex;\n    justify-content: space-between;\n    margin-top: var(--spacing-xl);\n    padding-top: var(--spacing-lg);\n    border-top: 1px solid var(--color-border);\n}\n\n.nav-prev,\n.nav-next {\n    display: inline-block;\n    padding: var(--spacing-sm) var(--spacing-md);\n    background: var(--color-code-bg);\n    border-radius: 6px;\n}\n\n/* Timeline */\n.timeline {\n    margin-top: var(--spacing-lg);\n}\n\n.timeline-group {\n    margin-bottom: var(--spacing-xl);\n}\n\n.timeline-date {\n    font-size: 1.25rem;\n    color: var(--color-text);\n    border-bottom: 1px solid var(--color-border);\n    padding-bottom: var(--spacing-sm);\n}\n\n.ascii-timeline,\n.ascii-graph {\n    font-family: var(--font-mono);\n    font-size: 0.875rem;\n    line-height: 1.4;\n    white-space: pre;\n    overflow-x: auto;\n}\n\n/* Graph */\n.graph-container {\n    margin: var(--spacing-lg) 0;\n    padding: var(--spacing-lg);\n    background: var(--color-code-bg);\n    border-radius: 8px;\n    overflow-x: auto;\n}\n\n.graph-legend,\n.graph-roots,\n.graph-leaves {\n    margin-top: var(--spacing-xl);\n}\n\n.graph-legend ul,\n.graph-roots ul,\n.graph-leaves ul {\n    list-style: none;\n    padding: 0;\n}\n\n.graph-legend li,\n.graph-roots li,\n.graph-leaves li {\n    padding: var(--spacing-xs) 0;\n}\n\n/* Changelog */\n.changelog-group {\n    margin-bottom: var(--spacing-xl);\n}\n\n.changelog-list {\n    list-style: none;\n    padding: 0;\n}\n\n.changelog-list li {\n    padding: var(--spacing-sm) 0;\n    border-bottom: 1px solid var(--color-border);\n}\n\n.changelog-list li:last-child {\n    border-bottom: none;\n}\n\n.changelog-title {\n    margin-left: var(--spacing-sm);\n}\n\n/* Empty State */\n.empty-state {\n    text-align: center;\n    color: var(--color-text-muted);\n    padding: var(--spacing-xl);\n}\n\n.page-description {\n    color: var(--color-text-muted);\n    margin-bottom: var(--spacing-lg);\n}\n\n/* Footer */\n.site-footer {\n    border-top: 1px solid var(--color-border);\n    padding: var(--spacing-lg);\n    text-align: center;\n    color: var(--color-text-muted);\n    font-size: 0.875rem;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n    .site-nav {\n        flex-direction: column;\n        align-items: flex-start;\n    }\n\n    .nav-links {\n        flex-direction: column;\n        gap: var(--spacing-sm);\n    }\n\n    .dropdown-menu {\n        position: static;\n        box-shadow: none;\n        border: none;\n        padding-left: var(--spacing-md);\n    }\n\n    .stats-summary {\n        grid-template-columns: repeat(2, 1fr);\n    }\n\n    .spec-properties {\n        grid-template-columns: 1fr;\n    }\n\n    .spec-table {\n        font-size: 0.875rem;\n    }\n\n    .spec-table th,\n    .spec-table td {\n        padding: var(--spacing-xs) var(--spacing-sm);\n    }\n}\n";