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.