{ name: string; variables: { name: string; light?: string | undefined; dark?: string | undefined; summary?: string | undefined; }[]; summary?: string | undefined; scheme?: "dark" | "light" | "dual" | undefined; scheme_mirror?: { ...; }[] | undefined; }[] type Theme[]
import {contrast_modifiers} from '@fuzdev/fuz_css/themes.js'; The contrast modifiers: small axis fragments composed over any theme via
compose_themes rather than picked as themes themselves. Composition is
flatten + last-wins, so a modifier's variables replace the base theme's
same-named ones - a base that moves the same knobs cedes them to the
modifier. Both move the shade endpoint (shade_lightness_00), since
contrast is the ground-to-text range, so a theme whose identity is its
ground yields it. High contrast also bends the text curve
(text_lightness_curve) and sets border_color to a stop that holds a
control's boundary against a ground its fill can no longer separate from
- a base with its own
border_colorcedes it like any other variable,
stronger rules included. Neither touches the neutral cast, which stays the theme's.