Table
Tables display information in a friendly way, allowing users to scan for details quickly.
The Table component is a compound of the following:
Table- renders a<div>as wrapper with a<table>tag inside it.TableBody- renders a<tbody>tag.TableHead- renders a<thead>tag.TableRow- renders a<tr>tag.TableFooter- renders a<tfoot>tag.TableCell- renders a<th>or<td>tag depending on the value of thevariantprop.
Overview
Import
Import the component from @faststore/ui
import { Table } from '@faststore/ui'Import Styles into your FastStore project
To apply the styles of this component in your FastStore project, import the following into your stylesheet:
@import '@faststore/ui/src/components/molecules/Table/styles.scss';Follow the instructions in the Importing FastStore UI component styles tutorial.
Usage
Props
All table-related components support all attributes also supported by their respective HTML tags. Besides those attributes, the following props are also supported:
Table
| Name | Type | Description | Default |
|---|---|---|---|
| variant | "colored" | "bordered" | Defines what style this component should use. | colored |
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-table |
| onResize | ReactEventHandler<unknown> | Call a function when the component is resized. | |
| onResizeCapture | ReactEventHandler<unknown> | A version of onResize that fires in the capture phase. | |
| nonce | string | A randomly generated string that is only used once. |
Table Body
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-table-body |
Table Head
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-table-head |
Table Row
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-table-row |
Table Footer
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-table-footer |
Table Cell
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-table-cell |
| variant | "data" | "header" | Specify if this component should be rendered as a header (`<th>`) or as a data cell (`<td>`). | data |
| scope | "col" | "row" | "rowgroup" | "colgroup" | Defines the cells that the header element (`<th>`) relates to. @see scope https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope | |
| align | "left" | "center" | "right" | Defines how this component should be aligned. |
Design Tokens
Nested Elements
Head
| Local token | Default value/Global token linked |
|---|---|
--fs-table-head-weight | var(--fs-text-weight-bold) |
--fs-table-head-bkg-color | none |
--fs-table-head-padding-y | var(--fs-spacing-2) |
Cell
| Local token | Default value/Global token linked |
|---|---|
--fs-table-cell-padding-x | var(--fs-spacing-3) |
--fs-table-cell-padding-y | var(--fs-spacing-1) |
Variants
With Footer
| Local token | Default value/Global token linked |
|---|---|
--fs-table-footer-weight | var(--fs-table-head-weight) |
--fs-table-footer-bkg-color | none |
Colored
| Local token | Default value/Global token linked |
|---|---|
--fs-table-colored-bkg-color | var(--fs-color-neutral-1) |
--fs-table-colored-border-radius | var(--fs-border-radius) |
Bordered
| Local token | Default value/Global token linked |
|---|---|
--fs-table-bordered-border-width | var(--fs-border-width) |
- --fs-table-bordered-border-color | var(--fs-border-color-light) |
Horizontal Scroll
Customization
data-fs-table
data-fs-table-content
data-fs-table-head
data-fs-table-row
data-fs-table-footer
data-fs-table-body
data-fs-table-cell="head | data"
data-fs-table-variant="colored | bordered"