Search for a command to run...
A sidebar variant that appears to float with rounded corners and padding, creating a modern card-like appearance.
See the Sidebar component for installation instructions.
| Prop | Type | Value | Description |
|---|---|---|---|
variant | string | "floating" | Enables floating visual style |
| Variable | Default | Description |
|---|---|---|
--sidebar-width | 16rem | Width of the sidebar |
Here is the source code of the example from the preview page:
import { GalleryVerticalEnd } from "lucide-solid";import type { JSX } from "solid-js";import { For, Show } from "solid-js";import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,} from "~/components/ui/breadcrumb";import { Separator } from "~/components/ui/separator";import { Sidebar, SidebarContent, SidebarGroup, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarTrigger,} from "~/components/ui/sidebar";export default function SidebarFloatingExample() { return ( <SidebarProvider style={ { "--sidebar-width": "19rem", } as JSX.CSSProperties } > <Sidebar variant="floating"> <SidebarHeader> <SidebarMenu> <SidebarMenuItem> <SidebarMenuButton size="lg" as="a" href="#"> <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground"> <GalleryVerticalEnd class="size-4" /> </div> <div class="flex flex-col gap-0.5 leading-none"> <span class="font-medium">Documentation</span> <span class="">v1.0.0</span> </div> </SidebarMenuButton> </SidebarMenuItem> </SidebarMenu> </SidebarHeader> <SidebarContent> <SidebarGroup> <SidebarMenu class="gap-2"> <For each={data.navMain}> {(item) => ( <SidebarMenuItem> <SidebarMenuButton as="a" href={item.url} class="font-medium"> {item.title} </SidebarMenuButton> <Show when={item.items?.length}> <SidebarMenuSub class="ml-0 border-l-0 px-1.5"> <For each={item.items}> {(subItem) => ( <SidebarMenuSubItem> <SidebarMenuSubButton as="a" href={subItem.url} isActive={subItem.isActive} > {subItem.title} </SidebarMenuSubButton> </SidebarMenuSubItem> )} </For> </SidebarMenuSub> </Show> </SidebarMenuItem> )} </For> </SidebarMenu> </SidebarGroup> </SidebarContent> </Sidebar> <SidebarInset> <header class="flex h-16 shrink-0 items-center gap-2 px-4"> <SidebarTrigger class="-ml-1" /> <Separator orientation="vertical" class="mr-2 data-[orientation=vertical]:h-4" /> <Breadcrumb> <BreadcrumbList> <BreadcrumbItem class="hidden md:block"> <BreadcrumbLink href="#">Building Your Application</BreadcrumbLink> </BreadcrumbItem> <BreadcrumbSeparator class="hidden md:block" /> <BreadcrumbItem> <BreadcrumbPage>Data Fetching</BreadcrumbPage> </BreadcrumbItem> </BreadcrumbList> </Breadcrumb> </header> <div class="flex flex-1 flex-col gap-4 p-4 pt-0"> <div class="grid auto-rows-min gap-4 md:grid-cols-3"> <div class="aspect-video rounded-xl bg-muted/50" /> <div class="aspect-video rounded-xl bg-muted/50" /> <div class="aspect-video rounded-xl bg-muted/50" /> </div> <div class="min-h-[100vh] flex-1 rounded-xl bg-muted/50 md:min-h-min" /> </div> </SidebarInset> </SidebarProvider> );}