Documentation

Use Grid22 your way

300 icons, one consistent 24×24 grid, and no runtime dependency. Use the source SVGs directly, load the CSS distribution, or export outlined shapes for design tools.

Quick start

Choose the method that matches your project. All source icons inherit currentColor; CSS classes size at 1em.

CSS classesFastest for product UI. One stylesheet, familiar class names.
Inline SVGBest control, no extra request, fully styleable from your component.
SVG filesSimple image assets for static contexts and content.
SVGStrokes expanded to shapes for Figma, Sketch, and Illustrator.

CDN and CSS classes

Load the versioned stylesheet once, then use any icon with g22 g22-{name}. Versioned URLs are immutable; upgrade the version explicitly when you want a new release.

HTML
<link rel="stylesheet" href="https://grid22.design/v1.5.0/dist/grid22.css"
  integrity="sha384-Ula3/hWfUFrqElMp46gCD+lbGWRymjVYahraLvyA3UGajL0JPddL+vZQ8pX5G2ge"
  crossorigin="anonymous">

<i class="g22 g22-search" aria-hidden="true"></i>
<button><i class="g22 g22-trash" aria-hidden="true"></i> Delete</button>
CSS
.toolbar .g22 {
  color: var(--text);
  font-size: 24px;
}

.toolbar .g22:hover { color: var(--accent); }

Inline SVG

Inline SVG is the most flexible option. It follows the text color of its parent and can be animated or styled like any other element.

HTML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
  width="24" height="24" fill="none" stroke="currentColor"
  stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="9.82" cy="9.82" r="6.67"/>
  <path d="M15.05 15.05L20.85 20.85"/>
</svg>

JSX and React

Open any icon in the gallery and choose JSX under Copy. Grid22 converts SVG attributes such as stroke-width and stroke-linecap to their React equivalents and applies the selected size and color.

Use SVG files as images

Every icon is available at /v1.5.0/icons/{name}.svg. This is the simplest method, but external SVG images do not inherit the page's text color.

HTML
<img src="https://grid22.design/v1.5.0/icons/search.svg"
  width="24" height="24" alt="Search">

SVG for design tools

The gallery's default SVG export expands strokes into filled paths. This preserves visual weight when scaling in Figma, Illustrator, or Sketch.

FormatBest forBehavior
SVGDesign toolsOutlined paths, fill-based, scales cleanly.
SVG (stroke)Web and codeEditable strokes using currentColor.
PNGRaster workflowsTransparent background, optional @2x.

Outlined files are also available directly at /v1.5.0/dist/outlined/{name}.svg.

Size and color

Grid22 is designed around 16, 24, 32, and 48 px. The default canvas is 24×24 with rounded 1.8 px strokes.

CSS
.icon {
  color: #b4541e;
  height: 24px;
  width: 24px;
}

Machine-readable manifest

The JSON manifest includes names, categories, aliases, CSS classes, and URLs for both SVG formats.

JavaScript
const icons = await fetch('https://grid22.design/v1.5.0/dist/icons.json')
  .then(response => response.json());

const search = icons.icons.find(icon => icon.name === 'search');

Discover every immutable release, its asset URLs, icon count, and CSS integrity hash in the version catalog.

Agent recipes

Grid22 exposes its catalog and usage rules as Markdown and JSON so coding and design agents can select real icons without guessing names.

1. DiscoverRead llms.txt for usage rules or llms-full.txt for the complete compact catalog.
2. Match intentCompare the requested concept with verified names and aliases in the manifest.
3. Deliver codeUse the stroked source for inline HTML or JSX, or a version-pinned CSS class with its matching SRI hash.
4. Deliver designUse the outlined asset when the destination is Figma, Illustrator, Sketch, or another vector design tool.

Never invent an icon name. Confirm the exact name in the manifest before returning a class or URL. If there is no exact match, say so and offer only verified alternatives.

JavaScript · verify before use
const catalog = await fetch('https://grid22.design/v1.5.0/dist/icons.json')
  .then(response => response.json());

const requestedName = 'search';
const icon = catalog.icons.find(item => item.name === requestedName);

if (!icon) throw new Error(`Unknown Grid22 icon: ${requestedName}`);

For production output, read versions.json and pin one release consistently across the stylesheet, source icons, outlined assets, and manifest.

Accessibility

Decorative icons should use aria-hidden="true". Meaningful standalone icons need an accessible name, usually on the button or link that contains them.

HTML
<button aria-label="Open search">
  <i class="g22 g22-search" aria-hidden="true"></i>
</button>

Icons should reinforce meaning, not replace an accessible label. Test icon-only controls with a keyboard and screen reader.

Frequently asked questions

Short answers to the decisions that come up most often when adopting Grid22.

Can I use Grid22 in commercial projects?

Yes. Grid22 is available under the MIT License for personal and commercial work. If you redistribute the library or a substantial copy of it, keep the included copyright and permission notice. See the plain-language license page for details.

Do I need an account?

No. Browsing, copying, and downloading icons works without signing in. Your theme and display preferences are stored only in your browser.

Should I pin the CDN version?

Yes for production. A URL such as /v1.5.0/dist/grid22.css is immutable, so an update cannot change your interface unexpectedly. Unversioned URLs point to the latest release and are better suited to experiments.

Does Grid22 work with React or JSX?

Yes. Open an icon in the gallery and choose JSX under Copy. The exported markup uses React-compatible attribute names and requires no Grid22 runtime package.

Why does an SVG used as an image not change color?

An external SVG loaded with <img> does not inherit the page's currentColor. Use inline SVG, a Grid22 CSS class, or a CSS mask when the icon needs to follow your interface color.

How should I make an icon accessible?

Hide decorative icons with aria-hidden="true". For an icon-only button or link, put the accessible name on the control with visible text or an aria-label; the icon itself should not repeat that name.

Can I download the complete library?

Yes. Use Download all in the gallery to get every source SVG in one ZIP file. Individual icons can also be downloaded as SVG, stroke SVG, or PNG.

How can I see what changed between versions?

Use the changelog for release notes and the version catalog for machine-readable asset URLs, icon counts, dates, and integrity hashes.