// theme.ts — Ebenworks design tokens as typed TS constants. // BRAND-KIT HANDOFF SNAPSHOT — NOT imported by the website and NOT its // source of truth. The live tokens are the CSS custom properties in // app/globals.css (the --* variables). Editing this file does NOT change // the site; it's a portable reference for external consumers / design tools. // Import named tokens or use the default export. export const colors = { brand: { orange: "#FC5F00", orangeDeep: "#DA4300", ink: "#1D1009", charcoal: "#28282B", charcoal2: "#323235", paper: "#FAF8F4", white: "#FFFFFF", }, orange: { 50: "#FFF1E6", 100: "#FFD9BF", 200: "#FFB280", 300: "#FF8B40", 400: "#FF7320", 500: "#FC5F00", 600: "#DA4300", 700: "#B23700", 800: "#802800", 900: "#4D1800", }, gray: { 50: "#F8F8F9", 100: "#F2F2F3", 200: "#E8E8E9", 300: "#D4D4D5", 400: "#B5B5B7", 500: "#8B8B8E", 600: "#6A6A6D", 700: "#555558", 800: "#3A3A3D", 900: "#28282B", }, semantic: { success: "#10A36B", successBg: "#E6F7EF", warning: "#E89400", warningBg: "#FFF6E0", error: "#D6332E", errorBg: "#FCE8E7", info: "#2F73E0", infoBg: "#E7EFFB", }, } as const; export const fontFamily = { sans: `Geist, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`, display: `Geist, -apple-system, BlinkMacSystemFont, sans-serif` /* Bricolage Grotesque for brand moments only */, mono: `"Geist Mono", "SF Mono", Monaco, Consolas, monospace`, } as const; export const fontSize = { xs: "0.75rem", sm: "0.875rem", base: "1rem", lg: "1.125rem", xl: "1.25rem", "2xl": "1.5rem", "3xl": "1.875rem", "4xl": "2.25rem", "5xl": "3rem", "6xl": "3.75rem", "7xl": "4.5rem", } as const; export const spacing = { 0: "0", 1: "0.25rem", 2: "0.5rem", 3: "0.75rem", 4: "1rem", 5: "1.25rem", 6: "1.5rem", 8: "2rem", 10: "2.5rem", 12: "3rem", 16: "4rem", 20: "5rem", 24: "6rem", } as const; export const radius = { sm: "4px", base: "8px", md: "12px", lg: "16px", xl: "24px", full: "9999px", } as const; export const shadow = { sm: "0 1px 2px 0 rgba(29,16,9,0.06)", base:"0 2px 6px -1px rgba(29,16,9,0.08), 0 1px 2px rgba(29,16,9,0.04)", md: "0 4px 12px -2px rgba(29,16,9,0.10), 0 2px 4px rgba(29,16,9,0.05)", lg: "0 12px 24px -4px rgba(29,16,9,0.12), 0 4px 8px rgba(29,16,9,0.06)", xl: "0 24px 48px -8px rgba(29,16,9,0.16)", } as const; export const motion = { ease: { standard: "cubic-bezier(0.2, 0, 0, 1)", emphasized: "cubic-bezier(0.3, 0, 0, 1)", }, duration: { fast: "120ms", base: "200ms", slow: "360ms" }, } as const; // Product accents — canonical register (2026-08-14), derived from each // product's own identity. Rules: infra/docs/BRAND.md. export const productAccents = { imali: "#00A651", chingu: "#C4613A", phila: "#0B6B47", bidwright: "#2168E7", statosports: "#0B5A94", diaspry: "#E65A2A", izwi: "#C2873B", tzohar: "#6E54E8", azdates: "#FB4A8D", } as const; export const theme = { colors, productAccents, fontFamily, fontSize, spacing, radius, shadow, motion } as const; export type EwTheme = typeof theme; export default theme;