theme-vir
Version:
Create an entire web theme.
23 lines (22 loc) • 1.09 kB
TypeScript
import { type RequireAtLeastOne } from 'type-fest';
import { type ColorInit, type ColorThemeInit, type ColorThemeOverride } from './color-theme-init.js';
import { themeDefaultKey, type ColorTheme, type NoRefColorInit } from './color-theme.js';
/**
* Input for {@link defineColorThemeOverride} color overrides.
*
* @category Internal
*/
export type ColorThemeOverrideInit<Theme extends ColorTheme = ColorTheme> = Omit<Partial<{
[ColorName in keyof Theme['colors']]: ColorInit;
}>, typeof themeDefaultKey>;
/**
* Define a color theme override. Use this to define multiple theme variations, like light mode vs
* dark mode.
*
* @category Color Theme
*/
export declare function defineColorThemeOverride<const Init extends ColorThemeInit>(originalTheme: ColorTheme<Init>, overrideName: string, { defaultOverride, colorOverrides, }: Readonly<RequireAtLeastOne<{
/** Override the default foreground and/or background colors. */
defaultOverride: Readonly<NoRefColorInit>;
colorOverrides: Readonly<ColorThemeOverrideInit<ColorTheme<Init>>>;
}>>): ColorThemeOverride<Init>;