Layout

List

Flexible list component supporting data-driven rendering, avatars, actions, headers, footers, and grid layout.

Team Members
  • AM
    Alice Martin
    Product Designer
  • BC
    Bob Chen
    Frontend Engineer
  • CD
    Clara Dupont
    Backend Engineer

Installation

npx benflux-ui add list

Usage

import { List, ListItem } from "@benflux-ui/react"

// Data-driven
<List
  bordered
  header="Members"
  dataSource={users}
  renderItem={(user) => (
    <ListItem
      avatar={<Avatar><AvatarFallback>{user.initials}</AvatarFallback></Avatar>}
      title={user.name}
      description={user.role}
      actions={[<a href="#">Edit</a>]}
    />
  )}
/>

// Grid layout
<List
  grid={{ columns: 3, gap: 16 }}
  dataSource={items}
  renderItem={(item) => <Card>{item.title}</Card>}
/>

// Static children
<List bordered split>
  <ListItem title="Item 1" description="Description" />
  <ListItem title="Item 2" description="Description" />
</List>

Props — List

PropTypeDefaultDescription
dataSourceT[]Array of items to render
renderItem(item: T, index: number) => ReactNodeRender function for each item
borderedbooleanfalseAdds outer border and dividers
splitbooleantrueShow divider between items
headerReactNodeContent rendered above the list
footerReactNodeContent rendered below the list
grid{ columns: number; gap: number }Render items in a CSS grid

Props — ListItem

PropTypeDefaultDescription
titleReactNodePrimary text
descriptionReactNodeSecondary text below the title
avatarReactNodeAvatar or icon displayed on the left
actionsReactNode[]Action links displayed on the right