---
## ChartFrame
Responsive SVG chart shell: measures its width via
ResizeObserver, applies plot margins, and hands the drawable plot geometry
to a child snippet. The building block under every cartesian chart in the
family — use it directly only for fully custom marks.
**Import:** `import { ChartFrame } from '@urbicon-ui/blocks';`
### Examples
```svelte
{#snippet children({ innerWidth, innerHeight })}
{/snippet}
```
### Api
| Prop | Type | Required | Default | Description |
| --- | --- | :---: | --- | --- |
| ...HTMLAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') |
| ariaLabel | `string` | no | | Accessible label for the chart image (role="img"). |
| children | `Snippet<[ChartPlot]>` | no | | Renders the SVG plot content; receives the geometry. |
| class | `string` | no | | Extra classes merged onto the wrapper. |
| fallback | `Snippet` | no | | Screen-reader fallback (e.g. a data table) rendered visually hidden. |
| height | `number` | no | 240 | Fixed SVG height in px. |
| legend | `Snippet` | no | | Optional legend rendered (as HTML) below the SVG. |
| margin | `ChartMargin` | no | | Plot margins; merged over the frame defaults. |
| slotClasses | `ChartSlotClasses` | no | | Per-slot class overrides. |
| unstyled | `boolean` | no | | Remove all default tv classes. |
| width | `number` | no | | Fixed width in px. Omit for responsive width measured from the container (the common case); set it only for SSR-stable, non-responsive output. |
Inherited from:
- Omit, 'children'> (omit-pattern)