Glow ring button
Primary button with a slow conic light running around its border.
A button is the most-pressed thing in your app. These give it a press, a hover and a finish that match your sheet (from quiet underlines to a jelly squish), with focus styles and reduced motion handled.
23 live assets · React + Tailwind + Motion · restyle to your design tokens
Primary button with a slow conic light running around its border.
Button that leans toward the cursor and snaps back on a spring.
Chunky button with an offset hard shadow that presses flat on click.
Primary button with a soft band of light sweeping across it on a slow loop.
Pill button that squashes wider and shorter while pressed, then springs back with a jelly wobble.
Text button whose underline draws in from the left on hover or keyboard focus and exits to the right.
Hairline-outlined button where a solid fill rises from the bottom on hover and inverts the label exactly at its edge.
Submit button that collapses into a spinning circle while its action runs, then draws a check on success.
Copy-to-clipboard button whose icon morphs into a drawn check while its label swaps to “Copied”, then reverts after a short hold.
A button whose shape grows into its dialog panel as a shared element and shrinks back into the button on close, with focus returning to it.
A destructive button you press and hold (by pointer, Space or Enter) while a fill sweeps across; letting go early rewinds and cancels.
Primary action joined to a chevron that springs open a menu of alternative actions, with arrow keys, Home/End, type-ahead and Esc per the WAI-ARIA menu button pattern.
Material-style button whose ink ripple spreads from the press point to the far corner and fades on release, rippling from the centre for keyboard presses.
Toggle button group for single or multiple selection, with aria-pressed and roving arrow keys: a pill slides between options in single mode, and pressed neighbours merge into one run in multiple mode.
Floating action button that turns its plus into an × and fans out labelled actions in a spring stagger, with arrow-key navigation, an optional scrim and Esc to fold away.
A floating action button grows into a bottom sheet as one shared element, its colour washing out, with drag or flick to dismiss back into the button.
Solid button framed by an accent-tinted conic gradient border that turns continuously and smoothly spools up to a faster spin, with a brighter halo, on hover or keyboard focus.
Call-to-action whose trailing arrow slides out to the right while a twin springs back in from the left and the label nudges forward, on hover or keyboard focus, in solid, outline and link styles.
Raised button standing on a visible edge with a ground shadow: it lifts a touch on hover, sinks into its base on pointer or Space/Enter press, and springs back up on release.
Toggle button whose plus springs into a check, cross or minus by moving the same two strokes to new endpoints while it turns, filling with the accent and pulsing once, with aria-pressed state.
Button or nav link whose label rolls up out of view letter by letter while a duplicate rolls in from below on hover or keyboard focus, staggered from the start or from the centre.
Slab button with a thick border, hard offset shadow and boxed arrow cell: on hover or keyboard focus the accent floods across in a few hard bands that invert the label at each band edge, the arrow hops out of its cell and back, and a press drops it flat onto its shadow.
Slab async button whose label cuts to a row of hard-edged block cells while its action runs (a three-block run marching across, or cells filling beside a percentage when given progress), then cuts to an accent done stamp, or jolts sideways in hard frames and offers a retry.
With your agent
They render real buttons that pass through native props, so type=submit, disabled and aria attributes work as you’d expect.
Put one in your sheet’s button.primary slot. Your agent then uses that exact component everywhere instead of inventing new ones.
More of the library
Guides and articles
Save what you love to a sheet, connect Claude or Cursor, and every screen comes out in your style. Free for 3 days on annual plans, card needed.