Skip to main content

Interface: ThemeBrief

Defined in: Types.ts:199

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:227

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


brandEnergy?

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

Defined in: Types.ts:225

How much brand presence the theme carries.


colorModeStrategy?

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

Defined in: Types.ts:229

Color-mode support strategy.


densityProfile

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

Defined in: Types.ts:215

Operational compactness (FSL-DESIGN-002).


interactionRisk?

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

Defined in: Types.ts:221

Risk profile of adjacent interactions.


name

name: string

Defined in: Types.ts:201

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


platformBias?

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

Defined in: Types.ts:232

Primary platform the theme is tuned for.


pointerProfile?

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

Defined in: Types.ts:219

Primary pointer type the hit-target model targets.


primaryPosture

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

Defined in: Types.ts:205

Dominant behavioral personality (FSL-DESIGN-001).


purpose?

optional purpose?: string

Defined in: Types.ts:203

One line on what experience this theme should produce.


readingMode?

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

Defined in: Types.ts:217

Reading vs operating vs scanning bias of the interface.


secondaryPosture?

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

Defined in: Types.ts:213

Optional secondary posture; one posture must dominate.


surfaceModel?

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

Defined in: Types.ts:223

Surface layering strategy.