Skip to content

Sidebar

Source: client/lib/theme/vueda-tailwind/navigation/index.js

Uncollapsed sidebar body for the none collapsible mode.

Vue component: Sidebar

SlotDefault classesDescription
rootNonebg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-colUncollapsed sidebar body for the none collapsible mode.
spacercallbackLayout spacer that preserves desktop content offset while the fixed panel transitions.
panelcallbackFixed desktop panel. Width and offcanvas transitions are driven by SidebarProvider CSS variables.

rootNone

Uncollapsed sidebar body for the none collapsible mode.

Default classes:

bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col

Source: client/lib/theme/vueda-tailwind/navigation/Sidebar.theme.js:16

spacer

Layout spacer that preserves desktop content offset while the fixed panel transitions.

Callback:

javascript
({ variant }) => ({
            class: [
                // Layout and motion.
                "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",

                // Data attribute states.
                "group-data-[collapsible=offcanvas]:w-0",
                "group-data-[side=right]:rotate-180",
                {
                    "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":
                        variant === "floating" || variant === "inset",
                    "group-data-[collapsible=icon]:w-(--sidebar-width-icon)":
                        variant !== "floating" && variant !== "inset",
                },
            ],
        })

Source: client/lib/theme/vueda-tailwind/navigation/Sidebar.theme.js:20

panel

Fixed desktop panel. Width and offcanvas transitions are driven by SidebarProvider CSS variables.

Callback:

javascript
({ side, variant }) => ({
            class: [
                // Positioning and sizing.
                "fixed inset-y-0 z-40 hidden h-svh w-(--sidebar-width)",

                // Motion and responsive layout.
                "transition-[left,right,width] duration-200 ease-linear md:flex",

                // Side states.
                {
                    "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]": side === "left",
                    "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]":
                        side === "right",
                },

                // Variant classes.
                {
                    "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":
                        variant === "floating" || variant === "inset",
                    "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r-hairline group-data-[side=right]:border-l-hairline":
                        variant !== "floating" && variant !== "inset",
                },
            ],
        })

Source: client/lib/theme/vueda-tailwind/navigation/Sidebar.theme.js:37

Documents matching: server v3.0.0a1.post1client v3.0.0-alpha.2