The OpenVibe glyphs

One hand for every icon.

287 icons in the mark’s own line: a 24-unit grid, strokes two units wide with round ends, in the colour of the text around them. They stand in for 481 Font Awesome names, 97% of what the network’s pages ask for.

Choose an icon for a button

Type what the button says. The set’s names and keywords answer first; for words that are new, a small model ranks the shortlist, and when nothing fits, draw one. The same API is GET /api/v1/glyphs/suggest?label=.

Every glyph

The 48 the network uses most

All 287 glyphs 239 more, A to Z

SVGPNGIts page

Get them all

Free, MIT. The fonts carry every glyph at its own character (U+E001 up, never reused), so a document made with them keeps working. Each glyph’s page makes a PNG at any size and colour.

Make a kit: a font with only the icons your site uses, from a few hundred bytes.

Still Font Awesome

The names the network’s pages asked Font Awesome for that no glyph draws yet, most used first (counted 2026-10-31). Brand logos are drawn too now. Tap one to draw it.

32 more each used a few times

Draw an icon

Name it and say what it stands for. OpenVibe.AI draws a few candidates in this hand; each is checked before review. House rules: centre on the 24-unit grid, long side 18–20 units, 1/1.5/2/2.5-unit line weights, and 2.5-unit gaps so shapes stay clear at 16 px. Solids should stay under 2.6 times the line ink.

About $0.0008 a draftAbout 900 in and 1,800 out tokens at the cheapest model. A signed-in person's own key or Balance pays; signed out, the free guest allowance does. Cheapest now: gpt-5-nano. Prices before the draft, never after.

No account needed: you can draw 2 icons a day as a guest. Sign in to draw more and see your drafts on any device.

Use them

Every OpenVibe site already shows them in place of Font Awesome’s (the navbar loads the drop-in). Anyone else can too; it is open source (MIT).

On any page

<script src="https://openvibe.design/ov-icon.js" defer></script>
<ov-icon name="heart"></ov-icon>
<ov-icon name="mic" size="16" label="Microphone"></ov-icon>

A web component: no sign-in, any framework. It follows the text’s size and colour and turns solid when small.

In place of Font Awesome

<script src="https://openvibe.design/shared/ov-glyphs.js" defer></script>
<!-- your <i class="ovg-fill" data-ov-icon="eye"> now shows the glyph -->

Sizes, animations and transforms keep working: what keeps working.

In React, Vue or Svelte

npm i https://openvibe.design/icons/npm/openvibe-icons-react.tgz

import { Icon, BellIcon } from 'openvibe-icons-react';
<Icon name="bell" size={16} />

No registry account: npm installs it from this site. Vue, Svelte and plain JavaScript (svg('bell', { size: 16 })) the same way. Solid at 18 px and under, like the sites.

As a font

<link rel="stylesheet" href="https://openvibe.design/shared/ov-glyphs-font.css">
<i class="ovi ovi-eye"></i>

On a server

const glyphs = require('openvibe-shared/glyphs');

glyphs.svg('live', { size: 20 });   // a standalone SVG
glyphs.fromFa('eye');                // 'eye' (a Font Awesome name works too)

Switching from another set?

Font Awesome, Lucide, Material or MUI: paste your page and see every icon with its OpenVibe twin. Their names work in <ov-icon name="lucide:settings"> too.

As data

GET https://openvibe.design/api/v1/glyphs
GET https://openvibe.design/api/v1/glyphs?names=heart,fa-gear
GET https://openvibe.design/api/v1/glyphs/search?q=heart
GET https://openvibe.design/api/v1/glyphs/suggest?label=deep%20dive
GET https://openvibe.design/api/v1/glyphs/<name>?style=thin|light|regular|bold|solid|duotone
POST https://openvibe.design/api/v1/glyphs/draft
GET https://openvibe.design/icons/<name>.svg?style=auto|line|solid