From 9ebc9508fac578a9f100c4fe3460162e910d172d Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Sat, 20 Dec 2025 16:30:03 -0700 Subject: [PATCH] Serve fonts locally --- www/assets/BBH_Bartle/BBHBartle-Regular.ttf | Bin 0 -> 17880 bytes www/assets/BBH_Bartle/OFL.txt | 93 ++++++++++++++++++++ www/index.html | 4 - www/style.css | 9 +- 4 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 www/assets/BBH_Bartle/BBHBartle-Regular.ttf create mode 100644 www/assets/BBH_Bartle/OFL.txt diff --git a/www/assets/BBH_Bartle/BBHBartle-Regular.ttf b/www/assets/BBH_Bartle/BBHBartle-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..96d0eaafc604a98561102d114269596e5b48d281 GIT binary patch literal 17880 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 literal 0 HcmV?d00001 diff --git a/www/assets/BBH_Bartle/OFL.txt b/www/assets/BBH_Bartle/OFL.txt new file mode 100644 index 0000000..0bd5d67 --- /dev/null +++ b/www/assets/BBH_Bartle/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2025 The BBH Project Authors (https://github.com/Studio-DRAMA/BBH) + +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/www/index.html b/www/index.html index 560be99..56c6f61 100644 --- a/www/index.html +++ b/www/index.html @@ -8,10 +8,6 @@ - - - - diff --git a/www/style.css b/www/style.css index 5b17fc0..1f54191 100644 --- a/www/style.css +++ b/www/style.css @@ -17,6 +17,13 @@ font-style: italic; } +@font-face { + font-family: "BBH Bartle"; + src: url(assets/BBH_Bartle/BBHBartle-Regular.ttf); + font-weight: 400; + font-style: normal; +} + .navbar-brand { font-family: "Cinzel"; } @@ -61,8 +68,6 @@ a { .text-impact { font-family: "BBH Bartle", sans-serif; - font-weight: 400; - font-style: normal; width: 100%; text-align: center; }