diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc4fdff..f5bad4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index d1bd420..9689c0a 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -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. diff --git a/README.md b/README.md index 092b41e..9a7e193 100644 --- a/README.md +++ b/README.md @@ -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=` 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. diff --git a/crates/craft-fonts-tests/tests/fonts.rs b/crates/craft-fonts-tests/tests/fonts.rs index 49ae04c..9733629 100644 --- a/crates/craft-fonts-tests/tests/fonts.rs +++ b/crates/craft-fonts-tests/tests/fonts.rs @@ -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 { .unwrap_or_else(|e| panic!("{}: {e}", f.file)) } +/// Every font in both the default and opt-in Latin manifests. +fn all() -> impl Iterator { + 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 = [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 = 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 = [ StringId::SUBFAMILY_NAME, StringId::TYPOGRAPHIC_SUBFAMILY_NAME, @@ -906,3 +932,723 @@ fn bytes_from_entry(e: &Entry) -> Vec { 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::>(), + ["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 = 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 = 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 = [StringId::TYPOGRAPHIC_FAMILY_NAME, StringId::FAMILY_NAME] + .into_iter() + .flat_map(|id| { + font.localized_strings(id) + .map(|s| s.to_string()) + .collect::>() + }) + .collect(); + assert!( + families.iter().any(|n| n.as_str() == e.family), + "{}: name table has {families:?}, manifest says {:?}", + e.file, + e.family + ); + let styles: Vec = [ + StringId::SUBFAMILY_NAME, + StringId::TYPOGRAPHIC_SUBFAMILY_NAME, + ] + .into_iter() + .flat_map(|id| { + font.localized_strings(id) + .map(|s| s.to_string()) + .collect::>() + }) + .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 = 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"); + } +} diff --git a/crates/craft-fonts/Cargo.toml b/crates/craft-fonts/Cargo.toml index a8b9838..30600f2 100644 --- a/crates/craft-fonts/Cargo.toml +++ b/crates/craft-fonts/Cargo.toml @@ -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 diff --git a/crates/craft-fonts/build.rs b/crates/craft-fonts/build.rs index 0fa005d..8d613d8 100644 --- a/crates/craft-fonts/build.rs +++ b/crates/craft-fonts/build.rs @@ -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 : &[Font]` for the manifest at `rel`, and with `embed` the bytes as +/// `static : &[&[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 = 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. diff --git a/crates/craft-fonts/src/lib.rs b/crates/craft-fonts/src/lib.rs index 7e46f83..ea4cb94 100644 --- a/crates/craft-fonts/src/lib.rs +++ b/crates/craft-fonts/src/lib.rs @@ -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 + '_ { 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 { 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)>, 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)>, 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)>, 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)>, 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(), diff --git a/crates/craft-fonts/src/parse.rs b/crates/craft-fonts/src/parse.rs index eaeee12..e98ab29 100644 --- a/crates/craft-fonts/src/parse.rs +++ b/crates/craft-fonts/src/parse.rs @@ -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)] diff --git a/docs/integration.md b/docs/integration.md index 7044ce2..a4af67d 100644 --- a/docs/integration.md +++ b/docs/integration.md @@ -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::>() +// 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//`, 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 diff --git a/fonts/caladea/Caladea-Bold.ttf b/fonts/caladea/Caladea-Bold.ttf new file mode 100644 index 0000000..a4a9703 Binary files /dev/null and b/fonts/caladea/Caladea-Bold.ttf differ diff --git a/fonts/caladea/Caladea-BoldItalic.ttf b/fonts/caladea/Caladea-BoldItalic.ttf new file mode 100644 index 0000000..a9bb487 Binary files /dev/null and b/fonts/caladea/Caladea-BoldItalic.ttf differ diff --git a/fonts/caladea/Caladea-Italic.ttf b/fonts/caladea/Caladea-Italic.ttf new file mode 100644 index 0000000..2c910c6 Binary files /dev/null and b/fonts/caladea/Caladea-Italic.ttf differ diff --git a/fonts/caladea/Caladea-Regular.ttf b/fonts/caladea/Caladea-Regular.ttf new file mode 100644 index 0000000..a490e8f Binary files /dev/null and b/fonts/caladea/Caladea-Regular.ttf differ diff --git a/fonts/caladea/OFL.txt b/fonts/caladea/OFL.txt new file mode 100644 index 0000000..b9d685b --- /dev/null +++ b/fonts/caladea/OFL.txt @@ -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. diff --git a/fonts/carlito/Carlito-Bold.ttf b/fonts/carlito/Carlito-Bold.ttf new file mode 100644 index 0000000..67543b5 Binary files /dev/null and b/fonts/carlito/Carlito-Bold.ttf differ diff --git a/fonts/carlito/Carlito-BoldItalic.ttf b/fonts/carlito/Carlito-BoldItalic.ttf new file mode 100644 index 0000000..e2c5d88 Binary files /dev/null and b/fonts/carlito/Carlito-BoldItalic.ttf differ diff --git a/fonts/carlito/Carlito-Italic.ttf b/fonts/carlito/Carlito-Italic.ttf new file mode 100644 index 0000000..8dc3c84 Binary files /dev/null and b/fonts/carlito/Carlito-Italic.ttf differ diff --git a/fonts/carlito/Carlito-Regular.ttf b/fonts/carlito/Carlito-Regular.ttf new file mode 100644 index 0000000..427b959 Binary files /dev/null and b/fonts/carlito/Carlito-Regular.ttf differ diff --git a/fonts/carlito/OFL.txt b/fonts/carlito/OFL.txt new file mode 100644 index 0000000..8d6b170 --- /dev/null +++ b/fonts/carlito/OFL.txt @@ -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. diff --git a/fonts/inter/Inter-Bold.ttf b/fonts/inter/Inter-Bold.ttf new file mode 100644 index 0000000..9fb9b75 Binary files /dev/null and b/fonts/inter/Inter-Bold.ttf differ diff --git a/fonts/inter/Inter-Italic.ttf b/fonts/inter/Inter-Italic.ttf new file mode 100644 index 0000000..e7ed211 Binary files /dev/null and b/fonts/inter/Inter-Italic.ttf differ diff --git a/fonts/inter/Inter-Regular.ttf b/fonts/inter/Inter-Regular.ttf new file mode 100644 index 0000000..b7aaca8 Binary files /dev/null and b/fonts/inter/Inter-Regular.ttf differ diff --git a/fonts/inter/Inter-SemiBold.ttf b/fonts/inter/Inter-SemiBold.ttf new file mode 100644 index 0000000..47f8ab1 Binary files /dev/null and b/fonts/inter/Inter-SemiBold.ttf differ diff --git a/fonts/inter/OFL.txt b/fonts/inter/OFL.txt new file mode 100644 index 0000000..9b2ca37 --- /dev/null +++ b/fonts/inter/OFL.txt @@ -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. diff --git a/fonts/latin-manifest.txt b/fonts/latin-manifest.txt new file mode 100644 index 0000000..b0cc607 --- /dev/null +++ b/fonts/latin-manifest.txt @@ -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 diff --git a/fonts/lato/Lato-Bold.ttf b/fonts/lato/Lato-Bold.ttf new file mode 100644 index 0000000..1d23c70 Binary files /dev/null and b/fonts/lato/Lato-Bold.ttf differ diff --git a/fonts/lato/Lato-Italic.ttf b/fonts/lato/Lato-Italic.ttf new file mode 100644 index 0000000..70a870f Binary files /dev/null and b/fonts/lato/Lato-Italic.ttf differ diff --git a/fonts/lato/Lato-Regular.ttf b/fonts/lato/Lato-Regular.ttf new file mode 100644 index 0000000..0f3d0f8 Binary files /dev/null and b/fonts/lato/Lato-Regular.ttf differ diff --git a/fonts/lato/OFL.txt b/fonts/lato/OFL.txt new file mode 100644 index 0000000..98383e3 --- /dev/null +++ b/fonts/lato/OFL.txt @@ -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. diff --git a/fonts/liberation-mono/LiberationMono-Bold.ttf b/fonts/liberation-mono/LiberationMono-Bold.ttf new file mode 100644 index 0000000..2e46737 Binary files /dev/null and b/fonts/liberation-mono/LiberationMono-Bold.ttf differ diff --git a/fonts/liberation-mono/LiberationMono-BoldItalic.ttf b/fonts/liberation-mono/LiberationMono-BoldItalic.ttf new file mode 100644 index 0000000..d1f46d7 Binary files /dev/null and b/fonts/liberation-mono/LiberationMono-BoldItalic.ttf differ diff --git a/fonts/liberation-mono/LiberationMono-Italic.ttf b/fonts/liberation-mono/LiberationMono-Italic.ttf new file mode 100644 index 0000000..954c394 Binary files /dev/null and b/fonts/liberation-mono/LiberationMono-Italic.ttf differ diff --git a/fonts/liberation-mono/LiberationMono-Regular.ttf b/fonts/liberation-mono/LiberationMono-Regular.ttf new file mode 100644 index 0000000..e774859 Binary files /dev/null and b/fonts/liberation-mono/LiberationMono-Regular.ttf differ diff --git a/fonts/liberation-mono/OFL.txt b/fonts/liberation-mono/OFL.txt new file mode 100644 index 0000000..aba73e8 --- /dev/null +++ b/fonts/liberation-mono/OFL.txt @@ -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. + diff --git a/fonts/liberation-sans/LiberationSans-Bold.ttf b/fonts/liberation-sans/LiberationSans-Bold.ttf new file mode 100644 index 0000000..dc5d57f Binary files /dev/null and b/fonts/liberation-sans/LiberationSans-Bold.ttf differ diff --git a/fonts/liberation-sans/LiberationSans-BoldItalic.ttf b/fonts/liberation-sans/LiberationSans-BoldItalic.ttf new file mode 100644 index 0000000..158488a Binary files /dev/null and b/fonts/liberation-sans/LiberationSans-BoldItalic.ttf differ diff --git a/fonts/liberation-sans/LiberationSans-Italic.ttf b/fonts/liberation-sans/LiberationSans-Italic.ttf new file mode 100644 index 0000000..25970d9 Binary files /dev/null and b/fonts/liberation-sans/LiberationSans-Italic.ttf differ diff --git a/fonts/liberation-sans/LiberationSans-Regular.ttf b/fonts/liberation-sans/LiberationSans-Regular.ttf new file mode 100644 index 0000000..e633985 Binary files /dev/null and b/fonts/liberation-sans/LiberationSans-Regular.ttf differ diff --git a/fonts/liberation-sans/OFL.txt b/fonts/liberation-sans/OFL.txt new file mode 100644 index 0000000..aba73e8 --- /dev/null +++ b/fonts/liberation-sans/OFL.txt @@ -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. + diff --git a/fonts/liberation-serif/LiberationSerif-Bold.ttf b/fonts/liberation-serif/LiberationSerif-Bold.ttf new file mode 100644 index 0000000..3c7c55b Binary files /dev/null and b/fonts/liberation-serif/LiberationSerif-Bold.ttf differ diff --git a/fonts/liberation-serif/LiberationSerif-BoldItalic.ttf b/fonts/liberation-serif/LiberationSerif-BoldItalic.ttf new file mode 100644 index 0000000..6b35d9f Binary files /dev/null and b/fonts/liberation-serif/LiberationSerif-BoldItalic.ttf differ diff --git a/fonts/liberation-serif/LiberationSerif-Italic.ttf b/fonts/liberation-serif/LiberationSerif-Italic.ttf new file mode 100644 index 0000000..54d5164 Binary files /dev/null and b/fonts/liberation-serif/LiberationSerif-Italic.ttf differ diff --git a/fonts/liberation-serif/LiberationSerif-Regular.ttf b/fonts/liberation-serif/LiberationSerif-Regular.ttf new file mode 100644 index 0000000..5e5550c Binary files /dev/null and b/fonts/liberation-serif/LiberationSerif-Regular.ttf differ diff --git a/fonts/liberation-serif/OFL.txt b/fonts/liberation-serif/OFL.txt new file mode 100644 index 0000000..aba73e8 --- /dev/null +++ b/fonts/liberation-serif/OFL.txt @@ -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. + diff --git a/fonts/merriweather/Merriweather-Bold.ttf b/fonts/merriweather/Merriweather-Bold.ttf new file mode 100644 index 0000000..0e104b3 Binary files /dev/null and b/fonts/merriweather/Merriweather-Bold.ttf differ diff --git a/fonts/merriweather/Merriweather-Italic.ttf b/fonts/merriweather/Merriweather-Italic.ttf new file mode 100644 index 0000000..4b3fe43 Binary files /dev/null and b/fonts/merriweather/Merriweather-Italic.ttf differ diff --git a/fonts/merriweather/Merriweather-Regular.ttf b/fonts/merriweather/Merriweather-Regular.ttf new file mode 100644 index 0000000..3447c5f Binary files /dev/null and b/fonts/merriweather/Merriweather-Regular.ttf differ diff --git a/fonts/merriweather/OFL.txt b/fonts/merriweather/OFL.txt new file mode 100644 index 0000000..042a4c4 --- /dev/null +++ b/fonts/merriweather/OFL.txt @@ -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. diff --git a/fonts/montserrat/Montserrat-Italic.ttf b/fonts/montserrat/Montserrat-Italic.ttf new file mode 100644 index 0000000..c8b8441 Binary files /dev/null and b/fonts/montserrat/Montserrat-Italic.ttf differ diff --git a/fonts/montserrat/Montserrat.ttf b/fonts/montserrat/Montserrat.ttf new file mode 100644 index 0000000..c97aca1 Binary files /dev/null and b/fonts/montserrat/Montserrat.ttf differ diff --git a/fonts/montserrat/OFL.txt b/fonts/montserrat/OFL.txt new file mode 100644 index 0000000..fe576a2 --- /dev/null +++ b/fonts/montserrat/OFL.txt @@ -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. \ No newline at end of file diff --git a/fonts/nunito-sans/NunitoSans-Italic.ttf b/fonts/nunito-sans/NunitoSans-Italic.ttf new file mode 100644 index 0000000..5b325ad Binary files /dev/null and b/fonts/nunito-sans/NunitoSans-Italic.ttf differ diff --git a/fonts/nunito-sans/NunitoSans.ttf b/fonts/nunito-sans/NunitoSans.ttf new file mode 100644 index 0000000..ccc8565 Binary files /dev/null and b/fonts/nunito-sans/NunitoSans.ttf differ diff --git a/fonts/nunito-sans/OFL.txt b/fonts/nunito-sans/OFL.txt new file mode 100644 index 0000000..2ae1735 --- /dev/null +++ b/fonts/nunito-sans/OFL.txt @@ -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. diff --git a/fonts/open-sans/OFL.txt b/fonts/open-sans/OFL.txt new file mode 100644 index 0000000..d762c3c --- /dev/null +++ b/fonts/open-sans/OFL.txt @@ -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. diff --git a/fonts/open-sans/OpenSans-Italic.ttf b/fonts/open-sans/OpenSans-Italic.ttf new file mode 100644 index 0000000..6c29979 Binary files /dev/null and b/fonts/open-sans/OpenSans-Italic.ttf differ diff --git a/fonts/open-sans/OpenSans.ttf b/fonts/open-sans/OpenSans.ttf new file mode 100644 index 0000000..9db8569 Binary files /dev/null and b/fonts/open-sans/OpenSans.ttf differ diff --git a/fonts/playfair-display/OFL.txt b/fonts/playfair-display/OFL.txt new file mode 100644 index 0000000..1315389 --- /dev/null +++ b/fonts/playfair-display/OFL.txt @@ -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. diff --git a/fonts/playfair-display/PlayfairDisplay-Italic.ttf b/fonts/playfair-display/PlayfairDisplay-Italic.ttf new file mode 100644 index 0000000..94fae1f Binary files /dev/null and b/fonts/playfair-display/PlayfairDisplay-Italic.ttf differ diff --git a/fonts/playfair-display/PlayfairDisplay.ttf b/fonts/playfair-display/PlayfairDisplay.ttf new file mode 100644 index 0000000..7a09eb7 Binary files /dev/null and b/fonts/playfair-display/PlayfairDisplay.ttf differ diff --git a/fonts/poppins/OFL.txt b/fonts/poppins/OFL.txt new file mode 100644 index 0000000..76df3b5 --- /dev/null +++ b/fonts/poppins/OFL.txt @@ -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. diff --git a/fonts/poppins/Poppins-Bold.ttf b/fonts/poppins/Poppins-Bold.ttf new file mode 100644 index 0000000..1982f38 Binary files /dev/null and b/fonts/poppins/Poppins-Bold.ttf differ diff --git a/fonts/poppins/Poppins-Italic.ttf b/fonts/poppins/Poppins-Italic.ttf new file mode 100644 index 0000000..8631652 Binary files /dev/null and b/fonts/poppins/Poppins-Italic.ttf differ diff --git a/fonts/poppins/Poppins-Regular.ttf b/fonts/poppins/Poppins-Regular.ttf new file mode 100644 index 0000000..0bda228 Binary files /dev/null and b/fonts/poppins/Poppins-Regular.ttf differ diff --git a/fonts/roboto/OFL.txt b/fonts/roboto/OFL.txt new file mode 100644 index 0000000..9c48e05 --- /dev/null +++ b/fonts/roboto/OFL.txt @@ -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. diff --git a/fonts/roboto/Roboto-Italic.ttf b/fonts/roboto/Roboto-Italic.ttf new file mode 100644 index 0000000..a122c13 Binary files /dev/null and b/fonts/roboto/Roboto-Italic.ttf differ diff --git a/fonts/roboto/Roboto.ttf b/fonts/roboto/Roboto.ttf new file mode 100644 index 0000000..5522a36 Binary files /dev/null and b/fonts/roboto/Roboto.ttf differ diff --git a/fonts/source-sans-3/OFL.txt b/fonts/source-sans-3/OFL.txt new file mode 100644 index 0000000..88c07f7 --- /dev/null +++ b/fonts/source-sans-3/OFL.txt @@ -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. diff --git a/fonts/source-sans-3/SourceSans3-Bold.ttf b/fonts/source-sans-3/SourceSans3-Bold.ttf new file mode 100644 index 0000000..85693cc Binary files /dev/null and b/fonts/source-sans-3/SourceSans3-Bold.ttf differ diff --git a/fonts/source-sans-3/SourceSans3-It.ttf b/fonts/source-sans-3/SourceSans3-It.ttf new file mode 100644 index 0000000..8e0576f Binary files /dev/null and b/fonts/source-sans-3/SourceSans3-It.ttf differ diff --git a/fonts/source-sans-3/SourceSans3-Regular.ttf b/fonts/source-sans-3/SourceSans3-Regular.ttf new file mode 100644 index 0000000..c5dd0b8 Binary files /dev/null and b/fonts/source-sans-3/SourceSans3-Regular.ttf differ diff --git a/fonts/source-sans-3/SourceSans3-Semibold.ttf b/fonts/source-sans-3/SourceSans3-Semibold.ttf new file mode 100644 index 0000000..4aff9a3 Binary files /dev/null and b/fonts/source-sans-3/SourceSans3-Semibold.ttf differ diff --git a/fonts/source-serif-4/OFL.txt b/fonts/source-serif-4/OFL.txt new file mode 100644 index 0000000..ebe298c --- /dev/null +++ b/fonts/source-serif-4/OFL.txt @@ -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. diff --git a/fonts/source-serif-4/SourceSerif4-Bold.ttf b/fonts/source-serif-4/SourceSerif4-Bold.ttf new file mode 100644 index 0000000..c4159ff Binary files /dev/null and b/fonts/source-serif-4/SourceSerif4-Bold.ttf differ diff --git a/fonts/source-serif-4/SourceSerif4-It.ttf b/fonts/source-serif-4/SourceSerif4-It.ttf new file mode 100644 index 0000000..e818087 Binary files /dev/null and b/fonts/source-serif-4/SourceSerif4-It.ttf differ diff --git a/fonts/source-serif-4/SourceSerif4-Regular.ttf b/fonts/source-serif-4/SourceSerif4-Regular.ttf new file mode 100644 index 0000000..964a2bf Binary files /dev/null and b/fonts/source-serif-4/SourceSerif4-Regular.ttf differ diff --git a/fonts/source-serif-4/SourceSerif4-Semibold.ttf b/fonts/source-serif-4/SourceSerif4-Semibold.ttf new file mode 100644 index 0000000..151e9a9 Binary files /dev/null and b/fonts/source-serif-4/SourceSerif4-Semibold.ttf differ