skip to content

patterns

Shell

The app frame stacks at 672. The language site stacks at 1312. Section tabs wrap at 1056. A long catalog is a select.

two frames

--grid-columns 16

.tz-shell is the app: brand in the sidebar column, topbar beside it, nav under brand, main scrolling, status full width. It stacks below 672px — nav becomes a horizontal strip, never a hamburger. .tz-shell--site is this language site: the topbar is full-bleed and the brand lives inside it. It stacks below 1312px so a laptop measure does not keep a 236px sidebar. Four section tabs wrap onto their own row below 1056px. A long catalog is a select whose label is the current page. The sidebar follows the active tab.

app · 672

brand
top
nav
main
status

site · 1312

top
nav
main
status

contract

viewport ≠ density

Viewport is layout. Density is data-density. A coarse pointer is a hit-target floor. Do not drive one from the other. .tz-shell--flat drops brand and nav for a sign-in or a 404 — same topbar and status, one region fewer.

cutcolumnsapp shellsite shell
< 6724stacks; nav is a stripalready stacked
672–10558sidebar holdsstacked; tabs on a second row; catalog is a select
1056–131116full framestacked; catalog is a select
≥ 131216full framesidebar holds
pageshellthemelighttokenscopy2026srclinknominal