70 packages · React · TypeScript · Zero deps

Tiny, polished
React primitives.

Headless hooks and beautifully styled components. Every package ships under 25 KB, has zero runtime dependencies, and is SSR-safe.

All packages

70 packages

Inputs

Form controls and interactive pickers 20
react-button
~6 KB

Button with solid/outline/ghost/link variants, four tones, sizes, ripple, loading, pulse, and pill radius.

variantsloadingripple
react-checkbox
~5 KB

Checkbox with label, hint, error, indeterminate state, sizes, tones, and async-aware onChange.

a11yindeterminateasync
react-switch
~5 KB

Toggle switch with sizes, tones, label positioning, and loading spinner inside the thumb.

toggleaccessibleanimated
react-text-input
~7 KB

Text input with leading/trailing slots, label, hint, error, clearable, password reveal, sizes, and tones.

slotsclearablepassword
react-number-input
~6 KB

Number input with increment/decrement, decimal/currency/percent formatting via Intl.NumberFormat, and step control.

currencyintlstep
react-phone-input
~7 KB

Phone number input with country selector, flag emoji, dial code, 30+ countries, and E.164 output.

countryflagdial code
react-otp-input
~20 KB

OTP / verification-code input with smart paste, full keyboard nav, masking, and group separators.

hooka11ypaste
react-color-input
~9 KB

Color input with swatch preview, picker popover, hex/rgb/hsl formats, preset swatches, and copy button.

pickerhexportal
react-tag-input
~8 KB

Tag input with chip-style tags, autocomplete dropdown, duplicate prevention, max limit, and custom validation.

chipsautocompletevalidation
react-rating
~18 KB

Star-rating with half-step support, hover preview, custom icons, CSS clip-path fills, and keyboard nav.

hookhalf-stepcustom icons
react-slider
~8 KB

Range slider with single and dual-thumb mode, marks, value tooltip, and full keyboard navigation.

rangedual thumbkeyboard
react-segmented-control
~17 KB

iOS-style segmented picker with buttery sliding indicator, ResizeObserver measurement, and generic type support.

hookanimatedgeneric
react-radio
~5 KB

Radio group with default, card, and button-group variants. Controlled and uncontrolled. Full keyboard navigation.

groupcard variantkeyboard
react-textarea
~6 KB

Textarea with auto-resize, character count, overflow limit, and the full form-control prop surface.

auto-resizechar counta11y
react-range
~7 KB

Single and dual-thumb range slider with snap marks, drag/always/never tooltip, and full keyboard navigation.

dual thumbmarkstooltip
react-combobox
~9 KB

Searchable combobox with async loading, option grouping, creatable mode, and ARIA combobox pattern.

asynccreatablegroups
react-multi-select
~9 KB

Multi-selection dropdown with chips, search, select-all with indeterminate, and grouped options.

chipsselect-allgroups
react-form
~6 KB

Headless form state with sync/async validation, validateOn strategies, controlled mode, and zero runtime deps.

validationasyncheadless
react-mention
~6 KB

