data-page-layout

Full-page layouts using data-page-layout on the body element. Semantic children auto-assign to grid areas.

Overview

The data-page-layout attribute goes on the <body> element. Semantic children (header, nav, main, aside, footer) are automatically assigned to named grid areas.

<body data-page-layout="sidebar-left"> <header>Site header...</header> <nav>Sidebar navigation...</nav> <main>Page content...</main> <footer>Site footer...</footer> </body>

Available Page Layouts

Value Description
stackSingle column (mobile-first default)
sidebar-leftTwo-column with left navigation
sidebar-rightTwo-column with right sidebar
holy-grailThree-column classic layout
app-shellVertical nav bar for apps
dashboardAdmin panel with sticky nav
articleCentered content for reading
landingMarketing page with named sections

Dashboard Layout

<body data-page-layout="dashboard"> <header data-layout-sticky>Dashboard header...</header> <nav data-layout-sticky>Navigation sidebar...</nav> <main data-layout="stack" data-layout-gap="l"> Content area with nested stack layout... </main> </body>

Dashboard Modifiers

Attribute Values Description
data-header-height3rem, 3.5rem, 4remOverride dashboard header height
data-nav-openbooleanShow mobile nav overlay (toggle on small viewports)

Semantic Grid Identity

Semantic elements automatically register to grid areas:

Element Grid Area
<header>body-header
<nav>body-nav
<main>body-main
<aside>body-aside
<footer>body-footer

Content-Aware Adaptation

Layouts automatically adapt when elements are missing:

  • holy-grail without <aside> becomes two-column
  • sidebar-left without <nav> becomes single-column
  • All layouts collapse to stack on mobile (unless data-layout-nowrap is set)

Grid Area Override

Use data-layout-area to explicitly assign elements to named areas:

Value Use Case
heroHero section on landing pages
bannerBanner or announcement area
sidebarGeneric sidebar area
contentMain content area
featureFeature section
ctaCall-to-action section
tocTable of contents

Named areas are used with the landing page template which defines grid rows for hero, feature, and cta. See the Grid Identity page for details and the landing page demo.

Layout Utilities

Attribute Description
data-layout-stickyMake header, nav, or aside sticky
data-layout-bleedSpan all grid columns (full-width)
data-layout-nowrapPrevent responsive stacking
data-layout-sidebar="collapsed"Use collapsed sidebar width
data-layout-sidebar="hidden"Hide the sidebar nav
data-layout-order="-1|1|99"Reorder elements
data-layout-areaExplicit grid area assignment
data-containerEstablish inline-size containment. Presets: card, panel, media (details)