Back to CSS Sidebar Layouts Footer-pinned Sidebar Pure CSS
Share
.sb-ftr {
  display: grid; grid-template-columns: 240px 1fr;
  min-height: 480px;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: #0a0a0c;
  color: #d8e6dc;
  border-radius: 4px; overflow: hidden;
  border: 1px solid #00ff88;
  box-shadow: 0 0 32px rgba(0,255,136,0.15);
}
.sb-ftr-side {
  background:
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(255,255,255,0.015) 8px 9px),
    linear-gradient(180deg, #14181a 0%, #0a0c0d 100%);
  border-right: 1px solid rgba(0,255,136,0.3);
  padding: 18px 14px;
  display: flex; flex-direction: column; gap: 16px;
  position: relative;
}
.sb-ftr-side::before {
  content: ''; position: absolute; right: -1px; top: 30%; bottom: 30%; width: 2px;
  background: #00ff88; box-shadow: 0 0 12px #00ff88;
}
.sb-ftr-brand { display: flex; align-items: center; gap: 12px; padding: 4px 6px 14px; border-bottom: 1px solid rgba(0,255,136,0.25); }
.sb-ftr-mark { width: 28px; height: 28px; flex-shrink: 0; background: linear-gradient(135deg, #00ff88 0%, #00b870 100%); transform: rotate(45deg); box-shadow: 0 0 16px rgba(0,255,136,0.6), inset 0 0 8px rgba(0,0,0,0.4); }
.sb-ftr-brand strong { font-family: 'Courier New', monospace; font-size: 14px; font-weight: 800; letter-spacing: 0.18em; color: #fff; line-height: 1; }
.sb-ftr-brand strong small { display: block; font-size: 9.5px; color: #00ff88; font-weight: 700; letter-spacing: 0.4em; margin-top: 4px; text-shadow: 0 0 8px rgba(0,255,136,0.5); }
.sb-ftr-side ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.sb-ftr-side a {
  position: relative;
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 4px;
  font-family: 'Courier New', monospace; font-size: 13px; font-weight: 700;
  letter-spacing: 0.06em; color: #8aa094;
  text-decoration: none;
  border-left: 2px solid transparent;
  transition: background 0.14s, color 0.14s, border-color 0.14s;
}
.sb-ftr-side a:hover { background: rgba(0,255,136,0.08); color: #fff; border-left-color: rgba(0,255,136,0.5); }
.sb-ftr-side a[aria-current="page"] {
  background: rgba(0,255,136,0.14); color: #00ff88;
  border-left-color: #00ff88;
  text-shadow: 0 0 8px rgba(0,255,136,0.5);
  box-shadow: inset 0 0 16px rgba(0,255,136,0.08);
}
.sb-ftr-i { font-size: 11px; width: 14px; text-align: center; flex-shrink: 0; }
.sb-ftr-side a em { margin-left: auto; font-size: 9.5px; font-style: normal; padding: 1px 5px; border: 1px solid rgba(138,160,148,0.35); border-radius: 2px; color: #8aa094; }
.sb-ftr-side a[aria-current="page"] em { border-color: rgba(0,255,136,0.5); color: #00ff88; }
.sb-ftr-foot {
  margin-top: auto;
  display: flex; align-items: center; gap: 12px;
  padding: 12px;
  background: rgba(0,255,136,0.06);
  border: 1px solid rgba(0,255,136,0.25);
  border-radius: 4px;
}
.sb-ftr-avatar {
  width: 38px; height: 38px; flex-shrink: 0;
  background: linear-gradient(135deg,#00ff88,#00b870);
  color: #0a0a0c;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Courier New', monospace; font-size: 13px; font-weight: 900;
  letter-spacing: 0.04em;
  clip-path: polygon(15% 0, 100% 0, 100% 85%, 85% 100%, 0 100%, 0 15%);
}
.sb-ftr-user { min-width: 0; flex: 1; }
.sb-ftr-user strong { display: block; font-family: 'Courier New', monospace; font-size: 12px; font-weight: 800; color: #fff; letter-spacing: 0.06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sb-ftr-user span { display: flex; align-items: center; gap: 6px; font-family: 'Courier New', monospace; font-size: 10px; color: #8aa094; letter-spacing: 0.08em; margin-top: 3px; }
.sb-ftr-user span i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #00ff88; box-shadow: 0 0 8px #00ff88; animation: sb-ftr-blink 1.5s ease-in-out infinite; }
@keyframes sb-ftr-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
@media (prefers-reduced-motion: reduce) { .sb-ftr-user span i { animation: none; } }
.sb-ftr-main { padding: 32px 36px; display: flex; flex-direction: column; gap: 20px; background: linear-gradient(180deg, #0e1212 0%, #0a0a0c 100%); }
.sb-ftr-main::before { content: ''; position: absolute; }
.sb-ftr-eye { font-family: 'Courier New', monospace; font-size: 11px; font-weight: 800; letter-spacing: 0.22em; color: #00ff88; text-shadow: 0 0 8px rgba(0,255,136,0.5); }
.sb-ftr-main h2 { margin: 0; font-family: 'Inter', sans-serif; font-size: clamp(36px, 5vw, 64px); font-weight: 900; line-height: 0.92; letter-spacing: -0.03em; color: #fff; text-shadow: 0 0 30px rgba(0,255,136,0.2); }
.sb-ftr-main p { margin: 0; font-size: 13.5px; color: #b8c4be; line-height: 1.6; max-width: 460px; }
.sb-ftr-main code { font-family: 'Courier New', monospace; font-size: 12px; color: #00ff88; background: rgba(0,255,136,0.1); padding: 1px 6px; border-radius: 2px; border: 1px solid rgba(0,255,136,0.3); }
.sb-ftr-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; max-width: 460px; margin-top: auto; }
.sb-ftr-stat { padding: 14px 16px; background: rgba(0,255,136,0.06); border: 1px solid rgba(0,255,136,0.25); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.sb-ftr-stats b { display: block; font-family: 'Courier New', monospace; font-size: 24px; font-weight: 900; color: #00ff88; letter-spacing: 0.04em; line-height: 1; text-shadow: 0 0 8px rgba(0,255,136,0.4); }
.sb-ftr-stats span { display: block; font-family: 'Courier New', monospace; font-size: 10px; color: #8aa094; letter-spacing: 0.18em; margin-top: 6px; text-transform: uppercase; }
@media (max-width: 720px) {
  .sb-ftr { grid-template-columns: 1fr; }
  .sb-ftr-side { border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
  .sb-ftr-foot { margin-top: 8px; }
}
<div class="sb-ftr">
  <aside class="sb-ftr-side" aria-label="Primary">
    <header class="sb-ftr-brand">
      <span class="sb-ftr-mark" aria-hidden="true"></span>
      <div>
        <strong>QUANTUM<small>OS</small></strong>
      </div>
    </header>
    <nav aria-label="Primary">
      <ul>
        <li><a href="#!" aria-current="page"><span class="sb-ftr-i" aria-hidden="true">▶</span>Play<em>P</em></a></li>
        <li><a href="#!"><span class="sb-ftr-i" aria-hidden="true">▤</span>Library<em>L</em></a></li>
        <li><a href="#!"><span class="sb-ftr-i" aria-hidden="true">◇</span>Friends<em>F</em></a></li>
        <li><a href="#!"><span class="sb-ftr-i" aria-hidden="true">★</span>Trophies<em>T</em></a></li>
        <li><a href="#!"><span class="sb-ftr-i" aria-hidden="true">⚙</span>Settings<em>S</em></a></li>
      </ul>
    </nav>
    <footer class="sb-ftr-foot">
      <div class="sb-ftr-avatar" aria-hidden="true">VR</div>
      <div class="sb-ftr-user">
        <strong>vimal_raj_</strong>
        <span><i></i>Online · LVL 47</span>
      </div>
    </footer>
  </aside>
  <main class="sb-ftr-main">
    <span class="sb-ftr-eye">▸ NOW LOADING · ARENA_47</span>
    <h2>Ready<br/>Player One.</h2>
    <p>The user block at the bottom is pinned with <code>margin-top: auto</code> — it stays put no matter how many nav items appear above. Plasma green for "online" because nothing else has the right intensity.</p>
    <div class="sb-ftr-stats">
      <div class="sb-ftr-stat"><b>2,481</b><span>XP</span></div>
      <div class="sb-ftr-stat"><b>87</b><span>Wins</span></div>
      <div class="sb-ftr-stat"><b>4.9</b><span>Rank</span></div>
    </div>
  </main>
</div>
Live preview Edit any tab — preview updates live Ready