Table Container

A comprehensive table component system for displaying structured data. The table is composed of multiple components working together: TableContainer (wrapper), TableHeader (header row), TableHeaderCell (header cells), TableRow (data rows), and TableCell (data cells).

Overview

No visual options. See Props for what it accepts.

All options

Header and data rows

TableContainer has no visual options of its own; it wraps a TableHeader and any number of TableRows.

ID
Name
Email
Role
1
John Doe
john@example.com
Developer
2
Jane Smith
jane@example.com
Designer
3
Bob Johnson
bob@example.com
Product Manager
4
Alice Williams
alice@example.com
Engineer

Examples

Usage

import TableContainer from 'oneslash-design-system/components/tableContainer';
import TableHeader from 'oneslash-design-system/components/tableHeader';
import TableHeaderCell from 'oneslash-design-system/components/tableHeaderCell';
import TableRow from 'oneslash-design-system/components/tableRow';
import TableCell from 'oneslash-design-system/components/tableCell';

function UserTable({ users }) {
  return (
    <TableContainer>
      <TableHeader>
        <TableRow>
          <TableHeaderCell>Name</TableHeaderCell>
          <TableHeaderCell>Email</TableHeaderCell>
          <TableHeaderCell>Role</TableHeaderCell>
        </TableRow>
      </TableHeader>
      {users.map((user) => (
        <TableRow key={user.id}>
          <TableCell>{user.name}</TableCell>
          <TableCell>{user.email}</TableCell>
          <TableCell>{user.role}</TableCell>
        </TableRow>
      ))}
    </TableContainer>
  );
}

Accessibility

ARIA table roles

The table parts render as divs with ARIA roles: TableContainer is role="table", TableHeader is role="rowgroup", TableRow is role="row", TableHeaderCell is role="columnheader", and TableCell is role="cell". Use them together so the roles nest correctly.

Props

TableContainerProps

PropTypeRequiredDescription
childrenReact.ReactNodeYes—

TableHeaderProps

PropTypeRequiredDescription
childrenReact.ReactNodeYes—

TableHeaderCellProps

PropTypeRequiredDescription
childrenReact.ReactNodeYes—
widthstringNo—
minWidthstringNo—
align'left' | 'center' | 'right'No—

TableRowProps

PropTypeRequiredDescription
childrenReact.ReactNodeYes—

TableCellProps

PropTypeRequiredDescription
childrenReact.ReactNodeYes—
widthstringNo—
minWidthstringNo—
align'left' | 'center' | 'right'No—