Własność CSS font-variant-alternates

> Dodaj do ulubionych

Własność CSS font-variant-alternates umożliwia wybór obecnych w fontach alternatywnych zestawów glifów, którym nadano przyjazną dla użytkownika nazwę za pomocą reguły @font-feature-values.

Niektóre fonty, oprócz domyślnego zestawu glifów, mogą zawierać ich różne alternatywne wersje, na przykład wersję historyczną albo kaligraficzną itd. Dzięki własności font-variant-alternates można w wygodny sposób korzystać z tych dodatkowych odmian znaków.

Dostępność i liczba alternatywnych zestawów glifów zależą od fontu. Jeśli dana rodzina fontów zawiera alternatywne wersje glifów określonego rodzaju, to są one ponumerowane od 1 i za pomocą tych indeksów można się do nich odnosić na dwa sposoby.

Pierwsza, mniej zalecana, metoda polega na użyciu własności font-feature-settings, która umożliwia korzystanie z różnych zaawansowanych właściwości fontów OpenType. Na przykład poniższa deklaracja wybiera pierwszą kaligraficzną wersję kroju pisma, który jest w użyciu (nazwa właściwości OpenType swsh pochodzi od angielskiego słowa swash oznaczającego właśnie pismo kaligraficzne):

p {
  font-feature-settings: "swsh" 1;
}

Druga, bardziej zalecana, technika polega na użyciu reguły @font-feature-values, która umożliwia zdefiniowanie aliasu dla wybranego indeksu alternatywnego zestawu glifów i użycie tego aliasu jako wartości własności font-variant-alternates. Jest to wygodniejszy i przyjaźniejszy dla użytkownika sposób posługiwania się dodatkowymi glifami. Spójrz na poniższy przykład:

@font-face {
  font-family: ZapFinoExtraLTPro;
  src: url("ZapfinoExtraLTPro.otf");
}

@font-feature-values "ZapFinoExtraLTPro" {
  @swash {
    kaligrafia: 1;
  }
}
p {
  font-family: "ZapFinoExtraLTPro";
  font-variant-alternates: swash(kaligrafia);
}

Rodzina fontów Zap Fino Extra LT Pro zawiera zestaw glifów kaligraficznych, który został użyty w powyższym przykładzie. Normalnie tekst wyrenderowany przy użyciu tego fontu wygląda tak*:

Tekst krojem pisma Zap Fino Extra LT Pro w normalnej wersji

A tak wygląda tekst wyrenderowany przy użyciu kaligraficznej wersji glifów z tego fontu:

Tekst krojem pisma Zap Fino Extra LT Pro w wersji kaligraficznej

Można powiedzieć, że własność font-variant-alternates i reguła @font-feature-values to wzajemnie uzupełniająca się nierozłączna para.

Wartości i składnia

Wartością własności font-variant-alternates może być słowo kluczowe normal albo dowolna liczba (nie mniejsza od jeden) rozdzielanych spacjami elementów z poniższej listy:

normal
Wyłącza alternatywne zestawy glifów.
historical-forms
To słowo kluczowe włącza historyczne formy znaków, czyli takie, które były używane w przeszłości, ale już wyszły z użycia. Odpowiada ono tagowi OpenType hist.
annotation(identyfikator)

Włącza różne adnotacyjne odmiany glifów, na przykład cyfry w okręgu, prostokącie, rombie itd. Parametr tej funkcji jest aliasem numeru właściwości OpenType nalt zdefiniowanym w regule @font-feature-values np.:

@font-feature-values "JakisFont" {
  @annotation {
    adnotacje: 3;
  }
}
p {
  font-family: "JakisFont";
  font-variant-alternates: annotation(adnotacje);
}
character-variant(identyfikator)

Włącza specyficzne odmiany stylistyczne znaków, które nie muszą wspólnie tworzyć spójnego zestawu, tzn. mogą całkowicie różnić się wyglądem. Parametr tej funkcji jest aliasem właściwości OpenType cvindeks zdefiniowanym w regule @font-feature-values (obecnie OpenType przewiduje wartości od cv01 do cv99), np.:

@font-feature-values "JakisFont" {
  @character-variant {
    wariant: 51;
  }
}
p {
  font-family: "JakisFont";
  font-variant-alternates: character-variant(wariant);
}
ornaments(identyfikator)

Włącza ornamenty, czyli zdobnicze elementy używane w typografii. Parametr tej funkcji jest aliasem numeru właściwości OpenType ornm zdefiniowanym w regule @font-feature-values np.:

@font-feature-values "ZapFinoExtraLTPro" {
  @ornaments {
    ornamenty: 1;
  }
}
p {
  font-family: "ZapFinoExtraLTPro";
  font-variant-alternates: ornaments(ornamenty);
}

Poniższy zrzut ekranu przedstawia kilka ornamentów obecnych w foncie Zap Fino Extra LT Pro:

Niektóre ornamenty dostępne w foncie Zap Fino Extra LT Pro
styleset(identyfikator)

Włącza alternatywne stylistyczne podzbiory znaków, np. różne warianty małych liter. Parametr tej funkcji jest aliasem właściwości OpenType ssindeks zdefiniowanym w regule @font-feature-values (obecnie OpenType przewiduje wartości od ss01 do ss20), np.:

@font-feature-values "JakisFont" {
  @styleset {
    zestaw-stylistyczny: 16;
  }
}
p {
  font-family: "JakisFont";
  font-variant-alternates: styleset(zestaw-stylistyczny);
}
stylistic(identyfikator)

Włącza alternatywne wersje stylistyczne pojedynczych znaków. Parametr tej funkcji jest aliasem numeru właściwości OpenType salt zdefiniowanym w regule @font-feature-values np.:

@font-feature-values "JakisFont" {
  @stylistic {
    odmiana-stylistyczna: 4;
  }
}
p {
  font-family: "JakisFont";
  font-variant-alternates: stylistic(odmiana-stylistyczna);
}
swash(identyfikator)
Włącza kaligraficzną odmianę znaków. Parametr tej funkcji jest aliasem numeru właściwości OpenType swsh zdefiniowanym w regule @font-feature-values. Przykład jej użycia znajduje się na początku tej strony.

Zastosowanie

Własność CSS font-variant-alternates ma zastosowanie do wszystkich elementów HTML.

Podsumowanie

ZastosowanieWszystkie elementy HTML
Obsługiwane wartości
  • Słowa kluczowe: normal i historical-forms
  • Funkcje: annotation(), character-variant(), ornaments(), styleset(), stylistic(), swash()
Wartość początkowanormal
DziedziczenieTak
SpecyfikacjaCSS Fonts Module Level 4, własność font-variant-alternates

* Źródło przypisu: Jan Himilsbach, Działka rosyjskiego boga