# MNW Frontend
Server-rendered HTML via Askama templates, HTMX for interactivity, hand-authored CSS. No JS framework. There is one build step: `frontend/` is TypeScript compiled to `static/dist/`, and the tab strips and several other regions are described in Rust under `src/quasi/` and rendered into the templates as strings.
## Design System
Typography and brand colors come from the cross-project brand system (three-tier type system, base palette, diamond mark rule). `docs/design-system.md` is the charter and the source of truth for token names; this file records how templates and CSS use them.
### Where the tokens live
| Group | Tokens | File |
|-------|--------|------|
| Surfaces | `--surface-page`, `--surface-raised`, `--surface-sunken`, `--surface-overlay`, `--surface-well`, `--bevel-light`, `--bevel-dark` | `static/style.css` `:root` |
| Content | `--content`, `--content-secondary`, `--content-muted`, `--content-on-action` | `static/style.css` `:root` |
| Action and status | `--action`, `--action-hover`, `--success`, `--warning`, `--danger`, `--info` | `static/style.css` `:root` |
| Lines and focus | `--border`, `--border-strong`, `--focus-ring`, `--hover-surface`, `--overlay` | `static/style.css` `:root` |
| Typeface | `--font-mono`, `--font-sans`, `--font-display` | `static/typography.css` (generated) |
| Type size, spacing, radius | `--text-*`, `--gap-*`, `--radius-*` | `static/geometry.css` (generated) |
The `:root` block in `style.css` holds the platform default. Creator profile, project and item pages inject a `