List
Lists are continuous, vertical indexes of text or images.
Lists are composed of items containing primary and supplemental actions, which are represented by icons and text.
Introduction
Lists present information in a concise, easy-to-follow format through a continuous, vertical index of text or images.
Archi-UI lists are implemented using a collection of related compenents:
- List: a wrapper for list items. Renders as a
<ul>
by default. - List Item: a common list item. Renders as an
<li>
by default. - List Item Button: an action element to be used inside a list item.
- List Item Icon: an icon to be used inside of a list item.
- List Item Avatar: an avatar to be used inside of a list item.
- List Item Text: a container inside a list item, used to display text content.
- Divider: a separator between list items.
- List Subheader: a label for a nested list.
Basic List
Preview
- Item 1
- selected
- disabled
- disable Gutters
- disable Padding
Usage
import { List, ListItem } from 'archi-ui'
<List>
<ListItem divider>Item 1</ListItem>
<ListItem divider selected>selected</ListItem>
<ListItem divider disabled>disabled</ListItem>
<ListItem divider disableGutters>disable Gutters</ListItem>
<ListItem divider disablePadding>disable Padding</ListItem>
</List>
Folder List
Preview
- Photos
May 18, 2026
- Work
May 20, 2026
- Vacation
May 25, 2026
List with different settings
Preview
Text only
- Single-line item
Secondary text
- Single-line item
Secondary text
- Single-line item
Secondary text
Icon with text
- Single-line item
Secondary text
- Single-line item
Secondary text
- Single-line item
Secondary text
Avatar with text
- Single-line item
Secondary text
- Single-line item
Secondary text
- Single-line item
Secondary text
Avatar with text and icon
- Single-line item
Secondary text
- Single-line item
Secondary text
- Single-line item
Secondary text
Selected ListItem
Preview
Align list items
When displaying three lines or more, the avatar is not aligned at the top. You should set the alignItems="flexStart"
prop to align the avatar at the top.
Preview
- Brunch this weekend?
Ali Connors
— I'll be in your neighborhood doing errands this… - Summer BBQ
to Scott, Alex, Jennifer
— Wish I could come, but I'm out of town this… - Oui Oui
Sandra Adams
— Do you have Paris recommendations? Have you ever…
List Controls
Checkbox
A checkbox can either be a primary action or a secondary action.
The checkbox is the primary action and the state indicator for the list item. The comment button is a secondary action and a separate target.
Preview
- List item 1
- List item 2
- List item 3
- List item 4
The checkbox is the secondary action for the list item and a separate target.
Preview
- List item 1
- List item 2
- List item 3
- List item 4
Switch
The switch is the secondary action and a separate target.
Preview
- Settings
- Wi-Fi
- Bluetooth
Sticky Header
Upon scrolling, subheaders remain pinned to the top of the screen until pushed off screen by the next subheader. This feature relies on CSS sticky positioning.
Preview
- I'm sticky 0
- Item 0
- Item 1
- Item 2
- Item 3
- Item 4
- I'm sticky 1
- Item 0
- Item 1
- Item 2
- Item 3
- Item 4
- I'm sticky 2
- Item 0
- Item 1
- Item 2
- Item 3
- Item 4
- I'm sticky 3
- Item 0
- Item 1
- Item 2
- Item 3
- Item 4
- I'm sticky 4
- Item 0
- Item 1
- Item 2
- Item 3
- Item 4
- I'm sticky 5
- Item 0
- Item 1
- Item 2
- Item 3
- Item 4
Gutterless List
When rendering a list within a component that defines its own gutters, ListItem
gutters can be disabled with disableGutters
.
Preview
- List item 1
- List item 2
- List item 3
List API
API reference docs for the React List component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | The content of the component. |
className | string | - | Override or extend the styles applied to the component. |
disablePadding | bool | false | If true , vertical padding is removed from list. |
subheader | node | - | The content of the subheader, normally ListSubheader . |
ListItem API
API reference docs for the React ListItem component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | The content of the component. |
className | string | - | Override or extend the styles applied to the component. |
alignItems | 'center' | 'flexStart' | 'center' | Defines the align-items style property. |
disablePadding | bool | false | If true , all padding is removed. |
disabled | bool | false | If true , the component is disabled. |
selected | bool | false | If true , use to apply selected styling. |
disableGutters | bool | false | If true , the left and right padding is removed. |
divider | bool | false | If true , a 1px light border is added to the bottom off the list item. |
secondaryAction | node | - | The element to display at the end of ListItem. |
ListItemAvatar API
API reference docs for the React ListItemAvatar component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | The content of the component. |
className | string | - | Override or extend the styles applied to the component. |
ListItemButton API
API reference docs for the React ListItemButton component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | The content of the component. |
className | string | - | Override or extend the styles applied to the component. |
alignItems | 'center' | 'flexStart' | 'center' | Defines the align-items style property. |
disabled | bool | false | If true , the component is disabled. |
selected | bool | false | If true , use to apply selected styling. |
disableGutters | bool | false | If true , the left and right padding is removed. |
divider | bool | false | If true , a 1px light border is added to the bottom off the list item. |
ListItemIcon API
API reference docs for the React ListItemIcon component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | The content of the component. |
className | string | - | Override or extend the styles applied to the component. |
ListItemText API
API reference docs for the React ListItemText component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | Alias for the primary prop. |
className | string | - | Override or extend the styles applied to the component. |
inset | bool | false | If true , the children are indented. This should be used if there is no left avatar or left icon. |
primary | node | - | The main content element. |
secondary | node | - | The secondary content element. |
primaryTypographyProps | object | - | These props will be forwarded to the primary typography component. |
secondaryTypographyProps | object | - | These props will be forwarded to the secondary typography component. |
ListSubheader API
API reference docs for the React ListSubheader component.
Props
Name | Type | Default | Description |
---|---|---|---|
children | node | - | The content of the component. |
className | string | - | Override or extend the styles applied to the component. |
color | 'default' | 'primary' | 'default' | The color of the component. It supports those those theme colors that make sense for this component. |
inset | bool | false | If true , the List Subheader is indented. |
disableGutters | bool | false | If true , the List Subheader will not have gutters. |
disablePadding | bool | false | If true , all padding is removed. |
disableSticky | bool | false | If true , the List Subheader will not stick to the top during scroll. |