Living charts
Dashboard-style charts that animate on load — no charting library, no JS. The bars are pure SMIL on purpose: save that SVG as a file and it animates anywhere an image loads, including a GitHub README.
Staggered bar growth
Pure SMIL: height and y animate together
(rects grow downward, so y must retreat). Stagger = begin offsets;
easing = keySplines; the bars hold via fill="freeze".
Line trace + area fade
The polyline draws with the pathLength="1" dashoffset trick;
a polygon with the same points fades in underneath at 85% of the trace. Two cheap
effects, sequenced, read as one.
Progress ring
With pathLength="100", dashoffset is a literal percentage:
offset 28 = 72% shown. The number pops in with an overshoot bezier as
the ring lands. One number to change, everything else stays.
Sparkline + live pulse
The inline-scale version of the line trace, plus a two-circle ping:
solid dot + expanding echo. The echo scales from its own center via
transform-box: fill-box.
These techniques survive an <img> tag.
GitHub strips inline <svg> from READMEs, but an SVG file referenced via
<img src="chart.svg"> keeps playing — both SMIL and CSS keyframes
embedded inside the .svg file autoplay there. What you lose in
<img> is interactivity: no JS, no :hover, no clicks.
That is why animated stats cards in GitHub READMEs work at all — and the bar chart
above is written in pure SMIL so you can lift it straight into one. Full
compatibility table in the README.