diff --git a/data/fonts/bebas-neue/LICENSE b/data/fonts/bebas-neue/LICENSE index e7376bc49..da9571488 100644 --- a/data/fonts/bebas-neue/LICENSE +++ b/data/fonts/bebas-neue/LICENSE @@ -1,24 +1,93 @@ -Bebas Neue — SIL Open Font License, Version 1.1 -Designer: Ryoichi Tsunekawa (Dharma Type). Distributed via Google Fonts. -Full text: https://openfontlicense.org/ (OFL-1.1) +Copyright © 2010 by Dharma Type. -WHY THIS FILE IS IN THIS REPO -DX-life's /regions pages set --font-family-heading to 'Bebas Neue'. Their own site does not -ship the file either — @nuxt/fonts downloads it at build and self-hosts it, which is why their -computed font-family reads "Bebas Neue", "Bebas Neue Fallback: ...". We cannot @font-face from -their origin: their font file is served without CORS headers, so a cross-origin face silently -fails and every heading fell back to a condensed system stack. That substitution was the ONLY -remaining difference between our regions dashboard and theirs (7 computed properties, all of -them this one font and its knock-on sizes). -So the font is vendored here, from Google Fonts, under the OFL that permits redistribution — -self-hosted, never a CDN, the same rule public/assets/vendor/tabulator/ follows. -Subsets and unicode-ranges are Google's own (css2 API, v16), reproduced verbatim in the -@font-face declared by library/composables/useDocumentFont.js. +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 -NOTE ON THIS FILENAME — it is deliberately extensionless. -check:public-hygiene refuses *.md / *.markdown / *.txt anywhere in the served tree ("no docs in a -served folder", Driver rule 2026-09-16), and it is right to: prose does not belong in a public -mirror. But the OFL requires this licence to accompany the font files wherever they are -redistributed, and the font files DO ship — they are fetched by the @font-face at runtime. So the -licence travels with them under the conventional extensionless name, which satisfies the rule -without weakening it. Do not rename this to LICENSE.txt. + +----------------------------------------------------------- +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/data/fonts/figtree/LICENSE b/data/fonts/figtree/LICENSE index de97ffce2..80b12bb3d 100644 --- a/data/fonts/figtree/LICENSE +++ b/data/fonts/figtree/LICENSE @@ -1,10 +1,3 @@ -Figtree — SIL Open Font License, Version 1.1 -Designer: Erik D. Kennedy. Distributed via Google Fonts. -Vendored as the free stand-in for Brandon Grotesque (commercial), by Driver decision -2026-09-24. Chosen by MEASUREMENT, not by name: at 500/19.5312px Figtree renders -'FULL PROFILE' at 126px against Brandon's 128px on live doxa.life — the closest of 19 -libre grotesques tested. See _probe-glyph-width.mjs. - Copyright 2022 The Figtree Project Authors (https://github.com/erikdkennedy/figtree) This Font Software is licensed under the SIL Open Font License, Version 1.1. diff --git a/data/fonts/poppins/LICENSE b/data/fonts/poppins/LICENSE index 9786c3ad8..76df3b565 100644 --- a/data/fonts/poppins/LICENSE +++ b/data/fonts/poppins/LICENSE @@ -1,29 +1,93 @@ -Poppins — SIL Open Font License, Version 1.1 -Designers: Indian Type Foundry, Jonny Pinhorn. Distributed via Google Fonts. -Full text: https://openfontlicense.org/ (OFL-1.1) +Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins) -WHY THIS FILE IS IN THIS REPO -Poppins is DX-life's --font-family-base: the body face of every line of text on the pages the -regions plugin clones. Their own site self-hosts it via @nuxt/fonts; we could not use theirs, so -it is vendored here from Google Fonts under the OFL, which permits redistribution. +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 -WHY IT WAS NEEDED — and why no CSS check caught it. -A computed-style diff of our region dashboard against live doxa.life reported 68 of 68 properties -IDENTICAL while our body text was rendering in a system fallback, because BOTH sides merely NAME -"Poppins" first in font-family and a first-family comparison therefore matched. The difference only -became visible against a glyph-width oracle: the same string at the same size measured 334.58px -here against 317px on their page — 5.5% wider, i.e. a different face. -document.fonts.check() is NOT a usable oracle for this: it returned true for families never -vendored (Oswald, Brandon Grotesque) and false for Bebas Neue on DX-life's own page. -See _qa-cycle/02-builder-cycle/_probe-glyph-width.mjs. -WHAT IS HERE, AND WHY ONLY THIS -Weights 400/500/600/700 only — the four the regions surface actually asks for (measured across -their _globals, _cards, _buttons and _filters SCSS: medium x10, regular x4, bold x2, plus the -600 in the prayer-coverage legend). Subsets latin + latin-ext only. 44 KB in total, with Google's -own unicode-ranges reproduced in the @font-face so the subset split behaves as it does on their -site. Extra weights and scripts are deliberately NOT vendored — bloat is a repo rule here. +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- -FILENAME: extensionless on purpose. check:public-hygiene refuses *.txt in a served folder and is -right to, while the OFL requires this licence to accompany redistributed font files. Do not -rename this to LICENSE.txt. +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/documentation/vendored-fonts.md b/documentation/vendored-fonts.md new file mode 100644 index 000000000..ac89b0618 --- /dev/null +++ b/documentation/vendored-fonts.md @@ -0,0 +1,94 @@ +# Vendored fonts — licences and why each one is here + +The fonts ship in `data/fonts//`, which `bun run tree` stages into the served tree at +`dx-maps/assets/fonts/`. Each family's `LICENSE` is its OWN upstream OFL text, verbatim, carrying +that family's real copyright line. Nothing in this file is part of any licence. + +★ THESE NOTES LIVE HERE, NOT BESIDE THE FONTS, AND THAT IS THE POINT. check:public-hygiene fails on +`documentation in a served folder`: a NOTES.md next to each LICENSE is prose a reader of the drop-in +tree should not be served. The old bebas-neue LICENSE said so in its own text -- "prose does not +belong in a public served folder" -- and I put three NOTES.md files there anyway before the gate +caught it. The licence travels with the font; the explanation travels with the repo. + +## bebas-neue + +| | | +|---|---| +| Licence source | `https://raw.githubusercontent.com/google/fonts/main/ofl/bebasneue/OFL.txt` | +| sha256 | `72082f6cb4d04be2ecf7cc7d9e1e7d73787f0af8a5a278a47cade70c16b78341` | +| Fetched | 2026-09-28 | + +``` +Bebas Neue — SIL Open Font License, Version 1.1 +Designer: Ryoichi Tsunekawa (Dharma Type). Distributed via Google Fonts. +Full text: https://openfontlicense.org/ (OFL-1.1) +WHY THIS FILE IS IN THIS REPO +DX-life's /regions pages set --font-family-heading to 'Bebas Neue'. Their own site does not +ship the file either — @nuxt/fonts downloads it at build and self-hosts it, which is why their +computed font-family reads "Bebas Neue", "Bebas Neue Fallback: ...". We cannot @font-face from +their origin: their font file is served without CORS headers, so a cross-origin face silently +fails and every heading fell back to a condensed system stack. That substitution was the ONLY +remaining difference between our regions dashboard and theirs (7 computed properties, all of +them this one font and its knock-on sizes). +So the font is vendored here, from Google Fonts, under the OFL that permits redistribution — +self-hosted, never a CDN, the same rule public/assets/vendor/tabulator/ follows. +Subsets and unicode-ranges are Google's own (css2 API, v16), reproduced verbatim in the +@font-face declared by library/composables/useDocumentFont.js. +NOTE ON THIS FILENAME — it is deliberately extensionless. +check:public-hygiene refuses *.md / *.markdown / *.txt anywhere in the served tree ("no docs in a +served folder", product rule 2026-09-16), and it is right to: prose does not belong in a public +mirror. But the OFL requires this licence to accompany the font files wherever they are +redistributed, and the font files DO ship — they are fetched by the @font-face at runtime. So the +licence travels with them under the conventional extensionless name, which satisfies the rule +without weakening it. Do not rename this to LICENSE.txt. +``` + +## poppins + +| | | +|---|---| +| Licence source | `https://raw.githubusercontent.com/google/fonts/main/ofl/poppins/OFL.txt` | +| sha256 | `6be04893d770899a015649c7aa3b582f871b272f8747a92b78b17c3e5c8b2573` | +| Fetched | 2026-09-28 | + +``` +Poppins — SIL Open Font License, Version 1.1 +Designers: Indian Type Foundry, Jonny Pinhorn. Distributed via Google Fonts. +Full text: https://openfontlicense.org/ (OFL-1.1) +WHY THIS FILE IS IN THIS REPO +Poppins is DX-life's --font-family-base: the body face of every line of text on the pages the +regions plugin clones. Their own site self-hosts it via @nuxt/fonts; we could not use theirs, so +it is vendored here from Google Fonts under the OFL, which permits redistribution. +WHY IT WAS NEEDED — and why no CSS check caught it. +A computed-style diff of our region dashboard against live doxa.life reported 68 of 68 properties +IDENTICAL while our body text was rendering in a system fallback, because BOTH sides merely NAME +"Poppins" first in font-family and a first-family comparison therefore matched. The difference only +became visible against a glyph-width oracle: the same string at the same size measured 334.58px +here against 317px on their page — 5.5% wider, i.e. a different face. +document.fonts.check() is NOT a usable oracle for this: it returned true for families never +vendored (Oswald, Brandon Grotesque) and false for Bebas Neue on DX-life's own page. +See the builder-cycle probes: _probe-glyph-width.mjs. +WHAT IS HERE, AND WHY ONLY THIS +Weights 400/500/600/700 only — the four the regions surface actually asks for (measured across +their _globals, _cards, _buttons and _filters SCSS: medium x10, regular x4, bold x2, plus the +600 in the prayer-coverage legend). Subsets latin + latin-ext only. 44 KB in total, with Google's +own unicode-ranges reproduced in the @font-face so the subset split behaves as it does on their +site. Extra weights and scripts are deliberately NOT vendored — bloat is a repo rule here. +FILENAME: extensionless on purpose. check:public-hygiene refuses *.txt in a served folder and is +right to, while the OFL requires this licence to accompany redistributed font files. Do not +rename this to LICENSE.txt. +``` + +## figtree + +Its LICENSE is the family's own OFL text, left intact (our prose was stripped from the top). + +``` +Figtree — SIL Open Font License, Version 1.1 +Designer: Erik D. Kennedy. Distributed via Google Fonts. +Vendored as the free stand-in for Brandon Grotesque (commercial), by product decision +2026-09-24. Chosen by MEASUREMENT, not by name: at 500/19.5312px Figtree renders +'FULL PROFILE' at 126px against Brandon's 128px on live doxa.life — the closest of 19 +libre grotesques tested. See _probe-glyph-width.mjs. +``` +