Skip to main content

Table

Display data clearly in rows and columns, helping users view, analyze, and compare information. Automatically renders as a list on small screens and a table on large ones.

boolean
Default: false

Whether there's an additional page of data.

boolean
Default: false

Whether there's a previous page of data.

boolean
Default: false

Whether the table is in a loading state, such as initial page load or loading the next page in a paginated table. When true, the table could be in an inert state, which prevents user interaction.

boolean
Default: false

Whether to use pagination controls.

"auto" | "list"
Default: 'auto'

Sets the layout of the Table.

  • list: The Table is always displayed as a list.
  • table: The Table is always displayed as a table.
  • auto: The Table is displayed as a table on wide devices and as a list on narrow devices.

HTMLElement

The content of the Table.

HTMLElement

Additional filters to display in the table. For example, the s-search-field component can be used to filter the table data.

Learn more about registering events.

<typeof tagName> | null
<typeof tagName> | null

Define the main content area of a table, containing rows and cells that display data.

HTMLElement

The body of the table. May not have any semantic meaning in the Table's list variant.

Display data within a cell in a table row.

HTMLElement

The content of the table cell.

Display column names at the top of a table.

The format of the column. Will automatically apply styling and alignment to cell content based on the value.

  • base: The base format for columns.
  • currency: Formats the column as currency.
  • numeric: Formats the column as a number.
Default: 'labeled'

Content designation for the table's list variant.

  • primary: The most important content. Only one column can have this designation.
  • secondary: The secondary content. Only one column can have this designation.
  • kicker: Content that is displayed before primary and secondary content, but with less visual prominence. Only one column can have this designation.
  • inline: Content that is displayed inline.
  • labeled: Each column with this designation displays as a heading-content pair.

HTMLElement

The heading of the column in the table variant, and the label of its data in list variant.

Define a header row in a table, displaying column names and enabling sorting.

HTMLElement

Contents of the table heading row; children should be TableHeading components.

Display a row of data within the body of a table.

string

The ID of an interactive element (e.g. s-link) in the row that will be the target of the click when the row is clicked. This is the primary action for the row; it should not be used for secondary actions.

This is a click-only affordance, and does not introduce any keyboard or screen reader affordances. Which is why the target element must be in the table; so that keyboard and screen reader users can interact with it normally.

HTMLElement

The content of a TableRow, which should be TableCell components.

Examples
<s-section padding="none">
<s-table>
<s-table-header-row>
<s-table-header>Name</s-table-header>
<s-table-header>Email</s-table-header>
<s-table-header format="numeric">Orders placed</s-table-header>
<s-table-header>Phone</s-table-header>
</s-table-header-row>
<s-table-body>
<s-table-row>
<s-table-cell>John Smith</s-table-cell>
<s-table-cell>john@example.com</s-table-cell>
<s-table-cell>23</s-table-cell>
<s-table-cell>123-456-7890</s-table-cell>
</s-table-row>
<s-table-row>
<s-table-cell>Jane Johnson</s-table-cell>
<s-table-cell>jane@example.com</s-table-cell>
<s-table-cell>15</s-table-cell>
<s-table-cell>234-567-8901</s-table-cell>
</s-table-row>
<s-table-row>
<s-table-cell>Brandon Williams</s-table-cell>
<s-table-cell>brandon@example.com</s-table-cell>
<s-table-cell>42</s-table-cell>
<s-table-cell>345-678-9012</s-table-cell>
</s-table-row>
</s-table-body>
</s-table>
</s-section>

Preview

  • Use when displaying data with 3 or more attributes per item
  • All items should share the same structure and attributes
  • Don't use when data varies significantly between items (use a list instead)
  • Tables automatically transform into lists on mobile devices
Was this page helpful?