.card instead of
.sidebar-section in
.sidebar-component container, along with a few
additional utility classes in main sidebar container to
display sidebar in cards format.
Sidebars overview
Sidebar - vertical area that displays onscreen and
presents widget components and website navigation menu in
a text-based hierarchical form. All sidebars are
css-driven - just add one of css classes to the
.sidebar container, and sidebar will change
its width and color. No js, css only. Although sidebar
type is based on css, buttons do their job with JS - they
switch necessary classes in
.sidebar container. Below you'll find
summarized tables with all available
button and sidebar container
classes. By default, the template includes 6 different
sidebar types and combinations:
1. Default sidebar
Default template sidebar has
300px (~18.75rem) width, aligned to the
left (to the right in RTL version) and has dark blue
background color. All navigation levels are based on
accordion or collapsible functionality,
open on click. Supports 2 versions: fixed (default) and
static (in static layout only). Both versions use
default browser scrollbars, but support custom
scrollbars such as
perfect scrollbar component.
2. Mini sidebar
Mini sidebar has 56px width, which is
calculated dynamically (icon size + double padding). No
text in parent level of menu items, aligned to the left
(to the right in RTL version) and has dark blue
background color. Sidebar changes the width on hover, no
additional changes. It is required to
add .sidebar-main-resized class to the
.sidebar container if you want to have it
collapsed by default. This class is responsible for
sidebar width and main navigation. By default all
components except main navigation are hidden in mini
sidebar. Can be used with main sidebar only.
3. Secondary sidebar
Main sidebar has 300px width or
56px (if
.sidebar-main-resized class added).
Secondary sidebar has the same fixed width of
300px, which is similar to default and
right sidebars, so different sidebar components can be
placed to all sidebar types. Main and secondary sidebars
can contain any content - menu, navigation, buttons,
lists, tabs etc. Secondary sidebar can be either
collapsed or hidden.
4. Right sidebar
Right sidebar layout includes additional sidebar displayed on the right (left in RTL direction) side. It is displayed as an additional component with 100% height, similar to other sidebars. Right sidebar is visible by default, but can be collapsed or hidden.
5. Right/Secondary sidebars
Secondary and Right sidebars can be used together, so basically it is a 4 column layout. The width of any sidebar doesn't affect other layout columns, they all have independent width controls. Refer to the table below for more information.
6. Content (component) sidebar
Usually sidebar is not a part of content and mainly used for navigation. Limitless allows you to use sidebar outside and inside content area. Content sidebar isn't based on grid and has the same width as other sidebars, this means all sidebar components can be placed inside content sidebar. Supports left and right positioning and can be either stretched to fill all available height or height that depends on sidebar content height.
Button classes
Overview
This table displays all optional
button classes, responsible for the sidebar
appearance. Depending on the sidebar type, add one of
these classes to any button or link and this element will
handle sidebar control. Multiple controls are also
available - add as many sidebar controls as you wish.
Please note: these classes don't change sidebar markup,
only CSS rules.
| Button class | Action |
|---|---|
.sidebar-main-resize |
Resizable sidebar. Changes main sidebar width from default to mini. This button is added to all pages by default. |
.sidebar-main-toggle |
Collapses/expands and/or hides/shows
main sidebar. Used mostly in dual
sidebar type to hide main sidebar.
|
.sidebar-end-toggle |
Toggles right sidebar - if right sidebar is shown, main sidebar width remains the same, whether it's in default or mini mode. |
.sidebar-secondary-toggle |
Hides/shows or collapses/expands
secondary sidebar. Secondary sidebar
supports only toggle functionality and always has
fixed width of 300px.
|
.sidebar-component-toggle |
Hides/shows content sidebars. Content
sidebars aren't connected with other sidebars, so
this is the only button that controls their
visibility.
|
.sidebar-mobile-main-toggle |
Toggles main sidebar on mobile -
slides from left to right.
|
.sidebar-mobile-secondary-toggle
|
Toggles secondary sidebar on mobile -
slides from left to right.
|
.sidebar-mobile-end-toggle |
Toggles right sidebar on mobile -
slides from right to left.
|
.sidebar-mobile-component-toggle
|
Toggles content sidebar on mobile -
has full width by default, has no animation.
|
Example Markup
Default placement of sidebar control buttons is sidebar header:
<!-- Main sidebar -->
<div class="sidebar sidebar-dark sidebar-main sidebar-expand-lg">
<!-- Sidebar content -->
<div class="sidebar-content">
<!-- Header -->
<div class="sidebar-section">
<div class="sidebar-section-body d-flex justify-content-center">
<h6 class="sidebar-resize-hide flex-grow-1 my-auto">Navigation</h6>
<div>
<button type="button" class="[button classes]">
<i class="ph-arrows-left-right"></i>
</button>
<button type="button" class="[button classes]">
<i class="ph-x"></i>
</button>
</div>
</div>
</div>
<!-- /header -->
[other content]
</div>
<!-- /sidebar content -->
</div>
<!-- /main sidebar -->
Here is an example of button inside navbar:
<!-- Navbar placement -->
<div class="navbar navbar-expand navbar-dark">
<div class="navbar-brand">...</div>
<ul class="navbar-nav">
<li class="nav-item">
<a href="#" class="navbar-nav-link sidebar-control sidebar-main-toggle">
<i class="ph-arrows-left-right"></i>
</a>
</li>
...
</ul>
</div>
<!-- /navbar placement -->
Sidebar classes
Overview
This table demonstrates all classes for
sidebar container, responsible for the
sidebar width and color. Almost all of these classes are
mandatory, some of them are responsible for proper styling
or have a specific code attached to this class (like
.sidebar-main class, which has collapsible
functionality). All classes can be combined depending on
the type of sidebar:
| Body class | Description |
|---|---|
.sidebar |
Default sidebar class, should be added in all layout types. |
.sidebar-main |
Defines main sidebar. Mini
sidebar (.sidebar-main-resized class)
takes effect only if sidebar has
.sidebar-main class. By default, all
components except main navigation are hidden in
mini sidebar.
|
.sidebar-main-resized |
Defines main sidebar in
collapsed state
|
.sidebar-secondary |
Defines secondary sidebar. Has
fixed 270px width and usually comes
after main sidebar.
|
.sidebar-secondary-collapsed |
Defines secondary sidebar in
collapsed state
|
.sidebar-end |
Defines right sidebar. Has fixed
270px width and appears on the right
side from the main sidebar.
|
.sidebar-end-collapsed |
Defines right sidebar in
collapsed state
|
.sidebar-component |
This class is required in
content (or component) sidebar.
Also requires
.sidebar-component-left or
.sidebar-component-right classes for
proper spacing.
|
.sidebar-component-collapsed |
Defines content sidebar in collapsed state |
.sidebar-dark |
Defines dark sidebar. This class can be applied to all sidebar types and positions. This class is also required for custom colors (see below). |
.sidebar-dark.bg-* |
Defines sidebar background color. According to the custom color system, sidebar background color can be changed to one of the available colors by adding a proper class to the main sidebar container. |
.sidebar-expand-[breakpoint] |
This class specifies when sidebar needs to be collapsed, basically when sidebar switches to mobile mode. Breakpoint should always be similar to navbar breakpoint for proper matching. Available breakpoints are: xl, lg, md and sm. This class is required. |
.sidebar-main-unfold |
This class gets added when user hovers on mini sidebar. It controls resizable behaviour when main sidebar is collapsed. Has no effect on mobile since all sidebars on mobile have same width. |
Example Markup
Default left aligned sidebar markup:
<!-- Default sidebar layout -->
<body>
<!-- Navbar -->
<div class="navbar navbar-dark navbar-expand-lg">
...
</div>
<!-- /navbar -->
<!-- Page container -->
<div class="page-content">
<!-- Main sidebar -->
<div class="sidebar sidebar-dark sidebar-main sidebar-expand-lg">
<div class="sidebar-content">
...
</div>
</div>
<!-- /main sidebar -->
<!-- Main content -->
<div class="content-wrapper">
...
</div>
<!-- /main content -->
</div>
<!-- /page content -->
</body>
<!-- /default sidebar layout -->
Mini sidebar markup. The only difference is
.sidebar-main-resized class:
<!-- Mini sidebar layout -->
<body>
<!-- Navbar -->
<div class="navbar navbar-dark navbar-expand-lg">
...
</div>
<!-- /navbar -->
<!-- Page container -->
<div class="page-content">
<!-- Main sidebar -->
<div class="sidebar sidebar-dark sidebar-main sidebar-expand-lg sidebar-main-resized">
<div class="sidebar-content">
...
</div>
</div>
<!-- /main sidebar -->
<!-- Main content -->
<div class="content-wrapper">
...
</div>
<!-- /main content -->
</div>
<!-- /page content -->
</body>
<!-- /mini sidebar layout -->