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 detaillierte Steuerung der Merkmale von variablen Schriftarten, indem Sie die vier Buchstaben umfassenden Achsenbezeichnungen der Merkmale, die Sie variieren möchten, zusammen mit ihren Werten angeben.

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, serif;
}

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 der folgenden Formen annehmen:

normal

Der Text wird mit den Standardeinstellungen layoutiert.

<string> <number>

Beim Rendern des Textes wird die Liste der variablen Schriftachsenbezeichnungen an die Text-Layout-Engine übergeben, um die Schriftmerkmale 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>, die den zu setzenden Achsenwert angibt, bestehen. Wenn das <string> mehr oder weniger Zeichen hat oder Zeichen außerhalb des Bereichs von U+20 bis U+7E enthält, ist die gesamte Eigenschaft ungültig. Die <number> kann je nach im Font verfügbarer Wertebereich, der vom Schriftgestalter definiert wird, fraktional oder negativ sein.

Beschreibung

Diese Eigenschaft ist ein niedrigstufiger Mechanismus, der entwickelt wurde, um variable Schriftartenmerkmale einzustellen, wenn keine andere Möglichkeit besteht, diese Merkmale zu aktivieren oder darauf zuzugreifen. Sie sollten sie nur verwenden, wenn keine grundlegenden Eigenschaften vorhanden sind, um diese Merkmale einzustellen (z.B. font-weight, font-style).

Mit font-variation-settings gesetzte Schrifteigenschaften überschreiben immer die mit den entsprechenden grundlegenden Schrifteigenschaften gesetzten, wie z.B. font-weight, unabhängig davon, wo sie in der Kaskade erscheinen. In einigen Browsern ist dies derzeit nur der Fall, wenn die @font-face-Deklaration einen font-weight-Bereich enthält.

Registrierte und benutzerdefinierte Achsen

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

Registrierte Achsen sind die am häufigsten anzutreffenden — sie sind so verbreitet, dass die Autoren der Spezifikation sie standardisieren wollten. Dies bedeutet jedoch nicht, dass der Ersteller alle diese in seine Schriftart aufnehmen muss.

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

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

Benutzerdefinierte Achsen können alles variieren, was der Schriftgestalter für seine Schriftart variieren möchte, zum Beispiel Aufstiegs- oder Abstiegsgrößen, die Größe der Serifen oder alles andere, was sie sich vorstellen können. Jede Achse kann verwendet werden, solange sie ein einzigartiges 4-Zeichen-Achsen-Tag hat. Einige werden im Laufe der Zeit häufiger werden und könnten sogar registriert werden.

Hinweis: Registrierte Achsentags werden mit Kleinbuchstaben identifiziert, während benutzerdefinierte Achsen Großbuchstaben zugewiesen werden sollten. Beachten Sie, dass Schriftgestalter nicht gezwungen sind, diese Praxis zu befolgen, und einige werden dies nicht tun. Das Wichtige hierbei ist, dass Achsentags groß-/kleinschreibungssensitiv sind.

Um variable Schriftarten auf Ihrem Betriebssystem zu verwenden, müssen Sie sicherstellen, dass es auf dem neuesten Stand ist. Zum Beispiel benötigen Linux-Betriebssysteme die neueste Linux FreeType-Version, und macOS vor 10.13 unterstützt keine variablen Schriftarten. Wenn Ihr Betriebssystem nicht auf dem neuesten Stand ist, können Sie variable Schriftarten in Webseiten oder den Firefox Developer Tools nicht 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 weitere Beispiele für variablen Schriftarten in unserem Leitfaden für variable Schriftarten finden.

Kontrolle des variablen Schriftgewichts (wght)

Klicken Sie auf "Play" in den unten stehenden Code-Blöcken, um das Beispiel im MDN Playground zu bearbeiten. Bearbeiten Sie das CSS, um mit verschiedenen Schriftgewichtswerten zu spielen. 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);
}

Kontrolle der variablen Schriftneigung (slnt)

Klicken Sie auf "Play" in den unten stehenden Code-Blöcken, um das Beispiel im MDN Playground zu bearbeiten. Bearbeiten Sie das CSS, um mit verschiedenen Schriftneigungs-/Schrägwerten zu spielen.

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