Charts.css

Charts rendered purely with CSS via the Charts.css framework (MIT). A semantic <table> of normalized values becomes a chart through @property, aspect-ratio, clip-path, conic-gradient, logical properties, and flexbox — no script, no canvas, no images.

Column

Vertical bars: each td is height: calc(100% * var(--size)) of a tbody whose height comes from aspect-ratio: 21/9.

Quarterly Revenue — 2024 ($M)
QuarterRevenue
Q1$42M
Q2$63M
Q3$55M
Q4$91M

Bar

Horizontal bars: td is width: calc(100% * var(--size)).

Language Popularity (% of respondents)
LanguageShare
JavaScript95%
Python88%
Java65%
C#60%
Go42%

Area

A filled quad per point, drawn by a td::before with clip-path: polygon(...) whose vertices are calc() of the data values.

Monthly Active Users (thousands)
MonthUsers
Jan30k
Feb45k
Mar40k
Apr62k
May78k
Jun92k

Line

The same clip-path: polygon() technique, clipped to a thin band (--line-size) so only the connecting line shows.

Response Time p95 (ms, lower is better)
Weekp95
W180
W272
W358
W461
W544
W635

Pie

Each slice is a conic-gradient from var(--start)turn to var(--end)turn, stacked in a square (aspect-ratio: 1) rounded container.

Browser Market Share
35%
25%
20%
12%
8%

Multiple series

Two datasets per row (.multiple): each td is coloured from the --color-1..10 palette by :nth-of-type.

Revenue vs. Target by Quarter ($M)
QuarterActualTarget
Q14250
Q26355
Q35560
Q49175

3D effects

Charts.css documents 3D looks as CSS customizations layered on a plain column chart — no special classes (see chartscss.org).

3D Bars — a stack of offset box-shadows

Ten box-shadow layers, each offset one more pixel up-and-right, build the extruded top-right face of every bar.

A55
B80
C48
D95

3D Tilt — a single transform: skewY()

One skew on the whole chart shears every bar in concert.

A55
B80
C48
D95

Charts with Shadows — inset + outset box-shadow

The chart area and each bar get a rounded box-shadow combining an inset (inner top-left) and an outset (bottom-right) layer, for a raised, tactile look.

A40
B60
C75
D55
E90