Aktualizacja interfejsu CSS API

Czcionki Google Fonts są teraz w pełni obsługiwane w zmiennych w wersji 2 interfejsu API. Wyjaśnimy, jak wywoływać zarówno pojedyncze, jak i wiele rodzin czcionek, oraz jak określać zakresy osi. Aby dowiedzieć się więcej o zmiennych zmiennych, dowiedz się więcej z tej interaktywnej broszury Daera Berlowa z TypeNetwork.

Co się zmieniło

Wszystko zaczyna się od nowego podstawowego adresu URL:

https://fonts.googleapis.com/css2

Składnia służąca do określania stylów w każdej rodzinie została zmieniona w taki sposób, aby opisywała zmienną czcionki „przestrzenie projektowe”.

Skrócone przewodniki

Skopiuj i wklej ten kod HTML do pliku:

<html>
  <head>
    <link rel="stylesheet"
          href="https://fonts.googleapis.com/css2?family=Crimson+Pro">
    <style>
      body {
        font-family: 'Crimson Pro', serif;
        font-size: 48px;
      }
    </style>
  </head>
  <body>
    <div>Making the Web Beautiful!</div>
  </body>
</html>

Plik należy otworzyć w przeglądarce przy użyciu przeglądarki Crimson Pro.

Tworzenie pięknego internetu!

Wiele rodzin

Aby zażądać wielu rodzin, określ parametr family= dla każdej rodziny.

Aby na przykład ustawić czcionki Crimson Pro i Literata:

https://fonts.googleapis.com/css2?family=Crimson+Pro&family=Literata

Skopiuj i wklej ten kod HTML do pliku:

<html>
  <head>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Crimson+Pro&family=Literata">
    <style>
      body {
        font-size: 48px;
      }
      div:nth-child(1) {
        font-family: 'Crimson Pro', serif;
      }
      div:nth-child(2) {
        font-family: 'Literata’, serif;
      }
    </style>
  </head>
  <body>
    <div>Making the Web Beautiful!</div>
    <div>Making the Web Beautiful!</div>
  </body>
</html>

Plik należy otworzyć w przeglądarce w przeglądarce z tekstem „Making the Beautiful” w Crimson Pro, a następnie w Literacie.

Tworzenie pięknego internetu!
Tworzenie pięknego internetu!

Zakresy osi

Czcionki zmiennych oferują szeroki zakres stylów, często bez dodatkowych opóźnień. Dotyczy to elastycznego projektowania stron. Ta dynamiczna typografia korzysta z ciągłych zakresów stylów, które zapewniają pełną wagę od 100 do 900 na stronie, a także mogą elastycznie dostosowywać wagę niektórych warunków.

Aby poprosić o zakres zmiennej zmiennej, użyj czcionki ..

Czcionki Żądanie
Crimson Pro [wght 200-900] https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@200..900
Crimson Pro Kursywa [wght 200-900] https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@1,200..900
Crimson Pro pogrubiona kursywa i [wght 200-900] https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,200..900;1,700
Twoja przeglądarka prawdopodobnie nie obsługuje zmiennych zmiennych (caniuse). W przeglądarce, która obsługuje odmiany czcionki, poniższy tekst powinien wyrenderować Craim Pro jako płynny zestaw wag od 400 do 500. Animacje CSS sprawiają, że tekst może płynnie zmieniać styl podczas interakcji.
Jeśli Twoja przeglądarka w pełni obsługuje zmienne czcionki (caniuse), ten tekst powinien wyrenderować Crimson Pro jako płynny zestaw wag od 400 do 500. Animacje CSS sprawiają, że tekst może płynnie zmieniać styl podczas interakcji.
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!

Pojedyncze style, np. waga

Bez specyfikacji stylu interfejs API udostępnia styl domyślny żądanej rodziny. Aby wysłać żądanie innego stylu, np. konkretnych wag, dodaj dwukropek (:) po nazwie rodziny czcionek, po której następuje lista słów kluczowych związanych z właściwością osi w kolejności alfabetycznej, znak (@) i co najmniej jedną listę wartości właściwości osi.

