JGuang / HeroUI

v3.0.0-rc.1

7 new components (Drawer, ToggleButton, ToggleButtonGroup, Meter, ProgressBar, ProgressCircle, Toolbar), Table & ListBox virtualization, ButtonGroup improvements, and bug fixes.

March 14, 2026

Seven new components: Drawer, ToggleButton, ToggleButtonGroup, Meter, ProgressBar, ProgressCircle, and Toolbar. Table and ListBox gain virtualization, ButtonGroup gets a Separator sub-component + vertical orientation, and React Aria Components is bumped to v1.16.0.

Installation

Update to the latest version:

npm

```bash
npm i @heroui/styles@rc @heroui/react@rc
```

pnpm

```bash
pnpm add @heroui/styles@rc @heroui/react@rc
```

yarn

```bash
yarn add @heroui/styles@rc @heroui/react@rc
```

bun

```bash
bun add @heroui/styles@rc @heroui/react@rc
```

Using AI assistants? Simply prompt "Hey Cursor, update HeroUI to the latest version" and your AI assistant will automatically compare versions and apply the necessary changes. Learn more about the HeroUI MCP Server.

What's New

New Components

  • Drawer: Slide-out panel with drag-to-dismiss, 4 placements, backdrop variants, scrollable body (Docs)
  • ToggleButton: Selected/unselected toggle with all button variants + icon-only mode (Docs)
  • ToggleButtonGroup: Single or multi-select toggle group, attached/detached layouts, orientation (Docs)
  • Meter: Value within a known range — disk usage, password strength, quotas (Docs)
  • ProgressBar: Linear progress, determinate + indeterminate, colors, custom formatting (Docs)
  • ProgressCircle: Circular SVG progress with customizable track + fill circles (Docs)
  • Toolbar: Groups buttons, toggles, and separators with horizontal or vertical orientation (Docs)

Drawer

Slide-out panel overlay with top/bottom/left/right placement, drag-to-dismiss gestures, and backdrop variants. Compound parts: Trigger, Backdrop, Content, Dialog, Header, Heading, Body, Footer, Handle, CloseTrigger.

HeroUI preview

Placements:

HeroUI preview

With Form:

HeroUI preview

Toggle Button

Stateful toggle between selected and unselected. All button variants and sizes, icon-only mode, controlled or uncontrolled.

HeroUI preview

Variants:

HeroUI preview

Toggle Button Group

Single or multi-select toggle group. Attached (connected) and detached layouts, vertical orientation, full-width, and a Separator sub-component.

HeroUI preview

Selection Mode:

HeroUI preview

Attached Mode:

HeroUI preview

Meter

Value within a known range — disk usage, password strength, quotas. Compound parts: Root, Output, Track, Fill.

HeroUI preview

Colors:

HeroUI preview

Progress Bar

Linear progress indicator with determinate + indeterminate states, color variants, sizes, and custom value display. Compound parts: Root, Output, Track, Fill.

HeroUI preview

Indeterminate:

HeroUI preview

Progress Circle

Circular SVG progress with TrackCircle and FillCircle sub-components for direct SVG control. Determinate + indeterminate states.

HeroUI preview

Custom SVG:

HeroUI preview

Toolbar

Groups buttons, toggle buttons, and separators into an accessible toolbar. Horizontal or vertical orientation, composes with ButtonGroup and ToggleButtonGroup.

HeroUI preview

With Button Group:

HeroUI preview

Component Improvements

ButtonGroup Enhancements

New ButtonGroup.Separator sub-component adds an explicit visual divider between buttons. Works in both horizontal and vertical orientations.

HeroUI preview

Table & ListBox Virtualization

Table and ListBox now support virtualization via React Aria's Virtualizer for large datasets. Virtualizer, TableLayout, and ListLayout are re-exported from @heroui/react.

HeroUI preview

ButtonGroup Orientation

ButtonGroup accepts an orientation prop ("horizontal" | "vertical") with correct border-radius handling and separator direction for both axes. The root element was upgraded from `` to React Aria's Group for proper role="group" semantics.

HeroUI preview

ButtonGroup Focus Ring

Focus rings on grouped buttons now use ring-inset so they stay within button bounds instead of overlapping neighbors.

Granular Component Imports

@heroui/react now supports per-component subpath entrypoints for more explicit imports (#6301):

// Before — root entrypoint
import { Button } from "@heroui/react";

// After — granular subpath import
import { Button } from "@heroui/react/button";

Dependencies

Upgraded react-aria-components from v1.15.1 to v1.16.0 and related packages:

PackageOldNew
react-aria-components1.15.11.16.0
@react-aria/i18n3.12.153.12.16
@react-aria/utils3.33.03.33.1
@react-types/shared3.33.03.33.1
@react-types/color3.1.33.1.4
@internationalized/date3.11.03.12.0
@react-stately/data3.15.13.15.2

Bug Fixes

  • InputGroup: Focus styles now trigger only when the actual input/textarea is focused (:has([data-slot]:focus)) instead of any focusable child via :focus-within (#6274)
  • Avatar: Fallback element inherits border-radius from the parent instead of hardcoding rounded-full, so className overrides apply correctly (#6300)
  • Modal & AlertDialog: Backdrop click events no longer propagate through portals to parent elements (#6297)
  • Table: Fixed header rounding and background color bleeding in Firefox (#6298)

Contributors

Thanks to everyone who contributed to this release!

Local source: vendor/en/react/releases/v3-0-0-rc-1.mdx

Generated from the pinned HeroUI v3 commit with internal links and previews adapted for JGuang.

On this page