@redrob-labs/ui v1.0.2 · Redrob Group Design System 2026

Band

Frames · src/components/Band/Band.tsx

One horizontal stretch of a page: its ground, its texture, and the rail that holds the content to a readable measure.

There is no centering prop and no alignment prop. That absence is deliberate - 50-not-generated.md names per-section alignment controls as the tell of a generated layout, and a system that offers them gets pages that wander.

The cut is drawn as its own layer rather than on the band, because the band's ::before already carries the grain and one element cannot hold both.

Import

import { Band } from '@redrob-labs/ui';

Rendered

The design system's own preview case, run against this package's build. The parity gate compares this rendering to the reference bundle's.

Props

PropTypeNotes
ground 'base' | 'raised' | 'sunken' | 'brand' | 'wash' | 'deep' Which ground this stretch of page sits on.
product BandProduct Wears one product's grounds. Only meaningful on base, wash and brand.
threshold boolean | 'spectrum' The 40 degree cut along the band's edge. spectrum is for suite surfaces only.
size 'sm' | 'md' | 'lg'
grain boolean false drops the grain on a non-base ground.
texture 'rake' | 'threshold' | 'weave' | 'rule' | 'grid' One of the five textures. Never behind body copy, one per page.
textureScale 'sm' | 'md' | 'lg'
textureFade boolean false keeps the texture at full strength to the band's edge.
wide boolean Lets the rail run wider than the default measure.
as keyof React.JSX.IntrinsicElements The element. section by default, because a band is usually a section of the page.
labelledBy string Id of the heading that names this band.
id string
className string
children React.ReactNode

Exported types

BandProduct