Reguła CSS @font-feature-values umożliwia zdefiniowanie nazwy dla wybranej właściwości fontu OpenType, aby można jej było wygodnie używać we własności font-variant-alternates
.
Przykład
W poniższym przykładzie za pomocą reguły @font-feature-values
nadano nazwę kaligrafia kaligraficznej wersji znaków fontu Zap Fino Extra LT Pro, której następnie użyto we własności font-variant-alternates
.
Wartości i składnia
Konstrukcja reguły @font-variant-values
składa się z kilku części: listy nazw fontów lub rodzin fontów i bloku zawierającego zestaw specjalnych „podreguł @” reprezentujących właściwości fontów OpenType, w których znajdują się deklaracje wiążące nazwy zdefiniowane przez użytkownika z indeksami właściwości fontów OpenType:
Na przykład:
W tym przykładzie użyto tylko jednego fontu – ZapFinoExtraLTPro. Jeśli ma być ich więcej, ich nazwy należy rozdzielić przecinkami oraz należy pamiętać, że dobrą praktyką jest umieszczanie w cudzysłowie nazw składających się z więcej niż jednego wyrazu. Nazwy fontów rodzajowych i systemowych są niedozwolone. Jeśli lista fontów zawiera błąd, to cała reguła zostaje uznana za błędną i jest ignorowana przez przeglądarkę.
Użyta podreguła @swash
odnosi się do kaligraficznej wersji znaków, jeśli font taką zawiera. Zawiera ona deklarację, która składa się ze słowa kaligrafia
(nazwa wybrana przez użytkownika, może być dowolna) i liczby 1
– numeru wybranego zestawu znaków kaligraficznych (font może zawierać tylko jeden taki zestaw, kilka takich zestawów albo żadnego).
Takich podreguł może być kilka, jeśli font zawiera więcej zestawów znaków określonego typu i projektant chce każdemu z nich nadać przyjazną dla użytkownika nazwę, lub jeśli projektant chce zdefiniować nazwy dla różnych rodzajów zestawów znaków.
Nazwa zdefiniowana przez użytkownika musi być identyfikatorem CSS i w nazwach tych jest rozróżniana wielkość liter, np. coś i Coś to dwie różne nazwy.
Poniżej znajduje się lista dostępnych właściwości fontów OpenType (odpowiadają one wartościom własności font-variant-alternates
o takich samych nazwach):
- font-display
- Określa domyślną wartość dla deskryptora
font-display
reguły@font-face
odnoszącej się do tej samej rodziny fontów. Wartość tego deskryptora zostanie użyta tylko wtedy, gdy nie zostanie zdefiniowana analogiczna wartość w regule@font-face
. Jeśli deskryptorfont-display
nie zostanie zdefiniowany ani w regule@font-face
ani w@font-feature-values
, domyślnie zostanie mu nadana wartośćauto
. - @historical-forms
- Historyczne formy znaków, czyli takie, które były używane w przeszłości, ale już wyszły z użycia.
- @annotation
- Adnotacyjne odmiany glifów, na przykład cyfry w okręgu, prostokącie, rombie itd.
- @character-variant
- Specyficzne odmiany stylistyczne znaków, które nie muszą wspólnie tworzyć spójnego zestawu, tzn. mogą całkowicie różnić się wyglądem. Deklaracja może mieć jedną lub dwie wartości. Jeśli jest jedna wartość, to włącza ona określoną odmianę znaków, natomiast w przypadku dwóch wartości pierwsza włącza określoną właściwość i ustawia ją na drugą, np.:
nazwa: 3 5
oznacza cv03=5. - @ornaments
- Ornamenty, czyli zdobnicze elementy używane w typografii/
- @styleset
- Alternatywne stylistyczne podzbiory znaków, np. różne warianty małych liter. W tym przypadku deklaracja może zawierać kilka wartości, które włączają odpowiednie podzbiory znaków, np.:
- @stylistic
- Alternatywne wersje stylistyczne pojedynczych znaków.
- @swash
- Kaligraficzna odmiana znaków.