/** * Theme type contract. * * Kept in its own file so the picker and the registry can import a pure * type without dragging in CSS side effects. */ export type ThemeCategory = "standard" | "dark"; export type ThemeDefinition = { id: string; label: string; tagline: string; /** Hex used for the picker preview swatch */ accent: string; /** Soft hex for hover wash + chip backgrounds */ accentSoft: string; /** Accent when the theme is in dark mode (some themes need a brighter accent in dark) */ accentOnDark: string; /** Light-mode surface swatch */ surface: string; /** Dark-mode surface swatch */ surfaceDark: string; /** Light-mode foreground swatch */ ink: string; /** Dark-mode foreground swatch */ inkDark: string; /** CSS-var name for the heading font (registered in app/layout.tsx) */ fontHeading: string; /** CSS-var name for the body font */ fontBody: string; /** Base border-radius (in rem) */ radius: string; /** Free-form label for "inspired by ___" — shown in the picker */ reference: string; /** `standard` themes default to light; `dark` themes default to dark mode */ category: ThemeCategory; };