About
How Velocity is built
The architecture in brief, and the two files you will actually edit.
Structure
themes/velocity/
├── ssg.toml site name, description, base URL
├── content/ page copy as Markdown
└── _layouts/
├── base.html document shell, declares the `main` block
├── header.html navigation partial
├── footer.html footer partial
├── index.html each page layout extends base
└── styles.css the entire design system
The two files you will edit
ssg.toml carries the site name, description and base URL. Getting this
wrong is how a site ends up publishing an llms.txt that reads
"MySsgSite" and JSON-LD pointing at 127.0.0.1.
_layouts/styles.css opens with a @layer tokens block holding every
colour, type step and spacing value. Change --accent there and the whole
theme follows.
Verifying a change
Run make check from the repository root. It parses the token blocks and
asserts every declared pair against its WCAG target — 7:1 for text, 3:1 for
borders and the focus ring — in both light and dark. A failing token is a
failing build, not a warning.
Browser targets
Cascade layers, container queries and :focus-visible: Chrome 111+,
Firefox 128+, Safari 16.4+. Older browsers receive readable unstyled
content rather than a broken layout.