About this set
A classic report table: a dark header row, zebra-striped body rows, a hover highlight and a totals row in the footer. The example shows quarterly revenue by region with two quarter columns, a change column coloured green or red and a share column. Region names are row headers (th scope=”row”), and the total sits in a real tfoot so it stays attached to the table semantically and prints at the bottom. Use it for financial summaries, reports and any table that ends in a total. The card look, a white box with a thin border, rounded corners and a soft shadow, is drawn on a wrapper around the table instead of the table itself. That wrapper is also the scroll container, so on a narrow phone the table scrolls sideways inside the card while the page stays still, and it is a labelled, focusable region so keyboard users can scroll it with the arrow keys. There is no JavaScript. In the Bootstrap version the stripes and hover come from .table-striped and .table-hover recoloured through the –bs-table-* variables, and the Tailwind version uses even: and hover: utilities.
What’s included
- Dark header row, zebra stripes and a hover highlight
- Totals row in a real tfoot
- Positive and negative changes coloured green and red at 4.5:1 or better
- Row headers with scope="row" for each region
- Card wrapper doubles as a keyboard-scrollable region on small screens
Accessibility
The table is named by its heading through aria-labelledby, column headers use scope="col" and region names are row headers. The scroll wrapper is a region with an aria-label and tabindex="0", and it shows a 2px outline when focused. Text colours, including the green and red changes, meet 4.5:1.
Customise it
Edit the .zt rules: header #212936, stripe #f6f8fb, hover #eef3fa, totals #f0f3f8. In Bootstrap set --bs-table-bg (stripe colour), --bs-table-striped-bg and --bs-table-hover-bg on .zt; in Tailwind change the even:, hover: and bg- utilities.




















