# Design System

This document defines the visual design language for fete. All frontend implementation must follow these specifications.

## Principles

- **Mobile-first / App-native feel** — not a classic website. Think installed app, not browser page.
- **Desktop:** centered narrow column (max ~480px), gradient background fills the rest.
- **Generous whitespace** — elements breathe, nothing cramped.
- **WCAG AA contrast** as baseline for all color choices.
- **Accessibility is a baseline requirement** — not an afterthought (per project statutes).

## Color Palette: Electric Dusk

Chosen for best balance of style, broad appeal, and accessibility.

| Role               | Hex       | Description        |
|--------------------|-----------|--------------------|
| Gradient Start     | `#F06292` | Pink               |
| Gradient Mid       | `#AB47BC` | Purple             |
| Gradient End       | `#5C6BC0` | Indigo blue        |
| Accent (CTAs)      | `#FF7043` | Deep orange        |
| Text (light mode)  | `#1C1C1E` | Near black         |
| Text (dark mode)   | `#FFFFFF` | White              |
| Surface (light)    | `#FFF5F8` | Pinkish white      |
| Surface (dark)     | `#1B1730` | Deep indigo-black  |
| Card (light)       | `#FFFFFF` | White              |
| Card (dark)        | `#2A2545` | Muted indigo       |

### Primary Gradient

```css
background: linear-gradient(135deg, #F06292 0%, #AB47BC 50%, #5C6BC0 100%);
```

### Usage Rules

- Gradient for hero/splash areas and page backgrounds — not as direct text background for body copy.
- Cards and content areas use solid surface colors with high-contrast text.
- Accent color (`#FF7043`) for primary action buttons with dark text (`#1C1C1E`).
- White text on gradient mid/end passes WCAG AA (4.82:1 and 4.86:1).
- White text on gradient start passes AA-large (3.06:1) — use for headings 18px+ only.

## Typography: Sora

Contemporary geometric sans-serif with slightly rounded terminals. Modern and friendly without being childish.

- **Font:** Sora
- **License:** SIL Open Font License 1.1 (OFL)
- **Source:** https://github.com/sora-xor/sora-font
- **Format:** Self-hosted WOFF2. No external CDN. No Google Fonts.
- **Weights:** 400 (Regular), 500 (Medium), 600 (SemiBold), 700 (Bold), 800 (ExtraBold)

### Weight Usage

| Context          | Weight | Size guideline  |
|------------------|--------|-----------------|
| Body text        | 400    | 0.85–1rem       |
| Labels           | 600–700| 0.8–0.9rem      |
| Headlines        | 700–800| 1.2–1.6rem      |
| Buttons          | 700–800| 1rem            |
| Small/meta text  | 400–500| 0.75–0.85rem    |

## Component Patterns

### Card-Style Form Fields

- Rounded corners (`border-radius: 14px`)
- Generous padding (`0.9rem 1rem`)
- White/card-colored background on gradient pages
- Subtle shadow (`box-shadow: 0 2px 8px rgba(0,0,0,0.1)`)
- Bold label (font-weight 700), regular-weight input text

### Buttons

- Rounded corners matching card fields (`border-radius: 14px`)
- Accent color background with dark text
- Bold/ExtraBold weight (700–800)
- Subtle shadow for depth

### Layout

- Mobile: full-width content with horizontal padding (~1.2rem)
- Desktop: centered column, max-width ~480px, gradient background fills viewport
- Vertical spacing between elements: ~0.75rem (compact), ~1.2rem (sections)
