--- description: How brand tokens (colors, fonts) map onto Infima CSS variables in this project. Source of truth is ATIVOS/brand/CLAUDE.md. load-when: Adjusting site colors, fonts, or any visual token. --- # Brand tokens → Infima This project styles itself by overriding Infima CSS variables in `src/css/custom.css`. Brand source of truth lives in `/Users/gazperi/Developer/ATIVOS/brand/CLAUDE.md`. Do not invent tokens here — pull values from there. ## Color tokens | Brand token | Value | Infima var | | ----------------- | --------- | ------------------------------------------- | | `--gazperi-bg` | `#f5f0e8` | `--ifm-background-color` | | `--gazperi-ink` | `#1a1918` | `--ifm-color-content` | | `--gazperi-accent`| `#b85c38` | `--ifm-color-primary` (+ dark/light scales) | | `--gazperi-ink-muted` | `rgba(26, 25, 24, 0.55)` | `--ifm-color-content-secondary` | | `--gazperi-rule` | `rgba(26, 25, 24, 0.15)` | `--ifm-toc-border-color` | Dark-mode variant lives in `[data-theme='dark']` and inverts `--gazperi-bg` / `--gazperi-ink`. Accent scales lighten in dark mode for readability. ## Font tokens | Layer | Font | Files in `static/fonts/` | Infima var | | ------------ | --------------- | ------------------------------------------------------- | --------------------------- | | Wordmark | Share Tech 400 | `ShareTech-Regular.ttf` | (used in `.navbar__brand`) | | Headings | Spectral 600 | `Spectral-SemiBold.ttf`, `Spectral-SemiBoldItalic.ttf` | `--ifm-heading-font-family` | | Body | Source Serif 4 | `SourceSerif4-Regular.ttf`, `SourceSerif4-Italic.ttf` | `--ifm-font-family-base` | | UI / meta | Outfit 400 / 500| `Outfit-Regular.ttf`, `Outfit-Medium.ttf` | `--ifm-font-family-monospace` (overloaded) and inline component classes | Fonts are loaded via `@font-face` in `custom.css` from `/fonts/*.ttf` (served from `static/fonts/`). No external CDN. **Adding a new color.** Update `ATIVOS/brand/CLAUDE.md` first if the token is brand-level. Then add a `--gazperi-*` var in `:root` and `[data-theme='dark']` in `src/css/custom.css`. Map to an Infima var only if Docusaurus components consume that var. **Adding a new font.** Drop the TTF/WOFF2 in `static/fonts/`. Add an `@font-face` block at the top of `src/css/custom.css`. Reference via `font-family` in component CSS. **Changing accent color.** Update both light and dark scales (`--ifm-color-primary` + `-dark`, `-darker`, `-darkest`, `-light`, `-lighter`, `-lightest`) for visual consistency. Use a tool like `https://docusaurus.io/docs/styling-layout#styling-your-site-with-infima` to generate the scale.