Theming
Unistyles owns the theme. Wombatail only emits semantic lookups into it.
Named bg-*, text-*, border-*, and tint-* values compile to
theme.colors.<camelCaseToken>:
bg-background -> theme.colors.backgroundbg-primary -> theme.colors.primarytext-muted-foreground -> theme.colors.mutedForegroundborder-border -> theme.colors.bordertint-primary -> theme.colors.primaryblack, white, transparent, and arbitrary literal colors such as bg-[#123456]
stay literal.
Where tokens come from
Section titled “Where tokens come from”Tokens are collected from every themes.*.colors key in your wombatail.config.*.
Finding a config file also flips allowUnknownThemeColors to false, so a typo like
bg-primry fails the build instead of resolving to undefined on device.
Without a config file, set allowUnknownThemeColors: false and pass themeColorTokens
yourself to get the same safety.
Dark mode
Section titled “Dark mode”There is no dark: prefix. Use semantic Unistyles themes instead — define light and
dark in your config with the same token names, and let settings.adaptiveThemes or
initialTheme pick between them. bg-surface then resolves correctly in both.
See switching themes for adaptive themes, a runtime toggle, and persisting the user’s choice.
Breakpoints
Section titled “Breakpoints”Breakpoint names in Wombatail must match registered Unistyles breakpoints. With
wombatail.config.* this holds by construction: both sides read the same object.
