Sidebar

The Sidebar component provides a responsive navigation panel that transforms into a drawer on smaller screens.

Basic Sidebar

Sidebar

Main Content Area

Implementation

<Layout wlSidebar={200}>
  <LayoutBody>
    <Sidebar>
      <SidebarBody>
        <Menu vertical>
          <MenuItem>
            <Icons icon="solar:home-bold" class="mr-2" />
            <Text>Dashboard</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:user-bold" class="mr-2" />
            <Text>Profile</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:settings-bold" class="mr-2" />
            <Text>Settings</Text>
          </MenuItem>
        </Menu>
      </SidebarBody>
    </Sidebar>
    <LayoutMain>
      <!-- Main content -->
    </LayoutMain>
  </LayoutBody>
</Layout>

Responsive Sidebar

Sidebar

Main Content Area (with sidebar trigger)

Resize browser to see responsive behavior

Implementation

<Layout wlSidebar={200}>
  <LayoutBody>
    <Sidebar breakpoint="md">
      <SidebarHeader>
        <Flex class="justify-between items-center p-4">
          <Text variant="h6">App Name</Text>
        </Flex>
      </SidebarHeader>
      <SidebarBody>
        <Menu vertical>
          <MenuTitle>Navigation</MenuTitle>
          <MenuItem>
            <Icons icon="solar:home-bold" class="mr-2" />
            <Text>Dashboard</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:user-bold" class="mr-2" />
            <Text>Profile</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:settings-bold" class="mr-2" />
            <Text>Settings</Text>
          </MenuItem>
        </Menu>
      </SidebarBody>
    </Sidebar>
    <LayoutMain>
      <SidebarTrigger placement="left">
        <Icons icon="solar:hamburger-menu-bold" />
      </SidebarTrigger>
      <!-- Main content -->
    </LayoutMain>
  </LayoutBody>
</Layout>

Sidebar with Header and Footer

App Logo

User Profile

Main Content Area

Implementation

<Layout wlSidebar={200}>
  <LayoutBody>
    <Sidebar>
      <SidebarHeader>
        <Flex class="p-4 border-b">
          <Text variant="h6">App Logo</Text>
        </Flex>
      </SidebarHeader>
      <SidebarBody>
        <Menu vertical>
          <MenuItem>
            <Icons icon="solar:home-bold" class="mr-2" />
            <Text>Dashboard</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:user-bold" class="mr-2" />
            <Text>Profile</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:chart-bold" class="mr-2" />
            <Text>Analytics</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:settings-bold" class="mr-2" />
            <Text>Settings</Text>
          </MenuItem>
          <MenuItem>
            <Icons icon="solar:chat-round-bold" class="mr-2" />
            <Text>Messages</Text>
          </MenuItem>
        </Menu>
      </SidebarBody>
      <SidebarFooter>
        <Flex class="p-4 border-t items-center">
          <Icons icon="solar:user-circle-bold" class="mr-2" />
          <Text>User Profile</Text>
        </Flex>
      </SidebarFooter>
    </Sidebar>
    <LayoutMain>
      <!-- Main content -->
    </LayoutMain>
  </LayoutBody>
</Layout>

Sidebar Props and Configuration

Prop
Description
Example
class Additional CSS classes class="bg-gray-100"
placement Position of the sidebar placement="left" or placement="right"
breakpoint Breakpoint at which sidebar converts to drawer breakpoint="md"
hideCloseButton Whether to hide the close button in drawer mode hideCloseButton=true

Responsive Behavior

The Sidebar component automatically transforms into a drawer on smaller screens based on the specified breakpoint. Available breakpoints are: "sm", "md", "lg", "xl", "2xl".

When in drawer mode, the sidebar can be toggled using the SidebarTrigger component, which should be placed in your layout.