Keyline Icons logo # Keyline Icons [![CI](https://github.com/keyline-icons/keyline-icons/actions/workflows/ci.yml/badge.svg)](https://github.com/keyline-icons/keyline-icons/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-black.svg)](LICENSE) **1,435 icons, drawn on one 24×24 grid, in four styles and two corner treatments.** Built for shadcn/ui, free under MIT. [**keylineicons.com**](https://keylineicons.com) to browse and copy. | Style | Icons | What it is | | --- | --- | --- | | `stroke` | 1,435 | The full set. 2px keylines on a 24 grid. | | `two-tone` | 1,435 | The stroke drawing over a flat plate at reduced opacity. | | `duotone` | 1,435 | No outline: a grey body with the detail in full strength. | | `fill` | 1,435 | Solid, with the detail knocked back out of the shape. | `stroke` is the drawing every other style starts from, and since 1.0.0 every name comes in all four. `two-tone` is what `duotone` meant until 0.9.0: the outline kept, a 40% plate under it. `duotone` now drops the outline and decides per icon which part is grey and which is black, so the thing that matters reads first: the check on a badge, the liquid in a flask, the data rather than the chart's axes. A glyph with nothing to fill, like `bar-chart`, carries its stroke drawing in the filled styles, so no import ever comes up empty. ## Rounded and sharp Every drawing in the table comes twice: rounded, with round caps and filleted corners, and sharp, with butt caps and square corners. Same names, same coverage, so 11,480 SVGs in total. ``` icons/stroke/bell.svg icons/sharp/stroke/bell.svg icons/sharp/fill/bell.svg ``` Sharp is a drawing of its own rather than a filter over the rounded one. Squaring a corner moves the ink, and where that changes the silhouette the geometry was solved again, so both treatments sit side by side in `raw/` and the build converts neither into the other. ## Using them **Copy one from the site.** [keylineicons.com](https://keylineicons.com) is the browser: click any icon to open it, then take it as SVG, JSX, a React import or an `npx` line, at whatever style, corners, stroke width and size you have set. The panel keeps the last three icons you opened, so two candidates can be held side by side. That is the fastest path and needs no install. **Take the files.** `icons/