Mention textarea with inline token highlighting, multi-trigger (@, #), async suggestions, and custom renderer.

@ triggerhighlightasync
react-signature
~5 KB

Canvas signature pad with velocity-sensitive width, ink taper, pen/brush/marker styles, erase mode, and toolbar.

canvasink tapertoolbar

Overlays

Floating, portal, and dialog UI 13
react-select
~12 KB

Custom select dropdown with single and multi-select, searchable, clearable, chips, and portal positioning.

multisearchableportal
react-date-picker
~10 KB

Accessible date picker with single and range selection, keyboard navigation, min/max dates, and portal calendar.

rangeportala11y
react-modal
~11 KB

Modal dialog and drawer with focus trap, scroll lock, Escape to close, and smooth enter/exit animations.

focus trapdraweranimated
react-tooltip
~6 KB

Accessible tooltip with smart flip positioning, animated entry, keyboard dismiss, and zero dependencies.

accessibleanimatedflip
react-popover
~7 KB

Click or hover triggered popover with rich content, title, arrow, and smart viewport flip.

portalrich contentflip
react-dropdown-menu
~8 KB

Dropdown menu with items, dividers, icons, four placements, and full keyboard navigation.

menukeyboardportal
react-command-palette
~12 KB

⌘K command palette with fuzzy search, keyboard nav, sections, recents, and rich item rendering.

⌘Kfuzzykeyboard
Drop-in for react-color
react-color
~11 KB

Drop-in replacement for react-color. Zero dependencies, ~11 KB. Hex/RGB/HSL/HSV pickers and pure color math.

color mathzero depsdrop-in
react-sheet
~8 KB

Bottom/side sheet with snap points, swipe-to-dismiss, focus trap, and smooth spring slide animation.

snap pointsswipesides
react-hover-card
~5 KB

Hover-triggered floating card with configurable open/close delay, auto-placement, and smooth scale animation.

delayauto-placementarrow
react-context-menu
~6 KB

Right-click context menu with nested sub-menus, full keyboard navigation, and first-letter jump.

sub-menuskeyboardfirst-letter
react-lightbox
~8 KB

Full-screen image lightbox with thumbnail strip, swipe-to-navigate, optional pinch/scroll zoom, and keyboard control.

thumbnailsswipezoom
react-spotlight
~4 KB

Onboarding spotlight with SVG cutout, animated morph between steps, multi-step tour, pulse ring, and backdrop blur.

onboardingtourSVG cutout

Feedback

Status, notifications, and display 14
react-toast
~10 KB

Toast notifications with singleton store — no context needed. Six positions, five types, progress bar, auto-dismiss.

singletonanimatedqueue
react-badge
~4 KB

Badge, chip, and tag component. Three variants, six tones, dot indicator, count, and dismissible.

chiptagdismissible
react-avatar
~6 KB

Avatar with image, initials fallback, presence status dot, border ring, and group stacking.

initialsgroupstatus
react-progress
~6 KB

Progress bar and circular ring. Indeterminate state, animated stripe, five tones, value display.

barcircleindeterminate
react-copy-button
~7 KB

Copy-to-clipboard with headless hook, styled variant, animations, async source, and tooltip.

hookheadlessanimated
react-alert
~5 KB

Alert banner with four variants, six tones, icon slot, action slot, dismissible, and slide-out animation.

dismissibletonesicon
react-spinner
~4 KB

Loading spinner with five animation variants (spin, dots, bars, ring, pulse), overlay mode, and six tones.

5 variantsoverlaytones
react-chip
~4 KB

Chip/tag with selectable and dismissible modes, avatar slot, icon slots, and spring-animate state changes.

selectabledismissibleavatar
react-empty-state
~5 KB

Empty state with five presets, icon/image slot, title, description, and primary + secondary action slots.

presetsillustrationactions
react-avatar-group
~4 KB

Avatar group with count overflow badge, tooltip-per-avatar, shape and spacing control.

+N overflowtooltipshapes
react-stat
~5 KB

Metric stat card with count-up animation, auto-computed trend arrow, prefix/suffix, and loading skeleton.

count-uptrendloading
react-card
~4 KB

Card with elevated/outlined/filled/ghost variants, clickable with hover/active states, header/footer slots, and polymorphic `as` prop.

clickablepolymorphicslots
react-divider
~3 KB

Horizontal and vertical divider with centered label, solid/dashed/dotted line styles, and six tones.

labeltonesorientations
react-split
~4 KB

Resizable split panel supporting N panes, collapsible sides, snap points, persistent sizes, and double-click equalize.

N-panecollapsiblesnap

Navigation

Layout and step-by-step flow 8
Zero dependencies
TypeScript-first
SSR-safe
Accessible (ARIA)
Headless + Styled
React 17–19