Skip to content

Menu — Vanilla JS

Terminal window
npm install @fluix-ui/vanilla @fluix-ui/css
import { createMenu } from "@fluix-ui/vanilla";
import "@fluix-ui/css";
const host = document.getElementById("menu-host");
if (host) {
const menu = createMenu(host, {
orientation: "horizontal",
variant: "pill",
theme: "dark",
items: [
{ id: "home", label: "Home" },
{ id: "features", label: "Features" },
{ id: "pricing", label: "Pricing" },
],
});
}
OptionTypeDescription
orientation"vertical" | "horizontal"Layout direction
variant"pill" | "tab"Visual style
themeMenuThemeColor theme
itemsArray<{ id: string; label: string; disabled?: boolean }>Menu items
activeIdstring | nullInitial active item
springSpringConfigPhysics config
roundnessnumberBorder radius factor
blurnumberIndicator blur
fillstringBackground override
onActiveChange(id: string) => voidActive change callback
  • setActive(id) — programmatically set the active item
  • getActive() — get the current active item ID
  • update(partialOptions) — update menu options
  • destroy() — remove the menu and clean up
import { createMenu } from "@fluix-ui/vanilla";
import "@fluix-ui/css";
const menu = createMenu(document.getElementById("nav"), {
orientation: "horizontal",
variant: "tab",
theme: "dark",
items: [
{ id: "overview", label: "Overview" },
{ id: "analytics", label: "Analytics" },
{ id: "settings", label: "Settings" },
],
onActiveChange: (id) => {
console.log("Active tab:", id);
// Navigate or update content
},
});
// Later: programmatic control
menu.setActive("analytics");