Restore the Latin font catalog alongside migration fallbacks

This commit is contained in:
skylartaylor
2026-10-25 05:08:29 +01:00
parent b076417b58
commit 37827adc41
77 changed files with 2632 additions and 61 deletions
+2
View File
@@ -26,3 +26,5 @@ jobs:
run: cargo test --workspace --locked
- name: test (embed)
run: cargo test -p craft-fonts --features embed --locked
- name: test (embed-latin)
run: cargo test -p craft-fonts --features embed-latin --locked
+78 -2
View File
@@ -2,8 +2,9 @@
Every font in `fonts/`, with its source and licence. The files are byte-identical to the pinned
upstream sources (checked by `craft-fonts-tests`, which verifies each SHA-256 in the manifest that
lists it: `fonts/manifest.txt` for the default embedded set, and
`fonts/simplified-chinese-manifest.txt` for the opt-in native-only Simplified Chinese face).
lists it: `fonts/manifest.txt` for the default embedded set, `fonts/latin-manifest.txt` for the
opt-in Latin presentation faces, and `fonts/simplified-chinese-manifest.txt` for the opt-in
native-only Simplified Chinese face).
| File | Family / style | Author | Source (pinned) | Licence |
|---|---|---|---|---|
@@ -30,3 +31,78 @@ LXGW; the bundled release member and Klee-One copyright notice stay byte-identic
The Symbols variable font keeps its upstream bytes; only its filename changes from
`NotoSansSymbols[wght].ttf` to `NotoSansSymbols.ttf`.
## Latin presentation fonts (`fonts/latin-manifest.txt`)
Opt-in fonts for UI, presentation and document apps (see `docs/integration.md`): 16 families and 51 faces, about 19.5 MiB (20,417,364 bytes of font files). All are OFL-1.1.
Variable-font files are renamed without their `[axes]` suffix (e.g. `Montserrat[wght].ttf` is
`Montserrat.ttf`); each licence file is the upstream licence text (upstream `LICENSE.txt`,
`LICENSE` or `LICENSE.md` for Inter, Liberation and Source) saved as `OFL.txt`. Font files are
byte-identical to upstream.
| File | Family / style | Author | Source (pinned) | Licence |
|---|---|---|---|---|
| `fonts/inter/Inter-Regular.ttf` | Inter Regular | The Inter Project Authors (Rasmus Andersson) | [rsms/inter v4.1 release](https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip) (`extras/ttf/Inter-Regular.ttf`) | OFL-1.1 (`fonts/inter/OFL.txt`) |
| `fonts/inter/Inter-Italic.ttf` | Inter Italic | The Inter Project Authors (Rasmus Andersson) | [rsms/inter v4.1 release](https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip) (`extras/ttf/Inter-Italic.ttf`) | OFL-1.1 (`fonts/inter/OFL.txt`) |
| `fonts/inter/Inter-SemiBold.ttf` | Inter SemiBold | The Inter Project Authors (Rasmus Andersson) | [rsms/inter v4.1 release](https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip) (`extras/ttf/Inter-SemiBold.ttf`) | OFL-1.1 (`fonts/inter/OFL.txt`) |
| `fonts/inter/Inter-Bold.ttf` | Inter Bold | The Inter Project Authors (Rasmus Andersson) | [rsms/inter v4.1 release](https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip) (`extras/ttf/Inter-Bold.ttf`) | OFL-1.1 (`fonts/inter/OFL.txt`) |
| `fonts/carlito/Carlito-Regular.ttf` | Carlito Regular | The Carlito Project Authors (Łukasz Dziedzic) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito) | OFL-1.1 (`fonts/carlito/OFL.txt`) |
| `fonts/carlito/Carlito-Bold.ttf` | Carlito Bold | The Carlito Project Authors (Łukasz Dziedzic) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito) | OFL-1.1 (`fonts/carlito/OFL.txt`) |
| `fonts/carlito/Carlito-Italic.ttf` | Carlito Italic | The Carlito Project Authors (Łukasz Dziedzic) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito) | OFL-1.1 (`fonts/carlito/OFL.txt`) |
| `fonts/carlito/Carlito-BoldItalic.ttf` | Carlito Bold Italic | The Carlito Project Authors (Łukasz Dziedzic) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito) | OFL-1.1 (`fonts/carlito/OFL.txt`) |
| `fonts/caladea/Caladea-Regular.ttf` | Caladea Regular | The Caladea Project Authors (Huerta Tipográfica) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea) | OFL-1.1 (`fonts/caladea/OFL.txt`) |
| `fonts/caladea/Caladea-Bold.ttf` | Caladea Bold | The Caladea Project Authors (Huerta Tipográfica) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea) | OFL-1.1 (`fonts/caladea/OFL.txt`) |
| `fonts/caladea/Caladea-Italic.ttf` | Caladea Italic | The Caladea Project Authors (Huerta Tipográfica) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea) | OFL-1.1 (`fonts/caladea/OFL.txt`) |
| `fonts/caladea/Caladea-BoldItalic.ttf` | Caladea Bold Italic | The Caladea Project Authors (Huerta Tipográfica) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea) | OFL-1.1 (`fonts/caladea/OFL.txt`) |
| `fonts/liberation-sans/LiberationSans-Regular.ttf` | Liberation Sans Regular | Red Hat, Inc.; digitized data Google Corporation (Arimo) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSans-Regular.ttf`) | OFL-1.1 (`fonts/liberation-sans/OFL.txt`) |
| `fonts/liberation-sans/LiberationSans-Bold.ttf` | Liberation Sans Bold | Red Hat, Inc.; digitized data Google Corporation (Arimo) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSans-Bold.ttf`) | OFL-1.1 (`fonts/liberation-sans/OFL.txt`) |
| `fonts/liberation-sans/LiberationSans-Italic.ttf` | Liberation Sans Italic | Red Hat, Inc.; digitized data Google Corporation (Arimo) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSans-Italic.ttf`) | OFL-1.1 (`fonts/liberation-sans/OFL.txt`) |
| `fonts/liberation-sans/LiberationSans-BoldItalic.ttf` | Liberation Sans Bold Italic | Red Hat, Inc.; digitized data Google Corporation (Arimo) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSans-BoldItalic.ttf`) | OFL-1.1 (`fonts/liberation-sans/OFL.txt`) |
| `fonts/liberation-serif/LiberationSerif-Regular.ttf` | Liberation Serif Regular | Red Hat, Inc.; digitized data Google Corporation (Tinos) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSerif-Regular.ttf`) | OFL-1.1 (`fonts/liberation-serif/OFL.txt`) |
| `fonts/liberation-serif/LiberationSerif-Bold.ttf` | Liberation Serif Bold | Red Hat, Inc.; digitized data Google Corporation (Tinos) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSerif-Bold.ttf`) | OFL-1.1 (`fonts/liberation-serif/OFL.txt`) |
| `fonts/liberation-serif/LiberationSerif-Italic.ttf` | Liberation Serif Italic | Red Hat, Inc.; digitized data Google Corporation (Tinos) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSerif-Italic.ttf`) | OFL-1.1 (`fonts/liberation-serif/OFL.txt`) |
| `fonts/liberation-serif/LiberationSerif-BoldItalic.ttf` | Liberation Serif Bold Italic | Red Hat, Inc.; digitized data Google Corporation (Tinos) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationSerif-BoldItalic.ttf`) | OFL-1.1 (`fonts/liberation-serif/OFL.txt`) |
| `fonts/liberation-mono/LiberationMono-Regular.ttf` | Liberation Mono Regular | Red Hat, Inc.; digitized data Google Corporation (Cousine) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationMono-Regular.ttf`) | OFL-1.1 (`fonts/liberation-mono/OFL.txt`) |
| `fonts/liberation-mono/LiberationMono-Bold.ttf` | Liberation Mono Bold | Red Hat, Inc.; digitized data Google Corporation (Cousine) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationMono-Bold.ttf`) | OFL-1.1 (`fonts/liberation-mono/OFL.txt`) |
| `fonts/liberation-mono/LiberationMono-Italic.ttf` | Liberation Mono Italic | Red Hat, Inc.; digitized data Google Corporation (Cousine) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationMono-Italic.ttf`) | OFL-1.1 (`fonts/liberation-mono/OFL.txt`) |
| `fonts/liberation-mono/LiberationMono-BoldItalic.ttf` | Liberation Mono Bold Italic | Red Hat, Inc.; digitized data Google Corporation (Cousine) | [liberation-fonts 2.1.5 release](https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz) (`liberation-fonts-ttf-2.1.5/LiberationMono-BoldItalic.ttf`) | OFL-1.1 (`fonts/liberation-mono/OFL.txt`) |
| `fonts/source-sans-3/SourceSans3-Regular.ttf` | Source Sans 3 Regular | Adobe | [adobe-fonts/source-sans 3.052R release](https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip) (`TTF/SourceSans3-Regular.ttf`) | OFL-1.1 (`fonts/source-sans-3/OFL.txt`) |
| `fonts/source-sans-3/SourceSans3-It.ttf` | Source Sans 3 Italic | Adobe | [adobe-fonts/source-sans 3.052R release](https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip) (`TTF/SourceSans3-It.ttf`) | OFL-1.1 (`fonts/source-sans-3/OFL.txt`) |
| `fonts/source-sans-3/SourceSans3-Semibold.ttf` | Source Sans 3 Semibold | Adobe | [adobe-fonts/source-sans 3.052R release](https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip) (`TTF/SourceSans3-Semibold.ttf`) | OFL-1.1 (`fonts/source-sans-3/OFL.txt`) |
| `fonts/source-sans-3/SourceSans3-Bold.ttf` | Source Sans 3 Bold | Adobe | [adobe-fonts/source-sans 3.052R release](https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip) (`TTF/SourceSans3-Bold.ttf`) | OFL-1.1 (`fonts/source-sans-3/OFL.txt`) |
| `fonts/source-serif-4/SourceSerif4-Regular.ttf` | Source Serif 4 Regular | Adobe | [adobe-fonts/source-serif 4.005R release](https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip) (`source-serif-4.005_Desktop/TTF/SourceSerif4-Regular.ttf`) | OFL-1.1 (`fonts/source-serif-4/OFL.txt`) |
| `fonts/source-serif-4/SourceSerif4-It.ttf` | Source Serif 4 Italic | Adobe | [adobe-fonts/source-serif 4.005R release](https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip) (`source-serif-4.005_Desktop/TTF/SourceSerif4-It.ttf`) | OFL-1.1 (`fonts/source-serif-4/OFL.txt`) |
| `fonts/source-serif-4/SourceSerif4-Semibold.ttf` | Source Serif 4 Semibold | Adobe | [adobe-fonts/source-serif 4.005R release](https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip) (`source-serif-4.005_Desktop/TTF/SourceSerif4-Semibold.ttf`) | OFL-1.1 (`fonts/source-serif-4/OFL.txt`) |
| `fonts/source-serif-4/SourceSerif4-Bold.ttf` | Source Serif 4 Bold | Adobe | [adobe-fonts/source-serif 4.005R release](https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip) (`source-serif-4.005_Desktop/TTF/SourceSerif4-Bold.ttf`) | OFL-1.1 (`fonts/source-serif-4/OFL.txt`) |
| `fonts/montserrat/Montserrat.ttf` | Montserrat (variable) | The Montserrat Project Authors (Julieta Ulanovsky) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/montserrat) | OFL-1.1 (`fonts/montserrat/OFL.txt`) |
| `fonts/montserrat/Montserrat-Italic.ttf` | Montserrat Italic (variable) | The Montserrat Project Authors (Julieta Ulanovsky) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/montserrat) | OFL-1.1 (`fonts/montserrat/OFL.txt`) |
| `fonts/lato/Lato-Regular.ttf` | Lato Regular | Łukasz Dziedzic (tyPoland) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/lato) | OFL-1.1 (`fonts/lato/OFL.txt`) |
| `fonts/lato/Lato-Bold.ttf` | Lato Bold | Łukasz Dziedzic (tyPoland) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/lato) | OFL-1.1 (`fonts/lato/OFL.txt`) |
| `fonts/lato/Lato-Italic.ttf` | Lato Italic | Łukasz Dziedzic (tyPoland) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/lato) | OFL-1.1 (`fonts/lato/OFL.txt`) |
| `fonts/open-sans/OpenSans.ttf` | Open Sans (variable) | The Open Sans Project Authors | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/opensans) | OFL-1.1 (`fonts/open-sans/OFL.txt`) |
| `fonts/open-sans/OpenSans-Italic.ttf` | Open Sans Italic (variable) | The Open Sans Project Authors | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/opensans) | OFL-1.1 (`fonts/open-sans/OFL.txt`) |
| `fonts/roboto/Roboto.ttf` | Roboto (variable) | The Roboto Project Authors (Google) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/roboto) | OFL-1.1 (`fonts/roboto/OFL.txt`) |
| `fonts/roboto/Roboto-Italic.ttf` | Roboto Italic (variable) | The Roboto Project Authors (Google) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/roboto) | OFL-1.1 (`fonts/roboto/OFL.txt`) |
| `fonts/merriweather/Merriweather-Regular.ttf` | Merriweather Regular | The Merriweather Project Authors (Sorkin Type) | [SorkinType/Merriweather@4481226](https://github.com/SorkinType/Merriweather/tree/4481226b336843648b5b2ee64f75737f262ded15/fonts/ttf) | OFL-1.1 (`fonts/merriweather/OFL.txt`) |
| `fonts/merriweather/Merriweather-Bold.ttf` | Merriweather Bold | The Merriweather Project Authors (Sorkin Type) | [SorkinType/Merriweather@4481226](https://github.com/SorkinType/Merriweather/tree/4481226b336843648b5b2ee64f75737f262ded15/fonts/ttf) | OFL-1.1 (`fonts/merriweather/OFL.txt`) |
| `fonts/merriweather/Merriweather-Italic.ttf` | Merriweather Italic | The Merriweather Project Authors (Sorkin Type) | [SorkinType/Merriweather@4481226](https://github.com/SorkinType/Merriweather/tree/4481226b336843648b5b2ee64f75737f262ded15/fonts/ttf) | OFL-1.1 (`fonts/merriweather/OFL.txt`) |
| `fonts/playfair-display/PlayfairDisplay.ttf` | Playfair Display (variable) | The Playfair Display Project Authors (Claus Eggers Sørensen) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/playfairdisplay) | OFL-1.1 (`fonts/playfair-display/OFL.txt`) |
| `fonts/playfair-display/PlayfairDisplay-Italic.ttf` | Playfair Display Italic (variable) | The Playfair Display Project Authors (Claus Eggers Sørensen) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/playfairdisplay) | OFL-1.1 (`fonts/playfair-display/OFL.txt`) |
| `fonts/poppins/Poppins-Regular.ttf` | Poppins Regular | The Poppins Project Authors (Indian Type Foundry) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/poppins) | OFL-1.1 (`fonts/poppins/OFL.txt`) |
| `fonts/poppins/Poppins-Bold.ttf` | Poppins Bold | The Poppins Project Authors (Indian Type Foundry) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/poppins) | OFL-1.1 (`fonts/poppins/OFL.txt`) |
| `fonts/poppins/Poppins-Italic.ttf` | Poppins Italic | The Poppins Project Authors (Indian Type Foundry) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/poppins) | OFL-1.1 (`fonts/poppins/OFL.txt`) |
| `fonts/nunito-sans/NunitoSans.ttf` | Nunito Sans (variable) | The Nunito Sans Project Authors (Fonthausen) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/nunitosans) | OFL-1.1 (`fonts/nunito-sans/OFL.txt`) |
| `fonts/nunito-sans/NunitoSans-Italic.ttf` | Nunito Sans Italic (variable) | The Nunito Sans Project Authors (Fonthausen) | [google/fonts@7085eb8](https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/nunitosans) | OFL-1.1 (`fonts/nunito-sans/OFL.txt`) |
"Inter", "Carlito", "Caladea", "Liberation", "Source", "Montserrat", "Lato", "Open Sans", "Roboto",
"Merriweather", "Playfair Display", "Poppins" and "Nunito Sans" are the authors' names for their
fonts (several are Reserved Font Names under the OFL); we use the files unmodified. Carlito,
Caladea and Liberation are metric-compatible with Calibri, Cambria, Arial, Times New Roman and
Courier New; those names are trademarks of their owners and are used only to describe
compatibility.
The eight **Adobe-authored** Source Sans 3 and Source Serif 4 faces remain in this central catalog
for provenance and reuse, but consumers that must not embed Adobe fonts filter those two families
(8 of the 51 faces, 2,594,420 bytes) and keep the remaining 43. DeckCraft already applies that
filter; FigCraft adds it in its own build. Filtering is a consumer obligation and does not change
the manifest or these pinned hashes.
+44 -7
View File
@@ -22,10 +22,11 @@ This library is meant to have the following:
|---|---|
| `fonts/` | The font files, one directory per family, each with its licence. |
| `fonts/manifest.txt` | Machine-readable list of the default fonts: family, style, file, scripts, licence, SHA-256, pinned source. |
| `fonts/latin-manifest.txt` | Opt-in Latin presentation catalog, same eight-field format: 16 families and 51 faces (about 19.5 MiB). Not in the default `FONTS` or `embed` payload. |
| `fonts/simplified-chinese-manifest.txt` | Opt-in native-only Simplified Chinese row, same eight-field format. Not in `FONTS` or the embed payload. |
| `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/style names, Japanese/Korean/Hebrew/Devanagari/symbol coverage and outlines, static-face metadata and vertical-text (`vert`/`vrt2`) support. |
| `crates/craft-fonts` | Rust: the default and opt-in Latin manifests as static tables, finding a checkout (`CRAFT_FONTS_DIR`), loading them, and `embed` / `embed-latin` features that compile the fonts in. |
| `crates/craft-fonts-tests` | Tests asserted on these fonts: checksums, licences, family/style names, Inter/Latin provenance and faces, Japanese/Korean/Hebrew/Devanagari/symbol coverage and outlines, static-face metadata and vertical-text (`vert`/`vrt2`) support. |
| `docs/integration.md` | How an app uses craft-fonts as a fully optional build input. |
### Fonts
@@ -46,25 +47,61 @@ This library is meant to have the following:
| Noto Sans Devanagari | Regular (static) | Devanagari UI and document text | OFL-1.1 |
| LXGW WenKai Lite | Regular (static) | Native-only opt-in Simplified Chinese fallback (Kai) | OFL-1.1 |
### Latin presentation fonts (`fonts/latin-manifest.txt`, opt-in)
These are not part of the default `FONTS` table or `embed` payload. Apps opt in by reading the
second manifest in their own `build.rs` (see [`docs/integration.md`](docs/integration.md)).
The central catalog is 16 families, 51 faces, about 19.5 MiB (20,417,364 bytes of font files).
"Variable" means one variable-font file (weight axis, some also width or optical size) per
upright/italic.
| Family | Styles | For | Licence |
|---|---|---|---|
| Inter | Regular, Italic, SemiBold, Bold | UI and document text (sans) | OFL-1.1 |
| Carlito | Regular, Bold, Italic, Bold Italic | Metric-compatible with Calibri | OFL-1.1 |
| Caladea | Regular, Bold, Italic, Bold Italic | Metric-compatible with Cambria | OFL-1.1 |
| Liberation Sans | Regular, Bold, Italic, Bold Italic | Metric-compatible with Arial | OFL-1.1 |
| Liberation Serif | Regular, Bold, Italic, Bold Italic | Metric-compatible with Times New Roman | OFL-1.1 |
| Liberation Mono | Regular, Bold, Italic, Bold Italic | Metric-compatible with Courier New | OFL-1.1 |
| Source Sans 3 | Regular, Italic, Semibold, Bold | Presentation text (sans; Adobe-authored, catalog-only for these consumers) | OFL-1.1 |
| Source Serif 4 | Regular, Italic, Semibold, Bold | Presentation text (serif; Adobe-authored, catalog-only for these consumers) | OFL-1.1 |
| Montserrat | Variable, Italic Variable | Headings (geometric sans) | OFL-1.1 |
| Lato | Regular, Bold, Italic | Presentation text (sans) | OFL-1.1 |
| Open Sans | Variable, Italic Variable | Presentation text (sans) | OFL-1.1 |
| Roboto | Variable, Italic Variable | Presentation text (sans) | OFL-1.1 |
| Merriweather | Regular, Bold, Italic | Presentation text (serif) | OFL-1.1 |
| Playfair Display | Variable, Italic Variable | Headings (display serif) | OFL-1.1 |
| Poppins | Regular, Bold, Italic | Headings (geometric sans) | OFL-1.1 |
| Nunito Sans | Variable, Italic Variable | Presentation text (sans) | OFL-1.1 |
The eight Adobe-authored Source Sans 3 / Source Serif 4 faces stay in this central catalog for
provenance and reuse. Native consumers that must not embed Adobe fonts filter those two families,
leaving the 43 permitted Latin faces; DeckCraft already filters them and FigCraft adds the same
family filter in its own build. The catalog and its hashes do not depend on any consumer filter.
## 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. Apps that explicitly opt in may
also read `fonts/simplified-chinese-manifest.txt` on native builds only; it is never part of the
default set or a wasm allowlist. See [`docs/integration.md`](docs/integration.md).
also read `fonts/latin-manifest.txt` (the full Latin catalog, filtered by the consumer) and, on
native builds only, `fonts/simplified-chinese-manifest.txt`. Neither is in the default set; only
the Chinese manifest is native-only and must never enter a wasm allowlist. A consumer that may
not embed Adobe-authored faces filters `Source Sans 3` and `Source Serif 4` from the Latin rows.
See [`docs/integration.md`](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. Put a face that only some native
consumers should embed in the opt-in manifest described in `docs/integration.md`, not in the
default `fonts/manifest.txt`.
a manifest line and an attribution row, and the tests check it. Put a Latin presentation face in
`fonts/latin-manifest.txt` and a face that only some native consumers should embed in
`fonts/simplified-chinese-manifest.txt`; neither belongs in the default `fonts/manifest.txt`.
## Develop
```sh
cargo test --workspace # all font assertions
cargo test -p craft-fonts --features embed # the embedded bytes match the files
cargo test -p craft-fonts --features embed-latin # same, for the opt-in Latin manifest
```
Code is MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`); each font keeps its own licence.
+751 -5
View File
@@ -1,6 +1,6 @@
//! Assertions on the font files themselves.
use craft_fonts::{Entry, FONTS, Font, for_script, parse_manifest};
use craft_fonts::{Entry, FONTS, Font, LATIN_FONTS, for_script, parse_manifest};
use sha2::{Digest, Sha256};
use skrifa::attribute::{Style, Weight};
use skrifa::instance::{LocationRef, Size};
@@ -14,9 +14,14 @@ fn bytes(f: &Font) -> Vec<u8> {
.unwrap_or_else(|e| panic!("{}: {e}", f.file))
}
/// Every font in both the default and opt-in Latin manifests.
fn all() -> impl Iterator<Item = &'static Font> {
FONTS.iter().chain(LATIN_FONTS)
}
#[test]
fn every_file_matches_its_manifest_checksum() {
for f in FONTS {
for f in all() {
let digest = Sha256::digest(bytes(f));
let hex: String = digest.iter().map(|b| format!("{b:02x}")).collect();
assert_eq!(
@@ -29,7 +34,7 @@ fn every_file_matches_its_manifest_checksum() {
#[test]
fn every_font_ships_its_licence() {
for f in FONTS {
for f in all() {
let text = std::fs::read_to_string(craft_fonts_tests::repo_root().join(f.licence_file))
.unwrap_or_else(|e| panic!("{}: {e}", f.licence_file));
if f.licence == "OFL-1.1" {
@@ -44,7 +49,7 @@ fn every_font_ships_its_licence() {
#[test]
fn every_font_is_the_family_the_manifest_says() {
for f in FONTS {
for f in all() {
let data = bytes(f);
let font = FontRef::new(&data).unwrap_or_else(|e| panic!("{}: {e}", f.file));
let names: Vec<String> = [StringId::TYPOGRAPHIC_FAMILY_NAME, StringId::FAMILY_NAME]
@@ -66,9 +71,30 @@ fn every_font_is_the_family_the_manifest_says() {
#[test]
fn every_font_is_the_style_the_manifest_says() {
for f in FONTS {
for f in all() {
let data = bytes(f);
let font = FontRef::new(&data).unwrap_or_else(|e| panic!("{}: {e}", f.file));
// A `Variable` / `Italic Variable` row names the fvar file, not a name-table style.
if f.style.ends_with("Variable") {
let axes: Vec<String> = font.axes().iter().map(|a| a.tag().to_string()).collect();
assert!(
axes.iter().any(|t| t == "wght"),
"{}: style {:?} but axes are {axes:?}",
f.file,
f.style
);
let os2 = font
.os2()
.unwrap_or_else(|e| panic!("{}: OS/2: {e}", f.file));
assert_eq!(
os2.fs_selection().contains(SelectionFlags::ITALIC),
f.style.contains("Italic"),
"{}: style {:?} disagrees with the OS/2 italic bit",
f.file,
f.style
);
continue;
}
let names: Vec<String> = [
StringId::SUBFAMILY_NAME,
StringId::TYPOGRAPHIC_SUBFAMILY_NAME,
@@ -906,3 +932,723 @@ fn bytes_from_entry(e: &Entry) -> Vec<u8> {
std::fs::read(craft_fonts_tests::repo_root().join(&e.file))
.unwrap_or_else(|err| panic!("{}: {err}", e.file))
}
/// The opt-in Latin presentation catalog. FigCraft and DeckCraft read it from their own
/// `build.rs`; consumers that read only `fonts/manifest.txt` must not receive these faces, and it
/// is deliberately not part of the default `FONTS`/`embed` payload.
const LATIN_MANIFEST: &str = "fonts/latin-manifest.txt";
const LATIN_FACE_COUNT: usize = 51;
const LATIN_FAMILY_COUNT: usize = 16;
const INTER_LICENCE_FILE: &str = "fonts/inter/OFL.txt";
const INTER_LICENCE_SHA256: &str =
"262481e844521b326f5ecd053e59b98c8b2da78c8ee1bdbb6e8174305e54935a";
/// The exact reviewed catalog, in manifest order: family, style, file and SHA-256. Every row is a
/// `Latn` OFL-1.1 face and the licence file sits next to the font. The eight Adobe-authored
/// Source Sans 3 / Source Serif 4 faces stay in this central catalog; consumers that must not
/// embed Adobe fonts filter those families themselves.
const LATIN_FACES: &[(&str, &str, &str, &str)] = &[
(
"Inter",
"Regular",
"fonts/inter/Inter-Regular.ttf",
"40d692fce188e4471e2b3cba937be967878f631ad3ebbbdcd587687c7ebe0c82",
),
(
"Inter",
"Italic",
"fonts/inter/Inter-Italic.ttf",
"bbc051dd204b5019a1aa0bc0ae2aa8a05ab13e7a3f979fa357631dc7feb6833a",
),
(
"Inter",
"SemiBold",
"fonts/inter/Inter-SemiBold.ttf",
"78a843fade9d4612a5567302fb595b56976eb5fcebf4fea5a5912d638bafcde3",
),
(
"Inter",
"Bold",
"fonts/inter/Inter-Bold.ttf",
"288316099b1e0a47a4716d159098005eef7c0066921f34e3200393dbdb01947f",
),
(
"Carlito",
"Regular",
"fonts/carlito/Carlito-Regular.ttf",
"f6418f708baede9789daef5d458c0f53d2a888af9820e8062934e504fedc6595",
),
(
"Carlito",
"Bold",
"fonts/carlito/Carlito-Bold.ttf",
"bb5d20f79b82599ec72983597437373a80f2d2085fa91fc144fd74e876a594db",
),
(
"Carlito",
"Italic",
"fonts/carlito/Carlito-Italic.ttf",
"0b019225e58d702bfedcbd35c21696769f8ee115cb6343f84c2f240312450d1c",
),
(
"Carlito",
"Bold Italic",
"fonts/carlito/Carlito-BoldItalic.ttf",
"b32928186c119599e03ca6a1ffc680fdcb7fac95772f4b95d989cf6cd3861517",
),
(
"Caladea",
"Regular",
"fonts/caladea/Caladea-Regular.ttf",
"f1e899278b7b4491aba5b6a8253c4b04c050cc59b21865be5c37559a775153cd",
),
(
"Caladea",
"Bold",
"fonts/caladea/Caladea-Bold.ttf",
"ae3cb2dcbc925809dd29d2a44e9802211cab66be541bacbfc9c08c74b27c3742",
),
(
"Caladea",
"Italic",
"fonts/caladea/Caladea-Italic.ttf",
"4359a8e24f748b6447b1ff6d7a174febe70961d29f8bb8634b56dacd740a3deb",
),
(
"Caladea",
"Bold Italic",
"fonts/caladea/Caladea-BoldItalic.ttf",
"ccabaa7b7e2fdf253d2b1a5fa699dd8a3df8d835a9eb285ad82631a677eb76c0",
),
(
"Liberation Sans",
"Regular",
"fonts/liberation-sans/LiberationSans-Regular.ttf",
"76d04c18ea243f426b7de1f3ad208e927008f961dc5945e5aad352d0dfde8ee8",
),
(
"Liberation Sans",
"Bold",
"fonts/liberation-sans/LiberationSans-Bold.ttf",
"788abee4c806d660e8aee46689dd8540cd4bb98da03dcc9d171ce3efd99a9173",
),
(
"Liberation Sans",
"Italic",
"fonts/liberation-sans/LiberationSans-Italic.ttf",
"e5bae5c4cde31f22142753855f4f8fb86da6ff39955ed3c0a11248b0d16948b0",
),
(
"Liberation Sans",
"Bold Italic",
"fonts/liberation-sans/LiberationSans-BoldItalic.ttf",
"698da70fc191cc5f33ad4d6d3fe830fe4624b898ea2e3169955928b7c491f1ee",
),
(
"Liberation Serif",
"Regular",
"fonts/liberation-serif/LiberationSerif-Regular.ttf",
"058ea80864aef09a23f45cbec2bb5400bc3dfbdea01c3f10538a21fcb497fb74",
),
(
"Liberation Serif",
"Bold",
"fonts/liberation-serif/LiberationSerif-Bold.ttf",
"d754ba427cfe0bca54ae052384baa8f842da5bd6550ad4da024ac441e7a7d5ce",
),
(
"Liberation Serif",
"Italic",
"fonts/liberation-serif/LiberationSerif-Italic.ttf",
"0e3dea9f8d613e006ccfa62201f33e265d19167bd0907725c3e145368b04fc2e",
),
(
"Liberation Serif",
"Bold Italic",
"fonts/liberation-serif/LiberationSerif-BoldItalic.ttf",
"f17db8af71e24d2066b587546021d4f0b296be389512b658dec3c09affeb11a7",
),
(
"Liberation Mono",
"Regular",
"fonts/liberation-mono/LiberationMono-Regular.ttf",
"f2b83c763e8afd21709333370bed4774337fae82267937e2b5aea7e2fbd922c1",
),
(
"Liberation Mono",
"Bold",
"fonts/liberation-mono/LiberationMono-Bold.ttf",
"bd62a0672d0b9b6710b01df434c80ad54fa5f0835207eb7b17b7a761463067bb",
),
(
"Liberation Mono",
"Italic",
"fonts/liberation-mono/LiberationMono-Italic.ttf",
"605c01c711b44480a7508d349dfbf3264e81fa43d69e61cfa7d10b86e764c4d1",
),
(
"Liberation Mono",
"Bold Italic",
"fonts/liberation-mono/LiberationMono-BoldItalic.ttf",
"79451f3c09fe25116098853b7a2ca6e2436220ccc11af022979adbcf195be130",
),
(
"Source Sans 3",
"Regular",
"fonts/source-sans-3/SourceSans3-Regular.ttf",
"4644c81b86ec9caaa76b634889968ed3c4f4f52f054855933acc7c2b21e53b0f",
),
(
"Source Sans 3",
"Italic",
"fonts/source-sans-3/SourceSans3-It.ttf",
"192afd78f0f54a3c69eaf02d43f4d9a821e9d6110e41d3d25d61a7385cd580e4",
),
(
"Source Sans 3",
"Semibold",
"fonts/source-sans-3/SourceSans3-Semibold.ttf",
"a3f4f8dcf343a8f24dc61951de93f3ba1558b15cd250ba24af8a40e957081b7d",
),
(
"Source Sans 3",
"Bold",
"fonts/source-sans-3/SourceSans3-Bold.ttf",
"9214b9d95e4231c609802815c2646c98174e2102d0d37f88978a7f8e71006e6a",
),
(
"Source Serif 4",
"Regular",
"fonts/source-serif-4/SourceSerif4-Regular.ttf",
"e5a4ee6a3d87bb9024796be390c6771e2a0eb1883dae25effaf57ca01668e24b",
),
(
"Source Serif 4",
"Italic",
"fonts/source-serif-4/SourceSerif4-It.ttf",
"9d2950a8f1da66e21502c35d646a1d2148e79f9ea43fd2158cf02f5232e7f430",
),
(
"Source Serif 4",
"Semibold",
"fonts/source-serif-4/SourceSerif4-Semibold.ttf",
"36db62940cb5728b12b1802476dc7fcf4c6c519a7bdd476ba23a4e555fc4655f",
),
(
"Source Serif 4",
"Bold",
"fonts/source-serif-4/SourceSerif4-Bold.ttf",
"7cf4f4e1ad74f45058d5bc61716b82560442fbdcd9d3654d2dea96bf6c683d86",
),
(
"Montserrat",
"Variable",
"fonts/montserrat/Montserrat.ttf",
"0f7b311b2f3279e4eef9b2f968bcdbab6e28f4daeb1f049f4f278a902bcd82f7",
),
(
"Montserrat",
"Italic Variable",
"fonts/montserrat/Montserrat-Italic.ttf",
"51607f316bc020e59f03cbf51543eecffbea501c0b31d73e5b82927c5cca442c",
),
(
"Lato",
"Regular",
"fonts/lato/Lato-Regular.ttf",
"d636e4683231f931eda222d588e944d082bfd3bdba02f928bee461c0f185b251",
),
(
"Lato",
"Bold",
"fonts/lato/Lato-Bold.ttf",
"8a0aace75d33794eece4b28187bfc1df0bbd2888b5d8a56e01788c8d65d16be1",
),
(
"Lato",
"Italic",
"fonts/lato/Lato-Italic.ttf",
"e399c44efe1387100531d26c7e4800c5d12251b890d6654a3098c7c679cb1786",
),
(
"Open Sans",
"Variable",
"fonts/open-sans/OpenSans.ttf",
"36643644f318a812aab2d2ed3bb98f8cf0872527f835fe9398d95fe6b9adb878",
),
(
"Open Sans",
"Italic Variable",
"fonts/open-sans/OpenSans-Italic.ttf",
"fe269381e992f32e135801740998544d6235061e37c93ec067ad2be3edd5b17b",
),
(
"Roboto",
"Variable",
"fonts/roboto/Roboto.ttf",
"d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134",
),
(
"Roboto",
"Italic Variable",
"fonts/roboto/Roboto-Italic.ttf",
"9725a847af6b460ffca162ae66d20dad48b01876137947180b42d7dcd7887182",
),
(
"Merriweather",
"Regular",
"fonts/merriweather/Merriweather-Regular.ttf",
"10ec10d1f7a9b5f0eb1a964e06348ce20587d478c661ea36728cce7b57f3de1c",
),
(
"Merriweather",
"Bold",
"fonts/merriweather/Merriweather-Bold.ttf",
"a2fa4f57946c62036f79d9e8b4b642515001d65af1e6a98afc0b94bf669e3f11",
),
(
"Merriweather",
"Italic",
"fonts/merriweather/Merriweather-Italic.ttf",
"1f73096441117e56bd867a437188e98bcf8ae7dcc7f676980da2ed2b6b51554d",
),
(
"Playfair Display",
"Variable",
"fonts/playfair-display/PlayfairDisplay.ttf",
"c40f2293766a503bc70cce9e512ef844a4ccb7cbcde792fe2ea31d191917d8d6",
),
(
"Playfair Display",
"Italic Variable",
"fonts/playfair-display/PlayfairDisplay-Italic.ttf",
"a5e26dc5e2e77fb2803a0bf02fd4f81ee136ec8dea863ccdb0c59a263b21378b",
),
(
"Poppins",
"Regular",
"fonts/poppins/Poppins-Regular.ttf",
"7e65201e9b79159e2300267cc885e16c8dcef2424cdfa09a29bfb0980a94a7ba",
),
(
"Poppins",
"Bold",
"fonts/poppins/Poppins-Bold.ttf",
"983676516167748b74de6f4771fb384c664fd913acb8b471122ecacf5da5ea6c",
),
(
"Poppins",
"Italic",
"fonts/poppins/Poppins-Italic.ttf",
"4fa76ae75b40f926420514044722cb97f32186cafd3b38263cc34dad7174d46d",
),
(
"Nunito Sans",
"Variable",
"fonts/nunito-sans/NunitoSans.ttf",
"f934d7142fb4784bf828da485b7dcbd90c0c80d514e9d49a5da0ed3a1ae2491d",
),
(
"Nunito Sans",
"Italic Variable",
"fonts/nunito-sans/NunitoSans-Italic.ttf",
"d9d5db18f3c11221a4fbb553cbc709391c1179964c7eaa4466ef43c78aa4492f",
),
];
#[test]
fn latin_opt_in_manifest_holds_the_reviewed_catalog() {
let entries = optional_entries(LATIN_MANIFEST);
assert_eq!(
entries.len(),
LATIN_FACE_COUNT,
"{LATIN_MANIFEST} must list exactly the {LATIN_FACE_COUNT} reviewed Latin faces"
);
assert_eq!(
LATIN_FONTS.len(),
LATIN_FACE_COUNT,
"the static LATIN_FONTS table must match the manifest"
);
for (e, f) in entries.iter().zip(LATIN_FONTS) {
assert_eq!(
(e.family.as_str(), e.style.as_str(), e.file.as_str()),
(f.family, f.style, f.file),
"{LATIN_MANIFEST}: static table order"
);
}
assert_eq!(
LATIN_FACES.len(),
LATIN_FACE_COUNT,
"review inventory must cover every face"
);
for (e, &(family, style, file, sha256)) in entries.iter().zip(LATIN_FACES) {
assert_eq!(e.family, family, "{file}: family");
assert_eq!(e.style.as_str(), style, "{file}: style");
assert_eq!(e.file.as_str(), file, "{family} {style}: file");
assert_eq!(
e.scripts.iter().map(String::as_str).collect::<Vec<_>>(),
["Latn"],
"{file}: scripts"
);
assert_eq!(e.licence, "OFL-1.1", "{file}: licence");
assert_eq!(e.sha256.as_str(), sha256, "{file}: manifest SHA-256");
assert!(
!e.source.is_empty() && e.source.starts_with("https://"),
"{file}: pinned source"
);
assert_eq!(
std::path::Path::new(&e.file).parent(),
std::path::Path::new(&e.licence_file).parent(),
"the licence must sit next to the font it covers"
);
assert!(
FONTS.iter().all(|f| f.file != e.file.as_str()),
"{file}: an opt-in Latin face must not appear in the default FONTS table"
);
}
let mut files: Vec<&str> = entries.iter().map(|e| e.file.as_str()).collect();
files.sort_unstable();
let listed = files.len();
files.dedup();
assert_eq!(files.len(), listed, "{LATIN_MANIFEST}: duplicate file rows");
let mut families: Vec<&str> = entries.iter().map(|e| e.family.as_str()).collect();
families.sort_unstable();
families.dedup();
assert_eq!(
families.len(),
LATIN_FAMILY_COUNT,
"{LATIN_MANIFEST}: families {families:?}"
);
let variable = LATIN_FONTS
.iter()
.filter(|f| f.style.ends_with("Variable"))
.count();
assert_eq!(
variable, 10,
"five families each contribute an upright and an italic variable file"
);
let default =
std::fs::read_to_string(craft_fonts_tests::repo_root().join("fonts/manifest.txt")).unwrap();
assert!(
!default.contains("latin-manifest"),
"the default font manifest must not list the opt-in Latin faces"
);
for e in &entries {
assert!(
!default.contains(e.file.as_str()),
"{}: the default manifest contains a Latin-only file",
e.file
);
}
}
#[test]
fn latin_inter_files_and_their_upstream_licence_match_their_hashes() {
let entries: Vec<Entry> = optional_entries(LATIN_MANIFEST)
.into_iter()
.filter(|e| e.family == "Inter")
.collect();
assert_eq!(entries.len(), 4, "{LATIN_MANIFEST}: Inter faces");
for e in &entries {
assert_eq!(e.licence, "OFL-1.1", "{}: licence", e.file);
assert_eq!(
e.licence_file, INTER_LICENCE_FILE,
"{}: licence file",
e.file
);
let data = bytes_from_entry(e);
let digest = Sha256::digest(&data);
let hex: String = digest.iter().map(|b| format!("{b:02x}")).collect();
assert_eq!(
hex, e.sha256,
"{}: the file changed; update the opt-in manifest only after checking the pinned upstream source",
e.file
);
}
let licence = std::fs::read(craft_fonts_tests::repo_root().join(INTER_LICENCE_FILE))
.unwrap_or_else(|e| panic!("{INTER_LICENCE_FILE}: {e}"));
assert_eq!(licence.len(), 4_380, "{INTER_LICENCE_FILE}: size");
let digest = Sha256::digest(&licence);
let hex: String = digest.iter().map(|b| format!("{b:02x}")).collect();
assert_eq!(hex, INTER_LICENCE_SHA256, "{INTER_LICENCE_FILE}: SHA-256");
let text = String::from_utf8_lossy(&licence);
assert!(
text.contains("Copyright (c) 2016 The Inter Project Authors"),
"{INTER_LICENCE_FILE}: the upstream Inter copyright notice is missing"
);
assert!(
text.contains("SIL OPEN FONT LICENSE Version 1.1"),
"{INTER_LICENCE_FILE} is not the OFL 1.1 text"
);
}
#[test]
fn latin_inter_faces_are_the_static_styles_and_glyphs_the_manifest_claims() {
const SAMPLE: &str = "Inter FigCraft ÀÉÎÕÜ çñ œŒ “quotes” – — … • €";
let entries: Vec<Entry> = optional_entries(LATIN_MANIFEST)
.into_iter()
.filter(|e| e.family == "Inter")
.collect();
assert_eq!(entries.len(), 4, "{LATIN_MANIFEST}: Inter faces");
for e in &entries {
let data = bytes_from_entry(e);
assert_eq!(
&data[..4],
&[0x00, 0x01, 0x00, 0x00],
"{}: expected a single TrueType sfnt, not a collection",
e.file
);
let font = FontRef::new(&data).unwrap_or_else(|err| panic!("{}: {err}", e.file));
let families: Vec<String> = [StringId::TYPOGRAPHIC_FAMILY_NAME, StringId::FAMILY_NAME]
.into_iter()
.flat_map(|id| {
font.localized_strings(id)
.map(|s| s.to_string())
.collect::<Vec<_>>()
})
.collect();
assert!(
families.iter().any(|n| n.as_str() == e.family),
"{}: name table has {families:?}, manifest says {:?}",
e.file,
e.family
);
let styles: Vec<String> = [
StringId::SUBFAMILY_NAME,
StringId::TYPOGRAPHIC_SUBFAMILY_NAME,
]
.into_iter()
.flat_map(|id| {
font.localized_strings(id)
.map(|s| s.to_string())
.collect::<Vec<_>>()
})
.collect();
assert!(
styles.iter().any(|n| n.as_str() == e.style),
"{}: name table styles are {styles:?}, manifest says {:?}",
e.file,
e.style
);
assert!(
font.axes().is_empty(),
"{}: the reviewed Inter faces are static, not variable",
e.file
);
let expected_weight = match e.style.as_str() {
"Regular" | "Italic" => 400,
"SemiBold" => 600,
"Bold" => 700,
other => panic!("{}: unexpected Inter style {other:?}", e.file),
};
let os2 = font
.os2()
.unwrap_or_else(|err| panic!("{}: OS/2: {err}", e.file));
assert_eq!(
os2.us_weight_class(),
expected_weight,
"{}: OS/2 weight",
e.file
);
let selection = os2.fs_selection();
assert_eq!(
selection.contains(SelectionFlags::ITALIC),
e.style == "Italic",
"{}: style {:?} disagrees with the OS/2 italic bit",
e.file,
e.style
);
for c in SAMPLE.chars().filter(|c| !c.is_whitespace()) {
assert_glyph_outline(&font, &e.file, c);
}
}
}
/// Text every Latin presentation font must cover: ASCII, Western European accents and the
/// typographic punctuation document and slide text uses.
const LATIN: &str = concat!(
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿŒœŸ",
"‘’“”–—…•€£¥©®™°±×÷",
);
#[test]
fn latin_fonts_cover_western_european_text() {
assert_eq!(LATIN_FONTS.len(), LATIN_FACE_COUNT);
for f in LATIN_FONTS {
assert_eq!(
f.scripts,
["Latn"],
"{}: the Latin catalog is for Latn fonts",
f.file
);
let data = bytes(f);
let font = FontRef::new(&data).unwrap_or_else(|e| panic!("{}: {e}", f.file));
let charmap = font.charmap();
let missing: String = LATIN
.chars()
.filter(|c| charmap.map(*c).is_none())
.collect();
assert!(
missing.is_empty(),
"{} {} has no glyph for {missing:?}",
f.family,
f.style
);
}
}
#[test]
fn latin_glyphs_have_outlines() {
for f in LATIN_FONTS {
let data = bytes(f);
let font = FontRef::new(&data).unwrap_or_else(|e| panic!("{}: {e}", f.file));
for c in ['A', 'g', 'é', '€', 'Œ', '—'] {
assert_glyph_outline(&font, f.file, c);
}
}
}
#[test]
fn latin_variable_styles_are_variable_fonts() {
// A style named "... Variable" must be a variable font with a real weight range; any other
// style must be a static instance, so apps can trust the style field.
for f in LATIN_FONTS {
let data = bytes(f);
let font = FontRef::new(&data).unwrap_or_else(|e| panic!("{}: {e}", f.file));
let axes = font.axes();
let tags: Vec<String> = axes.iter().map(|a| a.tag().to_string()).collect();
if f.style.ends_with("Variable") {
let weight = axes
.iter()
.find(|a| a.tag() == "wght")
.unwrap_or_else(|| panic!("{}: style {:?} but axes {tags:?}", f.file, f.style));
assert!(
weight.min_value() < weight.max_value(),
"{}: wght axis {:?}..{:?} is not a range",
f.file,
weight.min_value(),
weight.max_value()
);
assert!(
weight.min_value() <= 400.0 && 400.0 <= weight.max_value(),
"{}: wght axis {:?}..{:?} does not include Regular 400",
f.file,
weight.min_value(),
weight.max_value()
);
} else {
assert!(
axes.is_empty(),
"{}: style {:?} but it is variable ({tags:?})",
f.file,
f.style
);
}
let os2 = font
.os2()
.unwrap_or_else(|e| panic!("{}: OS/2: {e}", f.file));
assert_eq!(
os2.fs_selection().contains(SelectionFlags::ITALIC),
f.style.contains("Italic"),
"{}: style {:?} disagrees with the OS/2 italic bit",
f.file,
f.style
);
}
}
/// Preserve every complete upstream copyright/licence text, not only the generic OFL terms.
#[test]
fn all_latin_licences_match_the_reviewed_upstream_catalog() {
// Hashes of the unchanged 76ba5a0496503c0e2841abd626295038cbe07cde licence blobs.
let expected = [
(
"fonts/caladea/OFL.txt",
"ccdab61d371d8c8683a128a92cd7d498dbdb1d37689f7cb21f1bf6b16658d213",
),
(
"fonts/carlito/OFL.txt",
"58402f82a7c332a700294988fe7554fbb0a63a8d27ccc1ee3bbc640311990a00",
),
(
"fonts/inter/OFL.txt",
"262481e844521b326f5ecd053e59b98c8b2da78c8ee1bdbb6e8174305e54935a",
),
(
"fonts/lato/OFL.txt",
"74ba064d03f1f1c4a952da936c3eb71866c34404916734de3cae73b34357e59e",
),
(
"fonts/liberation-mono/OFL.txt",
"93fed46019c38bbe566b479d22148e2e8a1e85ada614accb0211c37b2c61c19b",
),
(
"fonts/liberation-sans/OFL.txt",
"93fed46019c38bbe566b479d22148e2e8a1e85ada614accb0211c37b2c61c19b",
),
(
"fonts/liberation-serif/OFL.txt",
"93fed46019c38bbe566b479d22148e2e8a1e85ada614accb0211c37b2c61c19b",
),
(
"fonts/merriweather/OFL.txt",
"a7ba785ad99b6eae0444ab89910e512d4af9865937fddbcb5c72c4f59f55d6ad",
),
(
"fonts/montserrat/OFL.txt",
"8b7141c03fa4f8d44e6345d5d4931709290f0f67875e452e95ac1fd3a027802e",
),
(
"fonts/nunito-sans/OFL.txt",
"efbb0c9e864cef973982d9a17567e6be5c3d1759695574586f3f18c7ecca064b",
),
(
"fonts/open-sans/OFL.txt",
"fbbbcfef55318de350562559b671360de6d597112ecc5c73881b05092db89602",
),
(
"fonts/playfair-display/OFL.txt",
"566be814f8e96e93dfa16101331557eb6b5467e9e03f627c0910fe93ca12300e",
),
(
"fonts/poppins/OFL.txt",
"6be04893d770899a015649c7aa3b582f871b272f8747a92b78b17c3e5c8b2573",
),
(
"fonts/roboto/OFL.txt",
"061402327a96aadb0bfb694a960ed289ecd38d383e396243831ab81feb109c41",
),
(
"fonts/source-sans-3/OFL.txt",
"89ad2c4f66dd29127527493e729c31e731f111cf10faf5774c3db9275ed0c22c",
),
(
"fonts/source-serif-4/OFL.txt",
"75784a295293a8992f5a8d99210566e0064a012e6dab6731305e3787f15896c7",
),
];
let actual: std::collections::BTreeSet<_> =
LATIN_FONTS.iter().map(|font| font.licence_file).collect();
assert_eq!(
actual.len(),
expected.len(),
"every Latin family needs a reviewed licence"
);
for (path, hash) in expected {
assert!(actual.contains(path), "missing licence {path}");
let data = std::fs::read(craft_fonts_tests::repo_root().join(path)).unwrap();
let digest = Sha256::digest(&data);
let hex: String = digest.iter().map(|b| format!("{b:02x}")).collect();
assert_eq!(hex, hash, "{path}: complete upstream licence changed");
}
}
+3 -1
View File
@@ -9,8 +9,10 @@ rust-version.workspace = true
publish = false
[features]
# Compile every font in the manifest into the binary (about 43.8 MiB).
# Compile every font in fonts/manifest.txt into the binary (about 43.8 MiB).
embed = []
# Compile every font in fonts/latin-manifest.txt into the binary (about 19.5 MiB).
embed-latin = []
[lints]
workspace = true
+39 -13
View File
@@ -1,24 +1,51 @@
//! Turns `fonts/manifest.txt` into a static table (and, with the `embed` feature, the font bytes).
//! Turns `fonts/manifest.txt` and `fonts/latin-manifest.txt` into static tables (and, with the
//! `embed` / `embed-latin` features, the font bytes).
#[path = "src/parse.rs"]
#[allow(dead_code)]
mod parse;
use std::fmt::Write as _;
use std::path::PathBuf;
use std::path::{Path, PathBuf};
fn main() {
let manifest_dir = PathBuf::from(std::env::var_os("CARGO_MANIFEST_DIR").unwrap_or_default());
let root = manifest_dir.join("../..");
let manifest = root.join("fonts/manifest.txt");
let mut src = String::new();
table(
&root,
"fonts/manifest.txt",
"FONTS",
"EMBEDDED",
std::env::var_os("CARGO_FEATURE_EMBED").is_some(),
&mut src,
);
table(
&root,
"fonts/latin-manifest.txt",
"LATIN_FONTS",
"LATIN_EMBEDDED",
std::env::var_os("CARGO_FEATURE_EMBED_LATIN").is_some(),
&mut src,
);
let out = PathBuf::from(std::env::var_os("OUT_DIR").unwrap_or_default()).join("manifest.rs");
if let Err(e) = std::fs::write(&out, src) {
fail(&format!("writing {}: {e}", out.display()));
}
}
/// Append `pub static <name>: &[Font]` for the manifest at `rel`, and with `embed` the bytes as
/// `static <embedded>: &[&[u8]]`.
fn table(root: &Path, rel: &str, name: &str, embedded: &str, embed: bool, src: &mut String) {
let manifest = root.join(rel);
println!("cargo::rerun-if-changed={}", manifest.display());
let text = std::fs::read_to_string(&manifest)
.unwrap_or_else(|e| fail(&format!("reading {}: {e}", manifest.display())));
let entries = parse::parse_manifest(&text).unwrap_or_else(|e| fail(&e.to_string()));
let embed = std::env::var_os("CARGO_FEATURE_EMBED").is_some();
let entries = parse::parse_manifest(&text).unwrap_or_else(|e| fail(&format!("{rel}: {e}")));
let mut src = String::from(
"/// Every font in `fonts/manifest.txt`, in manifest order.\npub static FONTS: &[Font] = &[\n",
let _ = writeln!(
src,
"/// Every font in `{rel}`, in manifest order.\npub static {name}: &[Font] = &["
);
for e in &entries {
let scripts: Vec<String> = e.scripts.iter().map(|s| format!("{s:?}")).collect();
@@ -37,13 +64,16 @@ fn main() {
}
src.push_str("];\n");
if embed {
src.push_str("/// The bytes of each font in [`FONTS`], same order.\nstatic EMBEDDED: &[&[u8]] = &[\n");
let _ = writeln!(
src,
"/// The bytes of each font in [`{name}`], same order.\nstatic {embedded}: &[&[u8]] = &["
);
for e in &entries {
let path = root.join(&e.file);
println!("cargo::rerun-if-changed={}", path.display());
if !path.is_file() {
fail(&format!(
"{} is listed in the manifest but missing",
"{} is listed in {rel} but missing",
path.display()
));
}
@@ -51,10 +81,6 @@ fn main() {
}
src.push_str("];\n");
}
let out = PathBuf::from(std::env::var_os("OUT_DIR").unwrap_or_default()).join("manifest.rs");
if let Err(e) = std::fs::write(&out, src) {
fail(&format!("writing {}: {e}", out.display()));
}
}
/// Build scripts report errors by failing; this keeps the message readable.
+78 -24
View File
@@ -1,11 +1,13 @@
//! The Crafting Apps' shared font assets.
//!
//! The fonts live in this repository's `fonts/` directory and are listed in `fonts/manifest.txt`.
//! This crate exposes that manifest ([`FONTS`]), finds a craft-fonts checkout at run time
//! ([`dir_from_env`]), loads fonts from one ([`load`]), and with the `embed` feature compiles them
//! into the binary ([`embedded`]). `fonts/simplified-chinese-manifest.txt` is a separate opt-in
//! native-only manifest; it is not part of [`FONTS`] or the `embed` payload, and consumers or
//! tests parse it with [`parse_manifest`].
//! The fonts live in this repository's `fonts/` directory and are listed in two manifests with
//! the same format: `fonts/manifest.txt` (the fonts every app embeds) and
//! `fonts/latin-manifest.txt` (opt-in Latin presentation fonts). This crate exposes them
//! ([`FONTS`], [`LATIN_FONTS`]), finds a craft-fonts checkout at run time ([`dir_from_env`]), loads
//! fonts from one ([`load`], [`load_latin`]), and with the `embed` / `embed-latin` features
//! compiles them into the binary ([`embedded`]). `fonts/simplified-chinese-manifest.txt` is a
//! separate opt-in native-only manifest; it is not part of [`FONTS`], [`LATIN_FONTS`] or either
//! embed payload, and consumers or tests parse it with [`parse_manifest`].
//!
//! The apps do **not** depend on this crate: Cargo resolves even optional git dependencies, so a
//! dependency would make craft-fonts required for every build. Apps read `fonts/manifest.txt`
@@ -27,7 +29,7 @@ use std::path::{Path, PathBuf};
pub use parse::{Entry, ManifestError, parse_manifest};
/// One font file from `fonts/manifest.txt`, known at compile time.
/// One font file from `fonts/manifest.txt` or `fonts/latin-manifest.txt`, known at compile time.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Font {
/// Family name, as the font's own `name` table spells it.
@@ -50,18 +52,30 @@ pub struct Font {
include!(concat!(env!("OUT_DIR"), "/manifest.rs"));
/// The fonts meant for an ISO 15924 script (e.g. `"Jpan"`), in manifest order.
/// The main manifest, relative to a checkout.
pub const MANIFEST: &str = "fonts/manifest.txt";
/// The opt-in Latin presentation-font manifest (same format), relative to a checkout.
pub const LATIN_MANIFEST: &str = "fonts/latin-manifest.txt";
/// The fonts in [`FONTS`] meant for an ISO 15924 script (e.g. `"Jpan"`), in manifest order.
pub fn for_script(script: &str) -> impl Iterator<Item = &'static Font> + '_ {
FONTS.iter().filter(move |f| f.scripts.contains(&script))
}
/// The compiled-in bytes of a font from [`FONTS`] (`embed` feature). `None` for any other value.
#[cfg(feature = "embed")]
/// The compiled-in bytes of a font from [`FONTS`] (`embed` feature) or [`LATIN_FONTS`]
/// (`embed-latin` feature). `None` for any other value, or when its feature is off.
#[cfg(any(feature = "embed", feature = "embed-latin"))]
pub fn embedded(font: &Font) -> Option<&'static [u8]> {
FONTS
.iter()
.position(|f| f == font)
.and_then(|i| EMBEDDED.get(i).copied())
#[cfg(feature = "embed")]
if let Some(i) = FONTS.iter().position(|f| f == font) {
return EMBEDDED.get(i).copied();
}
#[cfg(feature = "embed-latin")]
if let Some(i) = LATIN_FONTS.iter().position(|f| f == font) {
return LATIN_EMBEDDED.get(i).copied();
}
None
}
/// The environment variable (and build option) naming a craft-fonts checkout.
@@ -70,7 +84,7 @@ pub const DIR_ENV: &str = "CRAFT_FONTS_DIR";
/// The craft-fonts checkout named by `CRAFT_FONTS_DIR`, if it is set and holds a manifest.
pub fn dir_from_env() -> Option<PathBuf> {
let dir = PathBuf::from(std::env::var_os(DIR_ENV)?);
dir.join("fonts/manifest.txt").is_file().then_some(dir)
dir.join(MANIFEST).is_file().then_some(dir)
}
/// Why fonts could not be loaded from a checkout.
@@ -96,9 +110,19 @@ impl std::fmt::Display for LoadError {
impl std::error::Error for LoadError {}
/// Read the manifest of the checkout at `dir` and every font it lists, in manifest order.
/// Read the main manifest of the checkout at `dir` and every font it lists, in manifest order.
pub fn load(dir: &Path) -> Result<Vec<(Entry, Vec<u8>)>, LoadError> {
let manifest = dir.join("fonts/manifest.txt");
load_manifest(dir, MANIFEST)
}
/// Read the Latin presentation-font manifest of the checkout at `dir` and every font it lists.
pub fn load_latin(dir: &Path) -> Result<Vec<(Entry, Vec<u8>)>, LoadError> {
load_manifest(dir, LATIN_MANIFEST)
}
/// Read the manifest at `rel` (e.g. [`MANIFEST`]) in the checkout at `dir` and every font it lists.
pub fn load_manifest(dir: &Path, rel: &str) -> Result<Vec<(Entry, Vec<u8>)>, LoadError> {
let manifest = dir.join(rel);
let text = std::fs::read_to_string(&manifest).map_err(|error| LoadError::Io {
path: manifest,
error,
@@ -119,21 +143,39 @@ pub fn load(dir: &Path) -> Result<Vec<(Entry, Vec<u8>)>, LoadError> {
mod tests {
use super::*;
#[test]
fn the_manifest_parses_into_the_static_table() {
fn assert_table_matches(rel: &str, table: &[Font]) {
let root = Path::new(env!("CARGO_MANIFEST_DIR")).join("../..");
let text = std::fs::read_to_string(root.join("fonts/manifest.txt")).unwrap();
let text = std::fs::read_to_string(root.join(rel)).unwrap();
let entries = parse_manifest(&text).unwrap();
assert_eq!(entries.len(), FONTS.len());
for (e, f) in entries.iter().zip(FONTS) {
assert_eq!(entries.len(), table.len(), "{rel}");
for (e, f) in entries.iter().zip(table) {
assert_eq!(
(e.family.as_str(), e.style.as_str(), e.file.as_str()),
(f.family, f.style, f.file)
);
}
}
#[test]
fn the_manifest_parses_into_the_static_table() {
assert_table_matches(MANIFEST, FONTS);
assert!(for_script("Jpan").count() >= 1);
}
#[test]
fn the_latin_manifest_parses_into_its_own_table() {
assert_table_matches(LATIN_MANIFEST, LATIN_FONTS);
assert!(!LATIN_FONTS.is_empty());
// The two manifests are disjoint: apps that read only the main one must not change.
for f in LATIN_FONTS {
assert!(
FONTS.iter().all(|g| g.file != f.file),
"{} is in both manifests",
f.file
);
}
}
#[test]
fn malformed_lines_are_errors_not_panics() {
assert_eq!(
@@ -161,13 +203,25 @@ mod tests {
load(Path::new("/nonexistent/craft-fonts")),
Err(LoadError::Io { .. })
));
assert!(matches!(
load_latin(Path::new("/nonexistent/craft-fonts")),
Err(LoadError::Io { .. })
));
}
#[cfg(feature = "embed")]
#[cfg(any(feature = "embed", feature = "embed-latin"))]
#[test]
fn embedded_bytes_match_the_files() {
let root = Path::new(env!("CARGO_MANIFEST_DIR")).join("../..");
for f in FONTS {
#[cfg(feature = "embed")]
let main = FONTS;
#[cfg(not(feature = "embed"))]
let main: &[Font] = &[];
#[cfg(feature = "embed-latin")]
let latin = LATIN_FONTS;
#[cfg(not(feature = "embed-latin"))]
let latin: &[Font] = &[];
for f in main.iter().chain(latin) {
assert_eq!(
embedded(f).unwrap(),
std::fs::read(root.join(f.file)).unwrap().as_slice(),
+3 -3
View File
@@ -1,7 +1,7 @@
//! The `fonts/manifest.txt` format, shared by `build.rs` and the library (`#[path]`-included by
//! both, so it has no dependencies). The same parser reads the opt-in
//! `fonts/simplified-chinese-manifest.txt`. Apps that read a manifest from their own `build.rs`
//! can copy this file.
//! both, so it has no dependencies). The same parser reads the opt-in `fonts/latin-manifest.txt`
//! and `fonts/simplified-chinese-manifest.txt`. Apps that read a manifest from their own
//! `build.rs` can copy this file.
/// One line of the manifest.
#[derive(Clone, Debug, PartialEq, Eq)]
+62 -6
View File
@@ -130,6 +130,60 @@ include!(concat!(env!("OUT_DIR"), "/craft_fonts.rs"));
`CRAFT_FONTS` is always defined, so there is no `cfg` to thread through: an empty slice means the
app was built without craft-fonts. Code that uses it must work when it is empty.
## Optional: the Latin presentation fonts (`fonts/latin-manifest.txt`)
`fonts/latin-manifest.txt` is a **second, opt-in manifest** in exactly the same format as
`fonts/manifest.txt` (same 8 fields, same parser in `crates/craft-fonts/src/parse.rs`). It lists
the Latin presentation catalog: Inter, the metric-compatible Office substitutes (Carlito for
Calibri, Caladea for Cambria, Liberation Sans / Serif / Mono for Arial / Times New Roman /
Courier New), Source Sans 3, Source Serif 4, Montserrat, Lato, Open Sans, Roboto, Merriweather,
Playfair Display, Poppins and Nunito Sans. The central catalog is **16 families, 51 faces, about
19.5 MiB** (20,417,364 bytes of font files). The fonts are listed in `README.md` and
`ATTRIBUTION.md`.
The recipe above reads only `fonts/manifest.txt`, so **apps that don't opt in are unchanged**. An
app that wants these fonts reads the second manifest too, in addition to the first. Generalise
`craft_fonts` to take the manifest path and its web allowlist, and call it once per manifest:
```rust
/// Manifests this app embeds, each with the (family, style) pairs its wasm32 build keeps.
const MANIFESTS: &[(&str, &[(&str, &str)])] = &[
("fonts/manifest.txt", &[("BIZ UDPGothic", "Regular")]),
// Opt in to the Latin catalog; on the web keep only Inter Regular + Bold.
("fonts/latin-manifest.txt", &[("Inter", "Regular"), ("Inter", "Bold")]),
];
// In main(), match on this instead of on craft_fonts(&dir) (same Ok/Err handling):
// MANIFESTS.iter().map(|(rel, web)| craft_fonts(&dir, rel, web)).collect::<Result<String, String>>()
// and in craft_fonts(dir, rel, web): read dir.join(rel) instead of "fonts/manifest.txt",
// and use `web` instead of WEB_FONTS.
```
- **Consumer filter (required for some apps).** Eight faces are Adobe-authored: Source Sans 3
(4) and Source Serif 4 (4), 2,594,420 bytes. They remain in the central catalog and are valid
OFL-1.1 assets, but a consumer that must not embed Adobe-authored faces skips those two
families, leaving **43** permitted Latin faces. DeckCraft already excludes them; FigCraft adds
the same family filter in its own `build.rs`. The main manifest is unaffected.
- **Styles.** Most families are static files (`Regular`, `Bold`, `Italic`, `Bold Italic`,
`SemiBold` / `Semibold` as each family names it). Montserrat, Open Sans, Roboto, Playfair
Display and Nunito Sans are variable fonts, one file per upright/italic, listed with style
`Variable` or `Italic Variable`: register them once and select weights through the `wght` axis
(set it explicitly, e.g. 400 / 700: a variable font's default instance isn't always Regular).
The tests check that exactly these styles have a `wght` axis with a real range containing 400.
- **Scripts.** Every line is tagged `Latn` (many also cover Greek and Cyrillic, but nothing
asserts that, so don't rely on it).
- **Office documents.** When a document asks for Calibri, Cambria, Arial, Times New Roman or
Courier New and the system doesn't have it, substitute Carlito, Caladea, Liberation Sans,
Liberation Serif or Liberation Mono: same advance widths, so line breaks and text boxes match.
- **Web (wasm32).** Embed only **Inter Regular and Inter Bold** (~0.8 MB) from this manifest, as
in the allowlist above; the full catalog would push a web build past typical per-file hosting
limits together with the main manifest's fonts.
- **Licences.** All are OFL-1.1 and each family directory has its `OFL.txt`, so the packaging rule
below (copy `fonts/*/OFL.txt` for each embedded font) covers them unchanged.
- From Rust tools that can depend on this repo, the same table is `craft_fonts::LATIN_FONTS`
(`load_latin`, feature `embed-latin`). The default `FONTS` table and `embed` feature remain
exactly `fonts/manifest.txt`.
## Optional native-only manifest
`fonts/simplified-chinese-manifest.txt` uses the same eight-field format and parser, but it is a
@@ -144,9 +198,10 @@ separate opt-in input. Read it only for non-wasm builds, after the main manifest
manifest. An optional-manifest error must never discard the main fonts.
- **Required mode still needs a directory.** `CRAFT_FONTS_REQUIRED=1` with no `CRAFT_FONTS_DIR`
is a build error, as in the recipe above.
- **Not in `FONTS`/embed.** `craft-fonts`' static table and `embed` feature cover only
`fonts/manifest.txt`; the optional row does not appear there. Apps supply their own static
initializer from the parsed optional file.
- **Not in `FONTS`/embed.** `craft-fonts`' default `FONTS` table and `embed` feature cover
only `fonts/manifest.txt`; the optional row appears in neither that table nor
`LATIN_FONTS`/`embed-latin`. Apps supply their own static initializer from the parsed
optional file.
- **Native fallback order.** Append `LXGW WenKai Lite` / `Regular` after the existing native
families, so it fills characters they lack without taking precedence over BIZ for characters
BIZ already covers. It is a per-character fallback, not a promise of uniform Chinese
@@ -227,9 +282,10 @@ craft-fonts' `ATTRIBUTION.md`.
## Adding a font
1. Put the file and its licence under `fonts/<family>/`, from a pinned upstream commit.
2. Add a manifest line (with its SHA-256) and an `ATTRIBUTION.md` row. A face that only some
native consumers should embed belongs in `fonts/simplified-chinese-manifest.txt`, not the
default `fonts/manifest.txt`.
2. Add a manifest line (with its SHA-256) and an `ATTRIBUTION.md` row. A Latin presentation face
belongs in `fonts/latin-manifest.txt`; a face that only some native consumers should embed
belongs in `fonts/simplified-chinese-manifest.txt`; neither belongs in the default
`fonts/manifest.txt`.
3. `cargo test --workspace`: `craft-fonts-tests` checks the checksum, licence, family and style
names, and, for Japanese fonts, coverage and vertical-text support. Add exact ISO 15924
script assertions for any new face. Coverage tests may claim only glyphs the face really
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2012 The Caladea Project Authors (https://github.com/huertatipografica/Caladea)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+94
View File
@@ -0,0 +1,94 @@
Copyright 2013 The Carlito Project Authors (https://github.com/googlefonts/carlito), with Reserved Font Name "Carlito"
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+92
View File
@@ -0,0 +1,92 @@
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION AND CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
+58
View File
@@ -0,0 +1,58 @@
# Latin presentation fonts for the Crafting Apps (opt-in). Same format as fonts/manifest.txt:
# family | style | file (relative to the repo root) | scripts (ISO 15924, comma-separated) | licence | licence file | sha256 | source
# Lines starting with '#' and blank lines are ignored. Apps that read only fonts/manifest.txt do
# NOT get these fonts; an app opts in by also reading this file from its build.rs (see
# docs/integration.md). Style "Variable" / "Italic Variable" marks a variable font file (it covers
# the weight axis, and some also width/optical size). A source ending in "#path" names the member
# of the pinned release archive.
Inter | Regular | fonts/inter/Inter-Regular.ttf | Latn | OFL-1.1 | fonts/inter/OFL.txt | 40d692fce188e4471e2b3cba937be967878f631ad3ebbbdcd587687c7ebe0c82 | https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip#extras/ttf/Inter-Regular.ttf
Inter | Italic | fonts/inter/Inter-Italic.ttf | Latn | OFL-1.1 | fonts/inter/OFL.txt | bbc051dd204b5019a1aa0bc0ae2aa8a05ab13e7a3f979fa357631dc7feb6833a | https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip#extras/ttf/Inter-Italic.ttf
Inter | SemiBold | fonts/inter/Inter-SemiBold.ttf | Latn | OFL-1.1 | fonts/inter/OFL.txt | 78a843fade9d4612a5567302fb595b56976eb5fcebf4fea5a5912d638bafcde3 | https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip#extras/ttf/Inter-SemiBold.ttf
Inter | Bold | fonts/inter/Inter-Bold.ttf | Latn | OFL-1.1 | fonts/inter/OFL.txt | 288316099b1e0a47a4716d159098005eef7c0066921f34e3200393dbdb01947f | https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip#extras/ttf/Inter-Bold.ttf
Carlito | Regular | fonts/carlito/Carlito-Regular.ttf | Latn | OFL-1.1 | fonts/carlito/OFL.txt | f6418f708baede9789daef5d458c0f53d2a888af9820e8062934e504fedc6595 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito
Carlito | Bold | fonts/carlito/Carlito-Bold.ttf | Latn | OFL-1.1 | fonts/carlito/OFL.txt | bb5d20f79b82599ec72983597437373a80f2d2085fa91fc144fd74e876a594db | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito
Carlito | Italic | fonts/carlito/Carlito-Italic.ttf | Latn | OFL-1.1 | fonts/carlito/OFL.txt | 0b019225e58d702bfedcbd35c21696769f8ee115cb6343f84c2f240312450d1c | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito
Carlito | Bold Italic | fonts/carlito/Carlito-BoldItalic.ttf | Latn | OFL-1.1 | fonts/carlito/OFL.txt | b32928186c119599e03ca6a1ffc680fdcb7fac95772f4b95d989cf6cd3861517 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/carlito
Caladea | Regular | fonts/caladea/Caladea-Regular.ttf | Latn | OFL-1.1 | fonts/caladea/OFL.txt | f1e899278b7b4491aba5b6a8253c4b04c050cc59b21865be5c37559a775153cd | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea
Caladea | Bold | fonts/caladea/Caladea-Bold.ttf | Latn | OFL-1.1 | fonts/caladea/OFL.txt | ae3cb2dcbc925809dd29d2a44e9802211cab66be541bacbfc9c08c74b27c3742 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea
Caladea | Italic | fonts/caladea/Caladea-Italic.ttf | Latn | OFL-1.1 | fonts/caladea/OFL.txt | 4359a8e24f748b6447b1ff6d7a174febe70961d29f8bb8634b56dacd740a3deb | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea
Caladea | Bold Italic | fonts/caladea/Caladea-BoldItalic.ttf | Latn | OFL-1.1 | fonts/caladea/OFL.txt | ccabaa7b7e2fdf253d2b1a5fa699dd8a3df8d835a9eb285ad82631a677eb76c0 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/caladea
Liberation Sans | Regular | fonts/liberation-sans/LiberationSans-Regular.ttf | Latn | OFL-1.1 | fonts/liberation-sans/OFL.txt | 76d04c18ea243f426b7de1f3ad208e927008f961dc5945e5aad352d0dfde8ee8 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSans-Regular.ttf
Liberation Sans | Bold | fonts/liberation-sans/LiberationSans-Bold.ttf | Latn | OFL-1.1 | fonts/liberation-sans/OFL.txt | 788abee4c806d660e8aee46689dd8540cd4bb98da03dcc9d171ce3efd99a9173 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSans-Bold.ttf
Liberation Sans | Italic | fonts/liberation-sans/LiberationSans-Italic.ttf | Latn | OFL-1.1 | fonts/liberation-sans/OFL.txt | e5bae5c4cde31f22142753855f4f8fb86da6ff39955ed3c0a11248b0d16948b0 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSans-Italic.ttf
Liberation Sans | Bold Italic | fonts/liberation-sans/LiberationSans-BoldItalic.ttf | Latn | OFL-1.1 | fonts/liberation-sans/OFL.txt | 698da70fc191cc5f33ad4d6d3fe830fe4624b898ea2e3169955928b7c491f1ee | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSans-BoldItalic.ttf
Liberation Serif | Regular | fonts/liberation-serif/LiberationSerif-Regular.ttf | Latn | OFL-1.1 | fonts/liberation-serif/OFL.txt | 058ea80864aef09a23f45cbec2bb5400bc3dfbdea01c3f10538a21fcb497fb74 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSerif-Regular.ttf
Liberation Serif | Bold | fonts/liberation-serif/LiberationSerif-Bold.ttf | Latn | OFL-1.1 | fonts/liberation-serif/OFL.txt | d754ba427cfe0bca54ae052384baa8f842da5bd6550ad4da024ac441e7a7d5ce | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSerif-Bold.ttf
Liberation Serif | Italic | fonts/liberation-serif/LiberationSerif-Italic.ttf | Latn | OFL-1.1 | fonts/liberation-serif/OFL.txt | 0e3dea9f8d613e006ccfa62201f33e265d19167bd0907725c3e145368b04fc2e | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSerif-Italic.ttf
Liberation Serif | Bold Italic | fonts/liberation-serif/LiberationSerif-BoldItalic.ttf | Latn | OFL-1.1 | fonts/liberation-serif/OFL.txt | f17db8af71e24d2066b587546021d4f0b296be389512b658dec3c09affeb11a7 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationSerif-BoldItalic.ttf
Liberation Mono | Regular | fonts/liberation-mono/LiberationMono-Regular.ttf | Latn | OFL-1.1 | fonts/liberation-mono/OFL.txt | f2b83c763e8afd21709333370bed4774337fae82267937e2b5aea7e2fbd922c1 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationMono-Regular.ttf
Liberation Mono | Bold | fonts/liberation-mono/LiberationMono-Bold.ttf | Latn | OFL-1.1 | fonts/liberation-mono/OFL.txt | bd62a0672d0b9b6710b01df434c80ad54fa5f0835207eb7b17b7a761463067bb | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationMono-Bold.ttf
Liberation Mono | Italic | fonts/liberation-mono/LiberationMono-Italic.ttf | Latn | OFL-1.1 | fonts/liberation-mono/OFL.txt | 605c01c711b44480a7508d349dfbf3264e81fa43d69e61cfa7d10b86e764c4d1 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationMono-Italic.ttf
Liberation Mono | Bold Italic | fonts/liberation-mono/LiberationMono-BoldItalic.ttf | Latn | OFL-1.1 | fonts/liberation-mono/OFL.txt | 79451f3c09fe25116098853b7a2ca6e2436220ccc11af022979adbcf195be130 | https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz#liberation-fonts-ttf-2.1.5/LiberationMono-BoldItalic.ttf
Source Sans 3 | Regular | fonts/source-sans-3/SourceSans3-Regular.ttf | Latn | OFL-1.1 | fonts/source-sans-3/OFL.txt | 4644c81b86ec9caaa76b634889968ed3c4f4f52f054855933acc7c2b21e53b0f | https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip#TTF/SourceSans3-Regular.ttf
Source Sans 3 | Italic | fonts/source-sans-3/SourceSans3-It.ttf | Latn | OFL-1.1 | fonts/source-sans-3/OFL.txt | 192afd78f0f54a3c69eaf02d43f4d9a821e9d6110e41d3d25d61a7385cd580e4 | https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip#TTF/SourceSans3-It.ttf
Source Sans 3 | Semibold | fonts/source-sans-3/SourceSans3-Semibold.ttf | Latn | OFL-1.1 | fonts/source-sans-3/OFL.txt | a3f4f8dcf343a8f24dc61951de93f3ba1558b15cd250ba24af8a40e957081b7d | https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip#TTF/SourceSans3-Semibold.ttf
Source Sans 3 | Bold | fonts/source-sans-3/SourceSans3-Bold.ttf | Latn | OFL-1.1 | fonts/source-sans-3/OFL.txt | 9214b9d95e4231c609802815c2646c98174e2102d0d37f88978a7f8e71006e6a | https://github.com/adobe-fonts/source-sans/releases/download/3.052R/TTF-source-sans-3.052R.zip#TTF/SourceSans3-Bold.ttf
Source Serif 4 | Regular | fonts/source-serif-4/SourceSerif4-Regular.ttf | Latn | OFL-1.1 | fonts/source-serif-4/OFL.txt | e5a4ee6a3d87bb9024796be390c6771e2a0eb1883dae25effaf57ca01668e24b | https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip#source-serif-4.005_Desktop/TTF/SourceSerif4-Regular.ttf
Source Serif 4 | Italic | fonts/source-serif-4/SourceSerif4-It.ttf | Latn | OFL-1.1 | fonts/source-serif-4/OFL.txt | 9d2950a8f1da66e21502c35d646a1d2148e79f9ea43fd2158cf02f5232e7f430 | https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip#source-serif-4.005_Desktop/TTF/SourceSerif4-It.ttf
Source Serif 4 | Semibold | fonts/source-serif-4/SourceSerif4-Semibold.ttf | Latn | OFL-1.1 | fonts/source-serif-4/OFL.txt | 36db62940cb5728b12b1802476dc7fcf4c6c519a7bdd476ba23a4e555fc4655f | https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip#source-serif-4.005_Desktop/TTF/SourceSerif4-Semibold.ttf
Source Serif 4 | Bold | fonts/source-serif-4/SourceSerif4-Bold.ttf | Latn | OFL-1.1 | fonts/source-serif-4/OFL.txt | 7cf4f4e1ad74f45058d5bc61716b82560442fbdcd9d3654d2dea96bf6c683d86 | https://github.com/adobe-fonts/source-serif/releases/download/4.005R/source-serif-4.005_Desktop.zip#source-serif-4.005_Desktop/TTF/SourceSerif4-Bold.ttf
Montserrat | Variable | fonts/montserrat/Montserrat.ttf | Latn | OFL-1.1 | fonts/montserrat/OFL.txt | 0f7b311b2f3279e4eef9b2f968bcdbab6e28f4daeb1f049f4f278a902bcd82f7 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/montserrat
Montserrat | Italic Variable | fonts/montserrat/Montserrat-Italic.ttf | Latn | OFL-1.1 | fonts/montserrat/OFL.txt | 51607f316bc020e59f03cbf51543eecffbea501c0b31d73e5b82927c5cca442c | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/montserrat
Lato | Regular | fonts/lato/Lato-Regular.ttf | Latn | OFL-1.1 | fonts/lato/OFL.txt | d636e4683231f931eda222d588e944d082bfd3bdba02f928bee461c0f185b251 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/lato
Lato | Bold | fonts/lato/Lato-Bold.ttf | Latn | OFL-1.1 | fonts/lato/OFL.txt | 8a0aace75d33794eece4b28187bfc1df0bbd2888b5d8a56e01788c8d65d16be1 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/lato
Lato | Italic | fonts/lato/Lato-Italic.ttf | Latn | OFL-1.1 | fonts/lato/OFL.txt | e399c44efe1387100531d26c7e4800c5d12251b890d6654a3098c7c679cb1786 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/lato
Open Sans | Variable | fonts/open-sans/OpenSans.ttf | Latn | OFL-1.1 | fonts/open-sans/OFL.txt | 36643644f318a812aab2d2ed3bb98f8cf0872527f835fe9398d95fe6b9adb878 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/opensans
Open Sans | Italic Variable | fonts/open-sans/OpenSans-Italic.ttf | Latn | OFL-1.1 | fonts/open-sans/OFL.txt | fe269381e992f32e135801740998544d6235061e37c93ec067ad2be3edd5b17b | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/opensans
Roboto | Variable | fonts/roboto/Roboto.ttf | Latn | OFL-1.1 | fonts/roboto/OFL.txt | d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/roboto
Roboto | Italic Variable | fonts/roboto/Roboto-Italic.ttf | Latn | OFL-1.1 | fonts/roboto/OFL.txt | 9725a847af6b460ffca162ae66d20dad48b01876137947180b42d7dcd7887182 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/roboto
Merriweather | Regular | fonts/merriweather/Merriweather-Regular.ttf | Latn | OFL-1.1 | fonts/merriweather/OFL.txt | 10ec10d1f7a9b5f0eb1a964e06348ce20587d478c661ea36728cce7b57f3de1c | https://github.com/SorkinType/Merriweather/tree/4481226b336843648b5b2ee64f75737f262ded15/fonts/ttf
Merriweather | Bold | fonts/merriweather/Merriweather-Bold.ttf | Latn | OFL-1.1 | fonts/merriweather/OFL.txt | a2fa4f57946c62036f79d9e8b4b642515001d65af1e6a98afc0b94bf669e3f11 | https://github.com/SorkinType/Merriweather/tree/4481226b336843648b5b2ee64f75737f262ded15/fonts/ttf
Merriweather | Italic | fonts/merriweather/Merriweather-Italic.ttf | Latn | OFL-1.1 | fonts/merriweather/OFL.txt | 1f73096441117e56bd867a437188e98bcf8ae7dcc7f676980da2ed2b6b51554d | https://github.com/SorkinType/Merriweather/tree/4481226b336843648b5b2ee64f75737f262ded15/fonts/ttf
Playfair Display | Variable | fonts/playfair-display/PlayfairDisplay.ttf | Latn | OFL-1.1 | fonts/playfair-display/OFL.txt | c40f2293766a503bc70cce9e512ef844a4ccb7cbcde792fe2ea31d191917d8d6 | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/playfairdisplay
Playfair Display | Italic Variable | fonts/playfair-display/PlayfairDisplay-Italic.ttf | Latn | OFL-1.1 | fonts/playfair-display/OFL.txt | a5e26dc5e2e77fb2803a0bf02fd4f81ee136ec8dea863ccdb0c59a263b21378b | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/playfairdisplay
Poppins | Regular | fonts/poppins/Poppins-Regular.ttf | Latn | OFL-1.1 | fonts/poppins/OFL.txt | 7e65201e9b79159e2300267cc885e16c8dcef2424cdfa09a29bfb0980a94a7ba | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/poppins
Poppins | Bold | fonts/poppins/Poppins-Bold.ttf | Latn | OFL-1.1 | fonts/poppins/OFL.txt | 983676516167748b74de6f4771fb384c664fd913acb8b471122ecacf5da5ea6c | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/poppins
Poppins | Italic | fonts/poppins/Poppins-Italic.ttf | Latn | OFL-1.1 | fonts/poppins/OFL.txt | 4fa76ae75b40f926420514044722cb97f32186cafd3b38263cc34dad7174d46d | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/poppins
Nunito Sans | Variable | fonts/nunito-sans/NunitoSans.ttf | Latn | OFL-1.1 | fonts/nunito-sans/OFL.txt | f934d7142fb4784bf828da485b7dcbd90c0c80d514e9d49a5da0ed3a1ae2491d | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/nunitosans
Nunito Sans | Italic Variable | fonts/nunito-sans/NunitoSans-Italic.ttf | Latn | OFL-1.1 | fonts/nunito-sans/OFL.txt | d9d5db18f3c11221a4fbb553cbc709391c1179964c7eaa4466ef43c78aa4492f | https://github.com/google/fonts/tree/7085eb89a950e85db5b166b7a58d414544b4140c/ofl/nunitosans
Binary file not shown.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato"
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+102
View File
@@ -0,0 +1,102 @@
Digitized data copyright (c) 2010 Google Corporation
with Reserved Font Arimo, Tinos and Cousine.
Copyright (c) 2012 Red Hat, Inc.
with Reserved Font Name Liberation.
This Font Software is licensed under the SIL Open Font License,
Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
PREAMBLE The goals of the Open Font License (OFL) are to stimulate
worldwide development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to provide
a free and open framework in which fonts may be shared and improved in
partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves.
The fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components
as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or
by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer
or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in
Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the
corresponding Copyright Holder. This restriction only applies to the
primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole, must
be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under
this license does not apply to any document created using the Font
Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+102
View File
@@ -0,0 +1,102 @@
Digitized data copyright (c) 2010 Google Corporation
with Reserved Font Arimo, Tinos and Cousine.
Copyright (c) 2012 Red Hat, Inc.
with Reserved Font Name Liberation.
This Font Software is licensed under the SIL Open Font License,
Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
PREAMBLE The goals of the Open Font License (OFL) are to stimulate
worldwide development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to provide
a free and open framework in which fonts may be shared and improved in
partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves.
The fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components
as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or
by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer
or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in
Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the
corresponding Copyright Holder. This restriction only applies to the
primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole, must
be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under
this license does not apply to any document created using the Font
Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+102
View File
@@ -0,0 +1,102 @@
Digitized data copyright (c) 2010 Google Corporation
with Reserved Font Arimo, Tinos and Cousine.
Copyright (c) 2012 Red Hat, Inc.
with Reserved Font Name Liberation.
This Font Software is licensed under the SIL Open Font License,
Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
PREAMBLE The goals of the Open Font License (OFL) are to stimulate
worldwide development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to provide
a free and open framework in which fonts may be shared and improved in
partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves.
The fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components
as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or
by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer
or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in
Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the
corresponding Copyright Holder. This restriction only applies to the
primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole, must
be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under
this license does not apply to any document created using the Font
Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2016 The Merriweather Project Authors (https://github.com/EbenSorkin/Merriweather), with Reserved Font Name "Merriweather".
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2024 The Montserrat.Git Project Authors (https://github.com/JulietaUla/Montserrat.git)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2016 The Nunito Sans Project Authors (https://github.com/Fonthausen/NunitoSans)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
+92
View File
@@ -0,0 +1,92 @@
Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to
provide a free and open framework in which fonts may be shared and
improved in partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software
components as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to,
deleting, or substituting -- in part or in whole -- any of the
components of the Original Version, by changing formats or by porting
the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed,
modify, redistribute, and sell modified and unmodified copies of the
Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components, in
Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the
corresponding Copyright Holder. This restriction only applies to the
primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created using
the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2017 The Playfair Display Project Authors (https://github.com/clauseggers/Playfair-Display), with Reserved Font Name "Playfair Display"
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2011 The Roboto Project Authors (https://github.com/googlefonts/roboto-classic)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2010-2022 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+93
View File
@@ -0,0 +1,93 @@
Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.