tsimport {XDSLayout} from '@xds/core/Layout'
| Guidance | Practices |
|---|---|
| Do | Use XDSLayout for page shells that need distinct zones like header, sidebar(s), content, and footer. |
| Do | Use XDSHStack and XDSVStack for simple directional stacking within a content area. |
| Don't | Use XDSLayout for simple stacking layouts — use XDSHStack or XDSVStack instead. |
| Don't | Nest multiple XDSLayout components — use one per page shell and compose content within its slots. |
| Prop | Type | Description |
|---|---|---|
content | ReactNode | Main content area (center). |
header | ReactNode | Header slot. |
footer | ReactNode | Footer slot. |
start | ReactNode | Start panel (left in LTR). |
end | ReactNode | End panel (right in LTR). |
height | 'fill' | 'auto' (default: 'fill') | Height behavior — fill the container or grow with content. |
| Prop | Type | Description |
|---|---|---|
children | ReactNode | Content. |
isScrollable | boolean (default: true) | Enable scrollable overflow. |
label | string | Accessible label for the landmark element. |
role | AriaRole | ARIA landmark role. |
| Prop | Type | Description |
|---|---|---|
children | ReactNode | Footer content. |
hasDivider | boolean (default: false) | Border at top edge. |
height | number | string | Footer height. |
label | string | Accessible label for the landmark element. |
role | AriaRole | ARIA landmark role. |
| Prop | Type | Description |
|---|---|---|
children | ReactNode | Header content. |
hasDivider | boolean (default: false) | Border at bottom edge. |
height | number | string | Header height. |
label | string | Accessible label for the landmark element. |
role | AriaRole | ARIA landmark role. |
| Prop | Type | Description |
|---|---|---|
children | ReactNode | Panel content. |
hasDivider | boolean (default: false) | Border on the appropriate edge. |
isScrollable | boolean (default: true) | Enable scrollable overflow. |
label | string | Accessible label for the landmark element. |
role | AriaRole | ARIA landmark role. |