Tables are used to organize and display data efficiently. The table component differs from the `data_table`` component in that it is not meant to display large amounts of data. It is meant to display data in a more organized way.

Tables can be created with a shorthand syntax or by explicitly creating the table components. The shorthand syntax is great for simple tables, but if you need more control over the table you can use the explicit syntax.

Let's start with the shorthand syntax. The shorthand syntax has headers, rows, and footers props.

NameAgeLocation
John30New York
Jane31San Francisco
Joe32Los Angeles
Footer 1Footer 2Footer 3
rc.table_container(
    rc.table(
        headers=["Name", "Age", "Location"],
        rows=[
            ("John", 30, "New York"),
            ("Jane", 31, "San Francisco"),
            ("Joe", 32, "Los Angeles"),
        ],
        footers=["Footer 1", "Footer 2", "Footer 3"],
        variant="striped",
    )
)

Let's create a simple table explicitly. In this example we will make a table with 2 columns: Name and Age.

NameAge
John30
rc.table(
    rc.thead(
        rc.tr(
            rc.th("Name"),
            rc.th("Age"),
        )
    ),
    rc.tbody(
        rc.tr(
            rc.td("John"),
            rc.td(30),
        )
    ),
)

In the examples we will be using this data to display in a table.

columns = ["Name", "Age", "Location"]
data = [
    ["John", 30, "New York"],
    ["Jane", 25, "San Francisco"],
]
footer = ["Footer 1", "Footer 2", "Footer 3"]

Now lets create a table with the data we created.

Example Table
NameAgeLocation
John30New York
Jane25San Francisco
Footer 1Footer 2Footer 3

Tables can also be styled with the variant and color_scheme arguments.

NameAgeLocation
John30New York
Jane31San Francisco
Joe32Los Angeles
rc.table_container(
    rc.table(
        rc.thead(
            rc.tr(
                rc.th("Name"),
                rc.th("Age"),
                rc.th("Location"),
            )
        ),
        rc.tbody(
            rc.tr(
                rc.td("John"),
                rc.td(30),
                rc.td("New York"),
            ),
            rc.tr(
                rc.td("Jane"),
                rc.td(31),
                rc.td("San Francisco"),
            ),
            rc.tr(
                rc.td("Joe"),
                rc.td(32),
                rc.td("Los Angeles"),
            ),
        ),
        variant="striped",
        color_scheme="teal",
    )
)

rc.Table

A table component.

PropType | ValuesDefault
color_scheme
str
variant
str
size
str
placement
str

Event Triggers

See the full list of default event triggers

rc.TableCaption

A table caption component.

PropType | ValuesDefault
placement
str

rc.Thead

A table header component.

Props

No component specific props

rc.Tbody

A table body component.

Props

No component specific props

rc.Tfoot

A table footer component.

Props

No component specific props

rc.Tr

A table row component.

Props

No component specific props

rc.Th

A table header cell component.

PropType | ValuesDefault
is_numeric
bool

rc.Td

A table data cell component.

PropType | ValuesDefault
is_numeric
bool

rc.TableContainer

The table container component renders a div that wraps the table component.

Props

No component specific props