Board grid
The board grid is the table in WerkOS where your team keeps hiring projects, candidates and work permits: one row per item, one column per field, each value edited where you read it.
The grid at a glance
When to use it
Use the board grid when your team adds, edits and compares items with the same fields, such as candidates, hiring projects or work permits.
When the figures are final and only need reading, use a report table. For a short run of items without columns, use a list.
Anatomy
Headers sit centered above their columns in the label ink, so the eye lands on the values. The name column comes first and is the widest, since people search by it.
- Row and column rules
- 1 px
- --border-rule
- Column header
- 13 px, weight 500, centered, 40 px tall
- --text-label
- Name column
- 280 px, 560 px on the boards of a WerkOS module, at least 140 px
- Checkboxes
- 14 px, select all in the name header
- --brand-blue
- Cell padding
- 8 px
- --space-2
- Group header
- 40 px
- Summary footer
- 48 px
- Trailing gutter
- 44 px, for adding a column and deleting a row
- Frame
- 12 px radius, no border
- --radius-xl
Row heights
Compact is the default. Comfortable and tall give a row room for a second line. A status keeps its own height.
Groups
A group gathers rows under a colored title and a count. Its color comes from the board's palette, a shade darker or lighter where needed, so the title reads in both themes.
- Group title
- 14 px, weight 700, in the group color
- Item count
- 12 px
- --text-muted
- Row marker
- 4 by 16 px, rounded ends
- --radius-full
States
Hover tints the row so you can follow it across a wide board. The active cell has a thin blue ring and a handle for filling down.
- Hover
- ink at 3 percent over the row, pointer devices only
- Selected row
- brand blue at 25 percent
- --brand-blue
- Range
- brand blue at 15 percent per cell
- --brand-blue
- Active cell
- 1 px inset ring, the focus ring from the keyboard
- --brand-blue
- Fill handle
- 8 px square, bottom right
- --brand-blue
- Editing
- a 28 px field over the cell
- --surface-strong
Numbers in cells
Figures sit at the right edge of their cell in tabular digits, so units, tens and hundreds line up down the column while the header stays centered. A negative value takes a true minus sign and keeps the normal ink.
The footer sums each numeric column of the group, or shows its average, median, lowest or highest value.
- Figure
- 14 px, weight 400, tabular, right aligned
- --text
- Footer label
- 11 px, sentence case
- --text-muted
- Footer value
- 14 px, weight 500, tabular
- --text
Keyboard
The grid behaves like a spreadsheet. Each action shown on hover, such as opening a project's chat, is also in the row menu, so the keyboard reaches it.
- Arrow keys
- move the active cell
- Shift with an arrow
- extend the range
- Tab, Shift Tab
- next or previous cell, out of the grid after the last one
- Home, End
- start or end of the row, or of the board with Ctrl or Cmd
- Enter, F2
- edit the cell
- Escape
- close the editor, clear the range
- Delete, Backspace
- clear the cells
- Ctrl or Cmd with C, V, D, A
- copy, paste, fill down, select all
- Ctrl or Cmd with Z
- undo, and redo with Shift
- Shift F10
- open the row menu
On a phone
Below 640 px the grid becomes cards under the same pinned group titles, each with the name and one row of up to 4 fields. A tap on a status, a person, a date or a timeline opens a sheet.
Hiring now3
CNC operators, Osijek
- Stage
- Start date
- Country
- India
Electricians, Dubrovnik
- Stage
- Start date
- Country
- Bosnia and Herzegovina
Cooks, Karlovac
- Stage
- Start date
- Country
- Philippines
New requests3
Welders, Zagreb
- Stage
- Start date
- Country
- Nepal
Truck drivers, Pula
- Stage
- Start date
- Country
- Bangladesh
Carpenters, Rijeka
- Stage
- Start date
- Country
- Kyrgyzstan
Hiring now3
CNC operators, Osijek
- Stage
- Start date
- Country
- India
Electricians, Dubrovnik
- Stage
- Start date
- Country
- Bosnia and Herzegovina
Cooks, Karlovac
- Stage
- Start date
- Country
- Philippines
New requests3
Welders, Zagreb
- Stage
- Start date
- Country
- Nepal
Truck drivers, Pula
- Stage
- Start date
- Country
- Bangladesh
Carpenters, Rijeka
- Stage
- Start date
- Country
- Kyrgyzstan
StageCNC operators, Osijek
- Card
- 12 px radius, 12 px padding, a soft shadow
- --radius-xl
- Name
- 15 px, weight 500
- --text
- Field label
- 11 px, centered
- --text-label
- Field value
- 36 px tall
- Sheet row
- 44 px, one per label
Empty, filtered and loading
An empty board shows a headline, one sentence and a button to add the first item.
When filters hide every row, a line and a Clear filters button take the place of the groups, so nobody mistakes a filter for lost work. A loading board draws its skeleton at its own row height.
This board is empty
Add your first project to get started.
No items match these filters
Accessibility
Screen readers meet the board as a grid, with the project name as the header of its row. Of the cells, only the active one is in the tab order. Each group title is a button that folds its rows.
A status is read by its label, not its color. On touch screens the row checkbox keeps a 44 px target.
Permitted and not permitted
Permitted
Right align figures under a centered header
The digits line up for comparison and the header matches the other columns.
Leave a cell blank when nobody has filled it
Blank means not entered. Zero is a value and prints as 0.
Not permitted
Color negative numbers red
The minus sign carries the meaning. Red reads as an error.
Send a board to an employer as a report
A board is for your team's daily work. Anything that leaves WerkOS is a report table.
Stripe the rows
The row rules already guide the eye. Stripes belong to report tables.