AGENTS.md@public/files/anarlog/apps/web · git:20260915.997c05b · 2026-09-15 · sha256 7576002d4518da5c
AGENTS.md@public/files/anarlog/apps/web git:20260915.997c05bA
Immutable. This exact content is served forever at /api/v1/blob/7576002d4518da5c.
```bash infisical export \ --env=dev \ --secret-overriding=false \ --format=dotenv \ --output-file="apps/web/.env" \ --projectId=87dad7b5-72a6-4791-9228-b3b86b169db1 \ --path="/anarlog/web" ``` ## Design System All visual tokens live in `src/styles.css` inside the `@theme` block. Never use hardcoded hex values in components — always reference a token. ### Color tokens The palette is built on an oklch grey scale. Key semantic tokens: | Token | Value | Use for | | ------------------------ | --------------------------- | ---------------------------------------------------- | | `--color-page` | `#f2f1ef` | Page/canvas background (`bg-page`) | | `--color-surface` | `#ffffff` | Card, panel, modal backgrounds (`.surface`) | | `--color-surface-subtle` | `var(--grey-100)` | Muted surface variants (`.surface-subtle`) | | `--color-fg` | `var(--grey-900)` | Primary text (`.text-color`) | | `--color-fg-muted` | `#57534e` | Secondary/body text (`.text-color-muted`) | | `--color-fg-subtle` | `var(--color-border)` | Placeholder, disabled, icons | | `--color-border` | `var(--grey-500)` | Default borders (`.border-color-brand`) | | `--color-border-subtle` | `var(--grey-300)` | Hairline/structural borders (`.border-color-subtle`) | | `--color-border-bright` | `oklch(0.5959 0.0333 78.6)` | Accent borders (`.border-color-bright`) | | `--color-brand-dark` | `#57534e` | Checked states, emphasis (`bg-brand-dark`) | | `--brand-yellow` | `oklch(0.9484 0.0672 90.6)` | Hero/footer warm wash (`.brand-yellow`) | Note: there is no `--color-brand` token. CTAs use `from-stone-600 to-stone-500`. ### Shadow tokens | Token | Use for | | -------------------- | --------------------------------------------------------------------------------- | | `--shadow-ring` | 1px outline border effect (`.border-around`) — prefer over `border` when stacking | | `--shadow-ring-left` | Left-edge only 1px outline | ### Typography - **Body / UI text**: `font-sans` (Geist) — all body copy, labels, nav links - **Headings / buttons**: `font-mono` (Geist Mono) — h1/h2, button labels, code - **Editorial**: `font-serif` (Fraunces) — editorial emphasis, decorative moments - **Italic accent**: `font-serif2` (Instrument Serif) — italic editorial accents ### CTA button pattern Primary CTA uses Tailwind's stone gradient (not a custom token): ```tsx "bg-linear-to-t from-stone-600 to-stone-500 rounded-full text-white"; ``` Secondary / ghost uses surface + border: ```tsx "border border-neutral-200 bg-white rounded-lg text-neutral-700"; ``` ## Component structure Current folder layout: ``` src/components/ admin/ # Internal admin tooling mdx/ # MDX renderer components notepad/ # Notepad feature demos sections/ # Page-level marketing sections transcription/ # Transcription feature demos *.tsx # Flat root — layout, navigation, shared components ``` Most components currently live flat in the root. When touching a file, consider moving it to the appropriate subfolder. For full brand reference, see `BRAND.md`.