Composition
Surface & Section
nbSurface creates the outer brutalist container. nbSection creates internal regions. Together they replace repeated card shell markup with a clear, intentional structure.
How they relate
nbSurface
The outer container. Owns the tone, radius, shadow, and border of the whole card shell. Use clip to keep inner regions within the surface radius.
nbSection
An inner region. Owns its own padding and optional divider borders. Use divider="top" or divider="bottom" to structure the panel into clear zones. Use divider="block" for top + bottom and divider="inline" for left + right.
Basic panel
A surface with a header region and a body region — the minimal card shell.
Profile
Chunky card shell with clear regions.
The clip input
When a surface has a non-zero radius, add clip so that section backgrounds, dividers, and other inner content respect the outer rounded corners. Without clip, inner backgrounds bleed through the corners.
With clip
With clip
The pushed-out dot and stripe are cut at the rounded edge.
Without clip
Without clip
The same inner children spill past the surface radius.
When to use Surface & Section
Key inputs
tonenbSurfaceColor theme — cream, yellow, pink, mint, lavender, black, white, etc.
radiusnbSurfaceCorner shape — none, xs, sm, md, lg, xl, full
shadownbSurfaceBrutalist offset depth — none, sm, default, hard, heavy
bordernbSurfaceOutline strength — none, thin, default, strong, thick
clipnbSurfaceBoolean. Clips inner content to the surface radius.
paddingnbSectionInternal space — none, xs, sm, md, lg, xl
dividernbSectionDivider position — top, bottom, left, right, block (top + bottom), inline (left + right), all, none
layoutnbSectionFlex layout — default, center, between