ThemeScope
Overrides theme axes locally, with inherited messages and a contextual overlay target.@gemologic/sheen · themingPlayground
<ThemeScope theme="paper" mode="light" accent="indigo" controllable={false}><Input label="Preview name" /></ThemeScope>Variant matrix
Light comparison pane
mode: dark
mode: light
mode: system
mode: null
density: compact
density: comfortable
density: spacious
density: null
radius: sharp
radius: soft
radius: round
radius: null
motion: full
motion: reduced
motion: null
direction: ltr
direction: rtl
direction: null
Anatomy
- Package
@gemologic/sheen- Source
packages/ui/src/theme/ThemeProvider.tsx- Tokens
- None
Accessibility
Role: themed regionKeyboard: No component-owned keysDo
- Use independent iframes for full-layout comparisons.
Do not
- Do not expect scopes to persist preferences.
Generated props
| Name | Type | Default | Description |
|---|---|---|---|
controllable | boolean | false | Allows scoped setters to modify local overrides only. |
class | string | — | Class for the scope wrapper. |
messages | Partial<Messages> | — | Partial translations layered over the parent scope's messages. |
theme | string | null | undefined | — | Local theme ID; omitted inherits and null resets to provider default. |
mode | Mode | "system" | null | undefined | — | Local mode; omitted inherits and null resets. |
accent | import("@gemologic/sheen-tokens").AccentName | null | undefined | — | Local accent preset; never changes root persistence. |
density | "compact" | "comfortable" | "spacious" | null | undefined | — | Local density; omitted inherits and null resets. |
radius | "sharp" | "soft" | "round" | null | undefined | — | Local corner treatment; omitted inherits and null resets. |
motion | "full" | "reduced" | null | undefined | — | Local motion preference; OS reduced motion still wins. |
direction | "ltr" | "rtl" | null | undefined | — | Local writing direction; omitted inherits and null resets. |
locale | string | null | undefined | — | Local explicit formatting locale; omitted inherits and null resets. |