.sidebar-dark class to the base
.sidebar-secondary container.
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 -->