Files
mealprep/frontend/src/app.css
Marcel Raddatz 0a2ef750c4 feat(design-system): add Tailwind 4 @theme tokens, fonts, and completeness tests
- Load Fraunces, DM Sans, DM Mono via Google Fonts preconnect in app.html
- Define all design tokens in @theme block: neutrals, green/yellow/blue/
  purple/orange scales, spacing (--space-1..20), radii, shadows, button base
- Note --green-dark as button background (--green fails WCAG AA with white)
- Add @types/node for Node fs/path usage in design-system tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 12:45:11 +02:00

90 lines
3.7 KiB
CSS

@import 'tailwindcss';
@theme {
/* ── Fonts ─────────────────────────────────────────────────────── */
--font-display: 'Fraunces', Georgia, serif;
--font-sans: 'DM Sans', system-ui, sans-serif;
--font-mono: 'DM Mono', monospace;
/* ── Neutrals ───────────────────────────────────────────────────── */
--color-page: #fafaf7;
--color-surface: #f5f4ee;
--color-subtle: #edecea;
--color-border: #d8d7d0;
--color-text: #1c1c18;
--color-text-muted: #6b6a63;
/* ── Green scale ────────────────────────────────────────────────── */
--green-tint: #e8f5ea;
--green-light: #aedcb0;
--green: #3d8c4a;
--green-dark: #2e6e39; /* button backgrounds with white text — #3D8C4A gives 4.16:1, fails AA */
--green-deeper: #1e4a26;
/* ── Yellow scale ───────────────────────────────────────────────── */
--yellow-tint: #fdf6d8;
--yellow-light: #f9e08a;
--yellow: #f2c12e;
--yellow-dark: #c49610;
--yellow-text: #8a6800;
/* ── Blue scale ─────────────────────────────────────────────────── */
--blue-tint: #e6f1fb;
--blue-light: #a4cff4;
--blue: #2d7dd2;
--blue-dark: #185fa5;
/* ── Purple scale ───────────────────────────────────────────────── */
--purple-tint: #eeedfe;
--purple: #534ab7;
--purple-dark: #3c3489;
/* ── Orange scale ───────────────────────────────────────────────── */
--orange-tint: #fef0e6;
--orange: #e8862a;
--orange-dark: #b46820;
/* ── Status ─────────────────────────────────────────────────────── */
--color-error: #dc4c3e;
/* ── Spacing (8px base grid, 4px half-step) ─────────────────────── */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--space-7: 28px;
--space-8: 32px;
--space-9: 36px;
--space-10: 40px;
--space-11: 44px;
--space-12: 48px;
--space-13: 52px;
--space-14: 56px;
--space-15: 60px;
--space-16: 64px;
--space-17: 68px;
--space-18: 72px;
--space-19: 76px;
--space-20: 80px;
/* ── Radii ──────────────────────────────────────────────────────── */
--radius-xs: 2px;
--radius-sm: 4px;
--radius-md: 6px; /* default */
--radius-lg: 10px;
--radius-xl: 16px;
--radius-full: 9999px;
/* ── Elevation ──────────────────────────────────────────────────── */
--shadow-card: 0 1px 3px rgba(28, 28, 24, 0.06), 0 1px 2px rgba(28, 28, 24, 0.04);
--shadow-raised: 0 4px 12px rgba(28, 28, 24, 0.08), 0 2px 4px rgba(28, 28, 24, 0.04);
--shadow-overlay: 0 8px 32px rgba(28, 28, 24, 0.12), 0 2px 8px rgba(28, 28, 24, 0.06);
/* ── Button base tokens ─────────────────────────────────────────── */
--btn-font-size: 13px;
--btn-font-weight: 500;
--btn-letter-spacing: 0.04em;
}