CSS Architecture
CSS Architecture
The CSS system comprises 18 files totaling 5,163 lines.
site.css is the orchestrator — it imports all component stylesheets in a specific order, which PostCSS resolves into a single compiled output.
site.css Import Chain
The import order in src/css/site.css (18 lines) matters — later imports can override earlier ones:
1. typeface-roboto.css Roboto font-face declarations 2. typeface-roboto-mono.css Roboto Mono font-face declarations 3. vars.css CSS custom properties (root variables) 4. base.css Base element styles (html, body, a, code, etc.) 5. body.css Body layout grid 6. nav.css Sidebar navigation 7. main.css Main content area layout 8. toolbar.css Page toolbar (version selector, edit link) 9. breadcrumbs.css Breadcrumb trail 10. page-versions.css Version selector dropdown 11. toc.css Right-sidebar table of contents 12. doc.css Document content styling (largest file) 13. pagination.css Previous/next page links 14. header.css Top navbar 15. footer.css Page footer 16. highlight.css Code syntax highlighting colors 17. print.css Print stylesheet (@media print) 18. domus-theme.css Theme overrides (MUST be last to win specificity)
File Inventory
| File | Lines | Purpose |
|---|---|---|
|
2,383 |
7 complete theme definitions + premium styling (gold sidebars, exec tables, code blocks, admonitions) |
|
1,087 |
Document content: headings, paragraphs, lists, tables, admonitions, code blocks, images, sidebar blocks |
|
365 |
Sidebar navigation: tree items, expand/collapse, active states, scrollbar, mobile drawer |
|
344 |
Top navbar: brand, menu, dropdowns, burger, search field, responsive breakpoints |
|
154 |
Reset + base element styles: box-sizing, font stack, links, code, scrollbar |
|
146 |
CSS custom properties root definitions: colors, fonts, spacing, widths |
|
98 |
Right sidebar TOC: sticky positioning, link styles, active tracking |
|
88 |
Print rules: hide nav/header/footer, adjust margins, page breaks |
|
86 |
Syntax highlighting token colors (Catppuccin-inspired palette) |
|
71 |
Roboto font-face declarations (400, 400i, 500, 700) |
|
68 |
Toolbar: version dropdown, edit link, icon buttons |
|
63 |
Prev/next navigation: flexbox layout, arrow icons |
|
56 |
Version dropdown: option list, active indicator |
|
39 |
Roboto Mono font-face (400, 700) |
|
39 |
Main content grid: sidebar + article + TOC layout |
|
38 |
Breadcrumb trail: separator icons, truncation |
|
18 |
Import orchestrator (no styles, only @import statements) |
|
15 |
Footer: layout, copyright text, link styles |
|
5 |
Body grid definition (3-column layout) |
Total |
5,163 |
vars.css Root Variables
src/css/vars.css (146 lines) defines the base CSS custom properties that themes override:
| Group | Variables |
|---|---|
Colors |
|
Fonts |
|
Base |
|
Navbar |
|
Nav |
|
Toolbar |
|
Doc |
|
TOC |
|
Footer |
|
These are the "upstream defaults" — domus-theme.css overrides them per theme via [data-theme] selectors.
PostCSS Processing
At build time, PostCSS transforms the source CSS:
-
Import resolution —
postcss-importinlines all 18@importfiles into a single stylesheet -
Custom properties —
postcss-custom-propertiescompilesvar()references for browsers that need it -
Calc reduction —
postcss-calcpre-computes staticcalc()expressions -
URL rebasing —
postcss-urladjusts relative asset paths for the bundle -
Vendor prefixes —
autoprefixeradds-webkit-,-moz-etc. for last 2 browser versions -
Minification —
cssnanocompresses output (with rule merging disabled)
Print Stylesheet
src/css/print.css (88 lines) provides @media print rules:
-
Hides: navbar, sidebar nav, TOC, toolbar, footer, pagination, version selector
-
Adjusts: margins, font sizes, page break rules
-
.hide-for-printutility class for page-specific print hiding