sh4dcnv2 · atlas
← libraries

@whiskeyjack

A Tauri-first design system: thumb-first components with Metro-style pivot navigation, frosted bottom nav, and tap-again confirmations, on a CSS-variable token pipeline. Hardened across nine shipping apps before extraction.

62 components react shadcn-cli

Install this registry

shadcn (npm) npx shadcn@latest add https://whiskeyjack.net/r/registry.json
pnpm pnpm dlx shadcn@latest add https://whiskeyjack.net/r/registry.json
bun bunx shadcn@latest add https://whiskeyjack.net/r/registry.json
fetch registry curl -s https://whiskeyjack.net/r/registry.json

Components

62 total
ActionPill ui

Toolbar pill of icon actions that collapse and grow as the page's context changes.

npx shadcn@latest add https://whiskeyjack.net/r/action-pill.json
AppPanes ui

The three-phase content row below a floating header: optional left sidebar, main region, optional right rail, each gated on the layout variants.

npx shadcn@latest add https://whiskeyjack.net/r/app-panes.json
AppShell ui

The app layout skeleton: a fixed-height shell or a document scroller, with a frosted header, nav pills, and the main scroll region.

npx shadcn@latest add https://whiskeyjack.net/r/app-shell.json
Badge ui

Tone-tinted pill label on the semantic color scales, for status and classification at a glance.

npx shadcn@latest add https://whiskeyjack.net/r/badge.json
Beam ui

A travelling light around an element's edge, for the one thing on a screen that needs the eye.

npx shadcn@latest add https://whiskeyjack.net/r/beam.json
BottomDrawer ui

Bottom sheet on mobile, centered dialog on desktop. Swipe, backdrop, Escape, and hardware Back all dismiss it.

npx shadcn@latest add https://whiskeyjack.net/r/bottom-drawer.json
BottomNav ui

Pill-shaped frosted bottom navigation, hand-composed from BottomNavItem and BottomNavAction.

npx shadcn@latest add https://whiskeyjack.net/r/bottom-nav.json
ButtonRow ui

Side-by-side buttons that share a row and stack full-width when they no longer fit.

npx shadcn@latest add https://whiskeyjack.net/r/button-row.json
Button ui

The action button. Labels wrap to two lines rather than overflowing, so long translated text stays inside the pill.

npx shadcn@latest add https://whiskeyjack.net/r/button.json
CalendarHeatmap ui

GitHub-contributions-style activity heatmap, in squares or check-in dots.

npx shadcn@latest add https://whiskeyjack.net/r/calendar-heatmap.json
Card ui

The elevated surface primitive, with header, title, description, content, and footer slots.

npx shadcn@latest add https://whiskeyjack.net/r/card.json
CheckboxGroup ui

Pick-any tile grid: the multi-select counterpart to ToggleGroup.

npx shadcn@latest add https://whiskeyjack.net/r/checkbox-group.json
Checkbox ui

A single checkbox, with the mixed state a parent selection needs.

npx shadcn@latest add https://whiskeyjack.net/r/checkbox.json
ColorInput ui

Focusable swatch button that opens the OS-native color picker and returns the chosen hex.

npx shadcn@latest add https://whiskeyjack.net/r/color-input.json
ConfirmButton ui

Tap-again-to-confirm button for a destructive or disruptive action, with the armed state announced to assistive tech.

npx shadcn@latest add https://whiskeyjack.net/r/confirm-button.json
DisclosureToggle ui

Caret-and-label text button that expands and collapses an adjacent region, with aria-expanded and the touch and focus floors built in.

npx shadcn@latest add https://whiskeyjack.net/r/disclosure-toggle.json
DrawerAction ui

A single action in a BottomDrawer footer: plain, form-submit, or tap-again-confirm.

npx shadcn@latest add https://whiskeyjack.net/r/drawer-action.json
EmptyState ui

Centered icon tile, title, subtitle, and optional call to action for an empty list or a fresh install.

npx shadcn@latest add https://whiskeyjack.net/r/empty-state.json
HeaderStandIn ui

