# Sidebar

This page contains sample HTML code to teach you how you can have a sidebar in your page. Our template use the Bootstrap grid system to specify the size of sidebar, so changing the size, side and spacing for the sidebar would so easy.

### Layout

The following code demonstrates the HTML code you should have in your page to implement a sidebar. To make your task easier, we'll provide two sample codes; the first one for left-sided sidebar (like this page) and the second sample is for a right-sided sidebar.

##### Left sidebar

    <main class="main-content">
      <div class="container">
        <div class="row">

          <!-- Sidebar -->
          <div class="col-md-4 col-xl-3">
            <aside class="sidebar"></aside>
          </div>

          <!-- Content -->
          <div class="col-md-7 col-xl-8 ml-md-auto py-9">

          </div>

        </div>
      </div>
    </main>

##### Right sidebar

    <main class="main-content">
      <div class="container">
        <div class="row">

          <!-- Content -->
          <div class="col-md-7 col-xl-8 mr-md-auto py-9">

          </div>

          <!-- Sidebar -->
          <div class="col-md-4 col-xl-3">
            <aside class="sidebar"></aside>
          </div>

        </div>
      </div>
    </main>

##### Notes

- As you notices, we left one of the twelve columns empty as a gap between content and sidebar.
- By default, the `.sidebar` class has `.py-9` for vertical spacing which is equal to spacing of a section. So if you insert a `.section` element inside the content column, you should remove the `.py-9` from class="col-md-7 col-xl-8 mr-md-auto py-9"
- Feel free to replace the `.container` class with `.container-fluid` to have a wider container.

### Variations

Like any other components in our UI Kit, you can change the UI and behavior of sidebar component as well. Make it sticky, change the navigation style or even put your desire content inside the sidebar.

##### Behavior

We know that most of sidebars are sticky these days. You can make the sidebar sticky as easy as adding `.sidebar-sticky` class to the .sidebar tag.

##### Navigation

A special navigation has designed to place inside your sidebar. You simply need to add a `.nav-sidebar` to a normal nav. Also, the .nav-sidebar has two modifiers as well:

- `.nav-sidebar-hero`: To make text larger (like this page)
- `.nav-sidebar-pill`: To add a colored background to the active link (like this page)

### Scrollspy

The Scrollspy is a Bootstrap component to automatically update the navigation based on scroll position to indicate which link is currently active in the viewport. You can have one of them in your page by adding the following code to your `<body>` tag.

    data-spy="scroll" data-target=".nav-sidebar"

You can add an offset value to set an offset from top when calculating position of scroll. The default value is 10 which is equals to add `data-offset="10"`.

The below is white space only for demo purpose to make sure you can scroll down enough.