Interfejs API dla szybkich i atrakcyjnych czcionek internetowych

Jak używać interfejsu Google Fonts CSS API do efektywnego dostarczania czcionek internetowych.

Dzięki technologii czcionek internetowych wiele lat się zmieniło. To, co wcześniej było niszowe, wymagało dodania obrazu tekstu lub wtyczki Flash (co mogło utrudniać optymalizację witryny pod kątem wyszukiwarek) jest teraz standardem w internecie. Dawno temu przed załadowaniem strony trzeba było załadować cały czcionkę, w tym style i znaki, których nawet nie używasz. Teraz to już przeszłość.

Interfejs CSS Google Fonts API również ewoluował na przestrzeni lat, aby nadążać za zmianami w technologii czcionek internetowych. Od czasu swojej pierwotnej propozycji wartościowej (czyli przyspieszenia działania internetu przez umożliwienie przeglądarce buforowania często używanych czcionek we wszystkich witrynach, które korzystają z interfejsu API) minęło wiele czasu. To już nie jest prawdą, ale interfejs API nadal zapewnia dodatkowe i ważne optymalizacje, aby witryny wczytywały się szybko, a czcionki działały prawidłowo.

Dzięki interfejsowi Google Fonts CSS API Twoja witryna może żądać tylko tych danych czcionki, których potrzebuje, aby zminimalizować czas wczytywania CSS. Dzięki temu użytkownicy witryny mogą wczytywać treści tak szybko, jak to możliwe. Interfejs API odpowie na każde żądanie, używając czcionki najlepszej dla danej przeglądarki.

Wszystko to wymaga umieszczenia w kodzie jednego wiersza kodu HTML.

Jak korzystać z interfejsu Google Fonts CSS API

Dokumentacja interfejsu Google Fonts API CSS podsumowuje to w prosty sposób:

Nie musisz nic programować. Wystarczy, że dodasz do dokumentu HTML link do specjalnej czcionki, a potem odwołasz się do niej w stylu CSS.

Musisz tylko umieścić w kodzie HTML jeden wiersz, podobny do tego:

<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap" rel="stylesheet" />

Żądanie czcionki do interfejsu API umożliwia określenie rodziny lub rodzin oraz opcjonalnie ich wagi, style, podzbiory i wiele innych opcji. Interfejs API obsłuży Twoje żądanie w jeden z 2 sposobów:

  1. Jeśli żądanie używa wspólnych parametrów, które są już dostępne w interfejsie API, natychmiast zwróci ono użytkownikowi pliki CSS, kierując go do tych plików.
  2. Jeśli wyślesz żądanie czcionki z parametrami, których interfejs API obecnie nie przechowuje w pamięci podręcznej, podzbiory czcionki na bieżąco, korzystając z funkcji HarfBuzz, i zwróci CSS, który do niej pasuje.

Pliki czcionek mogą być duże, ale nie muszą

czcionki internetowe mogą być duże. Tylko jeden krój czcionki Noto Sans Japanese w WOFF2 zajmuje prawie 3,4 MB. Pobieranie tej czcionki przez każdego użytkownika wydłużyłoby czas wczytywania strony. Kiedy liczy się każda milisekunda, a każdy bajt jest cenny, chcesz mieć pewność, że wczytujesz tylko te dane, których potrzebują użytkownicy.

Interfejs Google Fonts CSS API może tworzyć bardzo małe pliki czcionek (zwane podzbiorami), generowane w czasie rzeczywistym, aby udostępniać użytkownikom tylko tekst i style wymagane przez Twoją witrynę. Zamiast wyświetlać cały font, możesz poprosić o określone znaki, używając parametru text.

<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap&text=RobtMn" rel="stylesheet" />

Wykres z liczbą znaków w przypadku podstawowego alfabetu łacińskiego, podstawowego alfabetu greckiego i rozszerzonego alfabetu greckiego.

Interfejs API CSS zapewnia też automatyczne optymalizowanie czcionek internetowych dla użytkowników bez żadnych parametrów interfejsu API. Interfejs API będzie udostępniać użytkownikom pliki CSS z użyciem unicode-range (jeśli ich przeglądarka obsługuje tę funkcję), dzięki czemu wczytują czcionki tylko dla określonych znaków potrzebnych w witrynie.

Deskryptor CSS zakresu Unicode to jedno z narzędzi, którego można teraz używać do przeciwdziałania pobieraniu dużych czcionek. Ta właściwość CSS ustawia zakres znaków Unicode zawartych w deklaracji @font-face. Jeśli jeden z tych znaków jest renderowany na stronie, czcionka jest pobierana. Ta metoda sprawdza się w przypadku wszystkich języków, więc możesz użyć czcionki zawierającej znaki łacińskie, greckie lub cyryliczne i utworzyć mniejsze podzbiory. Jak widać na wykresie powyżej, gdyby trzeba było załadować wszystkie 3 z tych zestawów znaków, zajęłoby to ponad 600 glifów.

Wykres z liczbą znaków dla podstawowego alfabetu łacińskiego, rozszerzonego alfabetu łacińskiego, japońskiego i koreańskiego.

