A four-state squarified treemap in hand-rolled SVG — two levels tiled by area, branches fenced and named, click-to-zoom with a breadcrumb, spatial arrow-key navigation and an sr-only breakdown table.
Preview in your theme
Loading preview…
This component is part of Pro
The install command, prompt and concept map are included with a Pro license — one purchase unlocks every Pro component, forever.
status="ready" · 511 kB over 4 branches and one ungrouped file. vendor is 331.6 kB — 64.9% of the box; date-fns is 3.1 kB (0.6%) and is the first tile to lose its figure and then its name as the card narrows; polyfills holds a single leaf, so it is drawn as that leaf instead of as a branch wrapped around one tile. Last opened: nothing yet.
Bundle size · production build
Click a branch to zoom · arrows move to the neighbouring tile · Backspace goes back
511 kB total · 14 items in 5 branches
Treemap of Bundle: 511 kB tiled by area into 14 tiles across 5 branches. Largest react-dom, 128.4 kB, 25.1% of Bundle. Smallest date-fns, 3.1 kB, 0.6%. 1 tile is too small to carry a label. Every value is listed in the table that follows.
Area is the value, biggest tile first from the top-left; each fenced block is one branch. Click or press Enter to open a branch, Backspace to go back. 1 tile is too small to label — hover for the full name, arrow into them, or read the table.
Every item inside Bundle, with its branch, its value, its share of that branch and its share of Bundle.
Item
Branch
Rank
Value
Share of branch
Share of Bundle
react-dom
vendor
1
128.4 kB
38.7%
25.1%
next
vendor
2
96.2 kB
29%
18.8%
recharts
vendor
3
84.7 kB
25.5%
16.6%
zod
vendor
4
12.9 kB
3.9%
2.5%
lucide-react
vendor
5
6.3 kB
1.9%
1.2%
date-fns
vendor
6
3.1 kB
0.9%
0.6%
routes
app
1
62.5 kB
51.7%
12.2%
components
app
2
41.8 kB
34.6%
8.2%
hooks
app
3
9.4 kB
7.8%
1.8%
lib
app
4
7.2 kB
6%
1.4%
tailwind.css
styles
1
18.6 kB
60.8%
3.6%
font subsets
styles
2
12 kB
39.2%
2.3%
core-js
polyfills
1
24.5 kB
100%
4.8%
sw.js
sw.js
1
3.4 kB
100%
0.7%
status="empty" · a valid contract with nothing in it, told apart from loading and from a failed fetch.
Bundle size · production build
No build has been analysed yet
Nothing to tile yet
A treemap needs at least one item with a value above zero.
status="loading" · the skeleton is the same squarify over a fixed list of shares, so the placeholder has the geometry of a real tiling. aria-hidden, no timers.
Bundle size · production build
Reading the build report
Loading breakdown
status="error" · the fetch failed; “Try again” only appears when onRetry is passed, and clicking it flips this card to ready.
Bundle size · production build
Build report timed out
Couldn't load this breakdown
The data source didn't respond.
degenerate data · one object is 99.5% of the box, so every sibling collapses to a sliver, some of them thinner than a pixel; the archive name is 75 characters, so the tile prints what it can hold and the tooltip keeps the rest; two “access logs” rows share an id and sum to 30; a negative, a zero and a NaN row are dropped and counted in the footnote.
Storage by bucket · one object owns the box
Deliberately unparsed: NaN would fail the zod contract
41.4K GB total · 5 items in 4 branches
Treemap of Buckets: 41.4K GB tiled by area into 3 tiles across 4 branches. Largest cold-archive-2019-2024-compliance-retention-snapshot-eu-central-1-versioned, 41.2K GB, 99.5% of Buckets. Smallest sitemap.xml, 1 GB, under 0.1%. 3 tiles are too small to carry a label. 1 branch is drawn whole because its parts do not fit. Every value is listed in the table that follows.
Area is the value, biggest tile first from the top-left; each fenced block is one branch. Click or press Enter to open a branch, Backspace to go back. 1 branch is drawn whole behind a dashed edge — open one to see its parts. 3 tiles are too small to label — hover for the full name, arrow into them, or read the table. 3 of those are thinner than a pixel; nothing is enlarged to a minimum, because area taken from a sibling would stop the tiling summing to the whole.
1 row repeated an id already seen in the same branch and was summed into it.
Left out of the tiling: 1 negative row, 2 at zero or not a number — a rectangle has no negative area.
Every item inside Buckets, with its branch, its value, its share of that branch and its share of Buckets.
single item · the whole box is one tile at 100%, so area encodes nothing. Nothing is faked to make it look like a breakdown.
Bundle size · single chunk
One chunk in the report
128.4 kB total · 1 item in 1 branch
Treemap of Bundle: 128.4 kB tiled by area into 1 tile across 1 branch. Largest react-dom, 128.4 kB, 100% of Bundle. Every value is listed in the table that follows.
Area is the value, biggest tile first from the top-left; each fenced block is one branch. Click or press Enter to open a branch, Backspace to go back.
Every item inside Bundle, with its branch, its value, its share of that branch and its share of Bundle.
Item
Branch
Rank
Value
Share of branch
Share of Bundle
react-dom
vendor
1
128.4 kB
100%
100%
layout="flat" · the same bundle tiled in one pass. No branch frames, so leaves get better aspect ratios and more of them keep a label; the branch survives as colour and adjacency, and the legend chips stay the zoom path.
Bundle size · production build
Leaves are the subject, grouping is context
511 kB total · 14 items in 5 branches
Treemap of Bundle: 511 kB tiled by area into 14 tiles across 5 branches. Largest react-dom, 128.4 kB, 25.1% of Bundle. Smallest date-fns, 3.1 kB, 0.6%. 3 tiles are too small to carry a label. Every value is listed in the table that follows.
Area is the value, biggest tile first from the top-left; colour and adjacency are the branch. Click or press Enter to open a branch, Backspace to go back. 3 tiles are too small to label — hover for the full name, arrow into them, or read the table.
Every item inside Bundle, with its branch, its value, its share of that branch and its share of Bundle.
Item
Branch
Rank
Value
Share of branch
Share of Bundle
react-dom
vendor
1
128.4 kB
38.7%
25.1%
next
vendor
2
96.2 kB
29%
18.8%
recharts
vendor
3
84.7 kB
25.5%
16.6%
zod
vendor
4
12.9 kB
3.9%
2.5%
lucide-react
vendor
5
6.3 kB
1.9%
1.2%
date-fns
vendor
6
3.1 kB
0.9%
0.6%
routes
app
1
62.5 kB
51.7%
12.2%
components
app
2
41.8 kB
34.6%
8.2%
hooks
app
3
9.4 kB
7.8%
1.8%
lib
app
4
7.2 kB
6%
1.4%
tailwind.css
styles
1
18.6 kB
60.8%
3.6%
font subsets
styles
2
12 kB
39.2%
2.3%
core-js
polyfills
1
24.5 kB
100%
4.8%
sw.js
sw.js
1
3.4 kB
100%
0.7%
order="input" · the same data left in the order it arrived, for axes where position already means something. Rank is no longer readable from position, so the shade ramp carries it alone.
Bundle size · production build
Order as supplied by the report
511 kB total · 14 items in 5 branches
Treemap of Bundle: 511 kB tiled by area into 14 tiles across 5 branches. Largest react-dom, 128.4 kB, 25.1% of Bundle. Smallest date-fns, 3.1 kB, 0.6%. 1 tile is too small to carry a label. Every value is listed in the table that follows.
Area is the value, in the order supplied; each fenced block is one branch. Click or press Enter to open a branch, Backspace to go back. 1 tile is too small to label — hover for the full name, arrow into them, or read the table.
Every item inside Bundle, with its branch, its value, its share of that branch and its share of Bundle.
Item
Branch
Rank
Value
Share of branch
Share of Bundle
react-dom
vendor
1
128.4 kB
38.7%
25.1%
next
vendor
2
96.2 kB
29%
18.8%
recharts
vendor
3
84.7 kB
25.5%
16.6%
zod
vendor
4
12.9 kB
3.9%
2.5%
lucide-react
vendor
5
6.3 kB
1.9%
1.2%
date-fns
vendor
6
3.1 kB
0.9%
0.6%
routes
app
1
62.5 kB
51.7%
12.2%
components
app
2
41.8 kB
34.6%
8.2%
hooks
app
3
9.4 kB
7.8%
1.8%
lib
app
4
7.2 kB
6%
1.4%
tailwind.css
styles
1
18.6 kB
60.8%
3.6%
font subsets
styles
2
12 kB
39.2%
2.3%
core-js
polyfills
1
24.5 kB
100%
4.8%
sw.js
sw.js
1
3.4 kB
100%
0.7%
long tail · 103 services in 11 branches, more than the five chart tokens, so the ramp cycles and the header names do the telling apart. Dozens of tiles are too small for a label and say so in the footnote; narrow the window and the smallest branches stop subdividing and appear whole behind a dashed edge.
Requests by service · last hour
Seeded fixture · 11 branches, 2–13 services each
14.8K k total · 103 items in 11 branches
Treemap of Fleet: 14.8K k tiled by area into 103 tiles across 11 branches. Largest bus-compress-service, 803 k, 5.4% of Fleet. Smallest capacitor-hack-service, 1.8 k, under 0.1%. 78 tiles are too small to carry a label. Every value is listed in the table that follows.
+3 more branches, all in the table
Area is the value, biggest tile first from the top-left; each fenced block is one branch. Click or press Enter to open a branch, Backspace to go back. 78 tiles are too small to label — hover for the full name, arrow into them, or read the table. 1 of those is thinner than a pixel; nothing is enlarged to a minimum, because area taken from a sibling would stop the tiling summing to the whole.
Every item inside Fleet, with its branch, its value, its share of that branch and its share of Fleet.