WFDASH-WEBAPP/src/lib/theme-types.ts

38 lines
1.1 KiB
TypeScript
Raw Normal View History

/**
* 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;
};