Item
A composable row for lists with media, content and actions.
JD
John Doe
john@example.com
AS
Alice Smith
alice@example.com
Item — ligne composable pour listes hétérogènes (settings, contacts, notifications, dashboard cards). Media (icône/avatar/thumb) + Content (Title + Description) + Actions (boutons, switch, badge).
Différent de Card : Item est horizontal, dense, prévu pour être empilé dans une liste. Card est en block, plus visuel.
Installation
$ bext ui add item
Copy and paste the following into src/components/ui/item.tsx.
Usage
Anatomy
<Item> ├── <ItemMedia><Avatar /></ItemMedia> // optionnel ├── <ItemContent> │ ├── <ItemTitle>John Doe</ItemTitle> │ └── <ItemDescription>john@example.com</ItemDescription> └── <ItemActions><Button /></ItemActions> // optionnel </Item>
API Reference
Item
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | undefined |
ItemMedia
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | Slot gauche (avatar, icône, thumbnail). |
ItemContent
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | Centre — Title + Description empilés. |
ItemTitle
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | undefined |
ItemDescription
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | Muted, text-sm. |
ItemActions
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | Slot droit — boutons, switch, badge. |
Accessibility
Wrapper le container avec role="list", chaque Item role="listitem" pour aider les AT à annoncer la longueur.
On This Page