"Specializované"? Už samotný standart WOFFu říká, že je to "akorát kontejner pro sfnt fonty s komprimací", tj. navrch huj a vespod totéž, jakmile se to dekomprimuje.
Nicméně by mě zajímalo, co se reálně ušetří. Údajně WOFF ušetří tak 40% velikosti fontu. Přičemž fonty jsou zpravidla < 0.5 MB. A pokud prohlížeč nepsal makak, tak se ten font jednou stáhne a nakešuje a už není potřeba ho znova natahovat. Zatímco kolik má zbytek stránky?
Třeba příklad hlavní stránky Rootu: Celá stažená stránka má 3.4 MB. Font Roboto má asi 88 kB. Při použití WOFF ušetříme krásných 35 kB, tedy 1% velikosti stránky (a to na hlavní stránce nejsou žádné velké obrázky.).
Za povšimnutí tady na rootu stojí třeba to, že na hlavní stránce zabírají z 3.4 MB obrázky jenom 264 kB. Zbylé 3 MB jsou tuny CSS a Javascriptu. Možná by dávalo smysl se spíš zamyslet nad tím, jestli se nedá zkomprimovat tenhle hnojník, který tvoří 90% obsahu než ten font, který tvoří okolo 2% obsahu.
Ano, specializované, protože ve WOFF typicky nebudete mít speciální varianty znaků pro tiskárny apod. Můžete se na to podívat i přes peníze – obvykle je levnější varianta fontu určená pouze pro web, než když chcete mít možnost distribuovat plnohodnotné TTF/OTF. Ano, ono by šlo z TTF/OTF vyexportovat menší font jen pro web – ale když už to stejně exportujete, proč to nevyexportovat ve vhodnějším (menším) formátu?
K tomu kešování – ona ta keš prohlížeče není nekonečně velká, každá stránka tam má svůj font (je jedno, že je na více stránkách stejný – kešuje se per website). Spoustu stránek nenavštěvujete často, navštívíte je třeba jednou. Přičemž už to první zobrazení stránky musí být rychlé. Každé zpoždění znamená odliv uživatelů, což u většiny webů znamená reálně nižší příjmy. A zrovna fonty jsou součást kritického CSS, protože když se stránka vykreslí náhradním fontem, a když se stáhne font, překreslí se, může to znamenat přeskládání stránky. Uživatel už třeba něco čte, a najednou se mu text posune jinam, protože se vše překreslí správným fontem. Tomuhle se snaží prohlížeče i autoři webů předcházet. Že se pak stahují nějaké JavaScripty nebo nekritické CSS, to je úplně jedno, pokud už uživatel může tu stránku používat.
Takže vaše teorie je sice hezká, ale celá velikost stránky není zdaleka tak důležitá metrika. Podstatně důležitější metriky jsou LCP, FID, CLS a další, přičemž na LCP a CLS má právě velikost fontu vliv.
To, že jsou menší není vždy pravda. Pokud vám, tak základní rozdíl je v tom, že WOFF by měl obsahovat jen ty znaky, které jsou potřeba (resp. část celého Unicode), takže není potřeba přenášet zbytečně informace o o těch nepoužívaných, a navíc se počítá s jistou "optimalizací pro obrazovky", takže kvalita při tisku může být zhoršená.
Na druhou stranu to ale znamená, že z jednoho TTF/OTF lze vygenerovat více různých WOFF, které je potřeba pro různé stránky opětovně přenášet, zatímco TTF/OTF může být nacachovaný.
Pro stránky, používající obvyklá písma může tedy být TTF/OTF výhodnější, pro stránky s jednoúčelovými písmy to nemusí hrát roli (při velikosti třeba cca 30 kB pro jednoduchou "latinku")...
Pochopitelně, pokud používá někdo na stránkách malou podmnožinu některého Googlího fontu, pak můře WOFF pomoct.
Vybrané znaky můžete mít jak u WOFF tak u TTF/OTF. WOFF je ale navíc komprimovaný. WOFF může být nakešovaný úplně stejně, jako TTF/OTF. Když už vyrábím specializovaný soubor s vybranými řezy, variantami a znaky, je logické rovnou ho uložit do formátu vhodnějšího pro web.
Jestli něco používá „obvyklá písma“ je už úplně jedno, protože fonty se (stejně jako styly nebo skripty) kešují per site, která si je vyžádala (partitioned cache). Tj. i když Root a Lupa použijí identický odkaz na font v nějaké CDN, font bude kešován zvlášť pro Root a zvlášť pro Lupu. Je to z důvodů ochrany soukromí – když byla cache sdílená, bylo možné to zneužít pro sledování uživatele napříč weby resp. ke zjištění, jaké jiné weby uživatel navštěvuje.
Já se kloním spíše k používání "plných" (ovšem nikoliv "komplexních") písem, tedy i s podporou pro tisk. V tom má trochu navrch TTF/OTF.
Komprese je sice fajn věc, ale tu může v zásadě poskytnout i server, během přenosu. (Což se ostatně zatraceně hodí u těch scriptů a stylů, které často tvoří mnohem podstatnější a větší část stránky, než samotná písma - a taky se lépe komprimují.)
Problém je, že spousta webů prostě používá Googlí písma, protože je to jednoduché a levné. Profesionální web si nemůže dovolit písma ukrást, licence jsou poměrně nákladné a omezují použití, vytvořit vlastní pěkné písmo je náročné... Pak WOFF dává smysl, protože umožní nejen zmenšit objem přenášených dat, ale vejít se do omezení, daných licencí pro použití fontu.
Komprese na míru konkrétnímu formátu bude obvykle dávat lepší výsledky, než obecná komprese. Že vy dáváte přednost plným fontům je hezké, ale když někoho každý kilobajt stojí reálné peníze na tom, o kolik zákazníků přišel, dívá se na to jinak. Na použití Googlích písem není a priory nic špatně, zejména když se to porovná s variantou, když někdo prostě odkáže jménem na písmo, které má nainstalované na počítači, a neví, že kdo takové písmo nainstalované nemá, uvidí prohlížečem zvolené náhradní písmo.
Přesně takové "spoléhání" na Google fonty nám rozbíjí valnou část stránek, na kterou nás firma pustí - ale na doménu s písmenkama od Gůglu ne. ;oD
Stránky by měly fungovat i s generickými písmy, ale jednak na to webdesignéři zapomínají (nebo kašlou), druhak trvají na svém vymazleném designu a když to uživatel nemá možnost zobrazit, považují to jednoznačně za jeho chybu. (Naštěstí se toho většinou nepokazí příliš mnoho...)
To, že vás firma nepustí na domény Googlu, je ovšem problém vaší firmy, ne těch webů. Stránka by měla fungovat s generickými písmy pro běžný text, ovšem těžko bude vypadat tak, jak designer zamýšlel. Ikonové fonty nahrazené generickým písmem fungovat nemůžou. Když uživatel (nebo někdo za něj) zasahuje do zdrojů webu, je to jednoznačně jeho chyba. Autor webu nemá žádnou možnost, jak by to ovlivnil.
Chápu, že naši bezpečáci to trošku přehánějí, ale jejich důvody jsou vcelku jasné a pochopitelné: pomocí Google fontů, Google Analytics či Tag Manageru by bylo možné vytvářet šmírovací profily a postupně třeba zjistit nějaké hackersky užitečné informace o našem síťovém prostředí.
Že s tím designéři nepočítají a často neuvedou ani generickou náhradu, takže se třebas bezpatkové Roboto nahradí patkovým Timesem a stránka vypadá k nepoznání jinak, je jiná věc.
IMHO by ta písma (a všechny styly a scripty) měla být na stejné doméně se stránkou (což by asi šlo i pomocí proxy otočit na Google...), ale nejspíš by to nebylo tak úplně v souladu s bezplatnou licencí. Na druhou stranu by to byl dobrý důvod pro použití WOFFu.
Generická náhrada fontu by tam měla být. Ale nevídám moc často, že by nebyla.
Bezplatná licence zpravidla nebrání hostovat to u sebe. Řešit to přes proxy by byla zbytečná komplikace, jednodušší je mít to prostě mezi ostatními statickými zdroji. Ale je s tím trochu víc práce, při stahování z Google ušetříte traffic na vlastní servery. Nevýhodou je naopak nutnost navázat spojení na jiný server – to je nejsilnější důvod, proč fonty kvůli rychlosti dávat k ostatním statickým zdrojům.