# Reading and lyric-motion web fonts These are prebuilt, self-hosted, single-weight WOFF2 assets. They are loaded on demand by the product; the system sans-serif option does not download a font. No runtime request to Google Fonts or GitHub is required. | File | Internal family | Upstream font | Modification | | --- | --- | --- | --- | | `song.woff2` | `YGLSong` | Noto Serif SC | Instantiate `wght=400`, rename, convert to WOFF2 | | `wenkai.woff2` | `YGLWenkai` | LXGW WenKai Lite Regular v1.522 | Rename, convert to WOFF2 | | `rounded.woff2` | `YGLRounded` | ZCOOL KuaiLe Regular | Rename, convert to WOFF2 | | `brush.woff2` | `YGLBrush` | Ma Shan Zheng Regular | Rename, convert to WOFF2 | All four retain their upstream character coverage. No character subsetting or glyph-outline redesign has been applied. Character counts, original download URLs, source hashes, resulting file hashes and tool versions are recorded in `manifest.json`. Counts describe encoded Unicode codepoints, not a promise that every possible Chinese character is covered. Unsupported characters may still use the browser's fallback font. ## License and attribution Each font remains licensed under the **SIL Open Font License 1.1**. The complete upstream notices and license are provided in the matching `*.OFL.txt` file and embedded in OpenType name ID 13; name ID 14 points to the official OFL text. Original copyright, author, version, designer and attribution records are kept. These are modified versions of the credited open fonts, **not fonts newly designed by this product**. Internal family, full and PostScript names have been changed to avoid using upstream Reserved Font Names for modified versions. Original digital signatures, if present, are removed because they no longer apply after modification. Font access in a product membership is part of the software service; it does not change the OFL rights or create an exclusive license to the font itself. Do not sell these font files on their own. Upstream projects: - Noto Serif SC: https://github.com/google/fonts/tree/main/ofl/notoserifsc - LXGW WenKai Lite: https://github.com/lxgw/LxgwWenKai-Lite - ZCOOL KuaiLe: https://github.com/googlefonts/zcool-kuaile - Ma Shan Zheng: https://github.com/google/fonts/tree/main/ofl/mashanzheng - OFL usage FAQ: https://openfontlicense.org/ofl-faq/ ## Rebuilding `tools/build_reading_fonts.py` is an optional release-time tool requiring `fonttools[woff]`; it is not a runtime dependency. It downloads only the listed official sources over HTTPS, builds at most two fonts concurrently, preserves the original font timestamps, and verifies family names, coverage and embedded licenses after reloading each output. Each generated font must be below 10 MiB. The tool writes the WOFF2 binaries and prints a JSON object containing the new manifest and full upstream license texts. Review that output before updating the checked-in manifest and license text files. The source URLs for some upstream fonts follow their main branch; a rebuild can therefore legitimately produce different source hashes and requires review, not an unattended release. Run from the repository root with the build environment's Python: ```text python tools/build_reading_fonts.py --jobs 2 ``` Do not preload every font. A three-second membership preview should begin only after the selected font has loaded successfully, and canvas recording must wait for the selected font before drawing export frames.