@fluid
Fluid Functionalism is a ~22-component shadcn registry focused on motion-as-information: every animation makes a state change legible rather than decorative. Components use Framer Motion springs, proximity-hover highlights, and font-weight transitions. Notable AI-oriented components include ThinkingIndicator (morphing SVG status), ThinkingSteps (chain-of-thought display), InputMessage (auto-resizing chat composer), and AskUserQuestions (stepped single/multi-select question flow). Also includes accordion, badge, button, checkbox-group, color-picker (HEX/RGB/HSL/OKLCH, eyedropper), dialog, dropdown, input-group, radio-group, select, slider, surfaces (8 elevation levels), switch, table, tabs, tabs-subtle, and tooltip. Built on Radix UI, Tailwind CSS v4, and React 19. Free, MIT licensed. Use for: building AI chat and agent interfaces where interaction feedback needs to feel calm and precise, or adding a spring-physics design language to a shadcn project.
Install this registry
npx shadcn@latest add https://www.fluidfunctionalism.com/r/registry.json pnpm dlx shadcn@latest add https://www.fluidfunctionalism.com/r/registry.json bunx shadcn@latest add https://www.fluidfunctionalism.com/r/registry.json curl -s https://www.fluidfunctionalism.com/r/registry.json Components
84 totalEight-level surface and shadow ladder for elevation. Light: two color steps then flat white, differentiated by shadow. Dark: additive white-opacity ladder with…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/surfaces.json Shared interaction-state tokens: surface-relative hover/active overlays (bg-hover, bg-active), the selected fill, the see-through secondary-button tint (--tint…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/tokens.json Six type roles (display, title, subtitle, body, caption, micro), each a font size and a line height, at the default and compact steps of the size ladder. Adds …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/type-scale.json The type scale and prose styles in one install. size-context brings the 6 roles, typeClass(), and the --fs-* / --lh-* tokens; the prose styles set rendered mar…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/typography.json Utility function for merging Tailwind CSS classes with clsx and tailwind-merge.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/utils.json Spring animation token presets for Motion (fast, moderate, slow).
npx shadcn@latest add https://www.fluidfunctionalism.com/r/springs.json Variable font weight tokens for Inter (normal, medium, semibold, bold) using font-variation-settings.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/font-weight.json React context that tracks the current substrate elevation level. Elevated components (Dropdown, Select, etc.) read it via useSurface() and render at substrate …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/surface-context.json Static lookup tables for bg-surface-N and shadow-surface-N utilities. Required because Tailwind v4 cannot detect template-literal class names.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/surface-classes.json Elevation primitive. Wraps the read-substrate / compute-level / apply-classes / re-provide-context pattern into one component. Pulls in the surface theme token…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/elevated.json Shared popup chrome for the dropdown, select, and combobox popups: side-aware enter/exit motion classes driven by the positioner's resolved data-side, the Scro…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/popup.json Copies an object without the given keys. Components use it to drop props before spreading the rest onto an element, without leaving unused bindings behind.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/omit.json React context provider for runtime shape variant switching (pill or rounded). Controls border-radius across all Fluid Functionalism components.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/shape-context.json React context provider for the two-step size ladder (36px default, 28px compact). Controls control heights, text, icon, and padding scale across all Fluid Func…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/size-context.json Named icon slots with a Lucide default set; swap any icon via IconProvider.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/icon-context.json Tabler glyphs for every icon slot the components look up. Pass the map to IconProvider (or FluidProvider's icons prop) and every component draws Tabler.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/icons-tabler.json Phosphor glyphs for every icon slot the components look up. Pass the map to IconProvider (or FluidProvider's icons prop) and every component draws Phosphor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/icons-phosphor.json HugeIcons glyphs for every icon slot the components look up. Pass the map to IconProvider (or FluidProvider's icons prop) and every component draws HugeIcons.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/icons-hugeicons.json Untitled UI glyphs for every icon slot the components look up. Pass the map to IconProvider (or FluidProvider's icons prop) and every component draws Untitled …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/icons-untitledui.json One wrapper for the whole system: reduced motion that follows the OS, the radius (rounded or pill), the size step (default or compact), and the icon set.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/fluid-provider.json Fluid hover: the hook that tracks the item nearest the cursor within a container, and the one highlight component that springs between the rects it measures.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/use-fluid-hover.json Detects touch-primary devices (coarse pointer + touch points), updating live on pointer-mode and media-query changes. Adapted from Lina (https://lina.sameer.sh…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/use-touch-primary.json Gates a popup's keyboard focus ring on keyboard use: seeded at open from the focused element's :focus-visible state, then earned by navigation keys inside the …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/use-keyboard-nav-gate.json React hook + renderer for the selected-background merge/split animation. When one row bridges or splits two contiguous selected runs, their inner edges glide t…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/use-merge-split.json Collapsible accordion with animated height transitions, spring-animated chevron, and fluid hover in grouped mode. Built on Radix UI Accordion.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/accordion.json Collapsible accordion with animated height transitions, spring-animated chevron, and fluid hover in grouped mode. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/accordion.json Stepped question flow with numbered options, keyboard shortcuts (1–9), single or multi-select, inline 'other' text input, optional skip, fluid hover, and multi…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/ask-user-questions.json Compact label with solid and dot variants, Tailwind color palette, and three sizes.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/badge.json Status message built from parts (Banner, BannerTitle, BannerDescription, BannerActions, BannerAction): 5 statuses (filled glyphs for info, success, warning and…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/banner.json Animated button with variants (primary, secondary, tertiary, ghost), icon support, loading spinner, and fluid font-weight transitions on hover.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/button.json Animated button with variants (primary, secondary, tertiary, ghost), icon support, loading spinner, and fluid font-weight transitions on hover. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/button.json Dropdown menu with fluid hover, animated selection indicator, inline panel or triggered popup with collision-aware positioning, typeahead, and close-on-select.…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/dropdown.json Dropdown menu with fluid hover, animated selection indicator, inline panel or triggered popup with collision-aware positioning, typeahead, and close-on-select.…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/dropdown.json Animated checkbox group with fluid hover, contiguous selection merging, and spring-animated check marks. Built on Radix UI Checkbox.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/checkbox-group.json Animated checkbox group with fluid hover, contiguous selection merging, and spring-animated check marks. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/checkbox-group.json Animated radio group with fluid hover, spring-animated selection dot, and optional Radix UI integration. Supports both controlled index and value-based APIs.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/radio-group.json Animated radio group with fluid hover, spring-animated selection dot. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/radio-group.json Animated modal dialog with spring-based scale and opacity transitions in three widths (sm, lg, and an xl canvas for composed layouts such as a sidebar), plus a…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/dialog.json Animated modal dialog with spring-based scale and opacity transitions in three widths (sm, lg, and an xl canvas for composed layouts such as a sidebar), plus a…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/dialog.json Slide-in navigation drawer with scrim, focus trap, and scroll lock. Radix flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/mobile-drawer.json Slide-in navigation drawer with scrim, focus trap, and scroll lock. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/mobile-drawer.json Read-only input with a copy-to-clipboard button and animated check feedback. Supports optional label and shape context.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/input-copy.json Grouped input fields with fluid hover highlighting, animated label transitions, optional icons, and error states.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/input-group.json Chat-style message composer with auto-resizing textarea, drag-and-drop file attachments (PNG / JPEG / PDF), flexible left/right action slots, and a built-in se…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/input-message.json Read-only square preview of a File. Images render via object-cover; PDFs render their first page via pdfjs; a spinner shows while either resolves. Adapts its c…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/file-thumbnail.json Sonner-style stack of queued composer messages: collapsed cards fan out on hover (tap on touch), drag to reorder, a gutter arrow counts the overflow, edit/remo…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/queued-stack.json A single chat transcript entry with baked-in entrance and layout motion. Right-aligned accent bubble for the user, left-aligned muted bubble for the assistant,…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/chat-message.json Horizontal tab navigation with fluid hover, animated pill selection indicator, and fluid font-weight transitions. Radix flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/tabs-subtle.json Horizontal tab navigation with fluid hover, animated pill selection indicator, and fluid font-weight transitions. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/tabs-subtle.json Animated toggle switch with spring-based thumb animation and fluid font-weight label transitions. Built on Radix UI Switch.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/switch.json Animated toggle switch with spring-based thumb animation and fluid font-weight label transitions. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/switch.json Carousel dots, static or on autoplay: fluid-hover click areas, and a current pill that fills over each slide's duration.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/carousel-dots.json Animated table with fluid hover row highlighting and fluid border transitions. Includes TableHeader, TableBody, TableRow, TableHead, and TableCell sub-componen…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/table.json shadcn's compositional card (Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter) with the Fluid Functionalism layer: transparent…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/card.json Refined, composable app sidebar with offcanvas collapse, floating and inset variants, a mobile drawer, cookie-persisted state, keyboard shortcut, and fluid-hov…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar.json Refined, composable app sidebar with offcanvas collapse, floating and inset variants, a mobile drawer, cookie-persisted state, keyboard shortcut, and fluid-hov…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/sidebar.json Shared popup geometry for sidebar-anchored dropdown menus: trigger width +10px shifted -4px, items on the rows' leading and text axes, trailing glyphs on the t…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar-menu-grid.json Workspace brand row for a sidebar header: 20px tile on the rows' leading axis, name pinned to the 32px text axis, trigger cross-fading into the tile's slot whi…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar-workspace-header.json Footer identity row: a 20px avatar centred on the rows' leading icon axis, chevron on the trailing action axis, and an upward user menu on the shared sidebar g…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar-user-footer.json Header search on the menu rows' rhythm: leading icon on the rows' 16px axis, text on the 32px axis, and a hover-revealed keystroke chip at the trailing edge.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar-search-field.json The main region's topbar: h-12 with the trigger that hides while the rail peeks and fades back in at its settled spot after a pin.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar-inset-topbar.json A complete app shell: workspace header with the peek cross-fade, search on the menu rows' rhythm with a hover-revealed shortcut chip, collapsible sections with…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/sidebar-app.json A settings dialog: the xl Dialog as a canvas, a non-collapsing Sidebar of sections down its left edge, and a scrolling panel of controls — switches, selects, a…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/dialog-sidebar.json Animated slider with spring-snapped thumb, step dots, range mode, and click-to-edit value display. Built on Radix UI Slider.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/slider.json Animated slider with spring-snapped thumb, step dots, range mode, and click-to-edit value display. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/slider.json Segmented control tabs with sliding active indicator, fluid hover, and spring animations. Built on Radix UI Tabs.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/tabs.json Segmented control tabs with sliding active indicator, fluid hover, and spring animations. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/tabs.json Animated loading indicator with morphing SVG path (circle to infinity loop) and shimmer text rotation. Cycles through customizable status words.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/thinking-indicator.json Page reveals in 1 class, on the existing spring tiers: slow for landing, moderate for product. .reveal-landing for a page read once: the hero rises and scales …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/reveal.json Scroll container with a restyled overlay scrollbar that stays discoverable on hover and follows the shape system. Falls back to native overflow scrolling on to…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/scroll-area.json Scroll container with a restyled overlay scrollbar that stays discoverable on hover and follows the shape system. Falls back to native overflow scrolling on to…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/scroll-area.json Animated select menu with collision-aware positioning, typeahead, fluid hover, spring-animated popover, and animated checkmark. Radix flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/select.json Animated select menu with collision-aware positioning, typeahead, fluid hover, spring-animated popover, and animated checkmark. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/select.json Type-to-filter combobox with single or multiple (chips, merged selection backgrounds) selection: a text field that filters a list as you type, with keyboard hi…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/combobox.json Type-to-filter combobox with single or multiple (chips, merged selection backgrounds) selection: a text field that filters a list as you type, with keyboard hi…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/combobox.json Search field over a list of actions: type to filter, arrows to move the fluid hover highlight, Enter to run. Grouped rows with icons, descriptions, and shortcu…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/command-menu.json Month grid on DayPicker v10 for a single day or a range: one fluid hover highlight across one or two months that follows keyboard focus, a range band that prev…
npx shadcn@latest add https://www.fluidfunctionalism.com/r/calendar.json Field or ghost trigger for a date, a range, or a date and a time: a calendar popover that opens on the selected day, optional range presets, and editable time …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/date-picker.json Field or ghost trigger for a date, a range, or a date and a time: a calendar popover that opens on the selected day, optional range presets, and editable time …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/date-picker.json Floating tooltip with spring-based animations, configurable placement, and rich content support.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/tooltip.json Floating tooltip with spring-based animations, configurable placement, and rich content support. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/tooltip.json Collapsible AI reasoning steps with animated expand/collapse, per-step icons, sources, and nested details. Radix flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/thinking-steps.json Collapsible AI reasoning steps with animated expand/collapse, per-step icons, sources, and nested details. Base UI flavor.
npx shadcn@latest add https://www.fluidfunctionalism.com/r/base/thinking-steps.json Color picker with HEX, RGB, HSL, and OKLCH formats, alpha channel, optional swatches, and a popover trigger. Built on Base UI's Popover, Menu, and NumberField …
npx shadcn@latest add https://www.fluidfunctionalism.com/r/color-picker.json