Skip to content
Home/Components/

Liquid Radial Menu

A floating action button with organic liquid-gooey surface tension that splits into satellite action droplets with spring physics, rotation trigger morph, and anticipation momentum.

Dependencies
Interaction Types
Click plus button to trigger liquid division
Organic gooey bridge with viscous surface tension
Closing anticipation dip with momentum settle
How to use
import { LiquidMenu } from "@/components/liquid-menu";

export default function Demo() {
  return (
    <LiquidMenu
      size="md"
      items={[
        { label: "New File", icon: <FileIcon />, onClick: () => console.log("New file") },
        { label: "Upload Image", icon: <ImageIcon />, onClick: () => console.log("Upload") },
        { label: "New Folder", icon: <FolderIcon />, onClick: () => console.log("Folder") },
      ]}
    />
  );
}
Component Props
PropTypeDefaultDescription
itemsLiquidMenuItem[]DEFAULT_SATELLITESArray of satellite action buttons with label, icon, and onClick
size"sm" | "md" | "lg""md"Scale configuration of button, stage, and icons
spreadnumber1Radial fan spread distance multiplier
defaultOpenbooleanfalseInitial open state (uncontrolled)
openboolean—Controlled open state
onOpenChange(open: boolean) => void—Called when the menu opens or closes
disabledbooleanfalseDisables the trigger