Table
Sortable, paginated, selectable — the admin client list
Sorting is opt-in per column: the header calls sort() and reads back sortField/sortOrder to pick its own glyph, so a design has to say which columns sort. Row selection needs dataKey. A wide table gets a min-width and scrolls sideways rather than crushing its columns.
Light
| Client | Province | Members |
|---|---|---|
| Rural Manitoba | Manitoba | 14 |
| Interlake Region | Manitoba | 6 |
| Northern Ontario | Ontario | 21 |
1-3 of 5
3
Dark
| Client | Province | Members |
|---|---|---|
| Rural Manitoba | Manitoba | 14 |
| Interlake Region | Manitoba | 6 |
| Northern Ontario | Ontario | 21 |
1-3 of 5
3
Plain, with a footer — the user management list
The same component with none of the extras: no pagination, no sorting, no selection. Note the two unlabelled columns at each end, for the avatar and the row action — they still need a width in a design, and an accessible name from us.
Light
| Name | Type | Status | Last login | |||
|---|---|---|---|---|---|---|
| H. Eskandari | h.eskandari@example.test | Admin | Aug 26, 2026 | |||
| Dana Reid | dana.reid@example.test | Member | Aug 24, 2026 | |||
| Jo Lin | jo.lin@example.test | Member | — | |||
| 3 members · 1 invitation pending | ||||||
Dark
| Name | Type | Status | Last login | |||
|---|---|---|---|---|---|---|
| H. Eskandari | h.eskandari@example.test | Admin | Aug 26, 2026 | |||
| Dana Reid | dana.reid@example.test | Member | Aug 24, 2026 | |||
| Jo Lin | jo.lin@example.test | Member | — | |||
| 3 members · 1 invitation pending | ||||||
Loading and empty
Both come from the component: [loading] and emptyMessageTemplate. Worth designing, because a table fed by a request shows one of them first.
Light
| Client | Province | Members |
|---|
| Client | Province | Members |
|---|
Dark
| Client | Province | Members |
|---|
| Client | Province | Members |
|---|