Header copy of a field whose primary lives in a scroller: grows in while the primary is scrolled away, collapses when it returns.

npx shadcn@latest add https://whiskeyjack.net/r/header-stand-in.json
Input ui

Labeled text field that wires a real label to the input for you, with an optional hint, error and password reveal.

npx shadcn@latest add https://whiskeyjack.net/r/input.json
MobileBottomNav ui

Data-driven bottom nav that collapses its items into a hamburger menu when they and the toolbar would overflow the viewport.

npx shadcn@latest add https://whiskeyjack.net/r/mobile-bottom-nav.json
Notice ui

Inline tone-tinted status box for context-bound messages, with each tone setting its own ARIA live-region role.

npx shadcn@latest add https://whiskeyjack.net/r/notice.json
PageTitleProvider ui

React context that lets any page set the desktop header title.

npx shadcn@latest add https://whiskeyjack.net/r/page-title-context.json
ProgressBar ui

The accent progress primitive: determinate fill, busy sweep, open-ended indicator, or segment accumulation against a tally.

npx shadcn@latest add https://whiskeyjack.net/r/progress-bar.json
PullToRefreshIndicator ui

Frosted pill and spinner that slides down as you pull; the visual companion to usePullToRefresh.

npx shadcn@latest add https://whiskeyjack.net/r/pull-to-refresh-indicator.json
ReorderList ui

Drag-to-reorder list with an accessible arrow-button fallback, so it works by pointer, touch, and keyboard.

npx shadcn@latest add https://whiskeyjack.net/r/reorder-list.json
ScrollIndicator ui

Read-only auto-hiding scroll thumb for scrollers whose native scrollbar would run behind floating chrome.

npx shadcn@latest add https://whiskeyjack.net/r/scroll-indicator.json
SearchField ui

Search pill: a rounded-full text input with a leading magnifier and a trailing clear button.

npx shadcn@latest add https://whiskeyjack.net/r/search-field.json
SegmentedControl ui

Compact pick-one control: one bordered strip, divided into segments.

npx shadcn@latest add https://whiskeyjack.net/r/segmented-control.json
Select ui

Styled native select for a one-of-n choice with more options than a segmented control can show.

npx shadcn@latest add https://whiskeyjack.net/r/select.json
SidebarTabs ui

TabBar's wide-layout counterpart: a vertical tab rail for a desktop sidebar, with each item's progress pinned to its bottom edge.

npx shadcn@latest add https://whiskeyjack.net/r/sidebar-tabs.json
Slider ui

Range input with an optional mono value readout beside its label.

npx shadcn@latest add https://whiskeyjack.net/r/slider.json
TabBar ui

Metro-style pivot tabs with a sliding accent underline that doubles as each tab's progress bar.

npx shadcn@latest add https://whiskeyjack.net/r/tab-bar.json
Textarea ui

Multi-line field with an optional character readout and auto-grow.

npx shadcn@latest add https://whiskeyjack.net/r/textarea.json
Toast ui

Floating notification pill fixed below the header, for app-level messages and background work.

npx shadcn@latest add https://whiskeyjack.net/r/toast.json
ToggleGroup ui

Segmented tile control for one-of-n choices, such as a light / dark / system theme picker.

npx shadcn@latest add https://whiskeyjack.net/r/toggle-group.json
Toggle ui

Switch control with a label and optional description, for a single on/off setting.

npx shadcn@latest add https://whiskeyjack.net/r/toggle.json
applyAccentColor lib

Retint the whole UI from one accent color, with a WCAG-legible foreground picked automatically.

npx shadcn@latest add https://whiskeyjack.net/r/accent-foreground.json
announce lib

Announce a message to assistive technology through a shared live region.

npx shadcn@latest add https://whiskeyjack.net/r/announce.json
compactControlClass lib

The geometry of a compact control: a small pill, chip or segment that sits on a line with body text.

npx shadcn@latest add https://whiskeyjack.net/r/compact-control.json
isRTL lib

Detect right-to-left direction for JS-driven interactions that CSS cannot reach.

