Home / Function/ Sidebar() — ui Function Reference

Sidebar() — ui Function Reference

Architecture documentation for the Sidebar() function in sidebar.tsx from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  dca6f296_1b96_1e5e_e0a9_a1ad49f3b7c3["Sidebar()"]
  0dd28c0a_4131_40f2_8cf0_e0611d33faf6["sidebar.tsx"]
  dca6f296_1b96_1e5e_e0a9_a1ad49f3b7c3 -->|defined in| 0dd28c0a_4131_40f2_8cf0_e0611d33faf6
  0b33314b_d346_da3b_8ab7_30b6f415150b["useSidebar()"]
  dca6f296_1b96_1e5e_e0a9_a1ad49f3b7c3 -->|calls| 0b33314b_d346_da3b_8ab7_30b6f415150b
  style dca6f296_1b96_1e5e_e0a9_a1ad49f3b7c3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/v4/registry/new-york-v4/ui/sidebar.tsx lines 154–254

function Sidebar({
  side = "left",
  variant = "sidebar",
  collapsible = "offcanvas",
  className,
  children,
  ...props
}: React.ComponentProps<"div"> & {
  side?: "left" | "right"
  variant?: "sidebar" | "floating" | "inset"
  collapsible?: "offcanvas" | "icon" | "none"
}) {
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar()

  if (collapsible === "none") {
    return (
      <div
        data-slot="sidebar"
        className={cn(
          "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
          className
        )}
        {...props}
      >
        {children}
      </div>
    )
  }

  if (isMobile) {
    return (
      <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>
        <SheetContent
          data-sidebar="sidebar"
          data-slot="sidebar"
          data-mobile="true"
          className="bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden"
          style={
            {
              "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
            } as React.CSSProperties
          }
          side={side}
        >
          <SheetHeader className="sr-only">
            <SheetTitle>Sidebar</SheetTitle>
            <SheetDescription>Displays the mobile sidebar.</SheetDescription>
          </SheetHeader>
          <div className="flex h-full w-full flex-col">{children}</div>
        </SheetContent>
      </Sheet>
    )
  }

  return (
    <div
      className="group peer text-sidebar-foreground hidden md:block"
      data-state={state}
      data-collapsible={state === "collapsed" ? collapsible : ""}
      data-variant={variant}
      data-side={side}
      data-slot="sidebar"
    >
      {/* This is what handles the sidebar gap on desktop */}
      <div
        data-slot="sidebar-gap"
        className={cn(
          "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
          "group-data-[collapsible=offcanvas]:w-0",
          "group-data-[side=right]:rotate-180",
          variant === "floating" || variant === "inset"
            ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
            : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
        )}
      />
      <div
        data-slot="sidebar-container"
        className={cn(
          "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
          side === "left"
            ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"

Subdomains

Calls

Frequently Asked Questions

What does Sidebar() do?
Sidebar() is a function in the ui codebase, defined in apps/v4/registry/new-york-v4/ui/sidebar.tsx.
Where is Sidebar() defined?
Sidebar() is defined in apps/v4/registry/new-york-v4/ui/sidebar.tsx at line 154.
What does Sidebar() call?
Sidebar() calls 1 function(s): useSidebar.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free