Sable-maintained Twemoji COLR font package for web apps.
pnpm add @sableclient/twemoji-fontimport '@sableclient/twemoji-font';import fontUrl from '@sableclient/twemoji-font/files/twemoji.woff2?url';This raw asset import is intended for bundlers that support ?url asset imports, such as Vite.
- Add a change file with
knope document-change, or let the upstream update workflow create one for Twemoji refresh PRs. - Merge the change into
master. .github/workflows/quality-checks.ymlruns repo checks, tests, and package validation on pushes and pull requests.- CI opens a release PR from
releasewith the version bump and changelog updates. - Merging that release PR tags the commit, creates the GitHub release, uploads a
build/*.ziparchive withttfandwoff2font files, and publishes the package to npm with the repository secretNPM_TOKEN.
This repo keeps the upstream font-generation pipeline and packages the generated assets for npm distribution.
Repo-owned build helpers live under scripts/.
Use vp as the command front-end; repo commands are defined in package.json.
Canonical local setup:
vp env installvp installpython -m pip install -e .- Install FontForge so
fontforgeis onPATH, or setFONTFORGE. - Optional: install native
ttfautohintor setTTFAUTOHINTif you do not want to use the Python wheel fallback.
python -m pip install -e . installs fonttools[woff] and ttfautohint-py. The owned runner still requires native FontForge for raw TTF generation, then uses either ttfautohint on PATH or python -m ttfautohint for hinting.
Build the source font with:
vp run build:fontRun the fast static checks with:
vp run checkRun the linter only with:
vp run lintRun the formatter only with:
vp run fmtRun the test suite with:
vp run testRun the full local verification path with:
vp run verifyCheck for new upstream releases with:
vp run check:upstreamRefresh the pinned upstream source cache from the exact current gh-pages commit for a release version with:
vp run prepare:upstream -- 17.0.2That command updates package.json twemoji metadata and warms .cache/twemoji/<commit>/svg.
Repin and update workflow actions with:
pinact run -u .github/workflows/check-upstream.yml .github/workflows/quality-checks.yml .github/workflows/prepare-release.yml .github/workflows/release.ymlAudit workflow security with:
zizmor .github/workflows/check-upstream.yml .github/workflows/quality-checks.yml .github/workflows/prepare-release.yml .github/workflows/release.yml