Tile UI · SolidJS

CSR · SSR · SSG

Sidebar

A responsive SolidJS application sidebar with desktop rail and mobile sheet behavior.

Workspace
Tile workspace

Overview

Collapse the desktop rail or open the focused mobile sheet with the same trigger.

import {
	Sidebar,
	SidebarContent,
	SidebarGroup,
	SidebarGroupContent,
	SidebarGroupLabel,

Use SidebarProvider around the full layout. Server output starts in the desktop mode, then the client media query selects the mobile sheet when required.

Registry install

pnpm dlx shadcn@latest add @tile-ui/sidebar

Package usage

import { SidebarProvider, Sidebar, SidebarHeader, SidebarInput, SidebarContent, SidebarGroup, SidebarGroupLabel, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarInset, SidebarTrigger } from '@tile-ui/solid';

<SidebarProvider><Sidebar collapsible="icon"><SidebarHeader><SidebarInput aria-label="Search" /></SidebarHeader><SidebarContent><SidebarGroup><SidebarGroupLabel>Workspace</SidebarGroupLabel><SidebarGroupContent><SidebarMenu><SidebarMenuItem><SidebarMenuButton tooltip="Overview">Overview</SidebarMenuButton></SidebarMenuItem></SidebarMenu></SidebarGroupContent></SidebarGroup></SidebarContent></Sidebar><SidebarInset><SidebarTrigger /></SidebarInset></SidebarProvider>

Highlights

  • Collapsible desktop rail
  • Mobile sheet selected from the client media query
  • Provider state, trigger, menu, skeleton, and tooltip families

Registry dependencies

Item Purpose
sidebar Component source and module styles
core Framework-agnostic logic helpers
button Registry component dependency
input Registry component dependency
separator Registry component dependency
sheet Registry component dependency
skeleton Registry component dependency
tooltip Registry component dependency
utils Shared utility helpers
styles Shared SCSS tokens and globals

API reference

Prop Type Default
side 'left' | 'right' —
variant 'sidebar' | 'floating' | 'inset' —
collapsible 'offcanvas' | 'icon' | 'none' —
ref CallbackRef<HTMLDivElement> —

SidebarProvider

Prop Type Default
defaultOpen boolean —
open boolean —
onOpenChange (open: boolean) => void —
ref CallbackRef<HTMLDivElement> —
sidebarId string —

SidebarTrigger

Prop Type Default
ref CallbackRef<HTMLButtonElement> —

SidebarRail

Prop Type Default
ref CallbackRef<HTMLButtonElement> —

SidebarInset

Prop Type Default
ref CallbackRef<HTMLElement> —

SidebarInput

Prop Type Default
ref CallbackRef<HTMLInputElement> —

SidebarHeader

No custom props.

SidebarFooter

No custom props.

SidebarSeparator

Prop Type Default
ref CallbackRef<HTMLDivElement> —

SidebarContent

No custom props.

SidebarGroup

No custom props.

SidebarGroupLabel

No custom props.

SidebarGroupContent

No custom props.

SidebarGroupAction

Prop Type Default
ref CallbackRef<HTMLButtonElement> —

SidebarMenu

No custom props.

SidebarMenuItem

No custom props.

SidebarMenuButton

Prop Type Default
ref CallbackRef<HTMLButtonElement> —
isActive boolean —
tooltip SidebarMenuButtonTooltip —
variant SidebarMenuButtonVariant —
size SidebarMenuButtonSize —

SidebarMenuAction

Prop Type Default
ref CallbackRef<HTMLButtonElement> —
showOnHover boolean —

SidebarMenuBadge

No custom props.

SidebarMenuSkeleton

Prop Type Default
showIcon boolean —
width string —

SidebarMenuSub

No custom props.

SidebarMenuSubItem

No custom props.

SidebarMenuSubButton

Prop Type Default
ref CallbackRef<HTMLAnchorElement> —
size 'sm' | 'md' —
isActive boolean —

useSidebar

Prop Type Default
return SidebarContextValue —