wb-container
Constrains the measure of the page and keeps side padding consistent.
WebBlocks treats layout as a first-class layer. A dashboard shell should not feel like a content shell with extra pieces bolted on. An auth page should not inherit the density of an admin index. Different jobs deserve different structures.
These are the base composition tools. They solve width, vertical rhythm, horizontal grouping, and repeatable distribution without inventing a second utility language.
wb-containerConstrains the measure of the page and keeps side padding consistent.
wb-sectionDefines vertical spacing for major page bands.
wb-stack, wb-cluster, wb-splitHandle common content relationships without bespoke layout CSS in every file.
wb-gridProvides fixed and auto-fill grid patterns when repetition is actually needed.
Navigation components set the frame of an application. The navbar manages top-level movement and actions. The sidebar manages persistent hierarchy.
A dashboard wants persistent navigation. An auth page wants focus and centering. A settings page wants long-form form structure. A content page wants readable measure. These are different problems and WebBlocks keeps them separate.
wb-dashboard-shellwb-authwb-settings-shellwb-content-shellThese two layouts show the difference between task-oriented settings work and text-oriented reading work.
Long-form preference pages are easier to scan in blocks.
Content shells keep long text comfortable while preserving the same token system and class vocabulary.
Use these primitives when the page is editorial, promotional, or content-led rather than application-heavy. They keep hero sections, reading columns, footer navigation, and public-site nav markup explicit.
wb-hero, wb-navbar-nav
Built for public-facing product pages
`wb-hero` handles the opening rhythm, while the navbar helpers keep public-site links and brand notes legible.
wb-content-columns, wb-content-stack, wb-footer-grid
Use wb-content-columns for paired editorial blocks like positioning plus detail, summary plus proof, or introduction plus supporting copy.
Use wb-content-stack when the section should read in one measured column without becoming a narrow prose shell.
These primitives are intentionally plain. They are there to replace throwaway page-specific layout CSS in website and content surfaces.
The goal is the same as the rest of WebBlocks: named structure, visible intent, and reusable page rhythm.
The layout layer is there so you do not have to improvise wrappers every time. This is the level of visibility the project tries to preserve.
<header class="wb-navbar wb-navbar--static">
<a href="#" class="wb-navbar-brand">
<span>Northstar</span>
<span class="wb-navbar-brand-note">Editorial system</span>
</a>
<span class="wb-navbar-spacer"></span>
<ul class="wb-navbar-nav">
<li class="wb-navbar-nav-item"><a href="#" class="wb-navbar-link is-active">Overview</a></li>
</ul>
</header>
<section class="wb-hero">
<div class="wb-hero-content">...</div>
</section>
<div class="wb-content-columns">
<p>...</p>
<p>...</p>
</div>