Skip to content
wdj

Colors

Live wdj tokens from the actual stylesheet. Use the theme control to inspect both modes. Status foregrounds are adjusted for readable text.

Surface hierarchy

Canvas
Base
Recessed

Token reference

--color-kumo-danger-fill

#dc2626

--color-kumo-base

light-dark(#fff, oklch(17% 0 0))

--color-kumo-canvas

light-dark(oklch(98.75% 0 0), oklch(10% 0 0))

--color-kumo-elevated

light-dark(oklch(98% 0 0), oklch(12% 0 0))

--color-kumo-recessed

light-dark(oklch(96% 0 0), oklch(15% 0 0))

--color-kumo-overlay

light-dark(oklch(97.5% 0 0), oklch(26.9% 0 0))

--color-kumo-control

light-dark(#fff, oklch(21% 0.006 285.885))

--color-kumo-tint

light-dark(oklch(97% 0 0), oklch(26.9% 0 0))

--color-kumo-fill

light-dark(oklch(92.2% 0 0), oklch(26.9% 0 0))

--color-kumo-fill-hover

light-dark(oklch(96.5% 0 0), oklch(37.1% 0 0))

--color-kumo-interact

light-dark(oklch(87% 0 0), oklch(37.1% 0 0))

--color-kumo-hairline

light-dark(oklch(93.5% 0 0), oklch(26.9% 0 0))

--color-kumo-line

light-dark(oklch(14.5% 0 0 / 0.1), oklch(32% 0 0))

--color-kumo-contrast

light-dark(oklch(8.5% 0 0), oklch(98.5% 0 0))

--color-kumo-focus

light-dark(oklch(15% 0 0), oklch(93.5% 0 0))

--color-kumo-shadow-edge

light-dark(oklch(0% 0 0 / 0.12), oklch(100% 0 0 / 0.1))

--color-kumo-shadow-drop

light-dark(oklch(0% 0 0 / 0.08), oklch(0% 0 0 / 0.3))

--color-kumo-brand

light-dark(oklch(57.72% 0.2324 260), oklch(51.948% 0.2324 260))

--color-kumo-brand-hover

light-dark(oklch(48.8% 0.243 264.376), oklch(48.8% 0.243 264.376))

--color-kumo-danger

light-dark(oklch(50.5% 0.213 27.518), oklch(70.4% 0.191 22.216))

--color-kumo-warning

light-dark(oklch(59.7% 0.144 57.5), oklch(75% 0.183 55.934))

--color-kumo-success

light-dark(oklch(50.8% 0.118 165.612), oklch(76.5% 0.177 163.223))

--color-kumo-info

light-dark(oklch(48.8% 0.243 264.376), oklch(70.7% 0.165 254.624))

--color-kumo-danger-strong

light-dark(oklch(44% 0.19 27.5), oklch(70.4% 0.191 22.216))

--color-kumo-warning-strong

light-dark(oklch(45% 0.12 60), oklch(75% 0.183 55.934))

--color-kumo-success-strong

light-dark(oklch(42% 0.1 165), oklch(76.5% 0.177 163.223))

--color-kumo-info-strong

light-dark(oklch(42% 0.21 264), oklch(70.7% 0.165 254.624))

--color-kumo-danger-tint

light-dark(oklch(93.6% 0.032 17.7 / 0.42), oklch(42.9% 0.176 28.7 / 0.17))

--color-kumo-warning-tint

light-dark(oklch(93.1% 0.107 94.6 / 0.2), oklch(35.3% 0.079 65 / 0.37))

--color-kumo-success-tint

light-dark(oklch(96.2% 0.043 156.7 / 0.57), oklch(39.3% 0.096 152.3 / 0.2))

--color-kumo-info-tint

light-dark(oklch(93.2% 0.032 255.6 / 0.45), oklch(38% 0.145 265.5 / 0.22))

--color-kumo-default

light-dark(oklch(21% 0.006 285.885), oklch(97% 0 0))

--color-kumo-strong

light-dark(oklch(14.5% 0 0), oklch(98.5% 0 0))

--color-kumo-subtle

light-dark(oklch(47% 0 0), oklch(70.8% 0 0))

--color-kumo-placeholder

light-dark(oklch(70.8% 0 0), oklch(55.6% 0 0))

--color-kumo-inactive

light-dark(oklch(87% 0 0), oklch(43.9% 0 0))

--color-kumo-inverse

light-dark(oklch(97% 0 0), oklch(20.5% 0 0))

--color-kumo-link

light-dark(oklch(42.4% 0.199 265.638), oklch(70.7% 0.165 254.624))

--color-kumo-badge-blue

light-dark(var(--color-blue-600), var(--color-blue-700))

--color-kumo-badge-green

light-dark(var(--color-emerald-600), var(--color-emerald-700))

--color-kumo-badge-green-foreground

light-dark(#000, #fff)

--color-kumo-badge-neutral

light-dark(var(--color-neutral-500), var(--color-neutral-600))

--color-kumo-badge-inverted

light-dark(var(--color-neutral-950), #fff)

--color-kumo-badge-orange

var(--color-orange-650)

--color-kumo-badge-purple

light-dark(var(--color-purple-600), var(--color-purple-700))

--color-kumo-badge-red

light-dark(var(--color-red-600), var(--color-red-700))

--color-kumo-badge-teal

light-dark(var(--color-teal-650), var(--color-teal-700))

--color-kumo-badge-teal-subtle

light-dark(var(--color-teal-800), var(--color-teal-200))

--color-kumo-badge-orange-subtle

light-dark(var(--color-orange-800), var(--color-orange-200))

--color-kumo-badge-neutral-subtle

light-dark(var(--color-neutral-800), var(--color-neutral-200))

--color-kumo-badge-inverted-fg

light-dark(#fff, #000)

Components

Components overview
AutocompleteFree-form input with local or HTMX-filtered suggestions.
BadgeSolid, tinted, outline and dot status labels.
BannerInline message bar with variants and optional action.
BreadcrumbsTrail navigation in two sizes.
ButtonVariants, sizes, shapes, icons and loading state.
ButtonGroupJoins a small set of tightly-coupled buttons into a single control (split buttons).
CheckboxSingle checkbox and indeterminate state.
ClipboardTextRead-only text field with a one-click copy-to-clipboard button.
Code / CodeHighlightedEscaped Pygments grammar highlighting, multiline tokens, line numbers, highlighted lines and localized copying.
CollapsibleComposable disclosure component for showing and hiding content.
Combobox / AutocompleteKumo-styled input/button triggers, search inside the popup, grouped local choices and debounced HTMX search.
CommandPaletteAccessible spotlight search overlay with Cmd+K keyboard shortcut.
DatePickerKumo-styled date and datetime popups; inline single, multiple and range calendars with bounds/presets.
DateRangePickerStyled popup or inline range calendar with bounds, presets and separately named form values.
DialogNative <dialog> modal with focus management.
DrawerEdge-anchored modal panel. LayerDialog has its own layered component.
DropdownMenuNative details menu with delegated keyboard navigation and dismissal.
EmptyEmpty-state placeholder with icon and action.
FieldLabel + description + error wrapper. Built into each control.
FlowDirected diagrams with branches, SVG connectors, custom anchors and responsive local scrolling.
GridResponsive CSS grid layout container with preset column configurations.
InlineCopyTextCompact borderless copy control for IDs and short values.
InputText field with label, description, leading/trailing icons.
InputAreaMulti-line textarea with auto-resize option.
InputGroupInput field with seamless prefix, suffix, and addon attachments.
LabelForm field label, optional marker and tooltip.
LayerCardCompound surface card with distinct primary and secondary layers.
LayerDialogLayered native modal with actions, forms, nested dialogs and pending states.
LinkInline, current and plain text links.
LoaderAnimated spinner in three sizes.
MenuBarCompact view selector using native radio semantics.
MeterProgress bar showing a measured value within a known range.
PaginationA page navigation component for navigating through paginated content.
PopoverAnchored popup with interactive content.
RadioRadio group, vertical and horizontal.
SelectKumo-styled Alpine dropdown with groups, rich options and multiple selection; native form values and fallback.
SensitiveInputPassword/secret input with reveal toggle and copy button.
SeparatorHorizontal / vertical rules with optional label.
SidebarRecursive navigation groups, account/zone views, search, loading, resize and full-screen mobile breadcrumbs.
SkeletonShimmer placeholder.
SliderInset single/range selection with vertical grips, value badges, endpoint labels and native keyboard/form behavior.
SurfaceBordered surface panel with header slot.
SwitchOn/off toggle in three sizes.
TableServer-driven table: sort, filter, select and paginate the full dataset.
Table of contentsPage section navigation tree with active link indicator.
TabsSegmented and underline tabs with a sliding indicator, responsive overflow and local Alpine or URL/HTMX state.
TagInputMulti-value badge input for tags and recipients.
TextHeading, body, secondary, success, error and mono text.
ToastyExpandable notification stack with variants, paused expiry and a live region.
ToolbarCompact grouped controls with shared borders, composed filters and keyboard arrow navigation.
TooltipHover and focus tooltip with grouped delays, Escape dismissal and viewport bounds.
↑ ↓ Navigate ↵ Select