oc · docs
docs / documentation

@orangecheck/design


@orangecheck/design / OcTheme

Interface: OcTheme

Defined in: tokens/themes.ts:13

The OrangeCheck theme (skin) registry.

A skin is the named-theme axis, orthogonal to the light/dark mode axis (which stays owned by next-themes via the .dark class). A skin is applied as data-oc-theme="<id>" on <html> and persisted in the oc_skin cookie at Domain=.ochk.io so a choice on one family site carries to every other.

Adding a skin = add a themes/<id>.css token block in this package and a row here. Every site picks it up on the next @orangecheck/design bump; no per-site edits.

Properties

PropertyModifierTypeDescriptionDefined in
<a id="property-accent"></a> accentreadonlystringAccent hex (sRGB of the skin's dark-mode --brand). Used to swap the browser chrome — <meta name="theme-color"> and the favicon (recolored from the family #f97316) — when the skin changes. Mirrors the SKINS palette in oc-media-kit/build/brands.py (same source of truth).tokens/themes.ts:26
<a id="property-description"></a> descriptionreadonlystringOne-line description shown in the picker / Storybook.tokens/themes.ts:19
<a id="property-id"></a> idreadonlystringStable id — also the data-oc-theme attribute value and the CSS file stem.tokens/themes.ts:15
<a id="property-label"></a> labelreadonlystringHuman label for the picker (lowercase, house voice).tokens/themes.ts:17