Subsetowanie fontów (font subsetter)
Ogranicz font do potrzebnych znaków za pomocą HarfBuzz, w przeglądarce. Otrzymasz mniejszy TTF/OTF i WOFF, podgląd oraz regułę @font-face z unicode-range.
Najpierw sprawdź licencję fontu
Subsetowanie modyfikuje plik fontu. Wiele licencji komercyjnych zabrania modyfikowania lub konwertowania fontów albo pozwala na to tylko do użytku w sieci pod pewnymi warunkami. Licencje otwarte, takie jak SIL Open Font License (OFL) i Apache 2.0, na to pozwalają (przy OFL subset, który zachowuje zastrzeżoną nazwę fontu – Reserved Font Name – musi otrzymać nową nazwę). Przeczytaj licencję fontu, zanim opublikujesz wynik.
Oryginalny font
- Rodzina
- Format
- Rozmiar pliku
- Glify
- Znaki
Wybrane znaki: 0
Wynik
- Przed
- Po (TTF/OTF)
- Po (WOFF)
- Oszczędność
- Glify
- Zachowane znaki
Wynik WOFF2 nie jest dostępny (brak kodera Brotli w przeglądarce). WOFF obsługuje każda aktualna przeglądarka; twój serwer może też kompresować TTF/OTF za pomocą gzip lub Brotli.
Podgląd subsetu
Usunięte znaki są wyświetlane innym fontem.
CSS @font-face
Jak utworzyć subset fontu
- Sprawdź licencję. Subsetowanie tworzy zmodyfikowaną kopię fontu. Licencje otwarte, takie jak SIL Open Font License (OFL) i Apache 2.0, na to pozwalają; wiele komercyjnych licencji desktopowych i webowych – nie, albo tylko pod pewnymi warunkami. Najpierw przeczytaj licencję swojego fontu.
- Upuść plik TTF, OTF lub WOFF w polu albo kliknij je, aby wybrać plik. Panel Oryginalny font pokazuje rodzinę, format, rozmiar pliku, liczbę glifów i liczbę znaków, które font obsługuje.
- Wybierz Znaki do zachowania: zestawy Podstawowa łacinka, Latin-1, Łacinka jak w Google Fonts, Latin Extended-A/B, Francuski oraz Cyfry i znaki liczbowe można łączyć. Własne znaki dodasz w polu Znaki z tekstu (zachowany zostaje każdy odrębny znak tekstu) lub w polu Zakresy Unicode, zapisanych jak w CSS:
U+0020-007E, U+2013, U+04??. - Zaznacz Usuń hinting, jeśli chcesz uzyskać jak najmniejszy plik.
- Kliknij Utwórz subset. Za pierwszym razem wczytuje się silnik (około 650 KB), a potem font jest przetwarzany na twoim urządzeniu.
- Porównaj rozmiary w sekcji Wynik, obejrzyj Podgląd subsetu, a następnie użyj przycisków Pobierz TTF (lub OTF) i Pobierz WOFF i skopiuj regułę CSS @font-face.
Plik fontu nigdy nie opuszcza twojego komputera: jest odczytywany, subsetowany i ponownie pakowany w przeglądarce.
Polskie znaki – ważne
Litery ą, ć, ę, ł, ń, ś, ź i ż należą do zakresu Latin Extended (Latin-1 ma tylko ó). Na tej stronie domyślnie zaznaczone są więc zestawy Łacinka jak w Google Fonts i Latin Extended-A/B (U+0100–024F), które razem odpowiadają podzbiorom „latin” i „latin-ext” z Google Fonts. Jeśli chcesz mniejszy plik, zamiast nich dodaj w polu Znaki z tekstu tylko litery ąćęłńóśźżĄĆĘŁŃÓŚŹŻ. Polskie cudzysłowy „ ” mieszczą się w zakresie interpunkcji U+2000–206F, który zawiera zestaw Łacinka jak w Google Fonts. Zawsze sprawdź wiersz Brak w foncie i podgląd na prawdziwym tekście.
Co robi subsetowanie
Font często zawiera setki lub tysiące glifów: cyrylicę, grekę, wietnamski, symbole, warianty. Strona po polsku czy angielsku używa tylko ich części. To narzędzie uruchamia hb-subset, subsetter silnika tekstu HarfBuzz (ten sam kod, którego używa Google Fonts i wiele narzędzi do budowania), skompilowany do WebAssembly. Zachowuje glify wybranych znaków oraz glify potrzebne funkcjom OpenType do ich wyświetlenia (ligatury jak „fi”, kapitaliki i formy akcentowane, jeśli są osiągalne z twoich znaków), a resztę usuwa. Kerning i inne tabele układu są odpowiednio przycinane.
Typowe wyniki: pełny font z łacinką, cyrylicą i greką o rozmiarze 300 KB może zmaleć do 20–30 KB dla tekstu francuskiego, a font logo ograniczony do liter jednego słowa waży często kilka kilobajtów.
Wiersz Brak w foncie wymienia znaki, o które prosisz, a których font nie ma. Przeglądarki narysują je fontem zastępczym.
Formaty wyjściowe i unicode-range
- TTF/OTF: subset zachowuje typ konturów oryginału (TrueType lub CFF).
- WOFF: ten sam font z każdą tabelą skompresowaną zlib. Odczytuje go każda aktualna przeglądarka. Plik WOFF na wejściu jest najpierw rozpakowywany.
- WOFF2 nie jest dostępny: jego kompresja Brotli i transformacje tabel nie mają kodera w przeglądarce, a plików WOFF2 nie da się tu też odczytać. Najpierw przekonwertuj WOFF2 na TTF (np. za pomocą fontTools). Twój serwer może też kompresować TTF/OTF w locie za pomocą gzip lub Brotli.
Reguła CSS @font-face wymienia najpierw plik WOFF, ustawia font-display: swap i dodaje unicode-range zbudowany ze znaków faktycznie obecnych w subsecie. Dzięki unicode-range przeglądarka pobiera plik tylko wtedy, gdy strona używa któregoś z tych znaków, więc możesz podzielić rodzinę na kilka plików (np. łacinka i cyrylica) i pozwolić każdemu odwiedzającemu wczytać tylko to, czego potrzebuje. Zmień Nazwa font-family, aby pasowała do nazwy w twoim arkuszu stylów.
Najczęściej zadawane pytania
Czy subsetowanie fontu jest legalne?
To zależy od licencji, nie od narzędzia. SIL Open Font License wprost pozwala na modyfikacje; jeśli font deklaruje zastrzeżoną nazwę (Reserved Font Name), zmodyfikowaną wersję trzeba rozpowszechniać pod inną nazwą. Wiele licencji komercyjnych zabrania modyfikowania, konwertowania lub samodzielnego hostowania fontu. W razie wątpliwości zapytaj odlewnię.
Dlaczego subset jest większy, niż się spodziewałem?
Funkcje układu OpenType dociągają dodatkowe glify (ligatury, warianty, kapitaliki), a instrukcje hintingu w fontach TrueType bywają duże. Spróbuj opcji Usuń hinting i sprawdź, czy przez pomyłkę nie zaznaczyłeś dużego zestawu.
Czy usuwać hinting?
Hinting poprawia renderowanie w małych rozmiarach w Windows ze starszymi rasteryzatorami. W macOS, iOS, Androidzie i nowoczesnym Windows przy normalnych rozmiarach różnica jest niewielka. W nagłówkach i logo usunięcie go zwykle nie szkodzi.
Czy mogę subsetować font zmienny (variable font)?
Tak. Osie wariacji są zachowywane, więc subset pozostaje fontem zmiennym; ograniczane są tylko znaki.
A co z kolekcjami fontów (.ttc)?
Subsetowany jest tylko pierwszy font kolekcji.
Podobne narzędzia
- Łączenie fontów – podgląd par czcionek Testuj pary fontów do nagłówków i tekstu z 20 darmowymi fontami z polskimi znakami, ustaw rozmiar i interlinię oraz skopiuj CSS font-family.
- Konwerter PX na REM Przeliczaj px na rem i em przy dowolnym rozmiarze czcionki głównej, twórz tabelę zbiorczej konwersji i zamieniaj px na rem w całym fragmencie CSS.
- Formatowanie i minifikacja CSS Sformatuj nieczytelny CSS z równymi wcięciami albo zminifikuj go za pomocą csso i porównaj rozmiar. Działa w przeglądarce, nic nie jest wysyłane.