UniqueUI

Radial Menu

Circular flyout menu that bursts items outward from a center trigger with staggered spring animation.

npx uniqueui add radial-menu

Preview

Usage

import { RadialMenu } from "@/components/ui/radial-menu";
import { User, Settings, Mail, Bell } from "lucide-react";

export default function Example() {
  const menuItems = [
    { id: "profile", label: "Profile", icon: <User className="w-5 h-5" /> },
    { id: "settings", label: "Settings", icon: <Settings className="w-5 h-5" /> },
    { id: "messages", label: "Messages", icon: <Mail className="w-5 h-5" /> },
    { id: "notifications", label: "Notifications", icon: <Bell className="w-5 h-5" /> },
  ];

  return (
    <div className="h-[400px] w-full flex items-center justify-center">
      <RadialMenu items={menuItems} radius={120} />
    </div>
  );
}

Props

PropTypeDescription
itemsRadialMenuItem[]Array of item configurations representing the burst actions.
radiusnumberDistance in pixels each item travels from the trigger center.
startAnglenumberThe starting angle for the radial arc (e.g. -90 for top).
endAnglenumberThe concluding angle for the radial arc.
staggerDelaynumberStaggering time multiplier between cascading children.