Building a GitHub Pages website, part 5
Wherein our intrepid programmer gets a nice feeling of accomplishment. There is a sidebar, and he explains how to make one of your own. Sort of.
CSS notes
Learn web development | MDN is an excellent resource.
It looks like I want to do something like the following:
- Outer container to limit the width on large monitors.
 - A pair of column containers for the scrollable body and the sidebar.
 - The sidebar has a fixed width.
 - The topnav bar has sticky positioning so that it will stay on top once the banner has scrolled off.
 - The sidebar nav is separate from the logo, and also gets sticky
positioning.
 
At this point
The gross layout is working; the sidebar logo and layout hasn’t been done yet but I don’t expect it to be difficult. Logic to identify the active nav link for special styling would be nice.
The main part of the CSS looks like:
/**
 * Overall layout with sidebar and main column.
 */
body {
    align-items: center;
}
.outer-box {
    min-height: 100%;
    align: center;
    display: flex;
    flex-direction: row;
    max-width: 960px;
    width: 100%;
    border: 2px solid green;
}
.content-column {
    width: 100%;
    display: flex;
    flex-direction: column;
}
.sidebar-column {
    display: flex;
    flex-direction: column;
    width: $sb-width;
    float: right;
}
/**
 * Site header
 */
.site-header {
  border-top: 1px solid $grey-color-dark;
  border-bottom: 1px solid $grey-color-light;
  min-height: $spacing-unit * 1.865;
  z-index: 2;
  position: sticky;
  top: 0px;
  // if we don't set a background color it ends up transparent!
  background-color: $background-color;
}
/**
 * Sidebar
 */
.sidebar {
  border-top: 1px solid $grey-color-dark;
  border-bottom: 1px solid $grey-color-light;
  height: 100%;
  background-color: $sb-background-color;
  color: $sb-text-color;
  text-align: center;
  display: block;
  flex-direction: column;
}