Menubar
solid-ui/menubarFreeComponent
A menubar component
Live preview
live · rendered by the registry
Rendered by solid-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://www.solid-ui.com/r/menubar.jsonSource
1import type { Component, ComponentProps, JSX, ValidComponent } from "solid-js"2import { splitProps } from "solid-js"34import * as MenubarPrimitive from "@kobalte/core/menubar"5import type { PolymorphicProps } from "@kobalte/core/polymorphic"67import { cn } from "~/lib/utils"89const MenubarGroup = MenubarPrimitive.Group10const MenubarPortal = MenubarPrimitive.Portal11const MenubarSub = MenubarPrimitive.Sub12const MenubarRadioGroup = MenubarPrimitive.RadioGroup1314type MenubarRootProps<T extends ValidComponent = "div"> = MenubarPrimitive.MenubarRootProps<T> & {15 class?: string | undefined16}1718const Menubar = <T extends ValidComponent = "div">(19 props: PolymorphicProps<T, MenubarRootProps<T>>20) => {21 const [local, others] = splitProps(props as MenubarRootProps, ["class"])22 return (23 <MenubarPrimitive.Root24 class={cn(25 "flex h-10 items-center space-x-1 rounded-md border bg-background p-1",26 local.class27 )}28 {...others}29 />30 )31}3233const MenubarMenu: Component<MenubarPrimitive.MenubarMenuProps> = (props) => {34 return <MenubarPrimitive.Menu gutter={8} {...props} />35}3637type MenubarTriggerProps<T extends ValidComponent = "button"> =38 MenubarPrimitive.MenubarTriggerProps<T> & { class?: string | undefined }3940const MenubarTrigger = <T extends ValidComponent = "button">(41 props: PolymorphicProps<T, MenubarTriggerProps<T>>42) => {43 const [local, others] = splitProps(props as MenubarTriggerProps, ["class"])44 return (45 <MenubarPrimitive.Trigger46 class={cn(47 "flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",48 local.class49 )}50 {...others}51 />52 )53}5455type MenubarContentProps<T extends ValidComponent = "div"> =56 MenubarPrimitive.MenubarContentProps<T> & { class?: string | undefined }5758const MenubarContent = <T extends ValidComponent = "div">(59 props: PolymorphicProps<T, MenubarContentProps<T>>60) => {61 const [local, others] = splitProps(props as MenubarContentProps, ["class"])62 return (63 <MenubarPrimitive.Portal>64 <MenubarPrimitive.Content65 class={cn(66 "z-50 min-w-48 origin-[var(--kb-menu-content-transform-origin)] animate-content-hide overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[expanded]:animate-content-show",67 local.class68 )}69 {...others}70// … truncated
What it pulls in
npm packages
Files it writes
More from solid-ui
All 55 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | solid-ui | Components | Free | 2 deps | |
| Alertalert | solid-ui | Components | Free | 3 deps | |
| Alert Dialogalert-dialog | solid-ui | Components | Free | 2 deps | |
| Aspect Ratioaspect-ratio | solid-ui | Components | Free | 1 dep | |
| Avataravatar | solid-ui | Components | Free | 2 deps | |
| Badgebadge | solid-ui | Components | Free | 2 deps | |
| Badge Deltabadge-delta | solid-ui | Components | Free | 2 deps | |
| Bar Listbar-list | solid-ui | Components | Free | 1 dep |