Te przykłady pokazują, jak to działa.

Czcionki Żądanie
Crimson Pro (domyślnie) https://fonts.googleapis.com/css2?family=Crimson+Pro
Crimson Pro – pogrubienie https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@700
Crimson Pro – pogrubienie https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;700
Crimson Pro – pogrubiona i pogrubiona kursywa https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,700;1,700

Czcionki Google wyświetlają wszystkie style dostępne dla każdej rodziny czcionek.

Styl domyślny

Jeśli w żądaniu nie określono pozycji lub zakresu osi, zostanie użyta pozycja domyślna. Domyślna pozycja na osi kursywy to 0 (normalnie), a na osi wagowej 400 (stała).

W przypadku rodzin z osiami, które nie zawierają pozycji domyślnej, żądania nieokreślające pozycji tych osi będą kończyć się niepowodzeniem. Gdy np. żądasz rodziny z osią wagi od 500 do 900, musisz określić pozycję wagi.

Niestandardowe wagi

Gdy używasz statycznych czcionek, style wagi są zwykle określane jako wielokrotności 100 (np. 300, 400, 700). Czcionki ze zmiennymi oferują zarówno standardowe, jak i pośrednie. Aby wyrenderować wagę pośrednią:

https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@450
Twoja przeglądarka prawdopodobnie nie obsługuje zmiennych zmiennych (caniuse). W przeglądarce, która obsługuje odmiany czcionki, poniższy tekst powinien renderować aplikację Crimson Pro przy wyróżniającej się wadze 400, 450 i 500.
Jeśli Twoja przeglądarka w pełni obsługuje zmienne czcionki (caniuse), ten tekst powinien renderować aplikację Crimson Pro przy wyróżniającej się wadze 400, 450 i 500.
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!
Tworzenie pięknego internetu!

Optymalizacja pod kątem czasu oczekiwania i rozmiaru pliku

Określ dokładnie, jakich stylów używasz. Interfejs API przekazuje żądane style za pomocą kompaktowego zestawu czcionek. Żądanie nieużywanych stylów może spowodować, że użytkownicy będą pobierać więcej danych czcionek, niż potrzebują, co spowoduje większe opóźnienie. Jeśli używasz tylko 3 konkretnych wag, określ je w żądaniu jako indywidualne style. Jeśli używasz stałego zakresu wag, określ ten zakres w żądaniu.

Użyj font-display

Właściwość font-display pozwala kontrolować, co się dzieje, gdy czcionka jest nadal wczytywana lub w innym przypadku niedostępna. Zwykle podanie wartości innej niż domyślna auto jest odpowiednie.

Przekaż odpowiednią wartość w parametrze display:

https://fonts.googleapis.com/css2?family=Crimson+Pro&display=swap

Optymalizowanie żądań czcionek

Często, jeśli chcesz używać czcionki internetowej w swojej witrynie lub aplikacji, z wyprzedzeniem wiesz, jakich liter potrzebujesz. Dzieje się tak często, gdy w logo lub nagłówku używasz czcionki internetowej.

W takich przypadkach rozważ określenie wartości text= w adresie URL żądania czcionki. Dzięki temu czcionki Google będą mogły zwrócić plik czcionki zoptymalizowany pod kątem Twojego żądania. W niektórych przypadkach może to zmniejszyć rozmiar pliku czcionki nawet o 90%.

Aby korzystać z tej funkcji, wystarczy dodać text= do żądania do interfejsu API. Jeśli na przykład w tytule swojego bloga używasz tylko operatora Conconsolata, możesz ustawić go jako wartość text=. Żądanie może wyglądać tak:

https://fonts.googleapis.com/css2?family=Comfortaa&text=Hello

Tak jak w przypadku wszystkich ciągów zapytań, wartość należy zakodować do adresu URL:

https://fonts.googleapis.com/css2?family=Comfortaa&text=Hello%20World

