585 drawings on a single 24x24 grid, in stroke, duotone and fill: 1,497 SVGs in all. Built to one standard rather than collected: 2px keylines, the same corner radii, the same gap between parts, every drawing. Duotone and fill are derived from the stroke drawing, so the three weights can never disagree. Copy one from the site, npm i @keyline-icons/react, add one at a time with the CLI, or drop one onto a Figma canvas with the plugin. MIT, no attribution.
I wanted an icon set where every drawing had been built the same way rather than collected, so I drew one: 585 icons, all on a 24x24 grid, all 2px keylines, all with the same corner radii and the same spacing between parts.
Three weights come off that one drawing. Stroke is the full 585. Duotone is the same outline over a flat plate, and fill is the solid shape with the detail knocked back out of it, so those two are 480 and 432 rather than 585. Duotone and fill need a region to fill and not every glyph has one: bar-chart is three open strokes with no interior, while square-bar-chart puts the same glyph in a container and gains both. That is measured off each outline rather than decided by hand, which is why the counts are uneven.
There are four ways in, depending on where you work: copy an SVG or a JSX snippet from the site, npm i @keyline-icons/react, add one file at a time with the CLI, or run the Figma plugin over the file you already have open. MIT, no attribution.
Requests are how most of the recent batches happened. If something is missing, say so here and I will draw it.
Preline UI