←StyleKit
Holy Grail LayoutLayout
View Styles
Classic Web Layout Pattern

Holy Grail
Layout

The classic five-zone web layout: sticky header, three equal-height columns (left nav, main content, right sidebar), and a persistent footer. The gold standard for productivity dashboards, admin panels, and documentation sites.

5 ZonesCSS FlexboxResponsiveSEO Friendly
HEADERsticky top-0 z-50
Left Nav
Home
Docs
API
Settings
w-60
Main Content
1,234
metric
$5.6k
metric
98%
metric
12ms
metric
flex-1 min-w-0
Sidebar
Event 1
Event 2
Event 3
w-64
FOOTERborder-t border-gray-200

Five zones — equal-height columns guaranteed by Flexbox

Live Demo

Responsive breakpoints

Toggle between viewports to see how the layout collapses. On tablet, the right sidebar hides. On mobile, all columns stack vertically.

myapp.com/dashboard
MyApp
HomeDocsAPI
A
Navigation
Dashboard
Projects
Analytics
Reports
Settings
Dashboard
Total Users
12,481
Revenue
$48,290
Avg Session
4m 32s
Error Rate
0.12%
Activity
New user registered
2m ago
Order #4821 completed
15m ago
Invoice #INV-099 sent
1h ago
Server health: OK
2h ago
Full 3-column layout: Left Nav + Main + Right Sidebar
Anatomy

The five zones

Each zone has a specific purpose, fixed or adaptive dimensions, and defined Tailwind classes. Together they create a predictable, scannable page structure.

Header
Zone 1

Fixed at top. Contains brand logo, global navigation, and user actions. Always visible during scroll.

Width
Full width
Height
56px (h-14)
sticky top-0 z-50 h-14
Left Nav
Zone 2

Fixed-width left column. Houses the primary navigation menu with active state indicators.

Width
240px (w-60)
Height
flex-1 (fills body)
w-60 flex-shrink-0
Main Content
Zone 3

The primary canvas. flex-1 makes it fill remaining space. min-w-0 prevents overflow blowout.

Width
flex-1 (adaptive)
Height
flex-1 (fills body)
flex-1 min-w-0
Right Sidebar
Zone 4

Fixed-width right column. Secondary info: activity feeds, contextual tools, quick actions.

Width
256px (w-64)
Height
flex-1 (fills body)
w-64 flex-shrink-0
Footer
Zone 5

Anchored below main body. Copyright, secondary links, version info. Always at bottom.

Width
Full width
Height
auto (content-driven)
bg-white border-t
Components

Building blocks

Every interactive element follows strict interaction physics: crisp 150ms transitions, 0.5px content card lifts, anchored nav links, and tactile button press states.

hover:-translate-y-0.5 hover:shadow-md transition-all duration-150 ease-out

Analytics Overview

Track key metrics across all your projects in one unified view.

12,481
Total Events

Revenue Report

Monitor revenue streams and financial health at a glance.

$48.2k
Monthly Total

Performance

Page load times, error rates, and uptime status monitoring.

99.9%
Uptime

User Growth

New signups, active users, and retention rate trends.

+8.3%
MoM Growth

Support Queue

Open tickets, response times, and satisfaction scores.

14
Open Tickets

Deployments

Recent deployment history and environment health status.

3
This Week
Interaction Rules

Animation & interaction rules

Four named interaction patterns govern all Holy Grail components. Hover or interact with each demo card to feel the physics. Productivity tools demand crisp, predictable responses.

Content SupremacyCard Float

Main content cards: minimal, non-distracting float. Enough to signal interactivity without disrupting reading focus.

hover:-translate-y-0.5 hover:shadow-md
transition-all duration-150 ease-out
Project Alpha — Q1 Deliverables
Hover to feel the 0.5px lift
Design System v2.0 Audit
Hover to feel the 0.5px lift
Infrastructure Review
Hover to feel the 0.5px lift
Navigation AnchoringNo Y-shift

Sidebar nav hover uses left-border highlight only. Zero vertical displacement. Nav must feel anchored and stable — it is the user's spatial reference.

