DEV Community

chovy
chovy

Posted on Originally published at dev.profullstack.com

OpenEmoji and OpenIcon: 3,963 emoji, 370 icons, and your terminal gets them too

Today we shipped two open specs and a complete set for each: OpenEmoji, with all 3,963 standard emoji, and OpenIcon, with 370 UI and brand icons. Both are built into HQTUI and on by default.

OpenEmoji

An emoji set is usually locked to someone's operating system. OpenEmoji is a folder: one openemoji.json that says which Unicode version it covers, what is missing, its licence, and what drew it, plus files named by codepoint (1f525.png is the fire).

The reference set is every fully-qualified sequence in Emoji 18.0, drawn by gpt-image-2 as one family. Six anchor glyphs were drawn first and every later glyph was an edit that saw them, so the light and gloss hold across the set. Skin tones are edits of the base glyph that change only the skin. The manifest says so: made_by ai, disclosure ai-generated.

Two things the model got wrong on the way: it kept drawing a famous red-haired mermaid and a famous blonde fairy, and a general "be original" instruction did not stop it. A specific brief for each did.

Browse it at https://logicsrc.com/openemoji/catalog. Search by name or keyword ("lol" finds the crying-laughing face), filter by group, skin tone or Emoji version, and pick a network under "Install on". There are bundles for 22 of them: custom emoji for Slack, Discord, Mastodon (a tootctl tarball), Misskey, Pleroma, Telegram and more, sticker packs for Signal and WhatsApp where custom emoji do not exist, and flag images for X. Colour fonts (CBDT and sbix) are in the release.

OpenIcon

OpenIcon does the same for UI icons, and adds the part icon sets leave out: what to draw in a terminal. Every icon carries a Nerd Font glyph, a Unicode symbol and an ASCII fallback, so a status bar never turns into boxes over SSH. The set has 259 icons in two styles, a simple line style and a full-colour HQ style, plus 111 brand logos taken from Simple Icons in their owners' colours. See all of them at https://logicsrc.com/openicon.

In HQTUI

import { icon, emoji, emojify } from "@profullstack/hqtui";

icon("mail");     // Nerd glyph, or ✉, or @
emoji("rocket");  // 🚀, or [rocket] where emoji cannot render
emojify("ship it :oe_rocket:");
Enter fullscreen mode Exit fullscreen mode

bunx @profullstack/hqtui fonts install puts the emoji font in your terminal through fontconfig, Kitty or WezTerm. Emoji width is also fixed in all six ports: a thumbs-up with a skin tone used to measure four columns.

The specs are open and the sets are CC BY: https://github.com/profullstack/openemoji and https://github.com/profullstack/openicon.

Top comments (0)