menu
lyse/menuFreeComponent
lyse publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by lyse on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.getlyse.com/r/menu.jsonSource
1import * as React from "react"2import { Slot } from "@radix-ui/react-slot"3import { cva, type VariantProps } from "class-variance-authority"45import { cn } from "@/lib/utils"6import "./menu.css"78/* ------------------------------------------------------------------ */9/* CVA */10/* ------------------------------------------------------------------ */1112const menuItemVariants = cva(13 "menu-item flex items-center rounded-[var(--layout-radius-lg)] text-content-note font-accent",14 {15 variants: {16 variant: {17 default: "",18 accent: "menu-item-accent",19 },20 size: {21 sm: "h-[var(--layout-size-lg)] gap-[var(--layout-gap-sm)] py-[var(--layout-padding-sm)] px-[var(--layout-padding-md)] [&_.menu-item-icon]:h-[var(--layout-size-xs)] [&_.menu-item-icon]:w-[var(--layout-size-xs)] [&_.menu-item-icon>svg]:h-[var(--layout-size-xs)] [&_.menu-item-icon>svg]:w-[var(--layout-size-xs)]",22 md: "h-9 gap-[var(--layout-gap-md)] p-[var(--layout-padding-md)] [&_.menu-item-icon]:h-[var(--layout-size-xs)] [&_.menu-item-icon]:w-[var(--layout-size-xs)] [&_.menu-item-icon>svg]:h-[var(--layout-size-xs)] [&_.menu-item-icon>svg]:w-[var(--layout-size-xs)]",23 },24 },25 defaultVariants: {26 variant: "default",27 size: "md",28 },29 }30)3132/* ------------------------------------------------------------------ */33/* Menu */34/* ------------------------------------------------------------------ */3536function Menu({37 className,38 children,39 ref,40 ...props41}: React.ComponentProps<"nav">) {42 return (43 <nav44 ref={ref}45 data-slot="menu"46 className={cn("flex flex-col gap-[var(--layout-gap-xl)]", className)}47 {...props}48 >49 {children}50 </nav>51 )52}5354/* ------------------------------------------------------------------ */55/* MenuGroup */56/* ------------------------------------------------------------------ */5758function MenuGroup({59 className,60 label,61 children,62 ref,63 ...props64}: React.ComponentProps<"div"> & { label?: string }) {65 return (66 <div67 ref={ref}68 data-slot="menu-group"69 role="group"70 aria-label={label || undefined}71 className={cn("flex flex-col gap-[var(--layout-gap-md)]", className)}72 {...props}73 >74 {label && (75 <span76 aria-hidden="true"77// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from lyse
All 33 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| action-cardaction-card | lyse | Components | Free | no deps · 2 files | |
| alertalert | lyse | Components | Free | 2 deps · 2 files | |
| alert-dialogalert-dialog | lyse | Components | Free | 2 deps · 2 files | |
| avataravatar | lyse | Components | Free | 3 deps · 2 files | |
| badgebadge | lyse | Components | Free | 1 dep · 2 files | |
| banner-infobanner-info | lyse | Components | Free | 2 deps · 2 files | |
| breadcrumbbreadcrumb | lyse | Components | Free | 2 deps · 2 files | |
| buttonbutton | lyse | Components | Free | 2 deps · 2 files |
