Skip to content

Barefoot CSS · v6.3 Paint & Paper

Paint & paper

Three small proofs, zero JavaScript: a validation group that tints when its field is wrong, a sticky table that hints at more data, and a print layer that flattens it all to ink on paper. Back to the conformance demo · paint & paper docs.

Validation groups

Wrap a label, a control, and its message in .bf-form-group. Touch the field with a bad value and the whole group tints while .bf-error-text appears — :has(:user-invalid) does it, no script. The message is wired with aria-describedby so it stays announced.

Enter an address like you@example.com.

Sticky table

.bf-table-sticky is the scroll container, the pinned header, the pinned leading column, and the fade edge in one class. The wrapper carries tabindex="0" and a name so keyboard users can scroll it.

Quarterly ledger
MonthRevenueCostsNet
Jan12,4008,1004,300
Feb11,9007,9503,950
Mar14,2008,4005,800
Apr13,8008,3505,450
May15,6009,1006,500
Jun16,1009,3006,800

The opt-in print.css flattens container layouts, restores plain tables, prints link destinations, and hides screen-only chrome (.bf-no-print). Open print preview to see it — on screen nothing changes.

Read the full documentation screen only

Card A

Stacks on paper, side by side on screen.

Card B

One readable column when printed.