Fonts for the Crafting Apps
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Dylan M. Taylor 43a9944032
Some checks failed
CI / test (push) Waiting to run
sonarcloud.yml / ci: add sonar-project.properties for CI-based analysis (push) Failing after 0s
ci: add sonar-project.properties for CI-based analysis
Marks the project ineligible for SonarCloud Automatic Analysis, resolving the
CI-vs-automatic-analysis conflict so the SonarCloud workflow succeeds.
2026-10-21 16:00:56 -04:00
.github ci: add SonarCloud scan via shared reusable workflow 2026-10-21 15:47:12 -04:00
crates Fonts: Noto Sans Georgian 2026-10-14 21:21:17 +04:00
docs integration.md: CRAFT_FONTS_DIR must be absolute (build scripts run in the crate dir) 2026-10-06 14:11:22 -04:00
fonts Fonts: Noto Sans Georgian 2026-10-14 21:21:17 +04:00
.coderabbit.yaml Skip CodeRabbit reviews on Dependabot PRs (#44) 2026-10-20 11:42:10 -04:00
.gitignore Japanese fonts, the manifest, a Rust workspace and font tests 2026-10-06 10:01:40 -04:00
ATTRIBUTION.md Fonts: Noto Sans Georgian 2026-10-14 21:21:17 +04:00
Cargo.lock Japanese fonts, the manifest, a Rust workspace and font tests 2026-10-06 10:01:40 -04:00
Cargo.toml Japanese fonts, the manifest, a Rust workspace and font tests 2026-10-06 10:01:40 -04:00
clippy.toml Japanese fonts, the manifest, a Rust workspace and font tests 2026-10-06 10:01:40 -04:00
LICENSE-APACHE Japanese fonts, the manifest, a Rust workspace and font tests 2026-10-06 10:01:40 -04:00
LICENSE-MIT Japanese fonts, the manifest, a Rust workspace and font tests 2026-10-06 10:01:40 -04:00
README.md ci: add SonarCloud scan via shared reusable workflow 2026-10-21 15:47:12 -04:00
sonar-project.properties ci: add sonar-project.properties for CI-based analysis 2026-10-21 16:00:56 -04:00

craft-fonts

Scanned by SonarCloud

Reusable fonts for the Crafting Apps.

This library is meant to have the following:

  1. Reusable font assets. These may be large files, and since we're using a separate repo for storing them, We're not afraid of potentially having to do a git reset to purge stale assets. It won't impact the other repos with core app and library functionality.

  2. Additional cross-cutting Rust libraries for dealing with fonts. It's uncertain whether it's better to have code packages as individual repos as one classically does, or whether we should take a more "biology-inspired" approach of copying innovations between repos as a form of lateral code/information exchange.

What's here

Path What
fonts/ The font files, one directory per family, each with its licence.
fonts/manifest.txt Machine-readable list of every font: family, style, file, scripts, licence, SHA-256, pinned source.
ATTRIBUTION.md Authors, pinned sources and licences.
crates/craft-fonts Rust: the manifest as a static table, finding a checkout (CRAFT_FONTS_DIR), loading it, and an embed feature that compiles the fonts in.
crates/craft-fonts-tests Tests asserted on these fonts: checksums, licences, family names, Japanese coverage and outlines, vertical-text (vert/vrt2) support.
docs/integration.md How an app uses craft-fonts as a fully optional build input.

Fonts

Family Styles For Licence
BIZ UDPGothic Regular, Bold Japanese UI text (sans) OFL-1.1
Shippori Mincho Regular Japanese document text (serif) OFL-1.1
BIZ UDMincho Regular Japanese document text (serif) OFL-1.1
Noto Sans CJK SC Regular Simplified Chinese UI and document text (sans) OFL-1.1
Noto Sans Arabic Regular (variable: wdth, wght) Arabic UI and document text (sans) OFL-1.1
Noto Sans Thai Regular (variable: wdth, wght) Thai UI and document text (sans) OFL-1.1
Noto Sans Georgian Regular (variable: wdth, wght) Georgian UI and document text (sans) OFL-1.1

How the apps use it

Fully optional, never required. The apps don't list craft-fonts in Cargo.toml (Cargo would fetch it for every build). Building with CRAFT_FONTS_DIR=<path to this checkout> makes an app embed the fonts in fonts/manifest.txt; without it, the app builds and runs as before. Release builds check out a pinned commit of this repo and set the option. See docs/integration.md.

Font assets for the Crafting Apps belong here, not in the app repos: add the file, its licence, a manifest line and an attribution row, and the tests check it.

Develop

cargo test --workspace                       # all font assertions
cargo test -p craft-fonts --features embed   # the embedded bytes match the files

Code is MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE); each font keeps its own licence.