FreeFeedFlags.woff2 is a flags-only COLRv1 webfont for FreeFeed. It is based
on Noto Color Emoji and replaces the Iran flag (U+1F1EE U+1F1F7) with the
Lion and Sun design from Iran Flag Project. The complete SVG is waved before
it is compiled to COLRv1. Only segments wider than 64 SVG units are subdivided;
short lines and the original emblem curves are preserved.
See PIPELINE.md for the geometry, COLRv1 merge, subsetting,
reproducibility, and verification details.
The current release version is stored in VERSION. Each build
creates a canonical versioned artifact such as FreeFeedFlags-v1.0.1.woff2
and an identical stable copy named FreeFeedFlags.woff2 for preview and client
integration.
- Noto Emoji
v2.051, commit8998f5dd683424a73e2314a8c1f1e359c19e8742:fonts/Noto-COLRv1.ttf. - Noto source SHA-256:
0ae57fe58645638523ba35f388d93739d292539a9acb84df5700c81b1e1a28d2. - Lion and Sun flag SVG: https://iranflag.org/downloads/Flag-of-Iran.svg.
- SVG SHA-256:
ef3ba954c3dff7711985d758b5d03456a4e16473ba57829c924c4e7a47d5baff.
Noto Emoji and this modified font are distributed under SIL Open Font License
1.1; see licenses/noto-emoji.txt. The Lion and Sun flag SVG is released under
CC0 1.0; see licenses/iran-flag-source.txt.
| Component | License |
|---|---|
| Build scripts and repository documentation | MIT; see LICENSE |
Noto Color Emoji and generated FreeFeedFlags*.woff2 files |
SIL Open Font License 1.1; see licenses/noto-emoji.txt |
| Lion and Sun flag SVG | CC0 1.0; see licenses/iran-flag-source.txt |
docker build -t freefeed-flags-font .
docker run --rm -v "$PWD/dist:/out" freefeed-flags-fontThe image pins Python, every Python package, the base-image digest, the Noto
revision, and both downloaded-file hashes. The resulting file is
dist/FreeFeedFlags-v<version>.woff2; dist/FreeFeedFlags.woff2 is an
identical stable copy.
Python 3.12.11 is used by CI and Docker.
python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.lock
python scripts/download-source.py
python scripts/build.py
python scripts/verify.pyOn Windows, activate with .venv\Scripts\activate.
verify.py checks WOFF2 parsing, COLRv1/CPAL, GSUB ligatures, 259 regional
flags, England/Scotland/Wales tag sequences, the custom Iran palette, subset
size, family names, internal version metadata, and equality of the stable and
versioned files.
- Update
VERSIONusing numericMAJOR.MINOR.PATCHformat. - Build and verify locally.
- Commit the version change.
- Create and push the matching tag, for example
v1.0.1.
GitHub Actions rejects a release tag that does not match VERSION. Artifacts,
SHA-256 files, and GitHub Release assets use the versioned filename.
After building, serve the repository root instead of opening the page directly:
python -m http.server 8000Open http://localhost:8000/preview/. The first row contains Iran and control flags. The grid contains all regional-indicator pairs.
- Change
NOTO_VERSION,NOTO_REVISION,NOTO_URL, andNOTO_SHA256inscripts/download-source.py. - Remove the cached source from
cache/and runpython scripts/download-source.py. - Build twice and compare SHA-256 values.
- Run
python scripts/verify.pyand inspect the preview. - Update the source revision and hashes in this README.
Copy only the generated WOFF2, the OFL license, and source metadata to the React client. TTF output is not required.
@font-face {
font-family: "FreeFeed Flags";
src: url("./FreeFeedFlags.woff2") format("woff2");
font-style: normal;
font-weight: 100 900;
font-display: swap;
unicode-range:
U+1F1E6-1F1FF,
U+1F3F4,
U+E0061-E007A,
U+E007F;
}