# TypeTable
> A four-column props / API table. What every "Props" section on this site is built with.
Source: https://shelldocs.shellui.dev/docs/components/type-table
`TypeTable` renders a compact four-column table : Prop, Type, Default, Description : with a `Required` chip on rows that need it. It's the primitive every "Props" or "API" section on this site is built with.
## Basic use
```razor
```
## Required rows
Set `Required="true"` on a `TypeRow` to add the "Required" chip next to the prop name.
```razor
```
## Not-just-for-props
The columns are labeled Prop / Type / Default / Description but nothing forces "type" to be a C# type. Use it wherever a four-column labelled-list would help : CLI commands, package families, framework primitives.
```razor
```
## Rows with the same name
Rows are independent, so two can share a `Name` : overloads of a method, or one option described for two cases.
```razor
```
## Empty state
If you render a `TypeTable` with no rows, it emits a single "No props documented." row rather than an empty grid : keeps the layout stable.
## How it works
`TypeRow` doesn't render its own markup : it registers itself with the parent `TypeTable` via a cascading parameter in `OnInitialized`. The parent collects the row info and renders the table body. Consequence: rows must be direct children of `TypeTable` : wrapping them in a `
` breaks the cascading resolution.
## Props
### TypeTable
| Name | Type | Default | Description |
|------|------|---------|-------------|
| `ChildContent` | `RenderFragment?` | `—` | The TypeRow children. Must be direct descendants. |
### TypeRow
| Name | Type | Default | Description |
|------|------|---------|-------------|
| `Name` (required) | `string` | | First column : prop / command / key name. Rendered as inline code. |
| `Type` | `string` | | Second column : type / category. Rendered as inline code when set, em-dash otherwise. |
| `Default` | `string?` | `—` | Third column : default value or fallback. Em-dash when empty. |
| `Description` | `string?` | `—` | Fourth column : free-text description. |
| `Required` | `bool` | `false` | When true, appends a Required chip to the Name cell. |
## See also
- [AutoTypeTable](https://shelldocs.shellui.dev/docs/components/auto-type-table.md): Generate the props table for a component from its code.
- [CodeGroup](https://shelldocs.shellui.dev/docs/components/code-group.md): Tabbed code blocks : same discipline of columns, different axis.