Subseting, which means splitting 1 font file into multiple parts Embed vs. linking directly to a font file Randomize, a new way to secure Fonts should be naked, or come with minimal obscuring because it creates the best user developer experience. less bugs for you and me Most of our documents are designed to be typeset in 1 language (it’s faster to load what you use.) If you don’t have a font creation software handy, you can’t get the full file. Multiple font files can load in parallel (but it’s illogically split and harder to manage.) As if assembling isn’t hard enough already, the font is split at random.
Trang 23
Trang 3
Trang 41 Subset
Trang 5
1 Subset, which
can mean 2 things
Trang 6
1 Using a subset
vs using a font’s full character set
Trang 8
1 Subset
2 Embed
Trang 10
1 Subset
2 Embed
3 Randomize
Trang 12
1 Subset
2 Embed
Make webfonts both
faster & more secure
Trang 13
3 Randomize
Taking a step further
Trang 14 ’
formats
Trang 15 ’
formats,
although, let’s talk
about it over beer
aerwards
Trang 16
Fonts should be naked,
or come with minimal obscuring
Trang 17
Fonts should be naked,
or come with minimal
creates the best user &
developer experience
Trang 18
Fonts should be naked,
or come with minimal obscuring, because it
creates the best user &
developer experience
Trang 19
Fonts should be naked,
or come with minimal obscuring, because it
experience
Trang 20
Fonts should be naked,
or come with minimal obscuring, because it
compatible experience
Trang 21
Fonts should be naked,
or come with minimal obscuring, because it
creates the most
@font-face browsers
Trang 22
Fonts should be naked,
or come with minimal obscuring, because it
creates the least
complex experience
Trang 23
Fonts should be naked,
or come with minimal obscuring, because it
creates the less bugs
for you and me
Trang 24
1 Using a subset
vs using a font’s full character set
Trang 25Basic Latin
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Trang 26+-
Latin-1 Supplement
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
âđêôơẶưẨẪàẬÈẺẼɰẸỀỂỄẾả·ÌỈãÍỊ½¾ÒáạằẳẵắặầẩẫấậèẻẽéÐẹềểễếệ
ỨìỉĩíịÝÞòỏõóọồổỗốộờởỡớợùủðũúụừửữứựỳỷỹýýþỵ
Trang 27+-, -
Punc., Currency, Number Forms
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Trang 28
http://zenoplex.jp/tools/
unicoderange_generator.html
Trang 29— ,
Trang 30 -
Trang 31@- {
font-family: Gentium;src: url(Gentium.ttf );}
Trang 32@- {
font-family: Gentium;src: url(Gentium.ttf );
unicode-range:+-
}
Trang 33
Most of our documents
are designed to be typeset
in 1 language.
Trang 34
Most of our documents
are designed to be typeset
in 1 language (it’s faster
to load what you use.)
Trang 35
Trang 36Full:
Basic Latin, Latin-1,
Latin Extended-A, Greek,
Cyrillic, Punctuation, Super & Sub, Currency, Number Forms
Trang 37Full: 112
Trang 38Full: 112
Latin-1: 44
Trang 39Full: 112
Latin-1: 44
Basic Latin: 28
Trang 40Basic Latin, Fractions,
Punctuation, Currency, Math
Trang 41Just like Latin-1, but
– diacritics and + helpful stuff
Trang 43
Trang 44Full: 2.9 s
Trang 45Full: 2.9 s
Latin-1: 1.9 s
Trang 46Full: 2.9 s
Latin-1: 1.9 s
Basic Latin: 1.5 s
Trang 48
1 Using a subset
vs using a font’s full character set
Trang 49?
Trang 50
1 Using a subset
vs using a font’s full character set
Trang 52Basic Latin
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Trang 54 !"#$%&'()*+,-./
Trang 55!"#$%&'()*+,-./
0123456789:;<=>?@
ABCDEFGHIJKLMNOPQ RSTUVWXYZ [\^_`
abcdefghijklmnopqrst uvwxyz{|}~
Trang 56!"#$%&'()*+,-./
0123456789:;<=>?@ ABCDEFGHIJKLMNOPQ RSTUVWXYZ[\^_`
abcdefghijklmnopqrst uvwxyz {|}~
Trang 57!"#$%&'()*+,-./
0123456789 :;<=>?@ ABCDEFGHIJKLMNOPQ RSTUVWXYZ[\^_`
abcdefghijklmnopqrst uvwxyz{|}~
Trang 58!"#$%&'()*+,-./
0123456789 :;<=>?@
ABCDEFGHIJKLMNOPQ RSTUVWXYZ [\^_`
abcdefghijklmnopqrst uvwxyz {|}~
Trang 59
Trang 60@- {
font-family: Gentium1;src: url(Gentium1.ttf );}
Trang 61@- {
src: url(Gentium1.ttf );}
Trang 62@- {
src: url(Gentium2.ttf );}
Trang 63@- {
src: url(Gentium3.ttf );}
Trang 65
Multiple font files can load in parallel.
Trang 67
If you don’t have a font
creation soware handy, you can’t get the full file.
Trang 68
If you don’t have a font
creation soware handy, you can’t get the full file
(harder to pirate.)
Trang 69
Trang 70
Trang 71One set: 112
Trang 72Capital: 13
Lowercase: 13 Number: 12
Symbol: 33
Expert: 66
Trang 73One set: 112
Multiple subsets: 137
Trang 74
Trang 75One set: 2.9 s
Trang 76One set: 2.9 s
Multiple subsets
Capital, Lowercase,
Number, Symbol &
Expert (everything else)
Trang 77One set: 2.9 s
Multiple subsets: 1.9 s
Trang 79?
Trang 80
1 Subset
Trang 82
Trang 83
Reading embedded data
is faster than reading
linked ones.
Trang 86:
http://soware.hixie.ch/utilities/ cgi/data/data
Trang 87
Trang 88@- {
font-family: Gentium;
}
Trang 89@- {
font-family: Gentium;
src: url(Gentium.ttf );
}
Trang 90@- {
font-family: Gentium;
}
Trang 92
Trang 93
Trang 94Linked: 2.9 s
Trang 95Linked: 2.9 s
Embedded: 1.9 s
Trang 97?
Trang 98
1 Subset
Trang 99
1 Subset
2 Embed
Trang 101
1 Subset
2 Embed
3 Randomize
Trang 103Proceed at your own risk.
Trang 104Proceed at your own risk (hacky, maybe faster
& can be more efficient.)
Trang 105Proceed at your own risk (hacky, maybe faster
& can be more efficient, but incredibly fun.)
Trang 106Basic Latin
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Trang 108 !"#$%&'()*+,-./
Trang 109!"#$%&'()*+,-./
0123456789:;<=>?@
ABCDEFGHIJKLMNOPQ RSTUVWXYZ [\^_`
abcdefghijklmnopqrst uvwxyz{|}~
Trang 110!"#$%&'()*+,-./
0123456789:;<=>?@ ABCDEFGHIJKLMNOPQ RSTUVWXYZ[\^_`
abcdefghijklmnopqrst uvwxyz {|}~
Trang 111!"#$%&'()*+,-./
0123456789:;<=>?@
ABCDEFGHIJKLMNOPQ RSTUVWXYZ [\^_`
abcdefghijklmnopqrst uvwxyz {|}~
Trang 113 !"#$%&'()*+,-./
Trang 118
Multiple font files can load in parallel.
Trang 120
As if assembling isn’t
hard enough already, the font is split at random.
Trang 123?
Trang 124 ( )
Trang 125
Trang 127
Plain
Trang 128
Trang 129
#1
Trang 130
Trang 131
- #2
Trang 132
Trang 133
- #1 #2
Trang 134
Trang 136
Trang 137One set + link
Trang 138
+ 1 font file
Trang 139
+ 1 font file
Multiple sets + link
Trang 140
+ 1 font file
+ x font files
Trang 142
+ 1 font file
+ x font files
1 file
Trang 145?
Trang 146
1 Subset
Trang 147
1 Subset, which
can means 2 things
Trang 148
1 Using a subset
vs using a font’s full character set
Trang 150
1 Subset
2 Embed
Trang 152
1 Subset
2 Embed
3 Randomize
Trang 154
Trang 155
1 File sizes
(subseting can be good)
Trang 156
1 File sizes
2 Number of files to load (subseting can be bad)
Trang 159
1 File sizes
2 Number of files to load
3 File format
(Base-64 is faster, but
be careful splitting it.)
Trang 161?
Trang 162FASTER, &
()
WEBFONTS
Trang 163bram@brampitoyo.com