Skip to content
InsightCharts

Search

Search guides and components

Poster

The sheet an infographic is composed on. It paints a full-bleed ground from a poster theme, forces one theme and colour mode on everything inside, and lays out a masthead, a grid of panels and a footer. It can save the whole sheet as one PNG.

Use when
Use it as the outer frame of any infographic: one dominant graphic with a few supporting panels, on a painted ground. Give it a poster theme (noir, magenta, dusk, paper, ocean, forest, blueprint, sunrise) and put a chart or figure spec in each panel. Put the one fact in title and keep panel headings short. It reflows to one column under 600px.
Avoid when
Long reading text or more than about six panels (use report page or visual essay). A single fact at a fixed social size (use social card). Charts that need axes, gridlines and dense labels to be read, because a poster ground suits large flat marks with their values printed on them.

Preview

The preview scrolls inside its frame. A poster has the same colours in the site's light and dark modes. The toolbar has the poster themes and a PNG download.

Composition

Built from

The pieces poster renders or expects in its slots.

Atoms

8

Compares a value across categories with bars from a zero baseline.

A featured statistic with its label, change and the context that gives it meaning.

Shows how 2 to 5 parts make up one whole, with each slice labelled by name and share.

A "1 in 4"-style statement: a row or grid of simple glyphs with some filled, and the sentence they illustrate.

Compares quantities with rows of repeated icons, each icon standing for a fixed number of units.

Splits one whole into proportional segments along a single horizontal bar.

Shows parts of a whole as nested rectangles sized by value, optionally grouped into categories.

Shows shares of a whole as counted cells in a grid, such as 37 in every 100.

Used in

10 infographics use poster.

Infographics

10

A landscape spread of up to eleven small illustrations of one subject, each a different graphic form, in three bands of unequal panels: a statement in large type, spokes round an icon and a network of circles; a smooth trend with its peak labelled, nested squares and a slope chart; a pill ranking, a treemap, a tile map and sized circles; and a closing row of icon statements.

A poster that counts at scale. Blocks of thousands of unit icons fill most of the sheet, a second band counts reference groups with the same icon at the same size in a muted colour, and a bottom row holds three small graphics: squares sized by area with a ratio bracket, thick bars with the numbers inside, and shares as nested outlines or filled silhouettes.

A portrait poster of where something comes from and where it goes, in three stacked bands painted in one colour: the producers as large labelled tiles, the leading producer's output fanning out as ribbons to an aligned column of destinations, and the destinations as bubbles on a scale of how much each depends on that producer.

One wide landscape graphic that compares 4 to 12 entities on five to seven measures: two measures as S-curves between parallel scales on the left, joined to a table on the right in which every other number is drawn as dots, squares, icons, a ring, a circle or a bar. Both halves share one row order and one colour per entity.

A poster of who is connected to whom: a full-width arc diagram with one arc per connection, as thick as its value (arc-diagram), a strip of two to four large figures, and a bottom row where the same entities return as circles joined by lines (bubble-network) and as a ranking of centred pills (pill-rank).

A poster that describes one subject from four sides: the subject as one large silhouette filled to a share (shape-fill), two to four large figures, its place among other things on one scale (scale-ladder), and a table that sets it beside its peers with every number drawn as a small form (glyph-table).

A poster with one subject in the middle of the sheet: a wheel of spokes round an icon (radial-spokes), two to four large figures standing either side of it, and a bottom row with the same subject's surroundings on concentric rings (orbit-chart) and a ranking as centred pills (pill-rank).

A poster of one subject by the numbers, in four rows: two figures in large type or as filled silhouettes, two treemaps side by side, a full-width ranking of centred pills with one row highlighted, and packed circles with icons beside a column of sized circles and a closing figure.

A tall poster that is one illustrated scale: a full-height scale-ladder with icons, leader-labelled items and named zones, and a narrow side column of large figures and one small graphic, each set level with the part of the scale it describes.

A poster of change over a run of periods: a full-width ribbon of bands whose thickness is each entity's value and whose order is its rank (ribbon-chart), a strip of two to four dated figures under it, and a bottom row with one measure per period as thick bars (block-bar) and one share at several dates as nested outlines (nested-shares).

Installation

$ pnpm dlx shadcn@latest add @insightcharts/poster

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 { Poster } from "insightcharts";

Examples

Magenta, one dominant graphic, with download

Dusk, gradient ground, fixed 4:5 shape

Paper, three columns, solid rules, centred masthead

Props

PropTypeDefaultDescription
titlestringThe poster's one fact, as a plain sentence with its number. Set large and light in the theme's display face.
kickerstringSmall label above the title: the topic or series.
subtitlestringOne or two lines under the title: the measure, population and period.
panelsrequiredPosterPanel[]The blocks, in reading order. Each is { content, title?, subtitle?, span?, rowSpan?, source?, note?, align?, valign?, bleed?, id? }. content is a component spec or rendered content. span is in units of columns (default: full width). bleed runs the content to the poster's left and right edges.
columnsnumber12Columns of the layout grid: a 12-unit grid, or a simple count such as 2 or 3. Under 600px every panel is full width; from 600 to 760px the grid has two columns.
gapnumberSpace between panels in px. Default 40 (28 under 600px).
paddingnumberSpace between the poster's edge and its content in px. Default 56 (36 under 900px, 20 under 600px).
maxWidthnumber | string1200Widest the poster is drawn. It is centred in wider containers.
aspectnumber | stringFixed shape as width / height: 0.75, "3:4", "16:9". The poster still grows when its content needs more height, and the ratio is dropped under 600px.
themePosterThemeName | string | ThemeInput"noir"A poster theme name, any other theme name, or a theme object. It is passed on to everything inside.
mode"light" | "dark" | "auto" | "system""light"Colour mode of the poster and everything in it. A poster does not follow the page unless you set auto. Only paper has a different dark variant.
backgroundstringCSS background of the sheet, a colour or a gradient. Default: the poster theme's ground. Keep it close to the theme's surface, which charts use for the gaps between marks.
rules"none" | "solid" | "dotted""dotted"Lines under the masthead, between rows of panels and above the footer.
sourcesstring | string[]Where the data comes from, shown in the footer.
notestringCaveat shown in the footer, e.g. "Illustrative data".
creditstringWho made the poster, shown at the right of the footer.
titleAlign"left" | "center""left"Alignment of the masthead.
level1 | 2 | 3 | 4 | 52Heading level of the title. Panel headings are one level down.
downloadbooleanfalseShow a "Download PNG" control under the poster. The image is the whole sheet, drawn from the DOM onto a canvas, without the control.
exportWidthnumber2400Width of the downloaded PNG in pixels.
filenamestringFile name without extension. Defaults to a slug of the title.
downloadLabelstring"Download PNG"Label of the download control.
onExport(blob: Blob) => voidCalled with the PNG after a download.