From 6d1bcd0e05c2874676d2f1fd3516c746563fe4a0 Mon Sep 17 00:00:00 2001 From: Anthony Ettinger Date: Wed, 23 Sep 2026 21:08:15 -0700 Subject: [PATCH] OpenEmoji 0.1: an emoji set as a folder (#196) One openemoji.json that states coverage against a Unicode version, the licence, and who or what drew the set (made_by plus the W3C AI disclosure vocabulary), and glyphs named by fully-qualified codepoint sequence. Custom emoji get x- keys with shortcodes; skin tones name their base; rendered emoji keep the character as alt. Mapping from Mastodon, Slack, Discord and CLDR. Landing page shows 19 glyphs drawn by the reference implementation, `emoji` in profullstack/cli-tools. Co-authored-by: Claude Opus 5.5 (1M context) --- .../public/openemoji/1f1e7-1f1f7.png | Bin 0 -> 7814 bytes .../public/openemoji/1f1ef-1f1f5.png | Bin 0 -> 7126 bytes apps/logicsrc-web/public/openemoji/1f363.png | Bin 0 -> 8176 bytes apps/logicsrc-web/public/openemoji/1f3b8.png | Bin 0 -> 6013 bytes .../public/openemoji/1f3d4-fe0f.png | Bin 0 -> 8202 bytes apps/logicsrc-web/public/openemoji/1f419.png | Bin 0 -> 9836 bytes apps/logicsrc-web/public/openemoji/1f431.png | Bin 0 -> 9088 bytes .../public/openemoji/1f44d-1f3fd.png | Bin 0 -> 7647 bytes apps/logicsrc-web/public/openemoji/1f44d.png | Bin 0 -> 7109 bytes .../openemoji/1f469-1f3fe-200d-1f4bb.png | Bin 0 -> 8122 bytes .../public/openemoji/1f469-200d-1f4bb.png | Bin 0 -> 7862 bytes apps/logicsrc-web/public/openemoji/1f4a1.png | Bin 0 -> 7294 bytes apps/logicsrc-web/public/openemoji/1f525.png | Bin 0 -> 7769 bytes apps/logicsrc-web/public/openemoji/1f600.png | Bin 0 -> 7496 bytes apps/logicsrc-web/public/openemoji/1f602.png | Bin 0 -> 7530 bytes apps/logicsrc-web/public/openemoji/1f680.png | Bin 0 -> 6777 bytes apps/logicsrc-web/public/openemoji/1f979.png | Bin 0 -> 7649 bytes .../public/openemoji/267b-fe0f.png | Bin 0 -> 7578 bytes .../public/openemoji/2764-fe0f.png | Bin 0 -> 7044 bytes apps/logicsrc-web/src/app/openemoji/page.tsx | 292 ++++++++++++++++++ apps/logicsrc-web/src/lib/specs.ts | 1 + docs/openemoji.md | 147 +++++++++ 22 files changed, 440 insertions(+) create mode 100644 apps/logicsrc-web/public/openemoji/1f1e7-1f1f7.png create mode 100644 apps/logicsrc-web/public/openemoji/1f1ef-1f1f5.png create mode 100644 apps/logicsrc-web/public/openemoji/1f363.png create mode 100644 apps/logicsrc-web/public/openemoji/1f3b8.png create mode 100644 apps/logicsrc-web/public/openemoji/1f3d4-fe0f.png create mode 100644 apps/logicsrc-web/public/openemoji/1f419.png create mode 100644 apps/logicsrc-web/public/openemoji/1f431.png create mode 100644 apps/logicsrc-web/public/openemoji/1f44d-1f3fd.png create mode 100644 apps/logicsrc-web/public/openemoji/1f44d.png create mode 100644 apps/logicsrc-web/public/openemoji/1f469-1f3fe-200d-1f4bb.png create mode 100644 apps/logicsrc-web/public/openemoji/1f469-200d-1f4bb.png create mode 100644 apps/logicsrc-web/public/openemoji/1f4a1.png create mode 100644 apps/logicsrc-web/public/openemoji/1f525.png create mode 100644 apps/logicsrc-web/public/openemoji/1f600.png create mode 100644 apps/logicsrc-web/public/openemoji/1f602.png create mode 100644 apps/logicsrc-web/public/openemoji/1f680.png create mode 100644 apps/logicsrc-web/public/openemoji/1f979.png create mode 100644 apps/logicsrc-web/public/openemoji/267b-fe0f.png create mode 100644 apps/logicsrc-web/public/openemoji/2764-fe0f.png create mode 100644 apps/logicsrc-web/src/app/openemoji/page.tsx create mode 100644 docs/openemoji.md diff --git a/apps/logicsrc-web/public/openemoji/1f1e7-1f1f7.png b/apps/logicsrc-web/public/openemoji/1f1e7-1f1f7.png new file mode 100644 index 0000000000000000000000000000000000000000..2deb8e6e2f70aecc471654fbd44e053a1cd3bc27 GIT binary patch literal 7814 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 I-ZJ9<0Mw5!=>Px# literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f1ef-1f1f5.png b/apps/logicsrc-web/public/openemoji/1f1ef-1f1f5.png new file mode 100644 index 0000000000000000000000000000000000000000..328af26de96991f8a30bf80d270d6a4223434722 GIT binary patch literal 7126 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 literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f3b8.png b/apps/logicsrc-web/public/openemoji/1f3b8.png new file mode 100644 index 0000000000000000000000000000000000000000..7d50ffb4fd52401f54e75d754b69b749eea4a714 GIT binary patch literal 6013 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 JOxY^r{{UFq2y6fV literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f3d4-fe0f.png b/apps/logicsrc-web/public/openemoji/1f3d4-fe0f.png new file mode 100644 index 0000000000000000000000000000000000000000..abad79e8171a29d1c01b4219c1a78a7d2537abac GIT binary patch literal 8202 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 literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f419.png b/apps/logicsrc-web/public/openemoji/1f419.png new file mode 100644 index 0000000000000000000000000000000000000000..e265dda341cc981fa3e158ec7ebd5bdeae705e94 GIT binary patch literal 9836 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 Ksn#pQBL5FpN+wnS literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f431.png b/apps/logicsrc-web/public/openemoji/1f431.png new file mode 100644 index 0000000000000000000000000000000000000000..a24f76fbf0d22c76cda652a01574f2a1ef5c77b5 GIT binary patch literal 9088 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 Xefpb}w7Hufc#yiXw$k^f)?xnz7br(w literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f469-1f3fe-200d-1f4bb.png b/apps/logicsrc-web/public/openemoji/1f469-1f3fe-200d-1f4bb.png new file mode 100644 index 0000000000000000000000000000000000000000..730c79df252ad2826da5c97f14575e77c995b45c GIT binary patch literal 8122 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 M{h8V)72BBq1NIB>zyJUM literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f469-200d-1f4bb.png b/apps/logicsrc-web/public/openemoji/1f469-200d-1f4bb.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd1f4b8bd49af3d1ab570eb30a9922a2435f433 GIT binary patch literal 7862 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 literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f4a1.png b/apps/logicsrc-web/public/openemoji/1f4a1.png new file mode 100644 index 0000000000000000000000000000000000000000..de8527cfe8d1eedfa49911fe19551863e4af3d37 GIT binary patch literal 7294 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 literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/1f525.png b/apps/logicsrc-web/public/openemoji/1f525.png new file mode 100644 index 0000000000000000000000000000000000000000..d95e4db6f77cdd3e96fb5141674d7121fb8af2bc GIT binary patch literal 7769 zcmaKRWmJ?;-1dDh3oM-y3bM3_G}0{yNS7cIi*yM{gTm6GlprCgBA_TCk|H5Wh!WDB z5(3h-?7++4=e%E@56_%4*DtSY&V8Sm`7&|(y6P097fB%qqR`Y(H9WW2|0asy9QS5Z zjve^2JoV~%(jIdFoy@p2tg4H0$^YQg9i|3N8t5f z(1ZZ;1V9}I4KW0D>L_B^)GFj!RtT2$aT6&yxy^TWWN z{8$EB=7#^?cOSom1_uwpzV8|@v?U6y>SzON(rpo*;9mOY3cCzC2;(F0?j|q!8t~M0pQ1g z>xCl?2$+)su)TFl1mJrCej4l;;91Ci(J_FNPN2=Q%P+hw!3(NHXJyT{uhIciK9DJT z?5P6QEC9Y0c(LL%uYoGs%^TMzcx6D$g;Q&ZMOhUf$Gyx&55}*8CR%V(1^^x}b_v+h zEh|goy~shW7G6RCT;&3;q~N3hyjBE{sQyY`1vzMN@)q=60*lW;F*VTO2PPCCUKnJP zFIgt6P?9a_2hRyB;C;lwf-aZ|2CfRAgC5kQL8l6shz0mT92XN_Q+irN1QcBb?L5

g%@=B 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 CfEBU; literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/267b-fe0f.png b/apps/logicsrc-web/public/openemoji/267b-fe0f.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed4200c9f553f59e6760f887c263e20b45a279b GIT binary patch literal 7578 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 G^?v}2Td!CE literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/public/openemoji/2764-fe0f.png b/apps/logicsrc-web/public/openemoji/2764-fe0f.png new file mode 100644 index 0000000000000000000000000000000000000000..6c19ce52a82314101e2c4d5bef6e15f37ce68151 GIT binary patch literal 7044 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 literal 0 HcmV?d00001 diff --git a/apps/logicsrc-web/src/app/openemoji/page.tsx b/apps/logicsrc-web/src/app/openemoji/page.tsx new file mode 100644 index 0000000..16a865b --- /dev/null +++ b/apps/logicsrc-web/src/app/openemoji/page.tsx @@ -0,0 +1,292 @@ +import Link from "next/link"; +import type { ReactNode } from "react"; +import type { Metadata } from "next"; +import { SiteShell } from "@/components/site-shell"; +import { mono, pre, table, td, th } from "../openontology/ui"; + +export const metadata: Metadata = { + title: "OpenEmoji ยท LogicSRC", + description: + "OpenEmoji is an emoji set as a folder: one openemoji.json that states coverage, licence and who or what drew it (made_by, W3C AI disclosure), and glyphs named by fully-qualified codepoint sequence. Standard and custom emoji, PNG, SVG and colour fonts, rendered as text with the character as alt.", + alternates: { canonical: "/openemoji" } +}; + +/** Drawn by the reference implementation, `emoji` in profullstack/cli-tools. */ +const SAMPLE: Array<[string, string, string]> = [ + ["1f600", "๐Ÿ˜€", "grinning face"], + ["1f602", "๐Ÿ˜‚", "face with tears of joy"], + ["1f979", "๐Ÿฅน", "face holding back tears"], + ["1f525", "๐Ÿ”ฅ", "fire"], + ["2764-fe0f", "โค๏ธ", "red heart"], + ["1f44d", "๐Ÿ‘", "thumbs up"], + ["1f44d-1f3fd", "๐Ÿ‘๐Ÿฝ", "thumbs up: medium skin tone"], + ["1f469-200d-1f4bb", "๐Ÿ‘ฉโ€๐Ÿ’ป", "woman technologist"], + ["1f469-1f3fe-200d-1f4bb", "๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป", "woman technologist: medium-dark skin tone"], + ["1f431", "๐Ÿฑ", "cat face"], + ["1f419", "๐Ÿ™", "octopus"], + ["1f363", "๐Ÿฃ", "sushi"], + ["1f3d4-fe0f", "๐Ÿ”๏ธ", "snow-capped mountain"], + ["1f680", "๐Ÿš€", "rocket"], + ["1f4a1", "๐Ÿ’ก", "light bulb"], + ["1f3b8", "๐ŸŽธ", "guitar"], + ["267b-fe0f", "โ™ป๏ธ", "recycling symbol"], + ["1f1ef-1f1f5", "๐Ÿ‡ฏ๐Ÿ‡ต", "flag: Japan"], + ["1f1e7-1f1f7", "๐Ÿ‡ง๐Ÿ‡ท", "flag: Brazil"] +]; + +const EXAMPLE = `{ + "openemoji": "0.1", + "name": "OpenEmoji", + "license": "CC-BY-4.0", + "unicode": "18.0", + "made_by": "ai", + "disclosure": "ai-generated", + "ai_model": "gpt-image-2", + "ai_prompt_url": "style.txt", + "sizes": [16, 32, 64, 128, 512], + "fonts": [{ "format": "cbdt", "path": "font/OpenEmoji-CBDT.ttf" }], + "coverage": { "total": 3963, "drawn": 3963, "missing": [] }, + "emoji": [ + { "key": "1f44d", "char": "๐Ÿ‘", "name": "thumbs up", + "png": "png/{size}/1f44d.png", "svg": "svg/1f44d.svg" }, + { "key": "1f44d-1f3fd", "char": "๐Ÿ‘๐Ÿฝ", "name": "thumbs up: medium skin tone", + "base": "1f44d", "png": "png/{size}/1f44d-1f3fd.png" }, + { "key": "x-shipit", "shortcodes": ["shipit"], "name": "ship it", + "group": "Custom", "png": "png/{size}/x-shipit.png" } + ] +}`; + +const RULES: Array<[string, string]> = [ + ["A set is a folder", "openemoji.json at the root, every path relative to it. Works on disk, in git, behind a CDN or in a package."], + ["Standard keys are codepoints", "The fully-qualified sequence, lowercase hex, hyphen-joined: 2764-fe0f, 1f469-1f3fe-200d-1f4bb. The key is the file name. Lookups retry without FE0F."], + ["Custom keys start with x-", "x-shipit, with shortcodes, a name and group Custom. Shortcodes belong to their set; nothing Unicode encodes gets an x- key."], + ["The descriptor says where files are", "png with a {size} placeholder, svg, optional webp, avif or apng. Fonts are listed once per set with their colour format."], + ["Coverage is stated", "total, drawn and missing against the named Unicode version. Missing falls back to the platform's emoji, never to a box."], + ["A variant names its base", "A skin-tone sequence carries base, so any picker can group tones and a model-drawn set can say its tones were derived."], + ["The set says what made it", "made_by human | ai | both, plus the W3C AI disclosure vocabulary: disclosure, ai_model, ai_provider, ai_prompt_url. Per set, overridable per emoji."], + ["Rendered emoji stay text", "img alt is the character itself and title its CLDR name, so copy, paste and screen readers keep the emoji. Fonts do the same with no images."] +]; + +const MAPPING: Array<[string, string, string, string]> = [ + ["shortcodes[0]", "shortcode", "the map's key", "name"], + ["png", "url / static_url", "the map's value", "CDN URL from id"], + ["group", "category", "none", "none"], + ["apng present", "url differs from static_url", "none", "animated"] +]; + +const ABSENT: Array<[string, string]> = [ + ["No registry", "A set is wherever its descriptor is. A directory is anyone reading /.well-known/openemoji.json."], + ["No shortcode authority", "Every platform's list already disagrees. CLDR names are the shared vocabulary, and name carries them."], + ["No drawing rules", "Style, palette and whether a flag waves are the set's business. The spec fixes names and facts, not looks."], + ["No animation rules in 0.1", "An apng or webp path may animate. Timing, loops and reduced motion come later."], + ["No required licence", "A set must say its licence. It need not be open."] +]; + +export default function OpenEmojiPage(): ReactNode { + return ( + +

+ +
+
+

A set drawn to the spec

+

+ From the reference implementation: every glyph drawn by gpt-image-2 under one art + direction. The skin tones are edits of their base, which is why the two thumbs are the + same thumb. +

+
+
+ {SAMPLE.map(([key, char, name]) => ( +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + {char} +
+ {key} +
+
+ ))} +
+
+ +
+
+

The shape

+

openemoji.json, trimmed to three entries: a glyph, its skin-tone variant, a custom emoji.

+
+
{EXAMPLE}
+
+ +
+
+

The eight rules

+

Every one of them degrades rather than fails.

+
+ + + + + + + + + {RULES.map(([rule, meaning], index) => ( + + + + + ))} + +
RuleWhat it means
+ + {index + 1}. {rule} + + {meaning}
+
+ +
+
+

Discovery

+

+ A {''} in a + page's head, or /.well-known/openemoji.json on a site, which is + either a set or a list of the sets it offers. Served as JSON with CORS open, because the + point is that other sites read it. +

+
+
+ +
+
+

Custom emoji, from where they live now

+

Importing is a fetch and a rename. Nothing in 0.1 has a field these cannot carry back.

+
+ + + + + + + + + + + {MAPPING.map(([ours, mastodon, slack, discord]) => ( + + + + + + + ))} + +
OpenEmojiMastodonSlackDiscord
+ {ours} + {mastodon}{slack}{discord}
+
+ +
+
+

What is deliberately absent

+
+ + + {ABSENT.map(([what, why]) => ( + + + + + ))} + +
+ {what} + {why}
+
+ +
+
+

Draw a set

+

+ emoji in{" "} + profullstack/cli-tools draws every + fully-qualified emoji in Unicode's list and writes the folder above: PNGs from 16 to + 512, SVGs, CBDT and sbix colour fonts, CSS and openemoji.json. +

+
+
{`emoji generate --only ๐Ÿ˜€๐Ÿ”ฅ๐Ÿ‡ฏ๐Ÿ‡ต๐Ÿ‘๐Ÿฝ   # a handful, to judge the style
+emoji generate                      # all 3,963; resumable
+emoji build                         # sizes, SVGs, fonts, manifest`}
+
+ +
+
+

Where everything lives

+
+
    +
  • + Specification: the shape, eight rules, discovery, the + mapping from Mastodon, Slack, Discord and CLDR +
  • +
  • + OpenWebring and OpenWiki{" "} + for made_by and the disclosure vocabulary; OpenProfile.md{" "} + for author +
  • +
+
+ + ); +} diff --git a/apps/logicsrc-web/src/lib/specs.ts b/apps/logicsrc-web/src/lib/specs.ts index 58996fd..24afcef 100644 --- a/apps/logicsrc-web/src/lib/specs.ts +++ b/apps/logicsrc-web/src/lib/specs.ts @@ -96,6 +96,7 @@ export const FAMILIES: Family[] = [ s("openaffiliate", "OpenAffiliate", "One file a merchant serves about the commission it pays"), s("openrecipe", "OpenRecipe.md", "One Markdown file that is a recipe, with schema.org derived from it and never the reverse"), s("opensong", "OpenSong", "One plain-text file that is a song: title, style, exclusions and lyrics as the blocks a generator takes, kept beside the audio"), + s("openemoji", "OpenEmoji", "An emoji set as a folder: one file that states coverage, licence and whether a person or a model drew it, and glyphs named by the codepoints they draw"), s("openthreat", "OpenThreat", "One file a security tool serves about what it found in the open: public subjects only, secrets never located"), s("openrental", "OpenRental", "One file an operator serves about the agents and file swarms it rents out: members, metadata and rates through CoinPay", { landing: undefined, status: "draft" }), s("opensite", "OpenSite", "One record about a page or a site: the card a reader would draw, declared by the site or read from it, kept by an index"), diff --git a/docs/openemoji.md b/docs/openemoji.md new file mode 100644 index 0000000..eddc261 --- /dev/null +++ b/docs/openemoji.md @@ -0,0 +1,147 @@ +# OpenEmoji + +OpenEmoji is an emoji set as a folder: one `openemoji.json` at the top that says what the set covers, who or what drew it and under which licence, and image files named by the codepoints they draw. Any site, app or agent can render any set from it, standard Unicode emoji and a community's custom ones alike, without a vendor font and without a platform's private API. It is maintained by Profullstack, Inc. as part of the LogicSRC open-standards surface. + +Status: **0.1**. Written in the spirit of [OpenWiki](/openwiki): files first, one small descriptor, and `made_by` on the work. + +Slug: `openemoji` + +## The problem + +Every emoji a reader sees is drawn by whoever made their operating system. The same message shows Apple's ๐Ÿ˜‚ on one phone, Google's on another, and a box with a question mark on a Linux server whose font is two Emoji versions old. A site that wants its own look has to ship a set, and there is no agreed shape for one: Twemoji, Noto, OpenMoji and Fluent each name their files differently, none of them says in a machine-readable way how much of Unicode it covers, and none of them says what made it. + +Custom emoji are worse. Slack, Discord, Mastodon and Misskey each keep their own list behind their own API, with their own fields for the same five facts (a name, an image, a category, whether it animates, whether it is shown in the picker). A community that moves loses its emoji. + +Image models make the gap wider. A complete, coherent set can now be drawn in an afternoon, and a reader deserves to know whether the thumbs-up in front of them was drawn by a person, a model, or both. + +## The shape + +``` +openemoji.json the descriptor (rule 1) +png//.png raster glyphs, one folder per size +svg/.svg vector glyphs, when the set has them +font/-CBDT.ttf colour fonts, when the set has them +openemoji.css @font-face and an img rule, optional +``` + +```json +{ + "openemoji": "0.1", + "name": "OpenEmoji", + "version": "2026-09-24", + "license": "CC-BY-4.0", + "author": "Profullstack, Inc.", + "unicode": "18.0", + "made_by": "ai", + "disclosure": "ai-generated", + "ai_model": "gpt-image-2", + "ai_provider": "OpenAI", + "ai_prompt_url": "style.txt", + "sizes": [16, 20, 32, 48, 64, 72, 96, 128, 136, 160, 256, 512], + "formats": ["png", "svg", "cbdt", "sbix"], + "fonts": [ + { "format": "cbdt", "path": "font/OpenEmoji-CBDT.ttf" }, + { "format": "sbix", "path": "font/OpenEmoji-sbix.ttf" } + ], + "css": "openemoji.css", + "coverage": { "total": 3963, "drawn": 3963, "missing": [] }, + "emoji": [ + { + "key": "1f44d", + "char": "๐Ÿ‘", + "name": "thumbs up", + "group": "People & Body", + "subgroup": "hand-fingers-closed", + "unicode": "0.6", + "svg": "svg/1f44d.svg", + "png": "png/{size}/1f44d.png" + }, + { + "key": "1f44d-1f3fd", + "char": "๐Ÿ‘๐Ÿฝ", + "name": "thumbs up: medium skin tone", + "group": "People & Body", + "subgroup": "hand-fingers-closed", + "unicode": "1.0", + "base": "1f44d", + "svg": "svg/1f44d-1f3fd.svg", + "png": "png/{size}/1f44d-1f3fd.png" + }, + { + "key": "x-shipit", + "shortcodes": ["shipit", "squirrel"], + "name": "ship it", + "group": "Custom", + "keywords": ["deploy", "release"], + "png": "png/{size}/x-shipit.png" + } + ] +} +``` + +That is the set the reference implementation drew, trimmed to three entries, plus one custom emoji to show the shape. + +## The rules + +There are eight, and every one of them degrades rather than fails. + +**1. A set is a folder with `openemoji.json` at its root.** Every path in the descriptor is relative to that file. The same folder works on a disk, in a git repository, behind a CDN, or inside an npm package. Top-level keys a reader should understand: `openemoji` (the spec version, required), `name` (required), `version`, `license` (an SPDX identifier), `author` (a name or an [OpenProfile.md](/openprofile) URL), `homepage`, `unicode` (the Emoji version the set was drawn against), `sizes`, `formats`, `fonts`, `css`, `coverage` and `emoji` (required). Unknown keys are kept and ignored. + +**2. A standard emoji's key is its fully-qualified codepoint sequence.** Lowercase hexadecimal, joined by hyphens, exactly as Unicode's `emoji-test.txt` lists the fully-qualified form: `2764-fe0f` for โค๏ธ, `1f469-1f3fe-200d-1f4bb` for ๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป, `1f1ef-1f1f5` for ๐Ÿ‡ฏ๐Ÿ‡ต. The key is also the file name. A reader looking up text a person typed tries the exact sequence first and then the same sequence with every `FE0F` removed from both sides, because people and keyboards leave the selector out. `char` holds the emoji itself and `name` its CLDR short name, both copied from Unicode, not paraphrased. + +**3. A custom emoji's key starts with `x-`.** `x-` followed by lowercase letters, digits, `_` or `-`. It has no `char`, one or more `shortcodes` (without colons), a `name`, and `group: "Custom"` unless the set groups its own. A shortcode belongs to its set: two sets may both define `:shipit:`, and an app that loads both decides which wins. No `x-` key may be used for something Unicode has encoded; when Unicode encodes it, the set adds the standard key and may keep the custom one as an alias. + +**4. Files are named by key, and the descriptor says where.** An entry's `png` is a path that may contain `{size}`, filled in from the set's `sizes`; `svg` is a path; a set may add `webp`, `avif` or `apng` the same way. A reader picks the smallest size at least as large as the rendered size times the device pixel ratio, and the largest when none is. Fonts are listed once for the set with their colour format (`cbdt`, `sbix`, `colrv1`, `ot-svg`), because a browser picks among them by what it supports, not per emoji. + +**5. Coverage is stated, not implied.** `coverage.total` is the number of standard emoji in the Unicode version the set names, `coverage.drawn` how many of them it has, and `coverage.missing` their keys. A reader that meets an emoji the set does not have falls back to the platform's own, never to a blank or a box. A set that draws only faces is a valid set; it only has to say so. + +**6. A variant names its base.** A skin-tone sequence carries `base`, the key of the same emoji without the tone (`1f44d-1f3fd` has `base: "1f44d"`). That one field is enough for any picker to group tones under their emoji and to offer a tone switch from any set, and it lets a set drawn by a model say that its variants were derived from one drawing rather than drawn five times. + +**7. The set says what made it.** `made_by` is `human`, `ai` or `both`, the [OpenWebring](/docs/openwebring) vocabulary. `disclosure` is the W3C AI Content Disclosure vocabulary verbatim (`none`, `ai-assisted`, `ai-generated`, `autonomous`, and `mixed` at the set level), and `ai_model`, `ai_provider` and `ai_prompt_url` are the rest of it: which model, whose, and a file or page describing how it was asked. Any of the five may be repeated on an entry that differs from the set, for instance a hand-corrected flag in a set that is otherwise `ai-generated`. It is a self-declaration and nothing verifies it. + +**8. Rendered emoji stay text.** An emoji shown as an image is `๐Ÿ‘`: `alt` is the character itself, so copying the text copies the emoji and a screen reader reads its name, and `title` is the CLDR name. When a set ships a font, `font-family` with the set's name first and the platform fonts after it does the same job with no images at all; `css` points at a stylesheet that declares both. + +## Discovery + +A set is found three ways, and a reader tries them in this order: + +- A `` in a page's head: this page renders emoji with that set. +- `/.well-known/openemoji.json` on a site: either a set itself, or a list of the sets the site offers, `{"openemoji": "0.1", "sets": [{"name": "โ€ฆ", "url": "โ€ฆ/openemoji.json"}]}`. A community server's custom emoji live here. +- A URL someone hands over. The descriptor is plain JSON served as `application/json` with CORS open (`Access-Control-Allow-Origin: *`), because the point is that other sites read it. + +## Mapping from what exists + +| OpenEmoji | Mastodon `custom_emojis` | Slack `emoji.list` | Discord emoji | Unicode / CLDR | +|---|---|---|---|---| +| `key` | none (shortcode is the id) | none (name is the id) | `id` | codepoint sequence | +| `shortcodes[0]` | `shortcode` | the map's key | `name` | none | +| `png` | `url`, `static_url` | the map's value | CDN URL from `id` | none | +| `group` | `category` | none | none | group, subgroup | +| `name` | none | none | none | CLDR short name | +| `keywords` | none | none | none | CLDR annotations | +| `apng` present | `url` differs from `static_url` | none | `animated` | none | +| absent from the picker | `visible_in_picker: false` | none | `available: false` | none | + +Importing from any of them is a fetch and a rename: shortcode to `x-` key, image to `png//`. Exporting back is the reverse, and nothing in 0.1 has a field those four cannot carry. + +## What is deliberately absent + +- **No registry.** A set is wherever its descriptor is. A directory of sets can be built by anyone reading `/.well-known/openemoji.json`. +- **No shortcode authority.** Shortcodes for standard emoji are not standardised here, because every platform's list already disagrees; CLDR names are the one shared vocabulary and `name` carries them. +- **No drawing rules.** Style, palette, proportions and whether a flag waves are the set's business. The spec fixes names and facts, not looks. +- **No animation rules in 0.1.** An `apng` or `webp` path may point at an animated file; timing, loops and reduced-motion are for a later version. +- **No required licence.** A set must say its licence; it need not be open. + +## Reference implementation + +`emoji` in [profullstack/cli-tools](https://github.com/profullstack/cli-tools) draws a complete set with an image model and packs it as above: + +```sh +emoji generate --only ๐Ÿ˜€๐Ÿ”ฅ๐Ÿ‡ฏ๐Ÿ‡ต๐Ÿ‘๐Ÿฝ # draw a handful, judge the style +emoji generate # every fully-qualified sequence in emoji-test.txt +emoji build # PNG sizes, SVGs, CBDT + sbix fonts, CSS, openemoji.json +``` + +It follows rules 6 and 7 as a design choice, not only as fields. Six anchors are drawn first and every later glyph is an edit that sees them, so 3,963 glyphs share one light and one gloss. Every skin-tone variant is an edit of its `base` that changes the skin and nothing else. The descriptor it writes says `made_by: ai`, `disclosure: ai-generated`, the model, and points `ai_prompt_url` at the art direction it used. + +Related: [OpenWebring](/docs/openwebring) and [OpenWiki](/docs/openwiki) for `made_by` and the disclosure vocabulary; [OpenProfile.md](/openprofile) for `author`; [OpenFile](/docs/openfile) for serving the folder.