Colors explains the z-axis surface scale and the theme tokens that ship through Aspekt.
Color on the z axis
Aspekt treats neutral surface tokens as planes in depth. The stack runs from deepest to foremost: surface-sunken, surface, surface-raised, and surface-floating. Deeper planes are darker; foremost planes are brighter.
Text follows its own depth ramp from primary to disabled. Role tokens handle inverse surfaces, colored fills, and links. Intent colors still describe meaning: action, selection, success, warning, destructive, and information states.
Depth surfaces
--surface-sunkenInset wells, code blocks, table headers, and quiet nested regions.
--surfaceThe default app and site canvas.
--surface-raisedCards, panels, sheets, and controls above the canvas.
--surface-floatingPopovers, dropdowns, command menus, dialogs, and tooltips.
Text depth
--text-primaryDefault body, labels, headings, and high-emphasis text.
--text-secondarySupporting copy, helper text, captions, and quieter labels.
--text-tertiaryLow-emphasis metadata, hints, and decorative interface text.
--text-disabledUnavailable, disabled, or intentionally inactive text.
Text roles
--text-inverseText on inverse neutral surfaces.
--text-on-colorText on filled brand or action colors.
--text-linkLinks and navigational text affordances.
Actions
--actionPrimary brand and action color.
--action-secondaryLower-emphasis actions and neutral controls.
--accentSoft emphasis and selected states.
--destructiveDangerous or destructive actions.
--destructive-surfaceSoft destructive surfaces for status components.
--destructive-borderLower-chroma destructive borders and outlines.
Feedback
--successSuccessful states and positive confirmations.
--success-surfaceSoft success surfaces for status components.
--success-borderLower-chroma success borders and outlines.
--warningCautionary states that need attention.
--warning-surfaceSoft warning surfaces for status components.
--warning-borderLower-chroma warning borders and outlines.
--infoInformational states and neutral notices.
--info-surfaceSoft info surfaces for status components.
--info-borderLower-chroma info borders and outlines.
Structure
--borderBorders and separators.
--inputInput borders and field surfaces.
--control-softSoft neutral control fills for buttons, toggles, and inactive rails.
--ringFocus rings and active outlines.
--overlay-scrimModal and drawer scrims that dim inactive content.
Radii
--radiusBase corner radius used to derive the scale.
--radius-smSmall controls and compact nested elements.
--radius-mdDefault control radius.
--radius-lgCards, previews, and larger controls.
--radius-xlLarge surfaces and prominent panels.
--radius-2xlRoomier modal and sheet surfaces.
--radius-3xlMaximum radius for expressive large containers.
--radius-fullFully rounded pills, toggles, and circular controls.