Carousel, Pagination and standalone themes
Carousel and Pagination join Vortex, fields gain responsive spacing, and theme generation moves to vortex-themes.
New features
- Added compound Carousel components with responsive item widths and groups, swipe navigation, controls, indicators, thumbnails, autoplay and lazy mounting, plus keyboard navigation, RTL support, reduced-motion handling and slide announcements.
- Added controlled and uncontrolled Pagination with numbered and compact variants, optional page input, configurable arrow labels and animated selection; invalid page values are normalized and input supports IME composition.
- Added responsive
gapto TextField.Root, TextArea.Root and Slider.Root. - Added responsive
wrapto TextField.Label, TextArea.Label, Select.Label and Slider.Label, plus responsivemarginBottomto Select.Label. - Added vertical resizing to TextArea, enabled by default; content-driven
resize="auto"remains available. - Added
controlledTabStoptouseRovingFocus; horizontal arrow navigation follows the focused group's text direction, and Tabs preserve the selected tab as the Tab-key entry point.
Bug fixes
- Fixed horizontal ScrollArea thumb positions, track clicks, dragging and reported scroll progress in RTL layouts.
- Fixed Drawer handle drags after fast pointer movements or release outside the handle, and clamped dragging at the largest snap point.
- Fixed ZoomImage gallery slides bleeding through during transitions, preserved transparency for single-image groups and improved initial viewer focus.
- Fixed Select popup associations with labels and rendered error descriptions, and corrected action menu names, popup roles and trigger semantics.
- Fixed Switch inputs missing the switch role, preserved accessible names on Floating content and added image semantics to non-interactive icon-only Badge instances.
- Fixed Toast list semantics inside its named live region and changed the Avatar online indicator to a
<span>. - Fixed Button icon sizing, square proportions for icon-only buttons and disabled styling on hover and with
aria-disabled. - Fixed background color utilities using undefined foreground tokens.
Breaking changes
- Required
@vortexlabs/vortex-themes@^0.1.0as a peer dependency. Install it alongside Vortex; component CSS and PostCSS configuration now resolve theme definitions from this package. - Moved theme and token APIs from
@vortexlabs/vortex/themesand@vortexlabs/vortex/tokensto@vortexlabs/vortex-themes, includingVortexThemeConfig. Move CSS and JSON imports from@vortexlabs/vortex/themes/...to@vortexlabs/vortex-themes/themes/...; the old entry points and bundled theme assets have been removed from Vortex. VortexProvider, ThemeScope anduseThemeremain in Vortex.
Before → After
// Before
import { getThemeCSS } from "@vortexlabs/vortex/themes";
import type { VortexThemeConfig } from "@vortexlabs/vortex";
import "@vortexlabs/vortex/themes/vortex/theme.css";
// After
import { getThemeCSS } from "@vortexlabs/vortex-themes";
import type { VortexThemeConfig } from "@vortexlabs/vortex-themes";
import "@vortexlabs/vortex-themes/themes/vortex/theme.css";- Replaced the
vortex themingcommand withvortex-themes theming. Update generation scripts and regenerate custom theme CSS with the new generator. - Replaced the
brighttheme withawenand renamed theflareoverride toastra. Update asset imports and theme selection; optional Inter font CSS is available at@vortexlabs/vortex-themes/themes/awen/fonts.css. - Renamed Tabs.Item
icontostartIconand Tabscolor="default"tocolor="neutral". Update these props when upgrading. - Added default spacing between parts of TextField.Root, TextArea.Root and Slider.Root. Set
gap={0}where an existing layout supplies its own spacing. - Changed TextArea to show a vertical resize handle by default. Set
resize="none"to retain the previous non-resizable behavior. - Changed the Toast region from a list to a
<section>containing a list. Update selectors that previously targeted the region as the list.

