diff --git a/DESIGN.md b/DESIGN.md deleted file mode 100644 index 9d3db7f5a3..0000000000 --- a/DESIGN.md +++ /dev/null @@ -1,159 +0,0 @@ -# Twenty Website — DESIGN.md - -> Visual system for the Twenty marketing site. Distilled from `packages/twenty-website/src/theme/`. Loaded by every `impeccable` invocation alongside PRODUCT.md. - -## Theme - -**Light by default.** A founder browsing a partner profile in daylight on a 14–27 inch monitor is the default scene. The site does ship a `data-scheme="dark"` override (see `css-variables.ts`), but no current public page opts into it. Treat dark as a deferred surface. - -## Color - -Palette is OKLCH-equivalent neutrals at the surface level. The brand accents (blue, pink, yellow, green) are present in the token system but used sparingly — none of them appear on the partner pages. - -### Strategy: Restrained - -Tinted neutrals + one accent ≤10%. The accent for partner pages is the deep ink black (`var(--color-black-100)`) used in CTAs and hover states. Anything beyond a hairline border, an icon glyph, or a primary CTA should question whether it needs color at all. - -### Tokens (from `src/theme/colors.ts` + `css-variables.ts`) - -Neutrals (the workhorses): - -| Token | Hex (computed) | Role | -| --- | --- | --- | -| `colors.primary.background[100]` | `#ffffff` | Page + card surface | -| `colors.primary.text[100]` | `#1c1c1c` | Headlines, primary text | -| `colors.primary.text[80]` | `#1c1c1ccc` | Body text | -| `colors.primary.text[60]` | `#1c1c1c99` | Eyebrows, meta, captions | -| `colors.primary.text[40]` | `#1c1c1c66` | Disabled / placeholder | -| `colors.primary.text[20]` | `#1c1c1c33` | Subtle separators | -| `colors.primary.text[10]` | `#1c1c1c1a` | Hairline borders | -| `colors.primary.text[5]` | `#1c1c1c0d` | Subtle fills (rates panel, skill chips) | -| `colors.primary.border[10]` | `#1c1c1c1a` | Default border | -| `colors.primary.border[20]` | `#1c1c1c33` | Hover border | - -Reverse palette (for dark CTAs): - -| Token | Role | -| --- | --- | -| `colors.secondary.background[100]` | Filled CTA background (deep ink) | -| `colors.secondary.text[100]` | Filled CTA text (white) | - -Brand accents (currently absent from partner pages; available if needed): - -- `colors.accent.blue` — `#4a38f5` / `#8174f8` -- `colors.accent.pink` — `#ed87fc` / `#f3abfd` -- `colors.accent.yellow` — `#feffb7` / `#feffd9` -- `colors.accent.green` — `#89fc9a` / `#b0fdbe` -- `colors.highlight` — same hue as blue accent - -**Do not introduce gradients, glass blurs, or saturated fills on partner pages.** Color is conviction here, not decoration. - -## Typography - -Three families, each load-balanced via CSS variables: - -| Family | Var | Use | -| --- | --- | --- | -| `theme.font.family.serif` | `--font-serif` | Headlines, partner names, headline values | -| `theme.font.family.sans` | `--font-sans` | Body, prose, interactive labels | -| `theme.font.family.mono` | `--font-mono` | Eyebrows, meta, currency labels, tabular numerics | -| `theme.font.family.retro` | `--font-retro` | Reserved (not used on partner pages) | - -### Weight + Size Contrast - -Weights: `light: 300`, `regular: 400`, `medium: 500`. No bold. Hierarchy is driven by scale and family contrast, never by weight alone. - -Scale (`theme.font.size(n)` → `calc(var(--font-base) * n)`, where `--font-base: 0.25rem` ≈ 4px): - -- Display / h1: size 9–12 (36–48px) -- h2 / section heads: size 7–8 (28–32px) -- h3 / card heads: size 5–6 (20–24px) -- Body / prose: size 4–5 (16–20px) -- Eyebrow / meta: size 3 (12px) with `letter-spacing: 0.06–0.08em` and `text-transform: uppercase` - -Body line length: cap at 65–75ch (the existing `PartnerProfileIntro` uses `max-width: 62ch` — keep that order of magnitude). - -### Hierarchy contract - -- A serif `