From b6762c2dfc42b5444b148840670735a8acbf5140 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Fri, 11 Jan 2019 01:54:01 -0500 Subject: [PATCH] Source Sans Pro => Open Sans This goes back to Open Sans, which is what I was using previously. I really like Source Sans Pro. Unfortunately, the font rendered far too small relative to other sans-serif fonts, which caused an unpleasent experience for both slow page loads (e.g. over Tor or slower connections) and for users with web fonts disabled (e.g. via NoScript). Further, the font is huge: the WOFF is over 100KiB per font, and I was using regular and light versions. Open Sans, in contrast, is <20KiB per font, allowing me to use Regular, Light, and SemiBold and still be about half the size of the single Source Sans Pro Regular. As a bonus, users may also already have Open Sans installed on their system. I settled with WOFF instead of WOFF2 for browser support. The site now looks pretty close on fallback, which is good. For example, I use DejaVu Sans as my default font, and it even has a Light version that renders correctly. As with all resources on my site, I host this from my own domain rather than via Google's servers. That means that the font won't be cached for users when they first visit the site, but that's okay---privacy is more important. I should note that, since I use NoScript, I almost never load web fonts for other sites. But I still wanted to try to provide a consistent look across systems for those who do wish to load fonts. --- bootstrap | 19 ++++---- build-aux/lsfonts | 2 +- fonts/LICENSE.txt | 93 ------------------------------------ fonts/OpenSans-Regular.ttf | Bin 0 -> 26488 bytes fonts/OpenSans-Regular.woff | Bin 0 -> 17704 bytes fonts/README | 2 +- fonts/SHA512SUM | 6 +-- style.css | 27 +++++++---- 8 files changed, 33 insertions(+), 116 deletions(-) delete mode 100644 fonts/LICENSE.txt create mode 100644 fonts/OpenSans-Regular.ttf create mode 100644 fonts/OpenSans-Regular.woff diff --git a/bootstrap b/bootstrap index a41c9f8..3217021 100755 --- a/bootstrap +++ b/bootstrap @@ -22,11 +22,11 @@ set -euo pipefail -# Source fonts and license (SIL Open Font License 1.1) -declare -ra fonts=( - https://github.com/adobe-fonts/source-sans-pro/raw/c7ea228c8cd66f65dac985bef98fda12c9cfa713/WOFF/OTF/SourceSansPro-Light.otf.woff - https://github.com/adobe-fonts/source-sans-pro/raw/c7ea228c8cd66f65dac985bef98fda12c9cfa713/WOFF/OTF/SourceSansPro-Regular.otf.woff - https://github.com/adobe-fonts/source-sans-pro/raw/c7ea228c8cd66f65dac985bef98fda12c9cfa713/LICENSE.txt +# Source fonts (Apache 2.0) +declare -rA fonts=( + [OpenSans-Regular.woff]=https://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFVZ0d.woff + [OpenSans-Light.woff]=https://fonts.gstatic.com/s/opensans/v15/mem5YaGs126MiZpBA-UN_r8OUuhv.woff + [OpenSans-SemiBold.woff]=https://fonts.gstatic.com/s/opensans/v15/mem5YaGs126MiZpBA-UNirkOUuhv.woff ) declare -r tpimagesdir=images/tp @@ -48,14 +48,15 @@ get-images() # Download and verify fonts and license. get-fonts() { - local font dest + local font src dest echo 'retrieving font files...' - for font in "${fonts[@]}"; do - dest="$fontdir/$( basename "$font" )" + for font in "${!fonts[@]}"; do + src=${fonts[$font]} + dest="$fontdir/$font" test ! -f "$dest" || continue - torify wget "$font" -O "$dest" + torify wget "$src" -O "$dest" done # Verify that we haven't been served bad files. This should only happen diff --git a/build-aux/lsfonts b/build-aux/lsfonts index 652615e..78df9d6 100755 --- a/build-aux/lsfonts +++ b/build-aux/lsfonts @@ -17,6 +17,6 @@ # along with this program. If not, see . ## -grep -A2 @font-face style.css \ +grep -A4 @font-face style.css \ | grep -o "fonts/[^']\+" diff --git a/fonts/LICENSE.txt b/fonts/LICENSE.txt deleted file mode 100644 index 87ec82c..0000000 --- a/fonts/LICENSE.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated 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/OpenSans-Regular.ttf b/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9d4e8e526d7ebe3630d019a88c53ad2a86b8d74b GIT binary patch literal 26488 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