Files
commitea/docs/design/tokens/typography.css
Christian LeDoux 7a5cacc54c Scaffold CommiTea: yarn workspaces, Electron shell, core label schema, design system
- apps/desktop: electron-vite + React + Tailwind mapped onto design tokens
  (preflight off; tokens/base.css owns the reset); boots to a Reginald
  placeholder proving fonts/tokens/core wiring
- packages/core: pure TS; gitea label schema (est/*, p/*, deadline/hard)
  with pessimistic conflict resolution + 15 unit tests
- docs/design: full design handoff (tokens, 16 component contracts,
  interactive 14-screen prototype, Reginald voice rules)
- docs/PLAN.md: product plan (purity rule, pm-state repo, deterministic
  scheduler + Monte Carlo, directive log)
- Deliberate deviation from novelpad stack: no ElectricSQL/PGlite — local
  store is a rebuildable cache over gitea REST/webhooks (better-sqlite3
  in main process, arriving in P1)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 20:42:46 -04:00

35 lines
1.6 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* CommiTea typography tokens.
Voices: Display serif (headlines, big numerals) · Reginald's voice (Caslon Text, upright)
· Body sans (UI) · Mono (data: labels, estimates, dates, ids). */
:root {
--font-serif-display: 'Libre Caslon Display', 'Libre Caslon Text', Georgia, serif;
--font-serif-text: 'Libre Caslon Text', Georgia, serif;
--font-sans: 'Instrument Sans', -apple-system, 'Segoe UI', sans-serif;
--font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', monospace;
/* type scale */
--text-hero: 400 48px/1.08 var(--font-serif-display); /* big forecast numerals */
--text-display: 400 34px/1.15 var(--font-serif-display); /* page titles */
--text-title: 400 24px/1.2 var(--font-serif-display); /* card titles */
--text-agent: 400 16px/1.55 var(--font-serif-text); /* Reginald speaks — serif, upright */
--text-agent-lg: 400 20px/1.5 var(--font-serif-text);
--text-body: 400 14px/1.5 var(--font-sans);
--text-body-strong: 600 14px/1.5 var(--font-sans);
--text-small: 400 13px/1.45 var(--font-sans);
--text-caption: 400 12px/1.4 var(--font-sans);
--text-data: 400 13px/1.4 var(--font-mono); /* dates, counts */
--text-label: 500 11.5px/1 var(--font-mono); /* chips: est/2d, p/1 */
--text-overline: 600 11px/1.2 var(--font-sans); /* + letter-spacing-wide */
/* tracking */
--letter-spacing-wide: 0.08em; /* overlines, uppercase */
--letter-spacing-label: 0.02em; /* mono chips */
/* weights (sans is variable 400700) */
--weight-regular: 400;
--weight-medium: 500;
--weight-semibold: 600;
--weight-bold: 700;
}