hover:border-l-2
hover:border-[#3b82f6]
hover:bg-gray-50
transition-all duration-150
Dashboard
Projects
Analytics
Reports
Settings
Crisp Performanceduration-150

All transitions must be 150ms or less. Productivity tools require instant response. Sluggish animations erode trust and interrupt workflow.

transition-all duration-150 ease-out
✗ duration-300+ prohibited
duration-150 (correct)
duration-500 (prohibited)
Button PhysicsTactile

Three-state button: hover floats 0.5px with glow shadow, active micro-presses with scale(0.98) + translate-y-0 (resets lift), focus shows WCAG 2.1 AA ring.

hover:-translate-y-0.5
hover:shadow-[0_4px_10px_rgba(59,130,246,0.4)]
active:scale-[0.98] active:translate-y-0
focus:ring-2 focus:ring-[#3b82f6] focus:ring-offset-2
transition-all duration-150 ease-out

Press Tab to see the focus ring — WCAG 2.1 AA required

Design Rules

Do's & don'ts

These rules are non-negotiable. Every violation degrades the layout's structural integrity or interaction quality. Apply them without exception.

Do

  • Use CSS Grid or Flexbox to guarantee equal-height columns
  • Fix header with sticky top-0 z-50 — always visible on scroll
  • Make main content flex-1 with min-w-0 to prevent overflow
  • Keep left nav at fixed w-60 and right sidebar at w-64
  • Place main content first in HTML source for SEO
  • Collapse right sidebar at 1024px breakpoint
  • Stack all columns vertically at 768px on mobile
  • All buttons: active:scale-[0.98] + focus:ring-2 + focus:ring-[#3b82f6]
  • Content cards: hover:-translate-y-0.5 hover:shadow-md (minimal motion)
  • Sidebar nav: hover:border-l-2 hover:border-[#3b82f6] — NO vertical shift
  • All transitions: duration-150 ease-out — instant and crisp

Don't

  • Let three columns render at different heights
  • Allow main content to become too narrow — always flex-1 min-w-0
  • Ignore responsive collapse — sidebar must hide at 1024px
  • Let sidebar width change with content — always fixed width
  • Forget to fix header — it must stick on scroll
  • Use large card displacement: hover:-translate-y-2 breaks reading focus
  • Exceed duration-200 for any interactive element animation
  • Omit active:scale-[0.98] on buttons — no tactile confirmation
  • Add vertical displacement to sidebar nav hover — breaks anchoring
  • Apply spring cubic-bezier to productivity UI — too bouncy
  • Use position:absolute to fake equal-height columns
holy-grail-skeleton.tsx
<div className="min-h-screen flex flex-col bg-[#f1f5f9]">
  {/* Header — sticky, always visible */}
  <header className="sticky top-0 z-50 bg-white border-b border-gray-200 shadow-sm">
    <div className="px-6 py-3 flex items-center justify-between h-14">
      ...
    </div>
  </header>

  {/* Three-column body — equal-height via flex */}
  <div className="flex-1 flex">
    {/* Left nav — fixed width */}
    <aside className="w-60 bg-white border-r border-gray-200 p-4 flex-shrink-0 hidden md:block">
      ...
    </aside>

    {/* Main content — adaptive, source-first for SEO */}
    <main className="flex-1 p-6 min-w-0">
      ...
    </main>

    {/* Right sidebar — fixed width, hidden on tablet */}
    <aside className="w-64 bg-white border-l border-gray-200 p-4 flex-shrink-0 hidden lg:block">
      ...
    </aside>
  </div>

  {/* Footer */}
  <footer className="bg-white border-t border-gray-200">
    ...
  </footer>
</div>
Holy Grail Layout

The classic five-zone web layout pattern. Built for productivity dashboards, admin panels, and documentation sites that demand structural clarity.

This StyleDocumentationShowcaseCover
StyleKitHomeAll Styles
Compatiblecorporate-cleaneditorialnotion-styleminimalist-flatdark-mode
Holy Grail Layout — part of the StyleKit design system
←All Styles