Umożliwia to też stosowanie czcionek w języku chińskim, japońskim i koreańskim (CJK) w internecie. Na poprzednim wykresie widać, że czcionka CJK obejmuje 15–20 razy więcej znaków niż czcionka w alfabecie łacińskim. Te czcionki są zwykle bardzo duże, a wiele znaków w tych językach nie jest używanych tak często jak inne.

Korzystanie z interfejsu API CSS i zakresu kodów Unicode może zmniejszyć transfery plików o około 90%. Za pomocą deskryptora unicode-range możesz zdefiniować każdą część osobno, a każdy fragment jest pobierany tylko wtedy, gdy Twoje treści zawierają jeden z znaków z tych zakresów.

Przykład: jeśli chcesz ustawić tylko słowo „こんにちは” w czcionce Noto Sans JP, możesz:

  • Samodzielnie hostuj własne pliki WOFF2.
  • Użyj interfejsu CSS API, aby pobrać plik WOFF2.
  • Użyj interfejsu API usługi porównywania cen z parametrem text= ustawionym na „ねこんちち”.

Wykres porównujący różne metody pobierania czcionki Noto Sans JP.

W tym przykładzie widać, że dzięki korzystaniu z interfejsu CSS API oszczędzasz już 97,5% w porównaniu z samodzielnym hostowaniem czcionki WOFF2, dzięki wbudowanemu w interfejsowi API obsłudze podziału dużych czcionek na zakresy Unicode. Jeśli określisz dokładnie tekst, który chcesz wyświetlić, możesz jeszcze bardziej zmniejszyć rozmiar czcionki do 95,3% czcionki interfejsu API CSS. Oznacza to, że rozmiar czcionki będzie o 99,9% mniejszy niż w przypadku czcionki hostowanej lokalnie.

Interfejs Google Fonts CSS API automatycznie udostępnia czcionki w najmniejszym i najbardziej zgodnym formacie obsługiwanym przez przeglądarkę użytkownika. Jeśli użytkownik korzysta z przeglądarki obsługującej WOFF2, interfejs API dostarczy czcionki w formacie WOFF2, ale jeśli używa starszej przeglądarki, interfejs API dostarczy czcionki w formacie obsługiwanym przez tę przeglądarkę. Aby zmniejszyć rozmiar pliku dla każdego użytkownika, interfejs API usuwa też dane z czcionek, gdy nie są potrzebne. Na przykład dane dotyczące podpowiedzi zostaną usunięte w przypadku użytkowników, których przeglądarki ich nie potrzebują.

Przygotowanie czcionek internetowych na przyszłość dzięki interfejsowi Google Fonts CSS API

Zespół Google Fonts przyczynia się też do tworzenia nowych standardów W3C, które wprowadzają innowacje w technologiach czcionek internetowych, takich jak WOFF2. Jednym z obecnie projektów jest przyrostowe przenoszenie czcionek, które umożliwia użytkownikom ładowanie bardzo małych fragmentów plików czcionek używanych na ekranie i strumieniowanie w pozostałych na żądanie, co znacznie przekracza zakres Unicode. Gdy używasz naszego interfejsu API czcionek internetowych, użytkownicy otrzymują te ulepszenia technologii przesyłania czcionek, gdy staną się one dostępne w ich przeglądarce.

Oto piękno interfejsu API czcionek: użytkownicy mogą czerpać korzyści z każdego ulepszenia technologii bez wprowadzania jakichkolwiek zmian w witrynie. Nowy format czcionki internetowej? Żaden problem. Czy obsługa nowej przeglądarki lub systemu operacyjnego? Zajmiemy się tym. Dzięki temu nie musisz zajmować się konserwacją czcionek internetowych, tylko możesz skupić się na użytkownikach i treściach.

Czcionki zmienne obsługują wbudowane

Czcionki zmienne to pliki czcionek, które mogą przechowywać różne warianty projektu na wielu osiach. Nowa wersja interfejsu API czcionek Google obsługuje je. Dodanie dodatkowej osi zmienności daje nową elastyczność w przypadku czcionki, ale może prawie podwoić rozmiar pliku czcionki.

Jeśli żądanie do interfejsu CSS API jest bardziej szczegółowe, interfejs Google Fonts CSS API może wyświetlać tylko część czcionki zmiennej potrzebnej witrynie, aby zmniejszyć rozmiar pobieranych plików. Umożliwia to używanie czcionek zmiennych w internecie bez wydłużania czasu wczytywania stron. Możesz to zrobić, podając pojedynczą wartość na osi lub zakres; możesz nawet określić wiele osi i wiele rodzin czcionek w jednym żądaniu. Interfejs API jest elastyczny i dostosowany do Twoich potrzeb.

Prosta implementacja i optymalizacja

Interfejs Google Fonts CSS API pomaga dostarczać czcionki, które:

  • Większa zgodność z przeglądarkami.
  • jak najmniejsze.
  • Szybko dostarczone.
  • Łatwiej w nim pracować.

Więcej informacji o Google Fonts znajdziesz na stronie fonts.google.com. Aby dowiedzieć się więcej o interfejsie CSS API, zapoznaj się z dokumentacją interfejsu API.

Podziękowania

Baner powitalny autorstwa leesehee.