Documentation
Developer documentation for luci-theme-footstrap. Installing and using the theme is in the
repository README.
Every page here stands on its own — start wherever your question is.
Start here
| Page |
Answers |
| architecture.md |
What LuCI expects from a theme, and where footstrap plugs into it |
| conventions.md |
The rules a patch must follow, and which gate holds each one |
| development.md |
Bring up a dev router, push a change, prove it works |
| crew.md |
How a session is split between the lead thread and the role subagents |
How it is built
| Page |
Answers |
| design-system.md |
Tokens, palettes, typography, scales, the appearance axes |
| css.md |
The styles/ tree, cascade layers, build-css.sh, proving a CSS change |
| chrome.md |
Sidebar, icon rail, top bar, the menu renderer, the fit measurement |
| spa-router.md |
Client-side navigation: how it works and what it refuses to do |
| third-party-apps.md |
Coexisting with foreign luci-app-* |
Shipping
| Page |
Answers |
| package.md |
Source tree, Makefile, uci-defaults, postinst/postrm |
| ci.md |
The CI job graph, packaging, installation and the trust chain |
| releasing.md |
The pre-release checklist, the changelog contract, the runbook |
| benchmark.md |
The navigation benchmark: method and results |
For authors of other packages
There is also a self-contained developer portal with the colour-token grid, the component markup
and a style checker: https://vizzletf.github.io/luci-theme-footstrap/.
Not documentation
| File |
What it is |
gallery.html |
every widget LuCI can emit, with the real class names — what the a11y gate runs against |
devkit.src.html |
source of the developer portal |
devkit.html |
built from devkit.src.html, gallery.html and 02-tokens.css by the pages job. Generated, gitignored, never committed |
| the playground |
not a page here at all — recorded from a real router by tools/playground/* and CI's playground job, published as a release asset and fetched into Pages by pages.yml. ci.md |
design/, screenshots/, img/ |
reference mock-ups and README assets |
Conventions of these pages
- One page, one job. If a page needs its own table of contents, it is probably two pages.
- One fact lives in one place. Pages link to each other rather than repeating.
- Every measurement carries the number it was made with, and every rule says what it protects
against — the alternative was usually tried and was worse.
- Documentation that has stopped being true is deleted, not annotated.