Skip to content

Barefoot CSS v8.5

Acceptance gate

One page that composes everything at the scale the docs talk about: a 500 row × 15 column table that is sortable, selectable, sticky, and dense; a wizard mid-flow; German and Arabic text expansion; and keyboard-only navigation across every surface. If any of this needs a hack, it becomes v7.6 scope — the page exists to find that out. Axe and Verify both run on this page; both must stay quiet.

Back to the conformance demo · recipes · perf budget · API.

The grid — 500 × 15, compact

A sortable column claims its order (aria-sort + data-sort), a select-all control names itself and every row states its selection, the header and leading column stick inside a focusable named scroll region, and data-density="compact" scales the whole shell. On paper the table cuts to its first four columns (data-print).

building the grid…

Deployments across services — 500 rows × 15 columns
0 selected

The wizard — mid-flow

A shared nav owns an empty <form> wrapping the panels: the app moves exactly one aria-current="step" and one panel per click, panels are hidden — never removed, so back preserves input — and leaving a step runs native validation. The stepper contract is exactly one current step on an <li>.

  1. Account
  2. Profile
  3. Review

Profile

Text expansion — DE and AR

Expansion breaks more layouts than direction. The elastic row below absorbs ~30% German and full Arabic right-to-left without a media query; the RTL section mirrors for free through logical properties.

قسم من اليمين إلى اليسار

المحتوى العربي يتبع اتجاه الكتابة دون أي قواعد خاصة — الخصائص المنطقية تتولى الأمر.

Keyboard — every surface reachable

A skip link takes the first Tab stop; tabs and the popover menu are armed (js/barefoot.js), so roving focus and arrow-key navigation work; the filter clears on Escape. Try it with the keyboard only.

The grid is above.