Skip to content

Theme token reference

Wuu Desktop derives its appearance from a set of public CSS custom properties (design tokens). Plugins can declare themes through contributes.themes that override these tokens, or apply overrides at runtime with registerThemeTokens; see plugin themes.

This page is generated from config/desktop-theme-contract.json and the host stylesheet dependency graph by scripts/generate-theme-surface-matrix.ts (run make generate-theme-surface-matrix); do not edit it by hand. Per-declaration coverage detail lives in config/desktop-theme-surface-matrix.json.

An override is just setting the variable; the host keeps a default for every token, so anything you do not override keeps the built-in appearance:

:root {
--wuu-color-canvas: #f6f6f4;
--wuu-color-text: #1c1c1a;
}

The contract defines 82 public tokens (7 legacy compatibility aliases) and 16 syntax-highlighting tokens; 72 have a reference path in host styles. “Wired” traces CSS variable dependencies from color, typography, and geometry properties. It is not a rendering guarantee for every theme or state: saved appearance preferences and the CSS cascade can still override a value. “Not wired (reserved)” means no host-style reference path was found; plugin-owned styles are outside this count.

tokenDescriptionHost
--wuu-paperLegacy name; use --wuu-color-canvas insteadNot wired (reserved)
--wuu-inkLegacy name; use --wuu-color-text insteadNot wired (reserved)
--wuu-ink-softLegacy name; use --wuu-color-text-muted insteadWired
--wuu-hairlineLegacy name; use --wuu-color-border-subtle insteadNot wired (reserved)
--wuu-surface-mutedLegacy name; use --wuu-color-surface-muted insteadNot wired (reserved)
--wuu-accentLegacy name; use --wuu-color-accent insteadWired
--wuu-accent-pressLegacy name; use --wuu-color-accent-pressed insteadNot wired (reserved)
--wuu-color-canvasBase background of the window and panel layersWired
--wuu-color-surfaceBackground of content surfaces such as messages and listsWired
--wuu-color-surface-mutedMuted surface background for hover states and sectioningWired
--wuu-color-surface-elevatedElevated surface for inputs, popovers, and cardsWired
--wuu-color-overlay-backdropBackdrop of modal overlaysWired
--wuu-color-textPrimary text colorWired
--wuu-color-text-mutedSecondary text colorWired
--wuu-color-live-highlightHighlight for live states such as streaming outputWired
--wuu-color-border-subtleSubtle bordersWired
--wuu-color-border-strongStrong bordersWired
--wuu-color-accentAccent color for primary actions and selectionWired
--wuu-color-accent-pressedPressed state of the accent colorNot wired (reserved)
--wuu-color-focusFocus ringWired
--wuu-color-successSuccess semantic colorWired
--wuu-color-warningWarning semantic colorWired
--wuu-color-dangerDanger semantic colorWired
--wuu-color-infoInfo semantic colorWired
--wuu-color-linkLink textWired
--wuu-color-link-hoverLink hover stateWired
--wuu-color-on-accentContent color on accent surfaces (icons, text)Wired
--wuu-control-secondary-backgroundSecondary control backgroundWired
--wuu-control-field-backgroundInput field backgroundWired
--wuu-control-icon-backgroundIcon button backgroundWired
--wuu-badge-neutral-backgroundNeutral badge backgroundNot wired (reserved)
--wuu-inline-code-backgroundInline code backgroundWired
--wuu-message-user-backgroundUser message bubble backgroundWired
--wuu-message-user-colorUser message text colorWired
--wuu-nav-item-hover-backgroundNavigation item hover backgroundWired
--wuu-nav-item-hover-ringNavigation item hover ringWired
--wuu-skill-mark-browser-aBrowser skill mark gradient start colorNot wired (reserved)
--wuu-skill-mark-browser-bBrowser skill mark gradient middle colorNot wired (reserved)
--wuu-skill-mark-browser-cBrowser skill mark gradient end colorNot wired (reserved)
--wuu-skill-mark-commit-aCommit skill mark gradient start colorNot wired (reserved)
--wuu-skill-mark-commit-bCommit skill mark gradient middle colorNot wired (reserved)
--wuu-skill-mark-commit-cCommit skill mark gradient end colorNot wired (reserved)
--wuu-skill-mark-presentation-aPresentation skill mark gradient start colorNot wired (reserved)
--wuu-skill-mark-presentation-bPresentation skill mark gradient middle colorNot wired (reserved)
--wuu-skill-mark-presentation-cPresentation skill mark gradient end colorNot wired (reserved)
--wuu-skill-mark-creator-aSkill creator mark gradient start colorNot wired (reserved)
--wuu-skill-mark-creator-bSkill creator mark gradient middle colorNot wired (reserved)
--wuu-skill-mark-creator-cSkill creator mark gradient end colorNot wired (reserved)
--wuu-skill-mark-plugin-aPlugin mark gradient start colorNot wired (reserved)
--wuu-skill-mark-plugin-bPlugin mark gradient middle colorNot wired (reserved)
--wuu-skill-mark-plugin-cPlugin mark gradient end colorNot wired (reserved)
--wuu-skill-mark-default-aDefault skill mark gradient start colorNot wired (reserved)
--wuu-skill-mark-default-bDefault skill mark gradient middle colorNot wired (reserved)
--wuu-skill-mark-default-cDefault skill mark gradient end colorNot wired (reserved)
tokenDescriptionHost
--wuu-font-family-uiUI font familyWired
--wuu-font-family-monoMonospace font family (code)Wired
--wuu-font-size-uiUI font sizeWired
--wuu-font-size-bodyFont size for body text such as messagesWired
--wuu-line-height-bodyBody text line heightWired
tokenDescriptionHost
--wuu-space-unitBase spacing unitWired
--wuu-message-actions-block-gapGap between message action blocksNot wired (reserved)
--wuu-message-actions-overlay-gapGap inside the message-actions overlayWired
--wuu-message-actions-control-gapGap between message action controlsWired
--wuu-message-actions-inline-offsetInline offset of message actionsWired
--wuu-message-action-sizeMessage action button sizeWired
tokenDescriptionHost
--wuu-space-densityUI density scaleWired
tokenDescriptionHost
--wuu-message-action-radiusMessage action button radiusWired
--wuu-message-user-radiusUser message bubble radiusWired
--wuu-radius-innerInner highlight and nested radiusWired
--wuu-radius-controlControl radiusWired
--wuu-radius-panelPanel radiusWired
--wuu-radius-overlayOverlay radiusWired
tokenDescriptionHost
--wuu-message-user-borderUser message bubble borderWired
--wuu-border-subtleSubtle border token for specific surfacesWired
--wuu-border-strongStrong border token for specific surfacesWired
tokenDescriptionHost
--wuu-message-user-shadowUser message bubble shadowWired
--wuu-elevation-panelPanel elevation shadowWired
--wuu-elevation-overlayOverlay elevation shadowWired
tokenDescriptionHost
--wuu-motion-duration-fastFast motion durationWired
--wuu-motion-duration-normalNormal motion durationWired
--wuu-motion-easing-standardStandard easing curveWired
tokenDescriptionHost
--wuu-content-max-widthMax width of the main content areaWired

Code highlighting colors use --wuu-syntax-*; --hljs-* are the early compatible names and both families take effect.

tokenDescriptionHost
--hljs-keywordKeywordWired
--hljs-functionFunction nameWired
--hljs-stringStringWired
--hljs-numberNumberWired
--hljs-commentCommentWired
--hljs-tagHTML tagWired
--hljs-literalLiteralWired
--hljs-metaMetaWired
--wuu-syntax-keywordKeywordWired
--wuu-syntax-functionFunction nameWired
--wuu-syntax-stringStringWired
--wuu-syntax-numberNumberWired
--wuu-syntax-commentCommentWired
--wuu-syntax-tagHTML tagWired
--wuu-syntax-literalLiteralWired
--wuu-syntax-metaMetaWired