Interface: ModeOverride
Defined in: Types.ts:182
Semantic-only overrides for the alternate color mode.
Core tokens are immutable across modes. Only semantic token references may change — remapping to different core tokens for the alternate mode.
Uses DeepPartial: every nested key is optional. Omitting a key inherits
the value from the base theme (see deepMerge in roots/helpers.ts,
which treats undefined and absent keys identically). An alternate
supplies only the leaves that differ from the base.
See
modes.md — "Modes remap semantic references, not core values."
Properties
semantic
semantic:
object
Defined in: Types.ts:183
border?
optionalborder?:object
border.divider?
optionaldivider?:object
Structural separator between content groups (low emphasis).
Use when splitting list rows, sections, toolbar regions, or grouped fields
— anywhere the line separates without enclosing.
Pair with a low-emphasis color (informational.muted.border.default); do
not use to enclose a surface or control — those are outline.surface /
outline.control.
border.divider.style?
optionalstyle?:`{core.border.${string}}`
border.divider.width?
optionalwidth?:`{core.border.${string}}`
border.outline?
optionaloutline?:object
border.outline.control?
optionalcontrol?:object
Boundary of an interactive control (button, input, toggle, chip, segmented item).
Use when the element is interactive and needs a visible edge at rest.
Pair with {ux}.{role}.border.{state} colors per FSL UX context; do not
use for containing surfaces — those are outline.surface.
border.outline.control.style?
optionalstyle?:`{core.border.${string}}`
border.outline.control.width?
optionalwidth?:`{core.border.${string}}`
border.outline.selected?
optionalselected?:object
Stronger-thickness boundary expressing selected / current state.
Use when selection or current-item status is communicated by line weight
(active tab, selected row, chosen card).
Resolves to a width strictly greater than outline.{surface,control}. Do
not use for keyboard focus — that is semantic.focus.ring.
border.outline.selected.style?
optionalstyle?:`{core.border.${string}}`
border.outline.selected.width?
optionalwidth?:`{core.border.${string}}`
border.outline.surface?
optionalsurface?:object
Boundary of a containing surface (card, panel, dialog, menu, grouped region).
Use when the element contains other content and needs a visible edge.
Pair with informational.{role}.border.{state} colors and (optionally)
semantic.elevation.surface.*; do not use for interactive controls — those
are outline.control.
border.outline.surface.style?
optionalstyle?:`{core.border.${string}}`
border.outline.surface.width?
optionalwidth?:`{core.border.${string}}`
colors?
optionalcolors?:object
colors.action?
optionalaction?:object
Anything the user triggers — buttons, toggles, menu items, action icons. Pick when the user is about to act.
colors.action.accent?
optionalaccent?:object
Highlighted action that draws attention without being the main path ("Try the new…" promo button).
colors.action.accent.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.action.accent.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.accent.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.accent.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.accent.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.accent.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.accent.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.accent.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.accent.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.accent.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.action.accent.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.accent.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.accent.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.accent.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.accent.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.accent.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.accent.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.accent.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.accent.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.action.accent.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.accent.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.accent.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.accent.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.accent.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.accent.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.accent.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.accent.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.muted?
optionalmuted?:object
Low-priority action — helper button, optional control, dismiss / cancel ghost.
colors.action.muted.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.action.muted.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.muted.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.muted.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.muted.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.muted.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.muted.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.muted.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.muted.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.muted.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.action.muted.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.muted.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.muted.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.muted.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.muted.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.muted.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.muted.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.muted.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.muted.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.action.muted.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.muted.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.muted.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.muted.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.muted.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.muted.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.muted.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.muted.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.negative?
optionalnegative?:object
Action whose intent is adverse: failure, invalid result, or destructive consequence (delete, cancel paid plan). Outcome (success / warning) lives in feedback.*, not here.
colors.action.negative.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.action.negative.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.negative.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.negative.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.negative.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.negative.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.negative.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.negative.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.negative.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.negative.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.action.negative.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.negative.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.negative.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.negative.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.negative.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.negative.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.negative.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.negative.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.negative.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.action.negative.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.negative.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.negative.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.negative.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.negative.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.negative.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.negative.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.negative.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.primary?
optionalprimary?:object
The single most important action on the view. Only one primary per {ux} per view — if two compete, the loser is secondary.
colors.action.primary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.action.primary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.primary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.primary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.primary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.primary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.primary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.primary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.primary.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.primary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.action.primary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.primary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.primary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.primary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.primary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.primary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.primary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.primary.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.primary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.action.primary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.primary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.primary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.primary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.primary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.primary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.primary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.primary.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.secondary?
optionalsecondary?:object
Alternative action that coexists with the primary one. Use when two actions share the surface and neither dominates.
colors.action.secondary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.action.secondary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.secondary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.secondary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.secondary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.secondary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.secondary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.secondary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.secondary.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.secondary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.action.secondary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.secondary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.secondary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.secondary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.secondary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.secondary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.secondary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.secondary.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.action.secondary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.action.secondary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.action.secondary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.action.secondary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.action.secondary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.action.secondary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure trigger or menu button is currently open. Use for buttons that own an open popup, menu, or panel.
colors.action.secondary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.action.secondary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.action.secondary.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Toggle button is currently engaged — persistent, not transient. Use for toolbar toggles ("Bold" pressed). Do not confuse with active (the brief moment of clicking).
colors.feedback?
optionalfeedback?:object
Surfaces that report the outcome of an action or system event — toasts, alerts, banners, inline validation. Pick when the system is reporting back.
colors.feedback.accent?
optionalaccent?:object
Informative feedback that is noteworthy but carries no judgement — "in progress", "new", "info". The canonical fill for activity indicators (ProgressBar, Meter).
colors.feedback.accent.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.feedback.accent.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.accent.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.accent.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.accent.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.feedback.accent.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.accent.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.accent.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.accent.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.feedback.accent.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.accent.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.accent.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.caution?
optionalcaution?:object
Feedback reporting risk that needs attention but does not block the user.
colors.feedback.caution.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.feedback.caution.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.caution.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.caution.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.caution.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.feedback.caution.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.caution.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.caution.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.caution.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.feedback.caution.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.caution.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.caution.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.muted?
optionalmuted?:object
Quiet feedback that should not steal attention — inline hints, low-priority status text.
colors.feedback.muted.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.feedback.muted.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.muted.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.muted.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.muted.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.feedback.muted.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.muted.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.muted.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.muted.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.feedback.muted.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.muted.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.muted.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.negative?
optionalnegative?:object
Feedback reporting failure or an invalid system state.
colors.feedback.negative.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.feedback.negative.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.negative.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.negative.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.negative.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.feedback.negative.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.negative.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.negative.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.negative.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.feedback.negative.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.negative.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.negative.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.positive?
optionalpositive?:object
Feedback reporting success, completion, or validity confirmed.
colors.feedback.positive.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.feedback.positive.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.positive.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.positive.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.positive.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.feedback.positive.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.positive.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.positive.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.positive.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.feedback.positive.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.positive.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.positive.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.primary?
optionalprimary?:object
Neutral / informational feedback that carries no valence — "Auto-saved", "Connected".
colors.feedback.primary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.feedback.primary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.primary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.primary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.primary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.feedback.primary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.primary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.primary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.feedback.primary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.feedback.primary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.feedback.primary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Prefer this over opacity.disabled for controls and text that carry colour contrast guarantees.
colors.feedback.primary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus — e.g. a focusable close button inside the feedback component.
colors.informational?
optionalinformational?:object
Presentational surfaces — hold, group, layer, frame, or display content; never drive a transaction.
Body text, page backgrounds, cards, panels, dialogs, dividers, list rows, accordions.
Interactivity is not a tiebreaker: a focusable Card or expandable accordion is still informational —
its purpose is presentational. Focusability is covered by semantic.focus.ring.*; disclosure by the expanded state.
colors.informational.accent?
optionalaccent?:object
Highlighted content that draws attention without being the main path — featured callout, promo tile.
colors.informational.accent.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.accent.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.accent.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.accent.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.accent.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.accent.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.accent.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.accent.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.accent.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.accent.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.accent.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.accent.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.accent.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.accent.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.accent.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.accent.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.accent.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.accent.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.accent.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.accent.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.accent.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.accent.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.accent.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.accent.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.accent.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.accent.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.accent.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.accent.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.accent.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.accent.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.caution?
optionalcaution?:object
Informational surface or text carrying caution — warning panel, advisory note.
colors.informational.caution.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.caution.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.caution.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.caution.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.caution.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.caution.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.caution.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.caution.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.caution.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.caution.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.caution.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.caution.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.caution.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.caution.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.caution.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.caution.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.caution.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.caution.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.caution.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.caution.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.caution.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.caution.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.caution.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.caution.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.caution.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.caution.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.caution.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.caution.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.caution.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.caution.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.muted?
optionalmuted?:object
Low-priority content — helper text, dividers, captions, metadata.
colors.informational.muted.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.muted.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.muted.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.muted.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.muted.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.muted.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.muted.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.muted.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.muted.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.muted.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.muted.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.muted.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.muted.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.muted.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.muted.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.muted.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.muted.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.muted.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.muted.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.muted.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.muted.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.muted.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.muted.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.muted.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.muted.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.muted.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.muted.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.muted.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.muted.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.muted.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.negative?
optionalnegative?:object
Informational surface or text reporting failure or invalid state — error empty state, broken-state panel.
colors.informational.negative.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.negative.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.negative.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.negative.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.negative.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.negative.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.negative.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.negative.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.negative.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.negative.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.negative.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.negative.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.negative.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.negative.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.negative.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.negative.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.negative.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.negative.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.negative.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.negative.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.negative.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.negative.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.negative.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.negative.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.negative.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.negative.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.negative.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.negative.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.negative.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.negative.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.positive?
optionalpositive?:object
Informational surface or text reporting success / completion (e.g. "All up to date" empty state).
colors.informational.positive.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.positive.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.positive.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.positive.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.positive.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.positive.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.positive.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.positive.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.positive.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.positive.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.positive.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.positive.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.positive.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.positive.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.positive.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.positive.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.positive.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.positive.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.positive.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.positive.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.positive.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.positive.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.positive.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.positive.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.positive.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.positive.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.positive.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.positive.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.positive.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.positive.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.primary?
optionalprimary?:object
Dominant content / surface on the view — page background, main panel, the card the user is reading.
colors.informational.primary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.primary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.primary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.primary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.primary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.primary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.primary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.primary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.primary.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.primary.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.primary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.primary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.primary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.primary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.primary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.primary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.primary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.primary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.primary.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.primary.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.primary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.primary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.primary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.primary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.primary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.primary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.primary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.primary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.primary.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.primary.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.secondary?
optionalsecondary?:object
Supporting content / surface coexisting with primary — sidebar panel, secondary card.
colors.informational.secondary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.informational.secondary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.secondary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.secondary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.secondary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.secondary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.secondary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.secondary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.secondary.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.secondary.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.secondary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.informational.secondary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.secondary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.secondary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.secondary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.secondary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.secondary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.secondary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.secondary.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.secondary.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.informational.secondary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.informational.secondary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.informational.secondary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.informational.secondary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.informational.secondary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.informational.secondary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Accordion / collapsible panel / <details> is currently open — in-place reveal (FSL Lexicon §1).
colors.informational.secondary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.informational.secondary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.informational.secondary.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Presentational element is one of many and the user picked it (selectable list row, focused card in a deck).
colors.informational.secondary.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Visited link rendered inside informational content.
colors.input?
optionalinput?:object
Anything the user enters or selects data into — text fields, selects, checkboxes, radios. Pick when the user is about to type / pick a value.
colors.input.caution?
optionalcaution?:object
Input whose value carries risk that needs attention but does not block submission.
colors.input.caution.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.input.caution.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.caution.background.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.caution.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.caution.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.caution.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.caution.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.caution.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.caution.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.caution.background.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.caution.background.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.caution.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.caution.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.caution.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.input.caution.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.caution.border.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.caution.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.caution.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.caution.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.caution.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.caution.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.caution.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.caution.border.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.caution.border.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.caution.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.caution.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.caution.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.input.caution.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.caution.text.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.caution.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.caution.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.caution.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.caution.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.caution.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.caution.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.caution.text.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.caution.text.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.caution.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.caution.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.muted?
optionalmuted?:object
Low-priority input — quiet text field, ghost search, optional metadata input.
colors.input.muted.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.input.muted.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.muted.background.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.muted.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.muted.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.muted.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.muted.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.muted.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.muted.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.muted.background.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.muted.background.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.muted.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.muted.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.muted.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.input.muted.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.muted.border.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.muted.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.muted.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.muted.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.muted.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.muted.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.muted.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.muted.border.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.muted.border.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.muted.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.muted.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.muted.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.input.muted.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.muted.text.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.muted.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.muted.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.muted.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.muted.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.muted.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.muted.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.muted.text.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.muted.text.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.muted.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.muted.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.negative?
optionalnegative?:object
Negative valence on a data-entry surface: the parts that report an adverse outcome, and controls an author deliberately voices negative.
This role is not how a control shows failed validation. That is the
invalid State on whichever role the control was authored with — see
InputColorStates.invalid and FSL Lexicon §10.15, which calls re-voicing
the control for a runtime outcome a category mistake: state lives in the
user's data, evaluation lives in the author's pen. What §10.15 does place
here is the adjacent display part, so text.* is the dimension a
validationMessage consumes.
This comment previously said the opposite — "validation failure is not a
state on primary; it selects this role" — and cited §5, which defines
Evaluation without addressing validation at all. It contradicted both
§10.15 and InputColorStates.invalid twelve lines above, and the
contradiction was live long enough to be reasoned from.
colors.input.negative.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.input.negative.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.negative.background.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.negative.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.negative.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.negative.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.negative.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.negative.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.negative.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.negative.background.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.negative.background.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.negative.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.negative.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.negative.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.input.negative.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.negative.border.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.negative.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.negative.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.negative.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.negative.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.negative.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.negative.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.negative.border.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.negative.border.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.negative.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.negative.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.negative.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.input.negative.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.negative.text.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.negative.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.negative.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.negative.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.negative.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.negative.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.negative.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.negative.text.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.negative.text.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.negative.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.negative.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.positive?
optionalpositive?:object
Input whose value reports success / completion / validity confirmed (e.g. "available" username field after async check).
colors.input.positive.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.input.positive.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.positive.background.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.positive.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.positive.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.positive.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.positive.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.positive.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.positive.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.positive.background.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.positive.background.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.positive.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.positive.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.positive.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.input.positive.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.positive.border.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.positive.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.positive.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.positive.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.positive.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.positive.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.positive.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.positive.border.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.positive.border.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.positive.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.positive.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.positive.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.input.positive.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.positive.text.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.positive.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.positive.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.positive.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.positive.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.positive.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.positive.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.positive.text.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.positive.text.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.positive.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.positive.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.primary?
optionalprimary?:object
Default input role — the brand-influenced active style for the canonical control on the form.
colors.input.primary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.input.primary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.primary.background.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.primary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.primary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.primary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.primary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.primary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.primary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.primary.background.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.primary.background.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.primary.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.primary.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.primary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.input.primary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.primary.border.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.primary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.primary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.primary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.primary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.primary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.primary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.primary.border.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.primary.border.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.primary.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.primary.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.primary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.input.primary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.primary.text.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.primary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.primary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.primary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.primary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.primary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.primary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.primary.text.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.primary.text.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.primary.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.primary.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.secondary?
optionalsecondary?:object
Alternative input role coexisting with primary — e.g. a secondary search field on the same surface.
colors.input.secondary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.input.secondary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.secondary.background.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.secondary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.secondary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.secondary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.secondary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.secondary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.secondary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.secondary.background.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.secondary.background.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.secondary.background.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.secondary.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.secondary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.input.secondary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.secondary.border.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.secondary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.secondary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.secondary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.secondary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.secondary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.secondary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.secondary.border.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.secondary.border.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.secondary.border.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.secondary.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.input.secondary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.input.secondary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.input.secondary.text.checked?
optionalchecked?:`{core.colors.${(...)}}`
Two-state control that is currently on — checkbox, radio, switch. Do not use for selection from a set — that is selected.
colors.input.secondary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.input.secondary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.input.secondary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.input.secondary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Combobox / select / disclosure-style input is currently open.
colors.input.secondary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.input.secondary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.input.secondary.text.indeterminate?
optionalindeterminate?:`{core.colors.${(...)}}`
Boolean control in a mixed / unknown state — e.g. parent checkbox over partially-checked children.
colors.input.secondary.text.invalid?
optionalinvalid?:`{core.colors.${(...)}}`
Runtime validation outcome — the control's value failed validation.
Use when React Aria's isInvalid (or a form library) asserts failure.
Pair with input.negative.text.* on the validationMessage; do not use
the negative role on the control itself — that is authorial valence
(Lexicon §10.15).
colors.input.secondary.text.pressed?
optionalpressed?:`{core.colors.${(...)}}`
Persistent engaged state of a toggle-style input (e.g. a switch rendered as a button). See ActionColorStates.pressed for the disambiguation against active.
colors.input.secondary.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Element is one of many in a set and the user picked it (segment in a segmented control, picker option). Do not use for two-state controls — those are checked.
colors.navigation?
optionalnavigation?:object
Anything that moves the user between views or sections — links, tabs, breadcrumbs, pagination. Pick when the user is about to go somewhere.
colors.navigation.accent?
optionalaccent?:object
Highlighted nav item that draws attention without being the main path — "What's new", featured destination.
colors.navigation.accent.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.navigation.accent.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.accent.background.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.accent.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.accent.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.accent.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.accent.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.accent.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.accent.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.accent.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.accent.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.accent.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.navigation.accent.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.accent.border.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.accent.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.accent.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.accent.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.accent.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.accent.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.accent.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.accent.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.accent.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.accent.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.navigation.accent.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.accent.text.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.accent.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.accent.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.accent.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.accent.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.accent.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.accent.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.accent.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.accent.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.muted?
optionalmuted?:object
Low-priority nav — footer links, breadcrumb separators, optional sub-items.
colors.navigation.muted.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.navigation.muted.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.muted.background.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.muted.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.muted.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.muted.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.muted.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.muted.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.muted.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.muted.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.muted.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.muted.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.navigation.muted.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.muted.border.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.muted.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.muted.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.muted.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.muted.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.muted.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.muted.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.muted.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.muted.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.muted.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.navigation.muted.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.muted.text.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.muted.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.muted.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.muted.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.muted.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.muted.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.muted.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.muted.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.muted.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.primary?
optionalprimary?:object
The dominant navigation surface on the view — main top nav, primary sidebar.
colors.navigation.primary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.navigation.primary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.primary.background.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.primary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.primary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.primary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.primary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.primary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.primary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.primary.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.primary.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.primary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.navigation.primary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.primary.border.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.primary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.primary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.primary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.primary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.primary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.primary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.primary.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.primary.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.primary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.navigation.primary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.primary.text.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.primary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.primary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.primary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.primary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.primary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.primary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.primary.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.primary.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.secondary?
optionalsecondary?:object
Secondary navigation that coexists with the primary one — sub-nav, in-page tabs.
colors.navigation.secondary.background?
optionalbackground?:object
Fills and surface backgrounds. Use for any colored area larger than a line.
colors.navigation.secondary.background.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.secondary.background.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.secondary.background.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.secondary.background.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.secondary.background.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.secondary.background.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.secondary.background.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.secondary.background.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.secondary.background.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.secondary.background.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.secondary.border?
optionalborder?:object
Outlines, separators, rings, and other line-color pairings. For line geometry (width, style) consume semantic.border.* instead — this dimension is colour only.
colors.navigation.secondary.border.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.secondary.border.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.secondary.border.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.secondary.border.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.secondary.border.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.secondary.border.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.secondary.border.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.secondary.border.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.secondary.border.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.secondary.border.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
colors.navigation.secondary.text?
optionaltext?:object
Readable foreground — labels, paragraphs, and text-like icons that inherit currentColor.
colors.navigation.secondary.text.active?
optionalactive?:`{core.colors.${(...)}}`
Pointer or key is currently down on the element — transient, lasts only while held. Releases back to default / hover. Do not use for persistent toggle state — that is pressed.
colors.navigation.secondary.text.current?
optionalcurrent?:`{core.colors.${(...)}}`
Element is the user's current location in the navigation set — active route, current step in a wizard. Do not use for set-membership without a routing meaning — that is selected.
colors.navigation.secondary.text.default?
optionaldefault?:`{core.colors.${(...)}}`
Resting / base state. The colour rendered when no other state asserts.
colors.navigation.secondary.text.disabled?
optionaldisabled?:`{core.colors.${(...)}}`
Element is non-interactive. Carries the contrast guarantees that semantic.opacity.disabled cannot — prefer this for controls and text over opacity.
colors.navigation.secondary.text.droptarget?
optionaldroptarget?:`{core.colors.${(...)}}`
Valid drag-and-drop destination during an active drag (FSL Lexicon §7). Applies wherever drop-target semantics are valid: file inputs, collection rows, informational surfaces, and any other entity that accepts dropped items.
colors.navigation.secondary.text.expanded?
optionalexpanded?:`{core.colors.${(...)}}`
Disclosure-style nav item (collapsible section, expandable submenu) is currently open.
colors.navigation.secondary.text.focused?
optionalfocused?:`{core.colors.${(...)}}`
Element has keyboard or programmatic focus. Pair with semantic.focus.ring.color when no {ux}.{role} context applies.
colors.navigation.secondary.text.hover?
optionalhover?:`{core.colors.${(...)}}`
Pointer is currently over the element. Do not use for keyboard focus — that is focused.
colors.navigation.secondary.text.selected?
optionalselected?:`{core.colors.${(...)}}`
Tab / item is one of many in the set and the user picked it. May coexist with current when the selected item also represents the live route.
colors.navigation.secondary.text.visited?
optionalvisited?:`{core.colors.${(...)}}`
Link points to a URL the user has visited.
consequence?
optionalconsequence?:object
Cross-cutting valence ink for parts that paint no surface (model.md §6).
Sibling of focus and overlay. families/consequence.ts
consequence.destructive?
optionaldestructive?:object
consequence.destructive.ink?
optionalink?:`{semantic.${string}}`
Foreground colour (text and, through currentColor, glyphs) for a
destructive part that paints no surface of its own.
Must reference a semantic token so mode overrides remap it
automatically — same constraint and same reason as focus.ring.color.
The base theme aliases the standalone negative valence ink
(informational.negative.text.default); a theme may point it elsewhere
without touching validation messages.
dataviz?
optionaldataviz?:object
Data Visualization extension — semantic roles for analytical color, non-color encodings, and geospatial overlays. Optional: omit when the theme does not support dataviz.
This is the public API of the dataviz extension.
Components consume these tokens; never core.dataviz.* directly.
dataviz.color?
optionalcolor?:object
dataviz.color.reference?
optionalreference?:object
dataviz.color.reference.baseline?
optionalbaseline?:`{${string}}`
Color for a baseline or reference level (e.g. average, goal).
dataviz.color.reference.target?
optionaltarget?:`{${string}}`
Color for a target or objective line.
dataviz.color.scale?
optionalscale?:object
dataviz.color.scale.diverging?
optionaldiverging?:object
Midpoint comparison — 7 named positions around a true center. Only use when the data has a meaningful midpoint (zero, baseline, target).
dataviz.color.scale.diverging.neg1?
optionalneg1?:`{${(...)}}`
dataviz.color.scale.diverging.neg2?
optionalneg2?:`{${(...)}}`
dataviz.color.scale.diverging.neg3?
optionalneg3?:`{${(...)}}`
dataviz.color.scale.diverging.neutral?
optionalneutral?:`{${(...)}}`
Neutral midpoint class.
dataviz.color.scale.diverging.pos1?
optionalpos1?:`{${(...)}}`
dataviz.color.scale.diverging.pos2?
optionalpos2?:`{${(...)}}`
dataviz.color.scale.diverging.pos3?
optionalpos3?:`{${(...)}}`
dataviz.color.scale.sequential?
optionalsequential?:object
Ordered magnitude — 7 steps from low (1) to high (7). Use for quantitative ranges and progressive intensity.
dataviz.color.scale.sequential.1?
optional1?:`{${(...)}}`
dataviz.color.scale.sequential.2?
optional2?:`{${(...)}}`
dataviz.color.scale.sequential.3?
optional3?:`{${(...)}}`
dataviz.color.scale.sequential.4?
optional4?:`{${(...)}}`
dataviz.color.scale.sequential.5?
optional5?:`{${(...)}}`
dataviz.color.scale.sequential.6?
optional6?:`{${(...)}}`
dataviz.color.scale.sequential.7?
optional7?:`{${(...)}}`
dataviz.color.series?
optionalseries?:object
Categorical series identity — 8 named, unordered roles. Use for nominal categories, named series, distinct groups.
dataviz.color.series.1?
optional1?:`{${string}}`
dataviz.color.series.2?
optional2?:`{${string}}`
dataviz.color.series.3?
optional3?:`{${string}}`
dataviz.color.series.4?
optional4?:`{${string}}`
dataviz.color.series.5?
optional5?:`{${string}}`
dataviz.color.series.6?
optional6?:`{${string}}`
dataviz.color.series.7?
optional7?:`{${string}}`
dataviz.color.series.8?
optional8?:`{${string}}`
dataviz.color.state?
optionalstate?:object
dataviz.color.state.highlight?
optionalhighlight?:`{${string}}`
Emphasized / highlighted data mark.
dataviz.color.state.muted?
optionalmuted?:`{${string}}`
De-emphasized / non-highlighted data mark.
dataviz.color.state.selected?
optionalselected?:`{${string}}`
User-selected or actively focused data mark.
dataviz.color.status?
optionalstatus?:object
dataviz.color.status.missing?
optionalmissing?:`{${string}}`
Value is absent or unavailable.
dataviz.color.status.notApplicable?
optionalnotApplicable?:`{${string}}`
Value is structurally absent (not measured or not applicable).
dataviz.color.status.suppressed?
optionalsuppressed?:`{${string}}`
Value is withheld for confidentiality or publication rules.
dataviz.encoding?
optionalencoding?:object
dataviz.encoding.opacity?
optionalopacity?:object
dataviz.encoding.opacity.context?
optionalcontext?:`{${string}}`
Opacity for contextual elements behind overlay data.
dataviz.encoding.opacity.muted?
optionalmuted?:`{${string}}`
Opacity for de-emphasized (non-highlighted) data marks.
dataviz.encoding.opacity.uncertainty?
optionaluncertainty?:`{${string}}`
Opacity for representing estimated or uncertain data visually.
dataviz.encoding.pattern?
optionalpattern?:object
dataviz.encoding.pattern.series?
optionalseries?:object
Series identity through fill texture — use for filled marks and overlays.
dataviz.encoding.pattern.series.1?
optional1?:`{${(...)}}`
dataviz.encoding.pattern.series.2?
optional2?:`{${(...)}}`
dataviz.encoding.pattern.series.3?
optional3?:`{${(...)}}`
dataviz.encoding.pattern.series.4?
optional4?:`{${(...)}}`
dataviz.encoding.pattern.series.5?
optional5?:`{${(...)}}`
dataviz.encoding.pattern.series.6?
optional6?:`{${(...)}}`
dataviz.encoding.shape?
optionalshape?:object
dataviz.encoding.shape.series?
optionalseries?:object
Series identity through mark shape — use for redundant differentiation.
dataviz.encoding.shape.series.1?
optional1?:`{${(...)}}`
dataviz.encoding.shape.series.2?
optional2?:`{${(...)}}`
dataviz.encoding.shape.series.3?
optional3?:`{${(...)}}`
dataviz.encoding.shape.series.4?
optional4?:`{${(...)}}`
dataviz.encoding.shape.series.5?
optional5?:`{${(...)}}`
dataviz.encoding.shape.series.6?
optional6?:`{${(...)}}`
dataviz.encoding.shape.series.7?
optional7?:`{${(...)}}`
dataviz.encoding.shape.series.8?
optional8?:`{${(...)}}`
dataviz.encoding.stroke?
optionalstroke?:object
dataviz.encoding.stroke.forecast?
optionalforecast?:`{${string}}`
Stroke style for projected or forward-looking data segments.
dataviz.encoding.stroke.reference?
optionalreference?:`{${string}}`
Stroke style for analytical reference guides or baselines.
dataviz.encoding.stroke.uncertainty?
optionaluncertainty?:`{${string}}`
Stroke style for uncertain or estimated bounds.
dataviz.geo?
optionalgeo?:object
dataviz.geo.context?
optionalcontext?:object
dataviz.geo.context.boundary?
optionalboundary?:`{${string}}`
Color for supportive boundary lines (region outlines, coastlines).
dataviz.geo.context.label?
optionallabel?:`{${string}}`
Color for contextual geographic labels (city names, region labels).
dataviz.geo.context.muted?
optionalmuted?:`{${string}}`
Reduced background wash for geographic base layer.
dataviz.geo.state?
optionalstate?:object
dataviz.geo.state.focus?
optionalfocus?:`{${string}}`
Fill or stroke for spatially focused region (keyboard / pointer focus).
dataviz.geo.state.selection?
optionalselection?:`{${string}}`
Fill or stroke for a spatially selected region.
elevation?
optionalelevation?:object
elevation.surface?
optionalsurface?:object
Shadow-based surface strata — the primary depth contract. Maps each stratum to a shadow recipe (core elevation reference).
elevation.surface.blocking?
optionalblocking?:`{core.elevation.${string}}`
Dialogs and blocking sheets
elevation.surface.flat?
optionalflat?:`{core.elevation.${string}}`
Surfaces flush with the page
elevation.surface.overlay?
optionaloverlay?:`{core.elevation.${string}}`
Dropdowns, popovers, floating surfaces
elevation.surface.raised?
optionalraised?:`{core.elevation.${string}}`
Cards and panels
elevation.tonal?
optionaltonal?:object
Tonal overlay tokens — optional surface color treatments paired with shadows to preserve depth perception in dark or heavily-colored themes.
Each token resolves to a color overlay (e.g., color-mix, rgba surface).
Omit when the product does not use tonal elevation.
When present, must cover the same strata that carry visible shadows.
See
elevation.md — "Surface + Shadow"
elevation.tonal.blocking?
optionalblocking?:`{core.colors.${string}}`
Tonal surface treatment paired with surface.blocking.
Use when the blocking stratum (dialogs, sheets) needs the strongest
tonal separation from the page beneath the scrim.
Pair with surface.blocking and semantic.overlay.scrim; resolves to
the strongest tonal overlay in the contract.
elevation.tonal.overlay?
optionaloverlay?:`{core.colors.${string}}`
Tonal surface treatment paired with surface.overlay.
Use when the overlay stratum (dropdowns, popovers) needs reinforced
tonal lift over the page beneath.
Pair with surface.overlay; resolves to a stronger overlay than tonal.raised.
elevation.tonal.raised?
optionalraised?:`{core.colors.${string}}`
Tonal surface treatment paired with surface.raised.
Use when the raised stratum needs an additional color overlay — dark
themes where shadow alone is insufficient.
Pair with surface.raised; do not use without the matching shadow contract.
focus?
optionalfocus?:object
focus.ring?
optionalring?:object
focus.ring.color?
optionalcolor?:`{semantic.${string}}`
System-wide focus ring colour — cross-cutting infrastructure (model.md §6).
Use this when the component has no obvious FSL Entity Kind
(focusable Card, profile chip, custom widget). For components with a clear
{ux}, prefer {ux}.{role}.border.focused instead.
Must reference a semantic token so mode overrides remap it automatically.
focus.ring.offset?
optionaloffset?:`{core.border.${string}}`
Gap between the control's edge and the ring, rendered as
outline-offset.
Floating the ring keeps it legible against the control's own fill — a flush ring drowns on a filled button — and it is what makes the ring's contrast a pairing against the page rather than against the control.
A row inside a clipped or scrolling container has nowhere to put the
gap and insets the ring by its own width instead; that is a component
decision derived from width, not a second token.
focus.ring.style?
optionalstyle?:`{core.border.${string}}`
focus.ring.width?
optionalwidth?:`{core.border.${string}}`
motion?
optionalmotion?:object
motion.decorative?
optionaldecorative?:object
Ambient, non-essential motion (loops, parallax, idle flourishes). Use only when motion is never required for understanding the UI. Always disabled by default in static or reduced-motion themes; do not use for any motion the user must perceive to operate the interface.
motion.decorative.duration?
optionalduration?:`{core.motion.${string}}`
motion.decorative.easing?
optionaleasing?:`{core.motion.${string}}`
motion.emphasis?
optionalemphasis?:object
Attention-drawing motion for a relevant in-place change.
Use when the user must notice that something changed (status update,
value reconciliation, error appearing on a field).
Stronger than feedback; do not use for routine state changes — that is
feedback. May collapse to minimal motion in static themes.
motion.emphasis.duration?
optionalduration?:`{core.motion.${string}}`
motion.emphasis.easing?
optionaleasing?:`{core.motion.${string}}`
motion.feedback?
optionalfeedback?:object
Immediate response to a discrete user input on a single element.
Use when animating hover, press, toggle, or small confirmation tweaks
(color/scale/opacity changes on the element itself).
Do not use for elements entering or leaving the layout — those are
transition.enter / transition.exit.
motion.feedback.duration?
optionalduration?:`{core.motion.${string}}`
motion.feedback.easing?
optionaleasing?:`{core.motion.${string}}`
motion.transition?
optionaltransition?:object
motion.transition.enter?
optionalenter?:object
Element appearing into rest position (overlay, surface, revealed content).
Use when an element transitions from hidden/absent to visible.
Pair with transition.exit on the inverse phase; do not use for the
resting element's response to input — that is feedback.
motion.transition.enter.duration?
optionalduration?:`{core.motion.${string}}`
motion.transition.enter.easing?
optionaleasing?:`{core.motion.${string}}`
motion.transition.exit?
optionalexit?:object
Element leaving rest position (overlay closing, content dismissing).
Use when an element transitions from visible to hidden/absent.
Symmetric counterpart of transition.enter; the exit phase is shorter
by default to keep dismissal feeling responsive.
motion.transition.exit.duration?
optionalduration?:`{core.motion.${string}}`
motion.transition.exit.easing?
optionaleasing?:`{core.motion.${string}}`
opacity?
optionalopacity?:object
opacity.disabled?
optionaldisabled?:`{core.opacity.${string}}`
Dimming for image-like media in a disabled state (avatars, thumbnails, illustrations).
Use when the disabled element has no semantic color contract that can carry the state
(i.e. it is a visual asset, not a control).
Do not use for disabled controls or text — those consume {ux}.{role}.{dimension}.disabled
color tokens, which carry the contrast guarantees opacity cannot.
opacity.loading?
optionalloading?:`{core.opacity.${string}}`
De-emphasis veil for content during in-flight asynchronous work.
Use when content must remain visible (so the user keeps spatial context) while a
fetch / mutation / long task is pending.
Do not use for permanent disabled state — that is disabled. Remove the moment
the work resolves.
opacity.scrim?
optionalscrim?:`{core.opacity.${string}}`
Backdrop dimming for a blocking foreground layer.
Use when rendering the layer that sits behind a modal, dialog, drawer, or sheet
to attenuate the page underneath.
Pair with semantic.overlay.scrim (the colored backdrop fill); do not use on the
foreground surface itself — that surface stays fully opaque.
overlay?
optionaloverlay?:object
overlay.outline?
optionaloutline?:`{core.colors.${string}}`
Boundary of a surface that occludes content — a popover, menu, tooltip, dialog panel, drawer panel, toast.
Cross-cutting infrastructure (model.md §6): occlusion is neither a role
(emphasis/valence) nor a state (runtime), and it crosses UX contexts —
a Menu is informational, a Toast is feedback, and both cover content —
so the {ux}.{role}.{dimension}.{state} grammar cannot ask for it in a
single token. Same gate and same shape as focus.ring.color.
Why it cannot be {ux}.{role}.border.default. That token serves an
embedded surface's decorative edge and a divider inside content, where a
near-invisible hairline is the deliberate choice (it is a listed member of
the border pairing's accepted-soft inventory). An occluding boundary owes
the opposite: colors.md § Stacking names border.outline.surface the
secondary separator and requires "a 1px outline at ≥ 3:1 contrast
against the adjacent background … even when shadow is suppressed
(high-contrast preferences, print)". One token cannot be both a hairline
and a boundary; before this existed every overlay took the hairline and,
with elevation suppressed, lost its edge entirely.
Not evaluation-driven, and nothing is lost by that. A boundary says
"your content resumes here", which is infrastructure rather than voice —
the same argument that gives the focus ring one system-wide colour.
Measured before the change: informational.{primary,secondary,muted}
resolved the same border value in both modes, so the evaluation prop
never varied an overlay's edge.
Must reference a core colour. One value per mode clears the ≥3:1 floor
against every stratum an overlay can land on — page, both tonal lifts, a
row fill and a voiced surface — which is why this is one token and not a
per-stratum family. The pairing that proves it is in colors.test.ts
("occluding boundary"); it is a cross-stratum pair, so the same-role
border extractor cannot see it.
overlay.scrim?
optionalscrim?:string
Modal backdrop color — full CSS color including alpha.
radii?
optionalradii?:object
radii.action?
optionalaction?:`{core.radii.${string}}`
Radius for the command silhouette. Split from control so a theme can
give commitments their own shape (e.g. pill) while fields, choice controls
and ambient/utility triggers keep the standard control radius — the
distinction reference-grade systems draw between "press me" and "fill me
in". Which components wear which silhouette is a consumer's decision and is
declared there (fsl-ui tokens/CONTRACT.md §1), never named here: this
package has no dependency on its consumers and cannot track a reassignment.
radii.control?
optionalcontrol?:`{core.radii.${string}}`
Radius for interactive controls and touchable UI elements.
radii.round?
optionalround?:`{core.radii.${string}}`
Full-round shape intent for pills, capsules, and circular affordances.
radii.surface?
optionalsurface?:`{core.radii.${string}}`
Radius for surfaces that contain or group content.
rail?
optionalrail?:object
Cross-cutting fill for the unfilled part of a track (model.md §6).
Sibling of focus/overlay/consequence. families/rail.ts
rail.track?
optionaltrack?:`{core.colors.${string}}`
The rail's fill — the part of the track a ProgressBar/Meter's value
has not yet reached, or a Slider's range has not yet covered.
fsl-ui F-050/F-051. Before this token existed, every consumer that needed
one borrowed a token whose meaning was something else: ProgressBar and
Meter took feedback.muted.border (an edge used as a fill; F-050
moved them to feedback.muted.background, a better borrow but still a
borrow), and Slider took input.primary.background.disabled — a
state used as a part, so a Slider's empty rail meant
"disabled" in the token model. F-051 is the ruling that a rail gets its
own address instead.
Why cross-cutting rather than reused. The reference
(@adobe/spectrum-tokens@14.15.0, track-color) ships a rail as its own
token, aliased to a private grey step rather than to any role's
dimension, because a rail's mode behaviour is its own: it darkens in
dark (light rgb(218,218,218) → dark rgb(57,57,57)) while every
{ux}.{role}.border.* in this system lightens on the same canvas (an
edge must stay visible against a near-black page). One token cannot carry
both directions, which is exactly the gap F-050 paid for: reusing
feedback.muted.background closed the dark blocker but left the light
half quieter than the reference (1.14:1 against the page vs. the
reference's 1.40:1, per docs/fsl-studio/FRICTION.md F-050/F-051).
Measured values, this ruling. Light lands on core.colors.neutral.200
(#e1e1e1) — 7 units per channel off the reference's own rgb(218,218,218)
(225 vs. 218) — which raises the fill-vs-page separation from the
borrowed neutral.100's 1.14:1 (F-050) to ~1.31:1, closer to the
reference's 1.40:1 than the borrow was. Dark lands on
core.colors.neutral.700 (#3d3d3d) — 4 units off the reference's
rgb(57,57,57), the same step F-050 already found closest and the reason
this token's dark value coincides with feedback.muted.background's: F-050
had already found the right dark step, so this ruling keeps it and only
moves the light half, which is the half F-050 explicitly left owing. No
existing core.colors.neutral step sits closer to either reference value
than the ones chosen — see rail.test.ts for the per-channel deltas.
Must reference a core colour, like overlay.outline — a mode-aware
remap through semantic.colors.* is not needed because nothing else
shares this address to remap alongside it.
sizing?
optionalsizing?:object
sizing.hit?
optionalhit?:`{core.sizing.${string}}`
Ergonomic hit target — a single interactive floor (min interactive
area), not a visual size and not a scale. Enforce via min-height /
min-width; the visible control size comes from its inset + type, with
hit only guaranteeing the ergonomic minimum.
Resolves to the fine-pointer value (core.sizing.hit.fine), which may
use clamp(floor, preferred, max) where floor is a fixed Npx
ergonomic minimum — guaranteeing accessibility while letting the rem
preferred respect user font-size. The CSS output layer (toCssVars)
automatically injects the coarse-pointer override (core.sizing.hit.coarse,
always fixed px) inside @media (any-pointer: coarse) — no component
code needed.
sizing.icon?
optionalicon?:object
Visual glyph dimensions. Set on the icon element itself; never used to
gate the hit target that wraps it (that is hit.*).
sizing.icon.lg?
optionallg?:`{core.sizing.${string}}`
Prominent glyph — emphasis or feature icons.
sizing.icon.md?
optionalmd?:`{core.sizing.${string}}`
Default glyph — pick this when no other step applies.
sizing.icon.sm?
optionalsm?:`{core.sizing.${string}}`
Compact glyph — dense UI, inline indicators, list-row icons.
sizing.icon.text?
optionaltext?:`{core.sizing.${string}}`
Glyph that accompanies text on the same line — a button's leading icon,
a picker's chevron beside its value. Relative (1em), not a ramp step:
it resolves to the accompanying text's own size, which puts the glyph's
drawn ink exactly inside the cap-height band (cap line to baseline). A
fixed step cannot do this — it overshoots the baseline at some text
sizes and floats above it at others, which reads as a misaligned icon.
sizing.identity?
optionalidentity?:object
Visual identity object dimensions (avatars, profile photos, brand marks,
entity logos). Carries the visual size only — the surrounding hit target,
if any, is sized via hit.*.
sizing.identity.lg?
optionallg?:`{core.sizing.${string}}`
Prominent identity — profile cards, feature surfaces.
sizing.identity.md?
optionalmd?:`{core.sizing.${string}}`
Default identity — toolbar, navigation, standard avatar slots.
sizing.identity.sm?
optionalsm?:`{core.sizing.${string}}`
Compact identity — list rows, dense lists, mention chips.
sizing.identity.xl?
optionalxl?:`{core.sizing.${string}}`
Hero identity — landing surfaces, brand-leading sections.
sizing.measure?
optionalmeasure?:object
sizing.measure.reading?
optionalreading?:string
Typed as RawValue by design: ch units cannot be expressed as a core
token reference. Override with a validated character-based clamp()
expression only — never px or rem.
sizing.surface?
optionalsurface?:object
sizing.surface.card?
optionalcard?:`{core.sizing.${string}}`
Maximum width of a narrow, standalone centered card — an auth form, a
confirmation page, any single-purpose surface that should read as an
object on the page rather than a page-shell column. Distinct from
maxWidth (the page-shell cap) and from measure.reading (a
line-length contract, not a container width): this is the "small
object" rung the width vocabulary lacked (FRICTION F-004).
Aliases core.sizing.ramp.layout.1, the ramp's narrowest step and, at
the time this was added, the only step with no other semantic
consumer — maxWidth already owns layout.5, so this reuses rather
than grows the ramp (model.md §6, "no parallel vocabulary"). Its floor
(320px) lands exactly on the bottom of the ~20–26rem (320–416px) target
this token was measured against; its ceiling (480px) overshoots the
target's own 416px top by one ramp step's worth of headroom, which is
the closest fit available without inventing a new formula.
sizing.surface.maxWidth?
optionalmaxWidth?:`{core.sizing.${string}}`
Maximum width of a structural surface (page shell, content column,
card / panel / dialog wrapper).
Use as max-width on the outer surface wrapper.
Pair with gutter.page for inline padding; do not use for line-length
readability — that is measure.reading.
sizing.viewport?
optionalviewport?:object
sizing.viewport.height?
optionalheight?:object
sizing.viewport.height.full?
optionalfull?:`{core.sizing.${string}}`
Full-height layouts using dynamic viewport units (100dvh).
Use intentionally — only when a region must occupy the full viewport
height (app shells, full-screen modals, mobile splash regions).
Do not use 100vh directly — dynamic units handle mobile chrome correctly.
sizing.viewport.width?
optionalwidth?:object
sizing.viewport.width.full?
optionalfull?:`{core.sizing.${string}}`
Full-width layouts using dynamic viewport units (100dvw).
Use intentionally — only when a region must span the full viewport
width (full-bleed banners, edge-to-edge surfaces).
Do not use 100vw directly — dynamic units avoid scrollbar overflow.
spacing?
optionalspacing?:object
spacing.gap?
optionalgap?:object
Distance between siblings (CSS gap on Flex/Grid containers).
Use when laying out a sequence of sibling elements; never for internal
padding (that is inset.*) and never for page/section structural padding
(that is gutter.*).
spacing.gap.inline?
optionalinline?:object
Horizontal grouping between inline siblings (icon + label, toolbar items, chip rows).
Use when items flow along the inline axis as a visual group.
gap.inline.xs is visual-only — never use it between independently
focusable interactive targets (use separation.interactive.min instead).
spacing.gap.inline.lg?
optionallg?:`{core.spacing.${string}}`
Spacious inline grouping.
spacing.gap.inline.md?
optionalmd?:`{core.spacing.${string}}`
Default inline grouping — pick this when no other step applies.
spacing.gap.inline.sm?
optionalsm?:`{core.spacing.${string}}`
Tight inline grouping between related inline siblings.
spacing.gap.inline.xl?
optionalxl?:`{core.spacing.${string}}`
Wide inline grouping — the loosest step before a group break.
spacing.gap.inline.xs?
optionalxs?:`{core.spacing.${string}}`
Visual-only tight grouping (icon + label inside a single target). Never between focusable targets — use separation.interactive.min.
spacing.gap.stack?
optionalstack?:object
Vertical rhythm between stacked siblings (column layouts, lists, form fields).
Use when items flow along the block axis and rhythm carries hierarchy.
Pair with gap.inline for horizontal groupings; do not use for items
arranged along the inline axis — those are gap.inline.
spacing.gap.stack.lg?
optionallg?:`{core.spacing.${string}}`
Roomy vertical rhythm — separating distinct content clusters within a surface.
spacing.gap.stack.md?
optionalmd?:`{core.spacing.${string}}`
Default vertical rhythm — pick this when no other step applies.
spacing.gap.stack.sm?
optionalsm?:`{core.spacing.${string}}`
Medium vertical rhythm — sibling lines inside a form group.
spacing.gap.stack.xl?
optionalxl?:`{core.spacing.${string}}`
Section-level rhythm — separating major sections of a page.
spacing.gap.stack.xs?
optionalxs?:`{core.spacing.${string}}`
Tight vertical rhythm — micro-clusters within a single field.
spacing.gutter?
optionalgutter?:object
Structural outer padding for page-level and section-level layout regions.
page and section may use a clamp() expression with embedded {token.path} refs
(e.g. clamp({core.spacing.4}, {core.spacing.6}, {core.spacing.12})).
Typed as RawValue to allow both simple refs and responsive clamp expressions.
spacing.gutter.page?
optionalpage?:string
Outer padding bounding the page's content column.
Use as inline padding on the top-level page container.
Bounded clamp() contract by spec; do not use for inner sections — that
is gutter.section.
spacing.gutter.section?
optionalsection?:string
Outer padding separating a section's content from its parent's gutter.
Use on inner section wrappers nested inside a gutter.page container.
Bounded clamp() contract by spec; resolves tighter than gutter.page.
spacing.inset?
optionalinset?:object
Internal padding inside an element (CSS padding).
Use when the spacing lives between an element's edge and its own content;
never for the distance between siblings — that is gap.*.
spacing.inset.action?
optionalaction?:object
Block padding of the command silhouette — the one axis where a
commitment is deliberately more generous than a generic control, so it
resolves to a taller box. Measured in the base theme: 40px against a
field's 34px at 1920×1080. Since ADR-022 fixed inset.control.*, both
boxes are stable on the fine-pointer range and the 6px difference is
the contract; this value keeps its 1px clamp band (8px at the phone end,
where the coarse hit floor takes over anyway).
See radii.action for why no component is named here.
A bounded range, not a step: the design decision here is the range
itself, and the engine's unit steps straddle it (one step is too tight,
two overshoot). Same contract shape as separation.interactive.min.
Only the block axis is owned here — a command's inline padding stays
inset.control.lg, which needs no command-specific value.
spacing.inset.action.block?
optionalblock?:string
Block (vertical) padding of a command trigger.
spacing.inset.control?
optionalcontrol?:object
Padding inside an interactive control (button, input, chip, toggle).
Use on elements with a hit target and a single inner content cluster.
Pair with inset.surface on the containing surface; do not use for
containing surfaces — those are inset.surface.
spacing.inset.control.lg?
optionallg?:`{core.spacing.${string}}`
Roomy step — a command trigger's inline inset.
spacing.inset.control.md?
optionalmd?:`{core.spacing.${string}}`
Default step — the field family's inline inset.
spacing.inset.control.sm?
optionalsm?:`{core.spacing.${string}}`
Compact step — the field family's block inset.
spacing.inset.surface?
optionalsurface?:object
Padding inside a containing surface (card, panel, dialog, menu, section).
Use on elements that contain other content blocks and need a margin
between their edge and the inner cluster.
Must be ≥ inset.control at the same step (validation rule); do not use
for the inner controls themselves — those are inset.control.
spacing.inset.surface.lg?
optionallg?:`{core.spacing.${string}}`
Roomy step — prominent controls / spacious surfaces.
spacing.inset.surface.md?
optionalmd?:`{core.spacing.${string}}`
Default step — standard controls and surfaces. Pick this when no other step applies.
spacing.inset.surface.sm?
optionalsm?:`{core.spacing.${string}}`
Compact step — tight controls / dense surfaces.
spacing.inset.surface.xs?
optionalxs?:`{core.spacing.${string}}`
The anchored/row-framing step — the tightest surface inset, for a
container whose padding is a gutter beside its own children rather than a
margin around arbitrary content: an anchored popover, menu, tooltip, or a
list container framing rows that carry their own inset.control.
Fixed, for ADR-022's reason one context over. The steps below ride the
fluid engine, which is right for a page-level surface — its padding scales
with the page. This step's whole visual outcome is its relationship to
fixed-height children, so a fluid value makes that relationship
container-fluid: measured before this existed, a menu's gutter moved
16px → 24px from 390 to 1920 while every row stayed exactly 32.0px
(F-045). References core.spacing.fixed.*, like inset.control and for
the same reason.
Do not reach for it on a page-level surface — that is sm and up. The
discriminant is whether the padding frames content (scale it) or
controls (hold it).
spacing.separation?
optionalseparation?:object
Ergonomic separation between independently actionable targets in dense clusters.
May use a clamp() expression with an embedded {token.path} ref
(e.g. clamp(8px, {core.spacing.2}, 12px)).
spacing.separation.interactive?
optionalinteractive?:object
spacing.separation.interactive.min?
optionalmin?:string
Minimum gap between adjacent interactive targets (toolbar buttons,
paginator arrows, segmented controls, dense menu items).
Use only between elements the user can click/tap/focus independently.
Do not use for visual-only groupings — that is gap.inline.xs.
text?
optionaltext?:object
text.action?
optionalaction?:object
Text for the command silhouette — see radii.action for why the
component mapping is not named here.
Split from label so commands carry more typographic weight than the
chrome around them (the weight-contrast rhythm of reference-grade
systems: controls quiet, commands assertive). Do not use for field
labels or metadata — those are label.
text.action.md?
optionalmd?:object
The single canonical step of this family.
text.action.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.action.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.action.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.action.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.action.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.action.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.action.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.body?
optionalbody?:object
Default reading text — paragraphs, descriptions, long-form content.
Use for any text the user will read rather than scan or select.
Optimized for readability; do not use for short UI strings or labels —
those are label.
text.body.lg?
optionallg?:object
Largest step of this family — strongest hierarchy within the family. Use for the most prominent instance of this role on the surface.
text.body.lg.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.body.lg.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.body.lg.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.body.lg.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.body.lg.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.body.lg.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.body.lg.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.body.md?
optionalmd?:object
Default step of this family — the unmarked choice. Use unless the surface explicitly calls for lg or sm.
text.body.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.body.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.body.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.body.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.body.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.body.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.body.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.body.sm?
optionalsm?:object
Smallest step of this family — compact / dense usage. Use when space is constrained or when the text is secondary within the role.
text.body.sm.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.body.sm.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.body.sm.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.body.sm.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.body.sm.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.body.sm.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.body.sm.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.code?
optionalcode?:object
Monospaced text for code snippets, logs, identifiers, or technical data.
Use whenever the text must align by character cell or distinguish similar
glyphs (Il1O0).
Do not use for UI strings that merely look technical — that is body or label.
text.code.md?
optionalmd?:object
Default step of this family — the unmarked choice.
text.code.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.code.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.code.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.code.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.code.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.code.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.code.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.code.sm?
optionalsm?:object
Smallest step of this family — compact / dense usage.
text.code.sm.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.code.sm.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.code.sm.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.code.sm.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.code.sm.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.code.sm.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.code.sm.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.display?
optionaldisplay?:object
High-impact hero text — landing surfaces and prominent page headers.
Use sparingly; reserved for the single most important text on a page.
Pair with headline for the next hierarchy step; do not use for section
headings inside content — those are headline.
text.display.lg?
optionallg?:object
Largest step of this family — strongest hierarchy within the family. Use for the most prominent instance of this role on the surface.
text.display.lg.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.display.lg.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.display.lg.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.display.lg.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.display.lg.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.display.lg.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.display.lg.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.display.md?
optionalmd?:object
Default step of this family — the unmarked choice. Use unless the surface explicitly calls for lg or sm.
text.display.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.display.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.display.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.display.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.display.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.display.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.display.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.display.sm?
optionalsm?:object
Smallest step of this family — compact / dense usage. Use when space is constrained or when the text is secondary within the role.
text.display.sm.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.display.sm.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.display.sm.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.display.sm.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.display.sm.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.display.sm.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.display.sm.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.headline?
optionalheadline?:object
Section or page headings that structure scanning of the document.
Use for the primary headings inside content (page title, major section breaks).
Below display in hierarchy, above title. Do not use for surface chrome
(card / panel / dialog headers) — those are title.
text.headline.lg?
optionallg?:object
Largest step of this family — strongest hierarchy within the family. Use for the most prominent instance of this role on the surface.
text.headline.lg.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.headline.lg.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.headline.lg.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.headline.lg.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.headline.lg.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.headline.lg.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.headline.lg.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.headline.md?
optionalmd?:object
Default step of this family — the unmarked choice. Use unless the surface explicitly calls for lg or sm.
text.headline.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.headline.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.headline.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.headline.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.headline.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.headline.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.headline.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.headline.sm?
optionalsm?:object
Smallest step of this family — compact / dense usage. Use when space is constrained or when the text is secondary within the role.
text.headline.sm.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.headline.sm.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.headline.sm.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.headline.sm.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.headline.sm.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.headline.sm.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.headline.sm.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.label?
optionallabel?:object
Short UI strings — field labels, badges, metadata, captions.
Use for compact, scan-only text that names or describes adjacent UI.
Do not use for prose the user must read in sequence — that is body,
nor for command-trigger text — that is action.
text.label.lg?
optionallg?:object
Largest step of this family — strongest hierarchy within the family. Use for the most prominent instance of this role on the surface.
text.label.lg.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.label.lg.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.label.lg.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.label.lg.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.label.lg.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.label.lg.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.label.lg.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.label.md?
optionalmd?:object
Default step of this family — the unmarked choice. Use unless the surface explicitly calls for lg or sm.
text.label.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.label.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.label.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.label.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.label.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.label.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.label.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.label.sm?
optionalsm?:object
Smallest step of this family — compact / dense usage. Use when space is constrained or when the text is secondary within the role.
text.label.sm.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.label.sm.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.label.sm.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.label.sm.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.label.sm.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.label.sm.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.label.sm.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.title?
optionaltitle?:object
Titles for surfaces — cards, panels, dialogs, sheets, menus, structured sections.
Use as the heading of a contained surface, not the heading of a content section.
Pair with body / label inside the same surface; do not use for top-level
page or document headings — those are headline / display.
text.title.lg?
optionallg?:object
Largest step of this family — strongest hierarchy within the family. Use for the most prominent instance of this role on the surface.
text.title.lg.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.title.lg.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.title.lg.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.title.lg.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.title.lg.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.title.lg.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.title.lg.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.title.md?
optionalmd?:object
Default step of this family — the unmarked choice. Use unless the surface explicitly calls for lg or sm.
text.title.md.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.title.md.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.title.md.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.title.md.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.title.md.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.title.md.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.title.md.lineHeight?
optionallineHeight?:`{core.font.${string}}`
text.title.sm?
optionalsm?:object
Smallest step of this family — compact / dense usage. Use when space is constrained or when the text is secondary within the role.
text.title.sm.fontFamily?
optionalfontFamily?:`{core.font.${string}}`
text.title.sm.fontOpticalSizing?
optionalfontOpticalSizing?:`{core.font.${string}}`
text.title.sm.fontSize?
optionalfontSize?:`{core.font.scale.${string}}`
text.title.sm.fontVariantNumeric?
optionalfontVariantNumeric?:`{core.font.${string}}`
text.title.sm.fontWeight?
optionalfontWeight?:`{core.font.${string}}`
text.title.sm.letterSpacing?
optionalletterSpacing?:`{core.font.${string}}`
text.title.sm.lineHeight?
optionallineHeight?:`{core.font.${string}}`
zIndex?
optionalzIndex?:object
zIndex.layer?
optionallayer?:object
zIndex.layer.base?
optionalbase?:`{core.zIndex.${string}}`
Page content in normal document flow. Use when the element participates in the default application stratum and has no claim above sibling content. Do not use to "reset" stacking inside a component — local layering is the component's own concern.
zIndex.layer.blocking?
optionalblocking?:`{core.zIndex.${string}}`
Surfaces that sit above other overlays and prevent interaction behind them.
Use when building dialogs, sheets, or blocking drawers paired with a scrim.
Pair with semantic.overlay.scrim and semantic.opacity.scrim; do not
use for non-blocking floating panels — those are overlay.
zIndex.layer.overlay?
optionaloverlay?:`{core.zIndex.${string}}`
Non-blocking floating surfaces above sticky and base content.
Use when building dropdowns, menus, popovers, or floating panels that
the user can dismiss by interacting elsewhere.
Do not use for surfaces that block the page behind them — those are
blocking.
zIndex.layer.sticky?
optionalsticky?:`{core.zIndex.${string}}`
Anchored bars that follow scroll while staying inside the app stack.
Use when building sticky headers, sticky navigation, or persistent
anchored toolbars.
Pair with position: sticky; do not use for non-anchored floating
surfaces — those are overlay.
zIndex.layer.transient?
optionaltransient?:`{core.zIndex.${string}}`
Highest application-controlled stratum before the browser top layer.
Use when building transient notifications that must surface above any
other app stratum (toasts, tooltip-like transient overlays).
Do not use for persistent UI — transient implies the element is
short-lived and self-dismissing.