1# Chapter 15⅝: jerrys-pixel-icons, a hundred and eighty small pictures
2
3Look at the explorer on the left of this page. Every file has a little
4picture beside it: an orange crab for Rust, a robot for the CLAUDE.md files
5that agents read, a rosette for the licence. Every folder has two, one shut
6and one open. They are Jerry's Pixel Icons, drawn by
7[wolfsouldev](https://github.com/wolfsouldev/jerrys-pixel-icons) as an icon
8theme for VS Code, and borrowed here because a site that looks like an
9editor should have an editor's icons, and these are pixel art like the rest
10of it.
11
12Each icon is sixteen pixels square, drawn large (256 by 256) so it can be
13shown at any size and stay sharp, and about a kilobyte. The Worker carries
14them all and serves each at `/icons/<name>.png`, to be kept by the browser
15for good: an icon never changes under its name.
16
17> **Aside.** How does a file get its icon? The same way it does in the
18> editor the theme was made for. The theme has a map: this whole name gets
19> that icon (`README.md`, `.gitignore`, `LICENSE`), and failing that, this
20> extension does (`rs`, `toml`, `css`). The map is copied into
21> `packages/tree/src/icons_theme.rs`, and `tree::icons` adds the handful of
22> names this repository has that the theme has never met.
23
24> **Try it.** Open <https://lmjtfy.fun/icons/file-rust.png>, then
25> <https://lmjtfy.fun/icons/folder-src-open.png>.
26
27## For the people who maintain it
28
29| File | What |
30| --- | --- |
31| `file-<name>.png` | A file's icon, 256 by 256. |
32| `folder-<name>.png`, `folder-<name>-open.png` | A folder's icon, shut and open. |
33| [update.py](update.py) | Brings the icons and the theme's map over from a clone of upstream. |
34| [LICENSE](LICENSE) | MIT, the icons' author's. It goes wherever the icons go. |
35
36They are from `wolfsouldev/jerrys-pixel-icons` v0.3.0 (commit `515ab8e`),
37taken 2026-10-03. Upstream keeps each as an SVG holding one PNG; the PNG is
38taken out unchanged. Four that upstream draws as paths (`png`, `mp4`,
39`razor`, `robot`) are rendered to the same size.
40
41← Previous: [Chapter 15½, third-party/](../) · Up: [third-party](../) · Next: [Chapter 15¾, serenity-emoji/](../serenity-emoji/) →