# 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.