---
description: Brief-specific design system, typography, colors, and component patterns
---
# Brief Design Skill
Use this skill when creating or modifying UI components. Brief has a complete design system—**always use it** instead of inventing new patterns.
## Quick Reference
| Category | Use | Avoid |
|----------|-----|-------|
| Sans font | `font-sans` (Spline Sans) | Inter, Roboto, Arial, system fonts |
| Serif font | `font-serif` (Piazzolla) | Times, Georgia |
| Mono font | `font-mono` (Spline Sans Mono) | Courier, Monaco |
| Primary color | `bg-primary` (fern green) | Purple gradients, arbitrary hex |
| Focus rings | `ring-ring` (sky-blue) | Custom ring colors |
| Components | `@/components/ui/*` | Custom from-scratch implementations |
## Typography
### Font Families
Brief uses three font families configured in `web/lib/fonts.ts`:
```tsx
// ✅ Correct - use CSS variables
Spline Sans (default)
Piazzolla for accents
Spline Sans Mono
// ❌ Wrong - hardcoded fonts
Never do this
```
### Semantic Typography Classes
Use these predefined classes from `globals.css` instead of ad-hoc combinations:
| Class | Size | Weight | Use For |
|-------|------|--------|---------|
| `.large-title` | 3xl | normal | Hero headlines |
| `.large-title-heavy` | 3xl | semibold | Emphasized headlines |
| `.title-1` | 2xl | normal | Page titles |
| `.title-2` | xl | normal | Section headers |
| `.title-3` | lg | normal | Card headers |
| `.body` | base | normal | Default body text |
| `.callout` | sm | normal | Supporting info |
| `.subhead` | xs | normal | Labels, metadata |
| `.caption-1` | xxs | normal | Fine print |
Add `-heavy` suffix for semibold variants (e.g., `.title-1-heavy`).
```tsx
// ✅ Good
Page Title
Content goes here
// ❌ Bad - recreating what exists
Page Title
```
## Color System
### Layer 1: OKLCH Primitives
All colors are OKLCH-based. Key ramps defined in `globals.css`:
- **`brand-fern`** — Primary brand green (050–095 stops)
- **`neutral`** — Grays for backgrounds/borders
- **`sky-blue`** — Focus states and interactive chrome
```tsx
// Primitive utilities (use sparingly, prefer semantics)