@font-feature-values

CSS правило @font-feature-values позволяет использовать общее имя в свойстве font-variant-alternates (en-US) для функций, которые по разному активируются в OpenType. Это может помочь упростить ваш CSS при использовании нескольких шрифтов.

/* Правило для "хорошего стиля" в Font One */
@font-feature-values Font One {
  @styleset {
    nice-style: 12;
  }
}

/* Правило для "хорошего стиля" в Font Two */
@font-feature-values Font Two {
  @styleset {
    nice-style: 4;
  }
}/* Применение правила с единственным объявлением */
.nice-look {
  font-variant-alternates: styleset(nice-style);
}

Правило @font-feature-values может использоваться как на вернём уровне вашего CSS так и внутри любого условного CSS правила.

Синтаксис

Блоки значений функций

@swash
Устанавливает имя функции, которая будет работать с функциональной записью swash() (en-US) для font-variant-alternates (en-US). Определение значения функции swash допускает только одно значение: ident1: 2 является действительным, но ident2: 2 4 нет.
@annotation
Устанавливает имя функции, которая будет работать с функциональной записью annotation() (en-US) для font-variant-alternates (en-US). Определение значения функции допускает только одно значение: ident1: 2 действительным , но ident2: 2 4 нет.
@ornaments
Устанавливает имя функции, которая будет работать с функциональной записью ornaments() (en-US) для font-variant-alternates (en-US). Определение значения функции ornaments допускает только одно значение: ident1: 2 является действительным, но ident2: 2 4 нет.
@stylistic
Specifies a feature name that will work with the stylistic() (en-US) functional notation of font-variant-alternates (en-US). A stylistic feature value definition allows only one value: ident1: 2 is valid, but ident2: 2 4 isn't.
@styleset
Specifies a feature name that will work with the styleset() (en-US) functional notation of font-variant-alternates (en-US). A stylset feature value definition allows an unlimited number of values: ident1: 2 4 12 1 maps to the OpenType values ss02, ss04, ss12, and ss01. Note that values higher than 99 are valid, but don't map to any OpenType values and are ignored.
@character-variant
Specifies a feature name that will work with the character-variant() (en-US) functional notation of font-variant-alternates (en-US). A character-variant feature value definition allows either one or two values: ident1: 3 maps to cv03=1, and ident2: 2 4 maps to cv02=4, but ident2: 2 4 5 is invalid.

Формальный синтаксис

@font-feature-values <family-name># (en-US) {
  <feature-value-block-list>
}

где
<family-name> = <string> (en-US) | (en-US) <custom-ident>+ (en-US)
<feature-value-block-list> = <feature-value-block>+ (en-US)

где
<feature-value-block> = <feature-type> '{ (en-US)' <feature-value-declaration-list> '}'

где
<feature-type> = @stylistic | (en-US) @historical-forms | (en-US) @styleset | (en-US) @character-variant | (en-US) @swash | (en-US) @ornaments | (en-US) @annotation
<feature-value-declaration-list> = <feature-value-declaration>

где
<feature-value-declaration> = <custom-ident>: <integer>+ (en-US);

Спецификации

Спецификация Статус Комментарий
CSS Fonts Module Level 3
Определение '@font-feature-values' в этой спецификации.
Рекомендация Начальное определение.

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • Свойство font-variant-alternates (en-US) которое использует значения, определённые этим правилом.