List
A list stacks items of one kind, one per row, so a reader can scan them and act on one. Each row stands on its own and shares no columns with the rows around it.
What it is
Modules
- Candidates
- Jobs
- Work permits
- Contracts
- HousingSoon
Can send offers
- Ana HorvatRecruiter, Zagreb
- Marko BabićAccount manager, Split
When to use it
Use a list for items of one kind that a reader opens, switches on or picks, such as the modules of a workspace, the people on a hiring team or the stages of a job.
When rows share columns that a reader compares, use the board grid or a report table. When items hold other items, use the tree of the side navigation. When items are pictures, or vary a lot in size, use cards.
Anatomy
A row has an optional leading element (an icon, an avatar or a checkbox), the text, and an optional trailing element (a chevron, a switch, a counter or a short value).
- Ana HorvatRecruiter, Zagreb
- Card
- Corner radius 24 px, padding 6 px
- --radius-3xl
- Row in a card
- Padding 12 px, corner radius 18 px
- --space-3
- Text in a card
- Subtitle, 15 px, medium
- --type-product-subtitle
- Row on a panel
- 36 px high, 44 px on touch, corner radius 8 px
- --radius-lg
- Text on a panel
- Body, 14 px, medium
- --type-product-body
- Row with two lines
- 58 px in a card
- Space between rows
- 2 px
- Leading icon or avatar
- 20 px or 32 px
- Space after the leading element
- 14 px in a card, 10 px on a panel
- Second line
- Dense, 13 px, in muted ink
- --type-product-dense
- Chevron
- 18 px in a card, 16 px on a panel
- --text-muted
States
In a list that navigates, the current row keeps a tinted fill and the full ink, and the rows around it turn muted.
A module that is coming soon stays in the list with the word Soon at the end of its row. The row is not a link, and it is not faded: the word says the state.
Rest
Hover
Current
Focus
Soon
- CandidatesSoon
- Documents requested
- Visa approved
- Arrived
- Under the pointer
- Faint fill, mouse only
- --glass-fill-hover
- Pressed
- The same fill; a row in a card sinks to 98.5 percent
- --glass-fill-hover
- Current row
- Tinted fill in full ink, the other rows muted
- --nav-fill-active
- Chosen row
- 16 px tick at the end
- --brand-blue
- Focus ring
- 2 px, inside the row
- --focus-ring
Keyboard and screen readers
A list of links follows the browser's own Tab order. A list you choose from takes one Tab stop, and the arrow keys move inside it. When the focused row is removed, focus moves to the next row, or to the previous one at the end.
- Up and Down
- Move between rows
- Home and End
- First and last row
- Space
- Chooses or clears a row
- Enter
- Opens the row
- Right
- Into the row's own buttons
- Left or Escape
- Back to the row
Long, empty and loading
When a list runs longer than the screen, give it group headings that stay at the top while their group scrolls past. They are set in Dense, on a frosted fill.
A list with no rows shows the empty state in its place: one sentence and the next action. While rows load, skeleton rows of the same height hold the space.
A title wraps to two lines and then ends with an ellipsis, and the second line stays on one line. File names are cut in the middle so the extension stays visible. The row's accessible name holds the full text.
Permitted and not permitted
Permitted
A row for a module that is coming, with the word Soon.
Rows separated by space, with a fill under the pointer.
Not permitted
A row faded to half strength to show it is unavailable.
Its words become too faint to read, and the row looks broken.
A line between each row of a short list.
The lines compete with the text and say nothing the space does not.