Ta funkcja działa też w przypadku czcionek międzynarodowych, umożliwiając określenie znaków UTF-8. Na przykład МHola! jest przedstawiane jako:

https://fonts.googleapis.com/css2?family=Comfortaa&text=%c2%a1Hola!

Pamiętaj, że parametr „text=' można określić tylko raz. Ma ona zastosowanie do wszystkich rodzin wskazanych w prośbie. Jeśli potrzebujesz różnych optymalizacji tekstu w różnych rodzinach, używaj osobnych żądań do interfejsu API.

Tworzenie URL-i interfejsu API

Dokładność

Ogólnie rzecz biorąc, zaktualizowany interfejs CSS API jest bardziej rygorystyczny w zakresie akceptowania żądań niż pierwotny interfejs API CSS.

Ogólne wskazówki:

  • Lista osi alfabetycznie (en-US język)
  • Grupy wartości osi (tzn. krotki) muszą zostać posortowane liczbowe
  • Kropki nie mogą się nakładać ani dotykać (np. wght 400..500 i 500..600)

Specyfikacja interfejsu API

/css2?family=<spec>[&family=<spec>...][&text=<text>][&display=<display>]

spec: <family_name>[:<axis_tag_list>@<axis_tuple_list>]

family_name: nazwa rodziny czcionek

axis_tag_list: <axis>[,<axis>...] // Sorted alphabetically (en-US locale)

axis: tag osi, np. ital, wdth, wght

axis_tuple_list: <axis_tuple>[;<axis_tuple>...]

axis_tuple: <value>[,<value>...] // Same length as axis_tag_list

value: <range> | <float>

range: <float>..<float>

float: wartość w zakresie odpowiedniej osi

text: tekst, który będzie wyświetlany w żądanym kroju pisma

display: auto | block | swap | fallback | optional

Obsługa starszych przeglądarek

Przeglądarki, które nie obsługują zmiennych czcionek, mogą nie wyświetlać projektu zgodnie z oczekiwaniami. Sprawdź obsługę zmiennych zmiennych w przeglądarkach na caniuse.

Stosując postępowe ulepszenia, możesz uniknąć nieoczekiwanego zachowania w tych starszych przeglądarkach. Używaj zapytań @supports w CSS, by odblokować funkcje zmiennych zmiennych.

W tym przykładzie chcemy wykorzystać wagę 450 tekstu Markazi, ale jeśli nie obsługujemy funkcji czcionek zmiennych, trzeba będzie wrócić do trybu zwykłego (wagi 400) lub średniego (wagi 500):

<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Markazi+Text:wght@450" />

<style>
  * {
    font-family: 'Markazi Text';
    font-weight: 400;
  }

  @supports (font-variation-settings: "wght" 450) {
    * {
      font-family: 'Markazi Text';
      font-weight: 450;
    }
  }
</style>

Żądanie CSS Markazi+Text:wght@450 wysyła wagę 450 do klientów, które obsługują zmienne czcionki, i 400, i 500 dla klientów, które nie obsługują tej funkcji. Ogólnie reklamy zastępcze w zakresie żądania będą dostępne w starszych przeglądarkach.

Axis Zachowanie awaryjne
ital 0, 1
wght 100, 200, 300, 400, 500, 600, 700, 800, 900

Te przykłady pokazują, jakie style byłyby dostępne w starszych przeglądarkach dla kilku różnych żądań.

Żądanie Style dostępne w starszych przeglądarkach
ital@0 ital@0
wght@500 wght@500
wght@432 wght@400;500
wght@440..560 wght@400;500;600

Dostępne czcionki zmiennych

Tabela zmiennych czcionek dostępnych w API v2 znajduje się tutaj.

Więcej informacji

  • Pełną listę rodzin czcionek dostępnych w interfejsie Google Fonts API znajdziesz w Google Fonts.
  • Więcej informacji o działaniu interfejsu Google Fonts API znajdziesz na stronie Uwagi techniczne.