# @burtson-labs/icons

> Burtson Icons: an open-source stroke icon set for AI agents, security, provenance, infrastructure and evidence work. 24px grid, 2px stroke, zero dependencies.

Latest version **0.3.0** (published 2026-09-24) · ISC license · 0 weekly downloads

## Install

```sh
npm install @burtson-labs/icons
pnpm add @burtson-labs/icons
yarn add @burtson-labs/icons
bun add @burtson-labs/icons
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.0 |
| Published | 2026-09-24 |
| First published | 2026-09-24 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=18 |
| Dependencies | 0 |
| Unpacked size | 1.6 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Burtson Labs |
| Maintainers | markymarkburt, bburtson09 |
| Keywords | icons, svg, icon-set, react, stroke-icons, burtson-labs |

## Links

- npm: https://www.npmjs.com/package/@burtson-labs/icons
- Repository: https://github.com/Burtson-Labs/icons
- Homepage: https://icons.burtson.ai
- Issues: https://github.com/Burtson-Labs/icons/issues
- Funding: https://afsp.org/chapter/missouri
- npm.io page: https://npm.io/package/@burtson-labs/icons

## Alternatives

- [@fortawesome/react-fontawesome](https://npm.io/package/@fortawesome/react-fontawesome.md) — 2.2M weekly downloads
- [roboto-fontface](https://npm.io/package/roboto-fontface.md) — 196.0K weekly downloads
- [@react-native-vector-icons/common](https://npm.io/package/@react-native-vector-icons/common.md) — 150.4K weekly downloads
- [@procore/core-icons](https://npm.io/package/@procore/core-icons.md) — 4.6K weekly downloads
- [@react-md/material-icons](https://npm.io/package/@react-md/material-icons.md) — 1.6K weekly downloads

## Recent versions

- 0.3.0 (latest) — 2026-09-24
- 0.2.1 — 2026-09-24
- 0.2.0 — 2026-09-24
- 0.1.0 — 2026-09-24

## README

<div align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://cdn.burtson.ai/logos/burtson-labs-logo-alt.png" />
    <source media="(prefers-color-scheme: light)" srcset="https://cdn.burtson.ai/logos/burtson-labs-logo.png" />
    <img src="https://cdn.burtson.ai/logos/burtson-labs-logo-alt.png" alt="Burtson Labs" width="200" />
  </picture>

# Burtson Icons

**Open-source stroke icons for the tools we build: AI agents, security audits, provenance, infrastructure and evidence work.**

24px grid · 2px stroke · `currentColor` · zero runtime dependencies

[![Browse](https://img.shields.io/badge/browse-icons.burtson.ai-a60ee5)](https://icons.burtson.ai)
[![npm](https://img.shields.io/npm/v/@burtson-labs/icons?logo=npm)](https://www.npmjs.com/package/@burtson-labs/icons)
[![License](https://img.shields.io/badge/license-ISC-blue)](LICENSE)
[![CI](https://github.com/Burtson-Labs/icons/actions/workflows/ci.yml/badge.svg)](https://github.com/Burtson-Labs/icons/actions/workflows/ci.yml)

**<img src="preview/accent/stealth-mask.svg" width="22" align="absmiddle" alt=""> Browse, search and copy every icon at [icons.burtson.ai](https://icons.burtson.ai)**

</div>

---

## <img src="preview/accent/shield-proof.svg" width="22" align="absmiddle" alt=""> The set

<!-- icons:start (generated by npm run build) -->

**382 icons** · Agents & AI 31 · Development 37 · Security 32 · Provenance & audit 11 · Infrastructure 36 · Data 18 · Evidence & video 16 · Voice & audio 22 · Documents & reports 28 · Status 39 · Interface 158 · People 18 · Recreation 7 · Burtson Labs 2 · Logistics & operations 4 · Files & folders 31

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="preview/sheet-dark.svg" />
  <source media="(prefers-color-scheme: light)" srcset="preview/sheet-light.svg" />
  <img src="preview/sheet-light.svg" alt="All 382 Burtson Icons" width="100%" />
</picture>
<!-- icons:end -->

The set is young and growing. [`design/backlog.json`](design/backlog.json) lists the next few hundred icons, and `npm run status` shows progress by category.

## <img src="preview/accent/agent-terminal.svg" width="22" align="absmiddle" alt=""> Install

```bash
npm i @burtson-labs/icons
```

### React

```tsx
import { ShieldProof, MerkleTree } from '@burtson-labs/icons/react';

<ShieldProof size={20} strokeWidth={1.75} className="text-emerald-600" />;
```

Components forward refs and pass every other prop to the `<svg>`. `absoluteStrokeWidth` keeps the stroke the same thickness at any size. React is an optional peer dependency. The core package doesn't need it.

### Plain JavaScript

```js
import { toSvg, gpu } from '@burtson-labs/icons';

el.innerHTML = toSvg('waveform', { size: 20, color: '#a60ee5' });
el.innerHTML = toSvg(gpu); // named exports are the raw nodes, so bundlers tree-shake the rest
```

### SVG files, sprite and JSON

| Want               | Use                                                                                                                                           |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| One file           | `@burtson-labs/icons/svg/<name>.svg`, or `https://icons.burtson.ai/svg/<name>.svg`                                                            |
| A sprite           | `@burtson-labs/icons/sprite.svg`, served from your own origin, with `<use href="/sprite.svg#<name>" />` (browsers block cross-origin `<use>`) |
| Everything as data | `@burtson-labs/icons/icons.json`: names, tags, categories and geometry                                                                        |

## <img src="preview/accent/signed-log.svg" width="22" align="absmiddle" alt=""> Design rules

Every icon is drawn on a 24×24 grid with a 2px round-capped stroke, geometry only, inside a 1px margin. The rules match the common 24px stroke convention on purpose, so these icons sit next to other sets without looking foreign. The drawings themselves are our own: CI compares every icon against the Lucide set and fails on near-copies. The full spec is in [`design/DESIGN.md`](design/DESIGN.md).

## <img src="preview/accent/local-model.svg" width="22" align="absmiddle" alt=""> Adding icons

```bash
npm install
npm run new -- vram          # blank icon + metadata, pre-filled from the backlog
# draw icons/vram.svg
npm run check                # validate, originality, build, test, site
```

`npm run validate` enforces the grid, root attributes, allowed elements, the 1px margin, two-decimal coordinates and the metadata. Anything a machine can check is checked, so review can focus on the drawing. [`design/PROMPTS.md`](design/PROMPTS.md) has ready-made prompts for drafting batches with an AI model.

## <img src="preview/accent/server-stack.svg" width="22" align="absmiddle" alt=""> Repository layout

| Path              | What                                                                    |
| ----------------- | ----------------------------------------------------------------------- |
| `icons/`          | Source: one `.svg` and one `.json` (tags, categories, aliases) per icon |
| `categories.json` | The categories and their descriptions                                   |
| `scripts/`        | Validator, originality check, build, scaffolder, status                 |
| `dist/`           | Built package (generated, published to npm)                             |
| `preview/`        | README sheets and accent icons (generated, committed)                   |
| `site/`           | Generator for [icons.burtson.ai](https://icons.burtson.ai)              |
| `design/`         | Spec, backlog and drafting prompts                                      |

## License

[ISC](LICENSE) © Burtson Labs. Use the icons anywhere, including commercial work. Attribution is welcome but not required beyond keeping the license notice with copies of the package.

---
_Source: https://npm.io/package/@burtson-labs/icons · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
