From r/vibecoding? 🫡 Get 35% off Wensity UI Lifetime with

Gooey Navigation Menu

A liquid FAB whose child actions stretch out of the trigger like molten metal.

elite micro interactionsgooeynavigationmenuframer motiontabler icons react
Gooey Navigation Menu component preview

Installation

Run the following command

~/your-project
pnpm dlx wensity@latest add gooey-navigation-menu

Usage

Import GooeyNavigationMenu from @/components/wensity/gooey-navigation-menu and render it anywhere in your React or Next.js app. The source lands in your own repo, so every prop, class and animation below is yours to edit.

app/example.tsx
"use client";
import { GooeyNavigationMenu } from "@/components/wensity/gooey-navigation-menu";
import { IconShare, IconHeart, IconBookmark, IconMessageCircle } from "@tabler/icons-react";
const items = [
{ id: "share", label: "Share", icon: <IconShare /> },
{ id: "like", label: "Like", icon: <IconHeart /> },
{ id: "save", label: "Save", icon: <IconBookmark /> },
{ id: "reply", label: "Reply", icon: <IconMessageCircle /> },
];
export function GooeyNavigationMenuDemo() {
return (
// Blobs default to the theme foreground — white on dark, near-black on
// light. Recolor with blobClassName / iconClassName:
// blobClassName="bg-chili-500" iconClassName="text-white"
<GooeyNavigationMenu direction="up" arc={170} radius={92} items={items} />
);
}

Props

PropTypeDefaultDescription
itemsGooeyMenuItem[]-Child items that pop out of the FAB. 3–6 looks best.
radiusnumber96Distance in pixels the children travel from the trigger center.
arcnumber180Arc in degrees the children fan across. 90 is a quarter, 180 a half.
direction"up" | "down" | "left" | "right""up"Direction the arc opens toward.
sizenumber60Diameter of the trigger button in pixels.
childSizenumber44Diameter of each child button in pixels.
defaultOpenbooleanfalseRender with the menu already fanned open. Uncontrolled.
blobClassNamestring"bg-[var(--foreground)]"Classes for the trigger and petal blobs. Defaults to the theme foreground — white on dark, near-black on light. Pass any background utility to recolor, e.g. bg-chili-500.
iconClassNamestring"text-[var(--background)]"Classes for the glyphs riding on the blobs. Defaults to the theme background, i.e. whatever the blobs are not.
classNamestring-Classes for the wrapper that reserves the menu's square stage.