Minor changes
- 355a1b5
Badge: add color-based variants and deprecate semantic variants
- Add color variants:
red,orange,yellow,green,teal,blue,neutral,inverted - Add subtle variants for each color (
red-subtle,orange-subtle, etc.) with lighter backgrounds and darker text - Retain
outlineandbetavariants unchanged - Deprecate
primary(useinverted),secondary(useneutral),destructive(usered),success(usegreen) - Dark mode support: subtle variants flip to dark backgrounds with light text, regular color variants darken slightly, inverted flips to white bg with black text
- Default variant changed from
primarytoneutral
- Add color variants:
- 250a6dd
Add
actionprop to Banner for rendering CTA buttons alongside structured title/description content without resorting to thechildrenprop. - 8c244d2
Refresh semantic surface color tokens and component surface usage.
- Add and adopt
kumo-canvasas the page-level surface token in theme output and docs usage. - Rebalance neutral token values in
kumo-binding.cssand generated theme variables for improved light/dark surface hierarchy. - Update surface-related component styling (
LayerCard,MenuBar,Tabs) to align with the refreshedcanvas/elevated/recessedlayering model. - Update token usage guidance in
ai/USAGE.mdto reflect page vs component background roles.
- Add and adopt
- ef15662
Make timeseries' highlighted on hovering a data point
- cd0c22f
Add Shadow DOM support via
KumoPortalProviderandcontainerprop on all portal-based componentsAll overlay components (Dialog, DropdownMenu, Combobox, Select, Tooltip, Popover, CommandPalette, Toast) now support rendering inside Shadow DOM or custom containers.
New exports:
KumoPortalProvider- Context provider to set default portal container for all overlaysPortalContainer- Type for portal container (HTMLElement, ShadowRoot, or ref)
Component updates: All portal-based components now accept an optional
containerprop:Dialog-containerprop on Dialog componentDropdownMenu.Content-containerpropCombobox.Content-containerpropSelect-containerpropTooltip-containerpropPopover.Content-containerpropCommandPalette.RootandCommandPalette.Dialog-containerpropToasty(Toast provider) -containerprop
Usage:
Set once at the app level:
<KumoPortalProvider container={shadowRoot}> <App /> </KumoPortalProvider>Or override per component:
<Dialog container={customContainer}> <Dialog.Title>Modal inside shadow DOM</Dialog.Title> </Dialog>When no provider or prop is set, components default to
document.body(existing behavior). - 17f21f3
SkeletonLine: add
blockHeightprop to set a container height and vertically center the skeleton line within it - d1f697b
Table: add
stickyprop toTable.HeadandTable.Cellfor pinning columns to left/right edges, andstickyprop toTable.Headerfor sticky header rows. Usesisolatestacking context withz-0/z-1/z-2layering. - 56e3640
Add
tomlas a supported language for syntax highlighting in the Code component - f0c8952
Add
titleprop toButton— wraps the button in aTooltipwhen provided.
Patch changes
- 7721bc5
Checkbox.Group & Radio.Group: remove fieldset border box and simplify styling
- Remove
rounded-lg border border-kumo-line p-4wrapper from both group fieldsets - Downsize legend from
text-lgtotext-basewith inline-flex layout - Drop
font-mediumfrom Checkbox.Item and Radio.Item labels
- Remove
- 6c21970
Fix missing disabled styling on Combobox triggers.
TriggerValueandTriggerMultipleWithInputnow applyopacity-50andcursor-not-allowedwhen disabled, matching the behaviour of theSelectcomponent. - 0e4247a
Update dialog backdrop overlay to use
bg-kumo-recessedtoken - 0060bb9
Remove
ai/schemas.tsfrom version control (now fully generated at build time) - 04a1f07
Fix LayerCard.Primary stacking order when sandwiched between LayerCard.Secondary elements
- 94d50e2
Fix SensitiveInput focus ring and global CSS pollution
- Fix focus ring not showing on container when inner input is focused (focus-within:outline)
- Add defensive styles to eye toggle and copy buttons to prevent global CSS pollution
- Fix inputVariants parentFocusIndicator using wrong selector ([&:has(:focus-within)] → focus-within:)
- db75c51
SkeletonLine: move
.skeleton-linestyles into@layer baseso Tailwind utility classes (e.g.className="h-6") can override the default height - eb68b35
Tabs indicator now uses
translate-xfor its transition animation, replacing the CSSlefttransition with a GPU-accelerated transform. - e21a6df
fix flow component not reflecting padding prop
- 29c56fd
Surface: replaceasprop with Base UIrenderprop for polymorphismThe
asprop used a hand-rolled genericforwardRefpattern (withas anycasts) that conflicted with how the rest of the library handles polymorphism via Base UI'suseRenderhook.Surfacenow accepts arenderprop, consistent withLinkand other components. The oldasprop is kept as a deprecated alias and continues to work unchanged — no migration required.// Still works (deprecated) <Surface as="section">...</Surface> // Preferred going forward <Surface render={<section />}>...</Surface> - 9272b4a
Switch: polish squircle styling
- Use
ring-inseton thumb to prevent border protruding beyond the track - Make thumb ring transparent to remove visible border outline
- Switch focus indicator from
ringtooutlinewithoutline-offset-2to avoid clashing with the track's own ring border
- Use
- 6b15bac
fix(Tabs): update segmented tab spacing and track styling
- Adjust segmented
Tabslist styling colour tobg-kumo-recessedand addedringto make the Tabs background more visible - Remove extra edge spacing and keep the segmented track/indicator alignment consistent
- Adjust segmented
- cfe814d
update toast styling to use a subtle ring and background that reflect each state.
- 7ac73d2
update status text token values for info and danger to improve a11y contrast ratio on banners.
- dcbf185
Add
truncateprop toTextcomponent. Whentrue, appliestruncate min-w-0classes to clip overflowing text with an ellipsis.