Tab changelog
v1.3.2 (2026-10-22)
Generated icon-toggle items retain their label as an accessible name when text is hidden. Segmented inherits this through Tab; spacing and interaction continue to use Button.
v1.3.1 (2026-10-14)
Buttons, Icons, and Text generated from default items receive their respective parts directly. Explicit children do not inherit these default configurations.
2026-09-21: Unified the usage guide, source property table, and Site / AI reading entry points. Documentation only; component behavior is unchanged.
v1.2.3 (2026-08-17)
Moved Tab root size observation into shared
resizeManager, standardizing SSR, unavailable-capability, per-frame delivery, and resource-release boundaries.
v1.2.2 (2026-08-14)
The
icon-togglevariant now uses the sameblur(1.25rem)background blur as pill and SearchBox.
v1.2.1 (2026-08-14)
Added
backdrop-filter: blur(1.25rem)to the defaultpillvariant, matching SearchBox, with-webkit-backdrop-filteras well.Added the public
--snowui-tab-background-blur-override; other variants do not enable background blur by default.
v1.2.0 (2026-07-06)
Added optional
icontoTabItem. Built-in mode can generateButton + Icon + Textand fully supportsvariant="icon-toggle".
v1.1.1 (2026-06-23)
Item size override contract
Clarified Item size-style precedence:
style > class > Button size > Tab size. Tab size is only the composition default when no explicit size is supplied.
v1.1.0 (2026-06-23)
New features and size contract
Added
variant="bare": neither container nor Item has a shell or indicator. It supports text, one Icon, or mixed content with 12/16/20px gaps and 0.4→1 opacity states.Tab
sizeis passed to direct childButton as="item"through an explicit Button size context. Button remains the sole owner of size definitions; an explicit instancesizetakes precedence.
v1.0.8 (2026-06-22)
Composition
Added shell-free Button Item composition. Tab’s
--snowui-button-opacity-overrideand Button’s internal opacity variable share one root-node cascade, so inactive opacity remains 0.4 instead of multiplying to 0.16.
v1.0.7 (2026-06-21)
Motion ownership
Added the
TAB_INDICATOR_MOTIONfamily preset, returning indicator transform, width, and height to the 250ms smooth-out of transitions.dev Tabs sliding.Movement now consumes the actual Frame control bridge and drops a nonexistent transform bridge name. Tab no longer misuses generic
RESIZE_MOTION.
v1.0.6 (2026-06-21)
Motion fixes
Fixed ResizeObserver synchronously overwriting indicator movement without animation after switching
variant="icon-toggle". After initialization, all size remeasurements continue to animate movement.The Tab root previously injected a generic resize preset; v1.0.7 replaced it with the Tab-specific indicator preset.
v1.0.5 (2026-06-18)
Motion restoration
Fully aligned with transitions.dev Tabs sliding: indicator transform, width, and height all use 250ms and
cubic-bezier(0.22, 1, 0.36, 1), removing the mismatch between the former 200ms movement and 300ms resizing.Initial rendering and resize still snap the indicator into place;
prefers-reduced-motionnow disables indicator transitions.
v1.0.4 (2026-06-13)
Interaction fixes
Aligned background movement with transitions.dev Tabs sliding. The indicator now writes DOM
transform / width / heightdirectly. Initial placement and resize temporarily disable transitions and force reflow to snap into place; only user switches slide.
v1.0.3 (2026-05-31)
Style adjustments
Active Text / Icon color depends on variant: pill / icon-toggle retain
--static-black-100, underline uses--primary, and solid keeps Button’s default color chain.Inactive Text / Icon consistently use
--black-100 × opacity: 0.4.Added Icons to the examples for all four variants so Text / Icon color inheritance can be observed directly.
v1.0.2 (2026-05-31)
Style adjustments
Corrected Item colors in both states: inactive Text / Icon retain Button’s default
--black-100; active Text / Icon use--static-black-100.The inactive 40% appearance still comes only from overall
opacity: 0.4; inactive hover and active states useopacity: 1.
v1.0.1 (2026-05-31)
Style adjustments
Removed the 40% color-value path for inactive Items in favor of
opacity: 0.4. Hover / active return toopacity: 1, matchingStyleSpec.md §2.4.5.Added external override entries
--snowui-tab-inactive-opacity-override/--snowui-tab-hover-opacity-override.
v1.0.0 (2026-05-20)
New features
Initial implementation: 4 variants (pill / solid / underline / icon-toggle) × 3 sizes (sm/md/lg) × 2 directions (row/column).
Shared indicator position / size transitions, consuming Frame control / size motion bridge variables.
Roving tabindex keyboard behavior with a
selectionFollowsFocusmode switch.Supports Figma
fillwidth, distributing horizontal Items evenly when the container has an explicit width.Added
FRAME_SIZE_MOTION_BRIDGEto Frame alongside this work; see bridge.md changelog v1.3.0.
Corrections
The
variant="underline"container now has a default corner radius of 0. The component calculates underline / vertical-line dimensions rather than relying on CSS to override inline dimensions.