Skip to main content

Interface: ThemeBrief

Defined in: Types.ts:185

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

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


brandEnergy?

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

Defined in: Types.ts:211

How much brand presence the theme carries.


colorModeStrategy?

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

Defined in: Types.ts:215

Color-mode support strategy.


densityProfile

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

Defined in: Types.ts:201

Operational compactness (FSL-DESIGN-002).


interactionRisk?

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

Defined in: Types.ts:207

Risk profile of adjacent interactions.


name

name: string

Defined in: Types.ts:187

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


platformBias?

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

Defined in: Types.ts:221

Primary platform the theme is tuned for.


pointerProfile?

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

Defined in: Types.ts:205

Primary pointer type the hit-target model targets.


primaryPosture

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

Defined in: Types.ts:191

Dominant behavioral personality (FSL-DESIGN-001).


purpose?

optional purpose?: string

Defined in: Types.ts:189

One line on what experience this theme should produce.


readingMode?

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

Defined in: Types.ts:203

Reading vs operating vs scanning bias of the interface.


secondaryPosture?

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

Defined in: Types.ts:199

Optional secondary posture; one posture must dominate.


surfaceModel?

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

Defined in: Types.ts:209

Surface layering strategy.