1.0.0-beta.3
Segment ghost variant + dynamic width, AppLayout content-scroll mode, FileTree checkboxes, EmojiReactionButton read-only, and keyboard support for PressableFeedback.
This release adds a ghost variant and dynamic-width items to Segment, a content-scroll mode to AppLayout, read-only support for EmojiReactionButton, and automatic checkbox rendering in FileTree.
⚠️ Breaking changes: @gravity-ui/icons removed as a runtime dependency (now bundled); NumberStepper sizes decreased one step across all variants.
What's New
Segment: Ghost Variant
Transparent container with an accent-colored indicator — ideal for inline navigation embedded in toolbars or cards.
Segment: Dynamic Width
Render-prop Segment items that expand from icon-only to icon + label on selection — dynamic width driven by CSS grid transitions.
AppLayout: Content Scroll Mode
New scrollMode="content" prop keeps the shell fixed to the viewport while only the main column scrolls. The main region becomes focusable so browsers provide native PageUp/PageDown/Arrow scrolling without custom handlers.
EmojiReactionButton: Read-Only Mode
New isReadOnly prop displays reactions without responding to interaction — no press handlers fire, and the button is excluded from tab order.
FileTree: Selection Checkboxes
Checkboxes auto-render when selectionBehavior="toggle". The chevron also gained a hover state for better affordance.
New Demos
Sidebar: Meeting Notes
Full-featured sidebar demo with command palette, offcanvas mode, and nested navigation.
Sidebar: Complex
Updated complex sidebar demo with teamspaces, agents, favorites, recents, and ghost segment navigation.
Bug Fixes
- ContextMenu — Re-opens correctly on repeated right-click while the popover overlay is active
- PressableFeedback (HoldConfirm) — Space/Enter now trigger hold-to-confirm (keyboard parity with pointer)
- PressableFeedback (ProgressFeedback) — Keyboard sweep activation added
- FileTree — Row hover suppressed when hovering the chevron button
- Glass theme (Carousel) — Nav buttons use
mix-blend-mode: differencefor visibility on arbitrary slide backgrounds
Style Changes
- NumberStepper — All size variants decreased one step (lg → h-10, md → h-9, sm → h-8) for tighter proportions
- RadioButtonGroup — Demos updated with responsive layout patterns
Build
- "use client" directives preserved — Added
rollup-plugin-preserve-directivesso directives survive terser minification - Icons bundled internally —
@gravity-ui/iconsmoved fromdependenciestodevDependencies; icons are compiled into the output, consumers no longer need it installed
⚠️ Breaking Changes
@gravity-ui/icons no longer a runtime dependency
Icons used by HeroUI Pro components are now bundled into the package output. If you were importing from @gravity-ui/icons via HeroUI Pro's node_modules, install it directly:
npm install @gravity-ui/iconsNo action needed if you only use HeroUI Pro components — they continue to work as before.
NumberStepper size reduction
All button sizes are one step smaller:
| Variant | Before | After |
|---|---|---|
| sm | h-9 / md:h-8 | h-8 / md:h-7 |
| md | h-10 / md:h-9 | h-9 / md:h-8 |
| lg | h-11 / md:h-10 | h-10 / md:h-9 |
Layouts with exact height constraints on the stepper may need adjustment.
Upgrade
npx heroui-proSelect Update HeroUI Pro React to x.x.x (latest) from the interactive menu.