Barefoot CSS v7.2

Data Story

The density scale, sort and selection contracts, and one composed recipe: filter bar → sortable and selectable table → empty state → pagination. The app owns the state; the platform and the tokens do the rest.

Back to the conformance demo · states & events · the recipe · density docs.

The density scale

One multiplier — --bf-space-scale — cascades through every spacing step, and --bf-type-scale through the type scale. Flip the subtree with data-density, or set the dials at :root for a page-wide custom step.

Density probe — padding and type read the same tokens
ServiceRegionDeploys
apius-east12
webeu-west3

Markup

<div data-density="compact">…</div> :root { --bf-space-scale: 0.85; --bf-type-scale: 0.95; }

One composed recipe

Filter bar, a sortable and selectable table with a sticky header, a bulk-actions bar that appears with a selection, the empty state when the filter matches nothing, and pagination. Verify audits the sort and selection wiring.

Recent deployments — sortable headers, selectable rows
0 selected

Event log

    Server-rendered sort

    data-sort="asc|desc" on a <th> paints the arrow without the module — the declarative mirror of aria-sort. Pair it with the semantic attribute when the sort is real; alone it is a presentational hint for a table that sorted on the server.

    Deployments, sorted by deploys on the server
    Deploys Service
    12api
    8cache
    3web