layout.chart

A chart: a trend over time, a breakdown. Renders <figure>; put the chart's svg or canvas inside with a height, and a text.caption that says what it shows

Component

Renders

<figure>

Profile

Example

Preview

Sign-ups per week, last two months

<Layout intent="layout.chart">
…
</Layout>

Choosing between neighbours

Find the row that describes your element, and use the intent on the right.

  • If it is

    Use

  • A chart: a trend over time, a breakdown. Renders <figure>; put the chart's svg or canvas inside with a height, and a text.caption that says what it shows

    layout.chart this page
  • One amount within a range, like a battery level

    layout.meter
  • A single number

    text.stat

Connections

Declared in the registry, both directions. Where an intent is used in your own code is something check and the gallery see; this site has no app code.

For registry authors

Starter intents. These are the intents prongs add puts in your registry, shown in this site’s theme. Yours are your own registry.ts: rename, restyle and add to them, and see them with prongs add gallery.

What this intent is built from and its entry in components/prongs/registry.ts. You only need this to change how it looks or to add an intent like it.

How layout.chart resolves, and its definition

Each layer adds to the one before it; a later class wins over an earlier one that sets the same thing.

  • arrange.stack

    Children in a column, free to shrink inside a row or grid

    flex min-w-0 flex-col
  • layout.chart

    A chart: a trend over time, a breakdown. Renders <figure>; put the chart's svg or canvas inside with a height, and a text.caption that says what it shows

    m-0 min-w-0 gap-2 [&>svg]:text-primary
Final classes
flex flex-col m-0 min-w-0 gap-2 [&>svg]:text-primary
Definition
TS
'layout.chart': {
kind: 'semantic',
description: 'A chart: a trend over time, a breakdown. Renders <figure>; put the chart\'s svg or canvas inside with a height, and a text.caption that says what it shows',
refs: ['arrange.stack'],
binding: { element: 'figure', classes: 'm-0 min-w-0 gap-2 [&>svg]:text-primary' },
notFor: [
{
context: 'one amount within a range, like a battery level',
instead: 'layout.meter',
},
{ context: 'a single number', instead: 'text.stat' },
],
},