The shared builder and stylesheet for every `@behivetech/icons.*` package: `createIcon`, the factory each icon package builds its component with, and the stylesheet that sizes them. It holds no glyphs; each one is its own package, `@behivetech/icons.<name>`, so an app loads only the icons it renders.

pnpm add @behivetech/icons.base

This is the snapshot of v0.4.0, the current version, as recorded on 2026-11-10. The live page runs its examples →

Examples of v0.4.0 are shown as code; only the latest version runs live. Open the live examples →

An icon built with `createIcon`, at each size. Real icons come from the `@behivetech/icons.*` packages.

Icon Sizes
1const SquareIcon = createIcon(
2 "SquareIcon",
3 <rect x="4" y="4" width="16" height="16" rx="2" />,
4);
5
6const IconSizes = () => (
7 <>
8 <SquareIcon size="sm" />
9 <SquareIcon />
10 <SquareIcon size="lg" />
11 <SquareIcon size="xl" />
12 </>
13);
14
15render(<IconSizes />);

Named with `titleAccess`, so it is announced as an image.

Named Icon
1const SquareIcon = createIcon(
2 "SquareIcon",
3 <rect x="4" y="4" width="16" height="16" rx="2" />,
4);
5
6const NamedIcon = () => <SquareIcon titleAccess="Square" />;
7
8render(<NamedIcon />);