npx shadcn@latest add https://whiskeyjack.net/r/direction.json
applyMaterialYou lib

Map Android's wallpaper-derived Material You palette onto the design-system surface and accent tokens.

npx shadcn@latest add https://whiskeyjack.net/r/material-you.json
useMergedRefs lib

Combine an internal ref with a forwarded one.

npx shadcn@latest add https://whiskeyjack.net/r/merge-refs.json
optionTileClass lib

The selectable-tile class recipe shared by ToggleGroup and CheckboxGroup.

npx shadcn@latest add https://whiskeyjack.net/r/option-tile.json
useDragReorder hook

Drag-to-reorder list logic with an accessible keyboard path, behind ReorderList.

npx shadcn@latest add https://whiskeyjack.net/r/use-drag-reorder.json
useFocusTrap hook

Trap focus inside an overlay while it is open, and restore it to the trigger on close.

npx shadcn@latest add https://whiskeyjack.net/r/use-focus-trap.json
useInputType hook

Detect touch versus mouse input, for controls that phrase or size themselves differently.

npx shadcn@latest add https://whiskeyjack.net/r/use-input-type.json
useLayoutGate hook

Read the wide / xlwide layout gates in JS, for a decision CSS cannot express.

npx shadcn@latest add https://whiskeyjack.net/r/use-layout-gate.json
useRegisterNavReset hook

Double-tap the nav item for the page you are already on to bring the top and the active tab back into view, then to go to the page's start.

npx shadcn@latest add https://whiskeyjack.net/r/use-nav-reset.json
usePullToRefresh hook

Touch pull-to-refresh that coexists with tab swipes and overscroll-behavior: none.

npx shadcn@latest add https://whiskeyjack.net/r/use-pull-to-refresh.json
useReducedMotion hook

Respect the user's reduced-motion preference in JS-driven motion.

npx shadcn@latest add https://whiskeyjack.net/r/use-reduced-motion.json
useRouteFocus hook

Move focus to the main content on route change, so keyboard and screen-reader users land in the new page.

npx shadcn@latest add https://whiskeyjack.net/r/use-route-focus.json
useScrollFade hook

Vertical edge-fade masks for a height-capped scrollable panel; returns the CSS class to apply.

npx shadcn@latest add https://whiskeyjack.net/r/use-scroll-fade.json
useScrollIndicator hook

Scroll metrics (thumb size, position, visibility) that drive ScrollIndicator.

npx shadcn@latest add https://whiskeyjack.net/r/use-scroll-indicator.json
useScrollRegion / useScrollReset / useScrollMemory hook

Scroll the app's real scroll region – to the top on a first visit, back to where you left it on a return – whichever scroller the Layout chose.

npx shadcn@latest add https://whiskeyjack.net/r/use-scroll-region.json
useSlidingIndicator hook

Measures the active item in a tab-like container so one element can animate between items instead of the highlight jumping.

npx shadcn@latest add https://whiskeyjack.net/r/use-sliding-indicator.json
useStandInTarget hook

Watches a field's primary instance and reports when it scrolls out of view, so a HeaderStandIn can speak for it.

npx shadcn@latest add https://whiskeyjack.net/r/use-stand-in-target.json
useSwipeNavigation hook

Swipe between tabs with an axis-locked touch gesture that flips direction under RTL.

npx shadcn@latest add https://whiskeyjack.net/r/use-swipe-navigation.json
useTabBarFade hook

Edge-fade masks for a horizontally overflowing tab strip; returns the CSS class to apply.

npx shadcn@latest add https://whiskeyjack.net/r/use-tab-bar-fade.json
useTheme hook

The theme engine: light, dark, system, and OLED, with persistence and theme-color meta kept in sync.

npx shadcn@latest add https://whiskeyjack.net/r/use-theme.json
useTravelDirection hook

Names which way a sliding indicator is travelling, so each of its edges can take its own easing.

npx shadcn@latest add https://whiskeyjack.net/r/use-travel-direction.json
cn lib

Tailwind class merging (clsx plus tailwind-merge).

npx shadcn@latest add https://whiskeyjack.net/r/utils.json