The vendored icons
What icons devpage can draw — the Lucide set, plus GitHub's mark — where they came from, their versions and licences, how devpage draws them, and how to upgrade them. It is a mechanism page under the viewer, for someone about to replace the set; using icons in a site's navbar is in Organizing navigation.
What is in the repository
| File | What it is |
|---|---|
assets/vendor/lucide.json |
Every Lucide icon — 1,877 of them — from lucide-static 1.55.0 (published 2026-10-10): its icon-nodes.json, minified. Each icon is a list of SVG elements on a 24 × 24 grid, drawn with strokes. |
assets/vendor/lucide.LICENSE |
Lucide's licence: ISC, with the MIT notice for the icons derived from Feather. |
src/icons.rs |
GitHub's mark, one filled path, from Simple Icons 16.34.0 under CC0 1.0 — Lucide carries no brand marks. |
How devpage uses them
src/icons.rs compiles lucide.json into the binary with include_str! and
reads it once, on first use. An icon is drawn on the server, as inline SVG in
the page — <svg class="icon">, in the text color (currentColor) — so a
page carries only the icons it shows and they follow the theme. A name the set
doesn't have is a problem (Checking links).
devpage draws icons in a site's navbar and in the theme selector (moon and
sun, and menu and chevron-down for the navbar's own controls).
Upgrading them
-
Fetch the icons and the licence Pick a
lucide-staticversion published at least two weeks ago. -
Check every icon devpage names still exists Lucide renames icons now and then; the icons test names devpage's own, and the docs check covers the docs' navbars.
$ cargo test $ cargo run -- check docs
-
Update this page The version, count and date.
GitHub's mark changes rarely; to replace it, copy the d of the path in
Simple Icons' icons/github.svg into BRANDS in src/icons.rs.