Skip to main content

Interface: ThemeBrief

Defined in: Types.ts:207

Machine-readable theme brief — the design intent a theme declares before token values are chosen (theme-authoring.md §"Theme brief"). It is the home for the FSL-DESIGN-001..003 gate (posture, density, accessibility target) so those rules can be validated rather than living only as prose.

Orthogonal to tokens. The brief lives on ThemeBundle alongside base, never inside the token tree — DTCG and CSS emitters read bundle.base, so a brief never affects interchange or CSS output. Optional by design: existing createTheme callers stay valid.

Allowed values mirror theme-authoring.md §"Allowed values".

Properties​

accessibilityTarget​

accessibilityTarget: "AA" | "AA+" | "AAA-like"

Defined in: Types.ts:235

Non-negotiable accessibility floor (FSL-DESIGN-003).


brandEnergy?​

optional brandEnergy?: "expressive" | "balanced" | "quiet"

Defined in: Types.ts:233

How much brand presence the theme carries.


colorModeStrategy?​

optional colorModeStrategy?: "light-only" | "dark-supported" | "dark-first" | "adaptive"

Defined in: Types.ts:237

Color-mode support strategy.


densityProfile​

densityProfile: "compact" | "balanced" | "comfortable" | "spacious"

Defined in: Types.ts:223

Operational compactness (FSL-DESIGN-002).


interactionRisk?​

optional interactionRisk?: "medium" | "low" | "high"

Defined in: Types.ts:229

Risk profile of adjacent interactions.


name​

name: string

Defined in: Types.ts:209

Theme identity name (e.g. 'base', 'bruttal').


platformBias?​

optional platformBias?: "web" | "mobile" | "desktop" | "cross-platform"

Defined in: Types.ts:240

Primary platform the theme is tuned for.


pointerProfile?​

optional pointerProfile?: "fine" | "coarse" | "hybrid"

Defined in: Types.ts:227

Primary pointer type the hit-target model targets.


primaryPosture​

primaryPosture: "calm" | "productive" | "technical" | "expressive" | "editorial" | "premium"

Defined in: Types.ts:213

Dominant behavioral personality (FSL-DESIGN-001).


purpose?​

optional purpose?: string

Defined in: Types.ts:211

One line on what experience this theme should produce.


readingMode?​

optional readingMode?: "reading" | "operating" | "scanning" | "mixed"

Defined in: Types.ts:225

Reading vs operating vs scanning bias of the interface.


secondaryPosture?​

optional secondaryPosture?: "calm" | "productive" | "technical" | "expressive" | "editorial" | "premium"

Defined in: Types.ts:221

Optional secondary posture; one posture must dominate.


surfaceModel?​

optional surfaceModel?: "flat" | "lightly-layered" | "layered" | "immersive"

Defined in: Types.ts:231

Surface layering strategy.