font-variation-settings

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2018.

Die font-variation-settings CSS Eigenschaft bietet eine Low-Level-Steuerung über die Merkmale von variablen Schriften, indem Sie die vier Buchstaben Achsennamen der Merkmale, die Sie variieren möchten, zusammen mit ihren Werten angeben können.

Probieren Sie es aus

font-variation-settings: "wght" 50;
font-variation-settings: "wght" 850;
font-variation-settings: "wdth" 25;
font-variation-settings: "wdth" 75;
<section id="default-example">
  <p id="example-element">
    ...it would not be wonderful to meet a Megalosaurus, forty feet long or so,
    waddling like an elephantine lizard up Holborn Hill.
  </p>
</section>
@font-face {
  src: url("/shared-assets/fonts/variable-fonts/AmstelvarAlpha-VF.ttf");
  font-family: Amstelvar;
  font-style: normal;
}

p {
  font-size: 1.5rem;
  font-family: Amstelvar;
}

Syntax

css
/* Use the default settings */
font-variation-settings: normal;

/* Set values for variable font axis names */
font-variation-settings: "xhgt" 0.7;

/* Global values */
font-variation-settings: inherit;
font-variation-settings: initial;
font-variation-settings: revert;
font-variation-settings: revert-layer;
font-variation-settings: unset;

Werte

Der Wert dieser Eigenschaft kann eine von zwei Formen annehmen:

normal

Text wird mit den Standardeinstellungen dargestellt.

<string> <number>

Beim Rendern von Text wird die Liste der Variablen-Schriftachsen-Namen an die Text-Layout-Engine übergeben, um Schrifteigenschaften zu aktivieren oder zu deaktivieren. Jede Einstellung besteht immer aus einem oder mehreren Paaren, die aus einem <string> von 4 ASCII-Zeichen gefolgt von einer <number> bestehen, die den Achsenwert angibt. Wenn das <string> mehr oder weniger Zeichen hat oder Zeichen außerhalb des Codepoint-Bereichs U+20 - U+7E enthält, ist die gesamte Eigenschaft ungültig. Das <number> kann abhängig vom verfügbaren Wertebereich in Ihrer Schrift, wie vom Schriftgestalter definiert, fraktional oder negativ sein.

Beschreibung

Diese Eigenschaft ist ein Low-Level-Mechanismus, der entwickelt wurde, um variable Schriftartenfunktionen zu setzen, für die keine andere Möglichkeit besteht, diese Funktionen zu aktivieren oder darauf zuzugreifen. Sie sollten sie nur verwenden, wenn es keine grundlegenden Eigenschaften gibt, um diese Funktionen zu setzen (z.B. font-weight, font-style).

Schriftmerkmale, die mit font-variation-settings gesetzt wurden, werden immer die mit den entsprechenden grundlegenden Schriftarten-Eigenschaften gesetzten Merkmale überschreiben, z.B. font-weight, egal wo sie in der Cascade erscheinen. In einigen Browsern ist dies derzeit nur wahr, wenn die @font-face Deklaration einen font-weight Bereich enthält.

Registrierte und benutzerdefinierte Achsen

Variable Schriftachsen gibt es in zwei Typen: registriert und benutzerdefiniert.

Registrierte Achsen sind die am häufigsten anzutreffenden — sie sind so häufig, dass die Autoren der Spezifikation fühlten, dass es sich lohnt, sie zu standardisieren. Beachten Sie, dass dies nicht bedeutet, dass der Autor alle diese in seine Schrift einbeziehen muss.

Hier sind die registrierten Achsen zusammen mit ihren entsprechenden CSS-Eigenschaften:

Achsen-Tag CSS-Eigenschaft
"wght" font-weight
"wdth" font-stretch
"slnt" (slant) font-style: oblique + angle
"ital" font-style: italic
"opsz" font-optical-sizing

Benutzerdefinierte Achsen können alles sein, was der Schriftgestalter in seiner Schrift variieren möchte, zum Beispiel Auf- oder Absteigerhöhen, die Größe der Serifen oder alles andere, was sie sich vorstellen können. Jede Achse kann verwendet werden, solange sie eine eindeutige 4-Zeichen-Achse erhält. Einige werden häufiger vorkommen und könnten im Laufe der Zeit sogar registriert werden.

Hinweis: Registrierte Achsen-Tags werden mit Kleinbuchstaben identifiziert, während benutzerdefinierte Achsen Großbuchstaben-Tags erhalten sollten. Beachten Sie, dass Schriftgestalter nicht gezwungen sind, diese Praxis in irgendeiner Weise zu befolgen, und einige werden es nicht tun. Das wichtige Konzept hierbei ist, dass Achsen-Tags zwischen Groß- und Kleinschreibung unterscheiden.

Um variable Schriftarten auf Ihrem Betriebssystem zu verwenden, müssen Sie sicherstellen, dass es auf dem neuesten Stand ist. Beispielsweise benötigen Linux-Betriebssysteme die neueste Version von Linux FreeType, und macOS vor 10.13 unterstützt keine variablen Schriftarten. Wenn Ihr Betriebssystem nicht auf dem neuesten Stand ist, werden Sie nicht in der Lage sein, variable Schriftarten auf Webseiten oder in den Firefox-Entwicklerwerkzeugen zu verwenden.

Formale Definition

Anfangswertnormal
Anwendbar aufalle Elemente. Auch anwendbar auf ::first-letter und ::first-line.
VererbtJa
Berechneter Wertwie angegeben
AnimationstypTransformation

Formale Syntax

font-variation-settings = 
normal |
[ <opentype-tag> <number> ]#

<opentype-tag> =
<string>

Beispiele

Sie können eine Reihe anderer Beispiele für variable Schriftarten in unserem Leitfaden zu variablen Schriften finden.

Steuerung des variablen Schriftgewichts (wght)

Klicken Sie auf "Play" in den untenstehenden Codeblöcken, um das Beispiel im MDN Playground zu bearbeiten. Bearbeiten Sie das CSS, um mit verschiedenen Schriftgewichtswerten zu experimentieren. Sehen Sie, was passiert, wenn Sie einen Wert außerhalb des Gewichtsbereichs angeben.

css
/* weight range is 300 to 900 */
.p1 {
  font-weight: 625;
}

/* weight range is 300 to 900 */
.p2 {
  font-variation-settings: "wght" 625;
}

/* Adjust with slider & custom property */
.p3 {
  font-variation-settings: "wght" var(--text-axis);
}

Steuerung der variablen Schriftneigung (slnt)

Klicken Sie auf "Play" in den untenstehenden Codeblöcken, um das Beispiel im MDN Playground zu bearbeiten. Bearbeiten Sie das CSS, um mit verschiedenen Schriftneigungs-/Schrägwerten zu experimentieren.

css
/* slant range is from 0deg to 12deg */
.p1 {
  font-style: oblique 14deg;
}

/* slant range is from 0 to 12 */
.p2 {
  font-variation-settings: "slnt" 12;
}

/* Adjust with slider & custom property */
.p3 {
  font-variation-settings: "slnt" var(--text-axis);
}

Spezifikationen

Specification
CSS Fonts Module Level 4
# font-variation-settings-def

Browser-Kompatibilität

Siehe auch