# liquefy-ui — full reference > Generated from source. Types are the real exported declarations, tokens are the > real values in the shipped stylesheet, and only names exported from the package > entry point are listed as importable. ```bash pnpm add @liquefy-ui/react @liquefy-ui/core @liquefy-ui/icons ``` ```tsx import { LiquefyProvider, LiquidButton } from '@liquefy-ui/react' import '@liquefy-ui/react/styles.css' // Using Tailwind v4? Import '@liquefy-ui/react/tailwind.css' instead, before // 'tailwindcss', and the bridged tokens plus the correct layer order come with it. export function App() { return ( Create magic ) } ``` Or copy the source into your own repo with the shadcn CLI. The namespace is registered in shadcn's registry directory, so it resolves with nothing added to `components.json`: ```bash npx shadcn@latest add @liquefy-ui/liquid-button ``` The `https://liquefy-ui.com/r/.json` URL that namespace resolves to still works, and is what a CLI too old to know the directory needs. Rules an agent should not have to guess: - Every component is a client component. The npm bundles carry a `'use client'` banner and so does every file in the registry, so importing from a Next.js server component is fine. Only your own handlers need a directive of their own. - `LiquefyProvider` is required. Components read tint, spacing, motion and WebGL settings from it. A nested provider does **not** inherit from the one above it: unset props fall back to the library defaults, so name what you want to keep. - There is no `variant="primary"` on `LiquidButton`. Buttons vary by `size`, `tint`, `isLoading`, `lens` and `webgl`. `variant` exists on `LiquidSurface` (`'clear' | 'tinted'`) and `LiquidChip`. - Every component accepts a `styles` prop: CSS properties plus the `p`/`px`/`mt`/ `w`/`h`/`size`/`bg`/`radius` shorthands on the `--lq-space` scale, `$token` references, responsive objects like `{ base: 1, md: 3 }`, and state keys such as `_hover`, `_focusVisible`, `_disabled`, `_dark`. There is no `styled()` and no `sx` prop. - Everything is imported from the package root. There are no deep entry points, and names not listed below — `compileLiquidStyles`, `useLiquefyPortalContainer`, the internal glyphs — are not exported from it. - Overlays (Dialog, Drawer, Menu, Select, Tooltip) are built on Base UI and render into a portal inside the provider. Focus handling, Escape and collision-aware placement are already done; do not re-implement them. - Accordion headers are in the normal tab order rather than a roving composite, which is what WAI-ARIA specifies. Arrow keys do not move between them. - The library does not read `prefers-reduced-motion` or `prefers-reduced-transparency` itself. Map them to the `motion` and `transparency` props if the product wants that. ## Components ### GlassCard A content card with eyebrow, title, description, body and footer slots on the liquid surface. Import: `import { GlassCard } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/glass-card.md Docs: https://liquefy-ui.com/#/components/card Registry: `npx shadcn@latest add @liquefy-ui/glass-card` ```ts export type GlassCardProps = Omit & { children: ReactNode description?: ReactNode eyebrow?: ReactNode footer?: ReactNode title?: ReactNode } ``` ### GlassDock, DockItem A macOS-style dock: a glass rail of icon buttons that magnify under the pointer. Import: `import { GlassDock, DockItem } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/glass-dock.md Docs: https://liquefy-ui.com/#/components/dock Registry: `npx shadcn@latest add @liquefy-ui/glass-dock` ```ts export type GlassDockProps = HTMLAttributes & LiquidStyleProps & { children: ReactNode label?: string position?: 'inline' | 'floating' } export type DockItemProps = ButtonHTMLAttributes & LiquidStyleProps & { active?: boolean icon: ReactNode label: string } ``` ### LiquidAccordion, LiquidAccordionItem Stacked disclosure panels with real headings and a height-measured open animation. Import: `import { LiquidAccordion, LiquidAccordionItem } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-accordion.md Docs: https://liquefy-ui.com/#/components/accordion Registry: `npx shadcn@latest add @liquefy-ui/liquid-accordion` ```ts export type LiquidAccordionProps = Omit & { children: ReactNode defaultValue?: string[] multiple?: boolean onValueChange?: (value: string[]) => void value?: string[] } export type LiquidAccordionItemProps = Omit, 'title'> & LiquidStyleProps & { children: ReactNode subtitle?: ReactNode title: ReactNode value: string } ``` ### LiquidAlert An inline status message in four severities, with an optional dismiss button. Import: `import { LiquidAlert } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-alert.md Docs: https://liquefy-ui.com/#/components/alert Registry: `npx shadcn@latest add @liquefy-ui/liquid-alert` ```ts export type LiquidAlertSeverity = 'info' | 'success' | 'warning' | 'danger' export type LiquidAlertProps = Omit, 'title'> & LiquidStyleProps & { action?: ReactNode children: ReactNode closeLabel?: string icon?: ReactNode onClose?: () => void severity?: LiquidAlertSeverity title?: ReactNode } ``` ### LiquidAvatar, LiquidAvatarGroup A circular avatar with image, initials and status dot, plus an overlapping group. Import: `import { LiquidAvatar, LiquidAvatarGroup } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-avatar.md Docs: https://liquefy-ui.com/#/components/avatar Registry: `npx shadcn@latest add @liquefy-ui/liquid-avatar` ```ts export type LiquidAvatarProps = HTMLAttributes & LiquidStyleProps & { alt?: string fallback?: ReactNode name?: string size?: 'sm' | 'md' | 'lg' | 'xl' src?: string tint?: string } export type LiquidAvatarGroupProps = HTMLAttributes & LiquidStyleProps & { children: ReactNode max?: number size?: LiquidAvatarProps['size'] total?: number } ``` ### LiquidBadge A small count or status pill for hanging off icons and labels. Import: `import { LiquidBadge } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-badge.md Docs: https://liquefy-ui.com/#/components/badge Registry: `npx shadcn@latest add @liquefy-ui/liquid-badge` ```ts export type LiquidBadgeProps = HTMLAttributes & LiquidStyleProps & { children?: ReactNode count?: number dot?: boolean max?: number showZero?: boolean tint?: string } ``` ### LiquidBreadcrumbs A trail of links with glyph separators and a current-page marker. Import: `import { LiquidBreadcrumbs } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-breadcrumbs.md Docs: https://liquefy-ui.com/#/components/breadcrumbs Registry: `npx shadcn@latest add @liquefy-ui/liquid-breadcrumbs` ```ts export type LiquidBreadcrumbItem = { href?: string icon?: ReactNode label: ReactNode onClick?: () => void } export type LiquidBreadcrumbsProps = HTMLAttributes & LiquidStyleProps & { items: LiquidBreadcrumbItem[] label?: string separator?: ReactNode } ``` ### LiquidButton The primary action control: WebGL rim light, jelly press spring and a loading state. Import: `import { LiquidButton } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-button.md Docs: https://liquefy-ui.com/#/components/button Registry: `npx shadcn@latest add @liquefy-ui/liquid-button` ```ts export type LiquidButtonProps = ButtonHTMLAttributes & LiquidStyleProps & { children: ReactNode iconAfter?: ReactNode iconBefore?: ReactNode isLoading?: boolean lens?: boolean size?: 'sm' | 'md' | 'lg' tint?: string webgl?: boolean } ``` ### LiquidCheckbox A checkbox with a springy tick, indeterminate state and label support. Import: `import { LiquidCheckbox } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-checkbox.md Docs: https://liquefy-ui.com/#/components/checkbox Registry: `npx shadcn@latest add @liquefy-ui/liquid-checkbox` ```ts export type LiquidCheckboxProps = Omit, 'onChange'> & LiquidStyleProps & { checked?: boolean defaultChecked?: boolean hint?: string indeterminate?: boolean label?: ReactNode onCheckedChange?: (checked: boolean) => void } ``` ### LiquidChip A compact tag that can be selected, tinted and dismissed. Import: `import { LiquidChip } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-chip.md Docs: https://liquefy-ui.com/#/components/chip Registry: `npx shadcn@latest add @liquefy-ui/liquid-chip` ```ts export type LiquidChipProps = HTMLAttributes & LiquidStyleProps & { children: ReactNode deleteLabel?: string icon?: ReactNode onDelete?: () => void selected?: boolean size?: 'sm' | 'md' tint?: string variant?: 'clear' | 'tinted' } ``` ### LiquidDialog A modal on Base UI: trapped focus, inert background and wired-up title and description. Import: `import { LiquidDialog } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-dialog.md Docs: https://liquefy-ui.com/#/components/dialog Registry: `npx shadcn@latest add @liquefy-ui/liquid-dialog` ```ts export type LiquidDialogProps = Omit, 'title'> & LiquidStyleProps & { children: ReactNode closeLabel?: string description?: ReactNode onOpenChange: (open: boolean) => void open: boolean title: ReactNode } ``` ### LiquidDivider A hairline rule, horizontal or vertical, with optional inline content. Import: `import { LiquidDivider } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-divider.md Docs: https://liquefy-ui.com/#/components/divider Registry: `npx shadcn@latest add @liquefy-ui/liquid-divider` ```ts export type LiquidDividerProps = HTMLAttributes & LiquidStyleProps & { children?: ReactNode orientation?: 'horizontal' | 'vertical' } ``` ### LiquidDrawer A side panel that slides from the left, right or bottom edge, on Base UI Dialog. Import: `import { LiquidDrawer } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-drawer.md Docs: https://liquefy-ui.com/#/components/drawer Registry: `npx shadcn@latest add @liquefy-ui/liquid-drawer` ```ts export type LiquidDrawerProps = Omit, 'title'> & LiquidStyleProps & { children: ReactNode closeLabel?: string onOpenChange: (open: boolean) => void open: boolean side?: 'left' | 'right' | 'bottom' /** Flick the panel towards its own edge to dismiss it. Touch and pen only. */ swipeToClose?: boolean title?: ReactNode } ``` ### LiquidIconButton A square icon-only button that takes its accessible name from a label prop. Import: `import { LiquidIconButton } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-icon-button.md Docs: https://liquefy-ui.com/#/components/icon-button Registry: `npx shadcn@latest add @liquefy-ui/liquid-icon-button` ```ts export type LiquidIconButtonProps = ButtonHTMLAttributes & LiquidStyleProps & { children: ReactNode label: string shape?: 'circle' | 'rounded' size?: 'sm' | 'md' | 'lg' tint?: string } ``` ### LiquidList, LiquidListItem, LiquidListSubheader A glass list with items, descriptions, leading icons, trailing slots and subheaders. Import: `import { LiquidList, LiquidListItem, LiquidListSubheader } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-list.md Docs: https://liquefy-ui.com/#/components/list Registry: `npx shadcn@latest add @liquefy-ui/liquid-list` ```ts export type LiquidListProps = Omit & { children: ReactNode inset?: boolean } export type LiquidListItemProps = LiHTMLAttributes & LiquidStyleProps & { children: ReactNode chevron?: boolean description?: ReactNode end?: ReactNode icon?: ReactNode onActivate?: () => void } export type LiquidListSubheaderProps = HTMLAttributes & LiquidStyleProps ``` ### LiquidMenu A dropdown action menu on Base UI: arrow keys, typeahead and collision-aware placement. Import: `import { LiquidMenu } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-menu.md Docs: https://liquefy-ui.com/#/components/menu Registry: `npx shadcn@latest add @liquefy-ui/liquid-menu` ```ts export type LiquidMenuItemDef = { danger?: boolean disabled?: boolean icon?: ReactNode label: ReactNode onSelect?: () => void shortcut?: string type?: 'item' } | { type: 'separator' } export type LiquidMenuProps = LiquidStyleProps & { align?: 'start' | 'end' className?: string items: LiquidMenuItemDef[] style?: CSSProperties trigger: ReactElement> } ``` ### LiquidPagination A page strip with ellipsis truncation and previous/next controls. Import: `import { LiquidPagination } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-pagination.md Docs: https://liquefy-ui.com/#/components/pagination Registry: `npx shadcn@latest add @liquefy-ui/liquid-pagination` ```ts export type LiquidPaginationProps = Omit, 'onChange'> & LiquidStyleProps & { count: number defaultPage?: number label?: string onPageChange?: (page: number) => void page?: number siblingCount?: number } ``` ### LiquidProgress, LiquidSpinner A determinate progress bar and an indeterminate spinner sharing one accent. Import: `import { LiquidProgress, LiquidSpinner } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-progress.md Docs: https://liquefy-ui.com/#/components/progress Registry: `npx shadcn@latest add @liquefy-ui/liquid-progress` ```ts export type LiquidProgressProps = HTMLAttributes & LiquidStyleProps & { label?: string max?: number showValue?: boolean tint?: string value?: number } export type LiquidSpinnerProps = HTMLAttributes & LiquidStyleProps & { label?: string size?: number thickness?: number tint?: string value?: number } ``` ### LiquidRadioGroup, LiquidRadio A radio group with a springy dot and keyboard-driven selection. Import: `import { LiquidRadioGroup, LiquidRadio } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-radio.md Docs: https://liquefy-ui.com/#/components/radio-group Registry: `npx shadcn@latest add @liquefy-ui/liquid-radio` ```ts export type LiquidRadioGroupProps = Omit, 'defaultValue' | 'onChange'> & LiquidStyleProps & { children: ReactNode defaultValue?: string disabled?: boolean label?: string name?: string onValueChange?: (value: string) => void orientation?: 'horizontal' | 'vertical' value?: string } export type LiquidRadioProps = Omit, 'value'> & LiquidStyleProps & { hint?: string label?: ReactNode value: string } ``` ### LiquidRating A star rating that reads and writes a numeric value. Import: `import { LiquidRating } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-rating.md Docs: https://liquefy-ui.com/#/components/rating Registry: `npx shadcn@latest add @liquefy-ui/liquid-rating` ```ts export type LiquidRatingProps = Omit, 'defaultValue' | 'onChange'> & LiquidStyleProps & { defaultValue?: number label?: string max?: number onValueChange?: (value: number) => void readOnly?: boolean size?: 'sm' | 'md' | 'lg' value?: number } ``` ### LiquidSegmented A segmented control whose glass indicator slides between options. Import: `import { LiquidSegmented } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-segmented.md Docs: https://liquefy-ui.com/#/components/segmented-control Registry: `npx shadcn@latest add @liquefy-ui/liquid-segmented` ```ts export type LiquidSegmentedOption = { disabled?: boolean icon?: ReactNode label: ReactNode value: string } export type LiquidSegmentedProps = Omit, 'defaultValue' | 'onChange'> & LiquidStyleProps & { defaultValue?: string label?: string onValueChange?: (value: string) => void options: LiquidSegmentedOption[] size?: 'sm' | 'md' value?: string } ``` ### LiquidSelect A listbox dropdown on Base UI: typeahead, focus return and a glass popover. Import: `import { LiquidSelect } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-select.md Docs: https://liquefy-ui.com/#/components/select Registry: `npx shadcn@latest add @liquefy-ui/liquid-select` ```ts export type LiquidSelectOption = { disabled?: boolean label: ReactNode value: string } export type LiquidSelectProps = Omit, 'onChange' | 'value'> & LiquidStyleProps & { defaultValue?: string hint?: string label?: string /** Called when the popup opens or closes — a sheet holding the select needs to know. */ onOpenChange?: (open: boolean) => void onValueChange?: (value: string) => void options: LiquidSelectOption[] placeholder?: string value?: string } ``` ### LiquidSkeleton A shimmering placeholder block for content that has not arrived. Import: `import { LiquidSkeleton } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-skeleton.md Docs: https://liquefy-ui.com/#/components/skeleton Registry: `npx shadcn@latest add @liquefy-ui/liquid-skeleton` ```ts export type LiquidSkeletonProps = HTMLAttributes & LiquidStyleProps & { height?: number | string radius?: number | string variant?: 'text' | 'circular' | 'rectangular' width?: number | string } ``` ### LiquidSlider A range input with a luminous track and a dimensional thumb. Import: `import { LiquidSlider } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-slider.md Docs: https://liquefy-ui.com/#/components/slider Registry: `npx shadcn@latest add @liquefy-ui/liquid-slider` ```ts export type LiquidSliderProps = Omit, 'type'> & LiquidStyleProps & { endAdornment?: ReactNode label?: string startAdornment?: ReactNode } ``` ### LiquidSurface The base material every glass component is built on: rim light, refraction and springs. Import: `import { LiquidSurface } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-surface.md Docs: https://liquefy-ui.com/#/components/surface Registry: `npx shadcn@latest add @liquefy-ui/liquid-surface` ```ts export type LiquidSurfaceProps = HTMLAttributes & LiquidStyleProps & { children?: ReactNode intensity?: number interactive?: boolean lens?: boolean /** How far the lens softens what it refracts, in pixels. */ lensBlur?: number radius?: number | string tint?: string variant?: LiquidVariant webgl?: boolean } ``` ### LiquidSwitch A toggle whose thumb squashes as it travels. Import: `import { LiquidSwitch } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-switch.md Docs: https://liquefy-ui.com/#/components/switch Registry: `npx shadcn@latest add @liquefy-ui/liquid-switch` ```ts export type LiquidSwitchProps = Omit, 'onChange'> & LiquidStyleProps & { checked?: boolean defaultChecked?: boolean label: string onCheckedChange?: (checked: boolean) => void } ``` ### LiquidTableContainer, LiquidTable, LiquidTableHead, LiquidTableBody, LiquidTableRow, LiquidTableCell, LiquidTableHeaderCell A composable data table on a glass container, with row hover and selection. Import: `import { LiquidTableContainer, LiquidTable, LiquidTableHead, LiquidTableBody, LiquidTableRow, LiquidTableCell, LiquidTableHeaderCell } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-table.md Docs: https://liquefy-ui.com/#/components/table Registry: `npx shadcn@latest add @liquefy-ui/liquid-table` ```ts export type LiquidTableContainerProps = Omit & { children: React.ReactNode } export type LiquidTableProps = TableHTMLAttributes & LiquidStyleProps & { hover?: boolean size?: 'sm' | 'md' } export type LiquidTableRowProps = HTMLAttributes & LiquidStyleProps & { selected?: boolean } export type LiquidTableCellProps = TdHTMLAttributes & LiquidStyleProps & { align?: 'left' | 'center' | 'right' } export type LiquidTableHeaderCellProps = ThHTMLAttributes & LiquidStyleProps & { align?: 'left' | 'center' | 'right' } ``` ### LiquidTabs, LiquidTabList, LiquidTab, LiquidTabPanel Composable tabs on Base UI, with a glowing underline that springs between them. Import: `import { LiquidTabs, LiquidTabList, LiquidTab, LiquidTabPanel } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-tabs.md Docs: https://liquefy-ui.com/#/components/tabs Registry: `npx shadcn@latest add @liquefy-ui/liquid-tabs` ```ts export type LiquidTabsProps = Omit, 'defaultValue' | 'onChange'> & LiquidStyleProps & { children: ReactNode defaultValue?: string onValueChange?: (value: string) => void value?: string } export type LiquidTabListProps = HTMLAttributes & LiquidStyleProps & { children: ReactNode label?: string } export type LiquidTabProps = Omit, 'value'> & LiquidStyleProps & { children: ReactNode icon?: ReactNode value: string } export type LiquidTabPanelProps = HTMLAttributes & LiquidStyleProps & { children: ReactNode value: string } ``` ### LiquidTextField A single-line text input with label, hint and invalid state. Import: `import { LiquidTextField } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-text-field.md Docs: https://liquefy-ui.com/#/components/text-field Registry: `npx shadcn@latest add @liquefy-ui/liquid-text-field` ```ts export type LiquidTextFieldProps = InputHTMLAttributes & LiquidStyleProps & { endAdornment?: ReactNode hint?: string label?: string startAdornment?: ReactNode } ``` ### LiquidTextArea A multi-line text input that keeps the field styling of LiquidTextField. Import: `import { LiquidTextArea } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-textarea.md Docs: https://liquefy-ui.com/#/components/text-area Registry: `npx shadcn@latest add @liquefy-ui/liquid-textarea` ```ts export type LiquidTextAreaProps = TextareaHTMLAttributes & LiquidStyleProps & { hint?: string label?: string } ``` ### LiquidToastProvider, useLiquidToast A toast provider and a useLiquidToast hook for transient messages. Import: `import { LiquidToastProvider, useLiquidToast } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-toast.md Docs: https://liquefy-ui.com/#/components/toast Registry: `npx shadcn@latest add @liquefy-ui/liquid-toast` ```ts export type LiquidToastOptions = { description?: ReactNode duration?: number severity?: LiquidAlertSeverity title: ReactNode } export type LiquidToastProviderProps = { children: ReactNode placement?: 'bottom-right' | 'bottom-center' | 'top-right' | 'top-center' } ``` ### LiquidTooltip A glass bubble on hover and focus, positioned by Base UI so it stays on screen. Import: `import { LiquidTooltip } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/liquid-tooltip.md Docs: https://liquefy-ui.com/#/components/tooltip Registry: `npx shadcn@latest add @liquefy-ui/liquid-tooltip` ```ts export type LiquidTooltipProps = LiquidStyleProps & { children: ReactElement> className?: string content: ReactNode delay?: number placement?: 'top' | 'bottom' | 'left' | 'right' style?: CSSProperties } ``` ## Provider and internals ### internal-glyphs The small inline SVG glyphs the components draw for chevrons, checks and status icons. Internal: not exported from `@liquefy-ui/react`; available as copied source. Page: https://liquefy-ui.com/llms/internal-glyphs.md Docs: https://liquefy-ui.com/#/components Registry: `npx shadcn@latest add @liquefy-ui/internal-glyphs` ### defaultBreakpoints, LiquefyProvider, useLiquefyConfig LiquefyProvider and the config hooks every component reads its tokens from. Import: `import { defaultBreakpoints, LiquefyProvider, useLiquefyConfig } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/provider.md Docs: https://liquefy-ui.com/#/components Registry: `npx shadcn@latest add @liquefy-ui/provider` ```ts export type LiquefyConfig = { /** Minimum widths behind the responsive form of the `styles` prop. */ breakpoints: LiquefyBreakpoints intensity: number lens: boolean motion: boolean /** One spacing unit. `styles={{ p: 3 }}` resolves to three of these. */ spacing: number | string theme: LiquefyTheme tint: string transparency: boolean webgl: boolean wobbliness: number } export type LiquefyBreakpoint = 'lg' | 'md' | 'sm' | 'xl' export type LiquefyBreakpoints = Record export type LiquefyTheme = 'dark' | 'light' | 'system' export type LiquefyProviderProps = Partial> & { breakpoints?: Partial children: ReactNode className?: string } ``` ### getLiquefyStyleSheet, useLiquidStyles The `styles` prop engine: shorthands, token references, breakpoints and state selectors. Import: `import { getLiquefyStyleSheet, useLiquidStyles } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/styles-prop.md Docs: https://liquefy-ui.com/#/components Registry: `npx shadcn@latest add @liquefy-ui/styles-prop` ```ts export type LiquidResponsive = T | ({ base?: T } & Partial>) export type LiquidStyleState = | '_active' | '_checked' | '_dark' | '_disabled' | '_even' | '_expanded' | '_first' | '_focus' | '_focusVisible' | '_hover' | '_invalid' | '_last' | '_light' | '_odd' | '_open' | '_placeholder' | '_readOnly' | '_selected' export type LiquidStyles = StandardStyles & CustomPropertyStyles & ShorthandStyles & ConditionalStyles export type LiquidStyleProps = { /** * Token-aware style overrides applied to the component root. Static values * become inline styles; responsive and stateful values become a generated * class that sits outside the `liquefy-ui` cascade layer, so it always wins * over the stylesheet without needing `!important`. */ styles?: LiquidStyles } export type LiquidCustomProperties = CSSProperties & Record<`--${string}`, number | string> ``` ### useLiquidGlass The hook that wires an element to the WebGL renderer and the motion springs. Import: `import { useLiquidGlass } from '@liquefy-ui/react'` Page: https://liquefy-ui.com/llms/use-liquid-glass.md Docs: https://liquefy-ui.com/#/components Registry: `npx shadcn@latest add @liquefy-ui/use-liquid-glass` ```ts export type LiquidGlassOptions = LiquidMotionOptions & { lens?: boolean lensBlur?: number lensStrength?: number motion?: boolean } ``` ## Icons `AlertTriangleIcon`, `ArrowRightIcon`, `BellIcon`, `CalendarIcon`, `CheckIcon`, `ChevronDownIcon`, `ChevronLeftIcon`, `ChevronRightIcon`, `ChevronUpIcon`, `CircleAlertIcon`, `CircleCheckIcon`, `ClockIcon`, `CommandIcon`, `ComponentsIcon`, `CopyIcon`, `DownloadIcon`, `EyeIcon`, `EyeOffIcon`, `FilterIcon`, `FolderIcon`, `GithubIcon`, `HeartIcon`, `HomeIcon`, `ImageIcon`, `InfoIcon`, `LinkIcon`, `LockIcon`, `MailIcon`, `MinusIcon`, `MoonIcon`, `MoreHorizontalIcon`, `PauseIcon`, `PlayIcon`, `PlusIcon`, `SearchIcon`, `SettingsIcon`, `ShareIcon`, `SparklesIcon`, `StarIcon`, `SunIcon`, `TrashIcon`, `UploadIcon`, `UserIcon`, `XIcon` ```ts export type IconProps = SVGProps & { size?: number | string strokeWidth?: number } ``` ## Engine: @liquefy-ui/core Values: `LiquidRenderer`, `SpringValue`, `attachLiquidLens`, `attachLiquidMotion`, `clamp`, `createLensMap`, `defaultTokens`, `hexToRgb`, `isLensRenderingSupported`, `isLensSupported`, `lerp`, `mapRange` Types: `LensFilterController`, `LensFilterOptions`, `LensMap`, `LensMapOptions`, `LiquefyTokens`, `LiquidMotionController`, `LiquidMotionOptions`, `LiquidRendererOptions`, `LiquidVariant`, `SpringOptions` ## Design tokens ### Global ```css --lq-accent: #8eb9ff; --lq-space: 4px; --lq-radius-default: 18px; --lq-duration: 420ms; --lq-easing: cubic-bezier(0.22, 1, 0.36, 1); --lq-text: #f8faff; --lq-muted: rgba(242, 246, 255, 0.66); ``` ### Dark theme ```css --lq-clear-fill: transparent; --lq-clear-line: rgba(255, 255, 255, 0.15); --lq-control-fill: transparent; --lq-control-line: rgba(255, 255, 255, 0.16); --lq-control-hover-line: color-mix(in srgb, var(--lq-button-tint, var(--lq-accent)) 28%, rgba(255, 255, 255, 0.18)); --lq-dock-active: #fff; --lq-dock-hover-fill: rgba(255, 255, 255, 0.012); --lq-dock-indicator-fill: transparent; --lq-field-fill: transparent; --lq-field-focus-fill: color-mix(in srgb, var(--lq-accent) 2%, transparent); --lq-field-line: rgba(255, 255, 255, 0.13); --lq-foreground: #f8faff; --lq-glass-bright: rgba(255, 255, 255, 0.32); --lq-glass-shade: rgba(73, 111, 209, 0.07); --lq-glass-soft: rgba(255, 255, 255, 0.06); --lq-muted: rgba(242, 246, 255, 0.66); --lq-placeholder: rgba(235, 241, 255, 0.42); --lq-quiet-fill: transparent; --lq-quiet-line: rgba(255, 255, 255, 0.13); --lq-regular-fill: rgba(255, 255, 255, 0.012); --lq-regular-line: rgba(255, 255, 255, 0.18); --lq-shadow-color: rgba(4, 9, 24, 0.14); --lq-solid-fill: rgb(30, 38, 60); --lq-switch-fill: transparent; --lq-switch-line: rgba(255, 255, 255, 0.14); ``` ### Light theme ```css --lq-clear-fill: transparent; --lq-clear-line: rgba(66, 85, 128, 0.22); --lq-control-fill: transparent; --lq-control-line: rgba(66, 85, 128, 0.24); --lq-control-hover-line: color-mix(in srgb, var(--lq-button-tint, var(--lq-accent)) 28%, rgba(255, 255, 255, 0.18)); --lq-dock-active: #17203a; --lq-dock-hover-fill: rgba(255, 255, 255, 0.015); --lq-dock-indicator-fill: transparent; --lq-field-fill: transparent; --lq-field-focus-fill: color-mix(in srgb, var(--lq-accent) 1.5%, transparent); --lq-field-line: rgba(66, 85, 128, 0.24); --lq-foreground: #12182a; --lq-glass-bright: rgba(255, 255, 255, 0.56); --lq-glass-shade: rgba(62, 91, 164, 0.07); --lq-glass-soft: rgba(255, 255, 255, 0.16); --lq-muted: rgba(26, 35, 58, 0.62); --lq-placeholder: rgba(28, 40, 68, 0.42); --lq-quiet-fill: transparent; --lq-quiet-line: rgba(66, 85, 128, 0.16); --lq-regular-fill: rgba(255, 255, 255, 0.015); --lq-regular-line: rgba(66, 85, 128, 0.26); --lq-shadow-color: rgba(42, 55, 91, 0.1); --lq-solid-fill: rgb(239, 244, 255); --lq-switch-fill: transparent; --lq-switch-line: rgba(66, 85, 128, 0.24); ``` ## MCP server Point a coding agent at the live API instead of these files: ```bash npx -y @liquefy-ui/mcp ``` Tools: `get_conventions`, `list_components`, `get_component`, `search_components`, `get_component_source`, `get_tokens`, `list_icons`, `get_core_api`.