hextaui
shadcn/ui components, hooks and AI blocks built on Base UI, with loading, error, empty and other hard states handled.
HextaUI design tokens: status colors, easing curves, hairline borders, type scale and the keyframes every component animates with.
Parse, label, announce and match keyboard shortcuts, with ⌘ on Apple platforms and Ctrl everywhere else.
The easing curves, durations and reduced-motion check every component animates with, plus hooks for size morphs and sliding highlights.
Grows a textarea with what you write between its minimum and maximum height, animating each change without ever touching the text.
Runs an async action through loading, success and error, skipping the spinner for fast requests and holding an error while you read it.
Keeps a ref to your own element while still forwarding it to whatever ref the parent passed in.
Shows a loading state only when work is actually slow, then keeps it up long enough that it never flickers.
The keys someone is holding down right now, shared by every subscriber through a single set of window listeners.
Shakes a form control when a submit attempt finds it invalid, and never while someone is still typing.
Combines any number of callback and object refs into one, with React 19 ref cleanup for each of them.
Turns a page and a page count into the list of pages and ellipses to render, keeping its length steady as the page moves.
Today's date that rolls over at midnight and when the tab comes back, without a hydration mismatch.
Stacked headings that each reveal a panel, with height motion you can reverse mid-way and panels that stay searchable while closed.
Inline messages for status and feedback, with a neutral surface, a colored icon and a dismiss that collapses smoothly.
A confirmation dialog for destructive or important actions that waits for async work, and becomes a bottom sheet on phones.
A box that holds its shape before media loads, shimmers while loading, fades the media in and falls back when it fails.
File and image cards for uploads, with progress, states, actions, a full-card trigger and names that keep their extension.
User photos with an initials fallback, status badges and stacked groups that collapse into a count.
Status labels with colored dots, removable tags that slide closed and counts that roll to their new value.
A trail of links to the current page that wraps safely, mirrors in right-to-left layouts and expands collapsed segments in place.