Skip to content
InsightCharts

Search

Search guides and components

Prose

A readable block of narration at a 45-75 character measure, for the text between charts.

Use when
To say what a chart showed and introduce the next one. Use two or three short paragraphs at a time.
Avoid when
A single statement of fact (use callout), a quotation (use pull quote), or sourcing and method notes (use source note).

Preview

In 2015 solar supplied 3% of Europe's electricity. Hydro supplied more than three times as much.

Panel prices fell by about 80% in the years that followed. In 2024 solar generated more electricity than coal across the EU, according to Ember's annual review.

Solar's share differs by country. The next chart shows it for each EU member state.

Composition

Used in

3 molecules and 8 templates use prose.

Molecules

3

A vertical sequence of dated events along a rail, each with a short explanation and, optionally, a small chart or figure.

A scroll-driven story from JSON: one base chart spec and a list of steps, each with narration and a patch of chart props applied while that step is active.

A story section: a numbered step marker or a headline, introductory prose, then one or more exhibits in a responsive one- to three-column grid.

Templates

8

A compared with B on one page. It has a headline that states the result, the headline figures mirrored either side of their labels, one hero exhibit that shows both sides, paired exhibits on a shared scale, a verdict callout and a source note.

A one-page summary. It has a headline that states the main finding with its number, a deck, a row of three or four key figures, one hero chart with a takeaway callout, two smaller supporting exhibits, a short list of actions and a source note.

A vertical infographic in one narrow column. It opens with a big number or a proportion statement (hook), then the hero exhibit, then numbered sections with one exhibit each, a conclusion with an optional link, and sources.

A section of an analytical report laid out as a document. It has a title block, a summary, numbered findings, then method, limitations and sources. Each finding has one exhibit, an observation and a separately labelled interpretation with a confidence rating and a caveat.

A recurring report. It has a masthead with the report name and period, a headline that states the main change, a KPI grid with changes and sparklines, a ranked list beside one or two trend charts, an optional comparison table, short notes and a source note.

A sequence of full-frame cards (title, stat, chart, quote, closing) that the reader swipes or steps through. Each card states one fact. It has an optional fixed aspect ratio, a keyboard-accessible pager and a stacked layout for print.

A story told in date order. It has a headline, one overview exhibit of the whole period (a timeline chart or an annotated line), dated chapters along a rail, a closing paragraph and a source note. Each chapter has a short text and an optional small exhibit.

Directly, and throughAnnotated timeline

A long article read by scrolling. It has a headline, then an ordered list of blocks in a reading column, then a source note. The blocks are prose, figures, charts with a callout, scrolly sequences, pull quotes, stat rows, small multiples and chapter breaks. Exhibits can be wider than the column.

Directly, and throughScrolly chart

Installation

$ pnpm dlx shadcn@latest add @insightcharts/prose

The CLI copies the source into your project and needs the @insightcharts registry in components.json; see installation. With the package, import it by name:

import { Prose } from "insightcharts";

Examples

Lead paragraph, large

The typical household energy bill almost doubled between the winter of 2020 and the winter of 2022.

Wholesale prices have fallen since then. Standing charges and network costs have not fallen. The average bill is still about a third higher than it was in 2020.

Muted aside, narrow measure

How to read this section. Each dot is one local authority. Dots further right have more installed capacity per person. The vertical position shows median household income.

Props

PropTypeDefaultDescription
textstring | string[]Narration. Blank lines separate paragraphs. Supports **bold**, *italic* and [link](url).
childrenReactNodeJSX alternative to text.
size"sm" | "md" | "lg""md"Body size: 14, 16 or 18px.
measurenumber65Line length in characters, clamped to 45-75.
leadbooleanfalseSet the first paragraph a step larger.
tone"default" | "muted""default"muted for secondary narration.
align"left" | "center""left"Centres the block (text stays left-aligned).