Typografie

Wenn Sie für Ihren Text keine Stile festlegen, wenden Browser ihre eigenen Standardstile an. Diese werden als User-Agent-Stylesheets bezeichnet und können von Browser zu Browser variieren. Nutzer können auch ihre eigenen Einstellungen für die Anzeige von Text festlegen.

Wenn Sie keine Zeilenlänge angeben, setzen Browser die Textzeilen am Bildschirmrand um. Text im Web ist also standardmäßig responsiv und passt sich an den Darstellungsbereich des Nutzers an.

Aber nur weil Text auf einen Bildschirm passt, heißt das nicht, dass er bequem zu lesen ist. Bei einer guten Typografie geht es darum, Ihren Text angemessen darzustellen. Die Typografie umfasst mehr als nur die Auswahl geeigneter Schriftarten. Sie müssen die Präferenzen der Nutzenden, die Textgröße, die Zeilenlänge und den Abstand zwischen den Textzeilen berücksichtigen.

Textgröße

Die Schriftgröße von Text im Web ist schwer zu erkennen.

Wenn jemand ein kleines Display verwendet, ist es wahrscheinlich, dass das Display nur eine Handlänge entfernt ist.

Je größer die Bildschirme sind, desto schwieriger wird es, eine Verbindung herzustellen. Ein Laptop-Bildschirm ist wahrscheinlich ziemlich nah am Betrachter, aber ein Breitbild-Desktop-Bildschirm ist ungefähr genauso groß wie ein Fernsehbildschirm. Menschen sitzen eine Armlänge von einem Desktop-Bildschirm entfernt, sitzen aber viel weiter vom Fernseher entfernt.

Auch wenn Sie nicht genau wissen können, wie weit jemand von einem Bildschirm entfernt ist, können Sie versuchen, Textgrößen zu verwenden, die sich hoffentlich als angemessen erweisen. Verwenden Sie kleinere Textgrößen für kleinere Bildschirme und größere Textgrößen für größere Bildschirme.

Mit Medienabfragen können Sie die Eigenschaft font-size ändern, wenn der Bildschirm größer wird.

@media (min-width: 30em) {
  html {
    font-size: 125%;
  }
}

@media (min-width: 40em) {
  html {
    font-size: 150%;
  }
}

@media (min-width: 50em) {
  html {
    font-size: 175%;
  }
}

@media (min-width: 60em) {
  html {
    font-size: 200%;
  }
}

Text skalieren

Das Umschalten zwischen festen Textgrößen an bestimmten Haltepunkten ist ziemlich kompliziert. Ein reaktionsschnellerer Ansatz besteht darin, die Textgröße von der Breite des Geräts des Nutzers beeinflussen zu lassen.

In CSS steht die Einheit vw für „viewport width“ (Darstellungsbereichsbreite). Das Verbinden von Schriftgrößen mit dem Die Breite des Darstellungsbereichs bedeutet, dass der Text proportional zur Breite des Browsers größer und kleiner wird. Dadurch lässt sich nur schwer vorhersagen, wie groß der Text in einer bestimmten Breite sein wird. Sie wissen jedoch, dass die Textgröße an die Browserbreite des Nutzers angepasst wird.

Es ist wichtig, dass du in einer Schriftgrößendeklaration nicht das vw an sich verwendest.

Don'ts
html {
  font-size: 2.5vw;
}

In diesem Fall kann der Nutzer die Größe des Textes nicht ändern. Die Größe des Textes kann angepasst werden, wenn Sie eine relative Einheit verwenden, z. B. em, rem oder ch. Die CSS-Funktion calc() ist dafür perfekt geeignet.

Do
html {
  font-size: calc(0.75rem + 1.5vw);
}

Der Browser übernimmt die Berechnungen. Das macht es schwierig, genau vorherzusagen, wie die Textgröße bei einer bestimmten Breite sein wird, aber Sie wissen, dass die Textgröße im richtigen Bereich liegt. Der Browser des Nutzers findet die genauen Textgrößenberechnungen.

Jetzt besteht die Möglichkeit, dass der Text auf schmalen Displays zu klein und auf breiten Bildschirmen zu groß wird.

Fixierungstext

Wahrscheinlich möchten Sie nicht, dass Ihr Text zu klein und zu extrem wird. Mit der CSS-Funktion clamp() können Sie festlegen, wo die Skalierung beginnt und endet. Dadurch wird die Skalierung auf einen bestimmten Bereich „beschränkt“.

Die clamp()-Funktion entspricht der calc()-Funktion, akzeptiert jedoch drei Werte. Der mittlere Wert ist mit dem identisch, den Sie an calc() übergeben. Der Anfangswert gibt die Mindestgröße an, in diesem Fall 1rem, damit die vom Nutzer bevorzugte Schriftgröße nicht unterschritten wird. Der Schlusswert gibt die maximale Größe an.

html {
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
}

Jetzt wird die Textgröße je nach Bildschirm des Nutzers verkleinert und vergrößert. Sie wird jedoch nie unter 1rem oder über 2rem liegen.

Zeilenlänge

Das Web ist keine Printversion, aber wir können daraus etwas lernen und sie auf das Web anwenden.

In seinem klassischen Buch The Elements of Typographic Style sagt Robert Bringhurst Folgendes zur Linienlänge (oder Measure):

Alle Zeichen zwischen 45 und 75 Zeichen werden allgemein als zufriedenstellende Zeilenlänge für eine einspaltige Seitenreihe mit Serifentext und Schriftgröße angesehen. Die 66-stellige Zeile, die sowohl Buchstaben als auch Leerzeichen umfasst, gilt weithin als ideal. Bei mehrspaltigen Arbeiten sind 40 bis 50 Zeichen besser.

Sie können die Zeilenlänge nicht direkt in CSS festlegen. Es gibt keine line-length-Property. Sie können jedoch verhindern, dass Text zu breit wird, indem Sie die Breite des Containers einschränken. Die Property max-inline-size ist dafür perfekt geeignet.

Legen Sie die Zeilenlängen nicht mit einer festen Einheit wie px fest. Nutzer können ihre Schriftgröße nach oben und unten skalieren und die Linienlängen sollten entsprechend angepasst werden. Verwenden Sie eine relative Einheit wie rem oder ch.

Don'ts
article {
  max-inline-size: 700px;
}
Do
article {
  max-inline-size: 66ch;
}

Wenn Sie ch-Einheiten für die Breite verwenden, werden neue Zeilen beim 66. Zeichen dieser Schriftgröße umgebrochen.

Zeilenhöhe

In CSS gibt es zwar kein line-length-Attribut, dafür aber eine line-height-Property.

Kürzere Textzeilen können größere line-height-Werte haben. Wenn Sie jedoch große line-height-Werte für lange Textzeilen verwenden, ist es für das Auge schwer, vom Ende einer Zeile zum Anfang der nächsten zu gelangen.

article {
  max-inline-size: 66ch;
  line-height: 1.65;
}
blockquote {
  max-inline-size: 45ch;
  line-height: 2;
}

Verwenden Sie für Ihre line-height-Deklarationen Werte ohne Einheit. Dadurch wird sichergestellt, dass die Zeilenhöhe relativ zur font-size ist.

Don'ts
line-height: 24px;
Do
line-height: 1.5;

Kombinationen und Skalierung

Denken Sie daran, die Hierarchie beim Erstellen Ihrer Benutzeroberflächen zu priorisieren, um die Übersichtlichkeit und den Seitenfluss zu verbessern. Eine gute Möglichkeit dafür ist eine in Ihr Designsystem integrierte Typografieskala.

Web-Schriftarten

Ein Schriftbild ist wie eine Stimme für Ihre Wörter. Die längste Zeit im Web gab es nur sehr wenige Schriftartoptionen. Die einzigen Optionen waren Systemschriftarten. Jetzt können Sie jedoch eine Webschriftart auswählen, die zu Ihrem Content passt.

Mithilfe von @font-face kannst du Browsern mitteilen, wo sie deine Web Font-Dateien finden. Verwende WOFF2 als Webschriftart. Es wird gut unterstützt und erzielt die besten Leistungssteigerungen.

@font-face {
  font-family: Roboto;
  src: url('/fonts/roboto-regular.woff2') format('woff2');
}
body {
  font-family: Roboto, sans-serif;
}

Jede hinzugefügte Webschriftartdatei kann jedoch die Nutzererfahrung beeinträchtigen, da sich dadurch die Seitenladezeit erhöht. Denken Sie daran, dass es beim Design nicht nur darum geht, wie die endgültigen Pixel aussehen. Wie schnell diese Pixel dargestellt werden, ist ein wichtiger Bestandteil der User Experience. Ein schnelles Erlebnis ist auch eine gute User Experience.

Schriftart wird geladen

Sie können festlegen, dass Browser so schnell wie möglich mit dem Herunterladen einer Schriftartdatei beginnen. Fügen Sie dem head-Element Ihres Dokuments ein link-Element hinzu, das auf Ihre Webfont-Datei verweist. Ein rel-Attribut mit dem Wert preload weist den Browser an, diese Datei zu priorisieren. Ein as-Attribut mit dem Wert font teilt dem Browser mit, um welche Art von Datei es sich handelt. Mit dem Attribut type können Sie noch genauere Angaben machen.

<link href="/fonts/roboto-regular.woff2" type="font/woff2" 
  rel="preload" as="font" crossorigin>

Sie müssen das Attribut crossorigin auch dann angeben, wenn Sie die Schriftartdateien selbst hosten.

Mit der CSS-Eigenschaft font-display teilen Sie dem Browser mit, wie die Umstellung von einer Systemschrift auf eine Webschriftart gesteuert werden soll. Sie können festlegen, dass erst dann Text angezeigt wird, wenn die Webschriftart geladen wurde. Sie können die Systemschriftart sofort anzeigen und nach dem Laden zur Webschriftart wechseln. Beide Strategien haben ihre Nachteile. Wenn Sie mit dem Anzeigen von Text warten, bis die Webschriftart heruntergeladen ist, sehen Nutzer möglicherweise frustrierend lange auf eine leere Seite. Wenn Sie den Text zuerst in einer Systemschriftart anzeigen und dann zur Webschrift wechseln, kann es bei den Nutzern zu irritierenden Verschiebungen des Inhalts auf der Seite kommen.

Ein guter Kompromiss besteht darin, eine kurze Zeit zu warten, bevor Text angezeigt wird. Wenn die Webschriftart geladen wird, bevor diese Zeit abgelaufen ist, wird der Text in der Webschriftart ohne Inhaltsverschiebungen angezeigt. Wurde die Webschriftart auch nach Ablauf der Zeit noch nicht geladen, wird der Text in der Systemschriftart angezeigt, damit der Nutzer den Inhalt zumindest lesen kann.

Verwenden Sie den font-display-Wert swap, wenn die Webschriftart beim endgültigen Laden der Webschriftart die Systemschrift dennoch ersetzen soll.

body {
  font-family: Roboto, sans-serif;
  font-display: swap;
}

Verwenden Sie den font-display-Wert fallback, wenn Sie die Systemschrift beibehalten möchten, sobald der Text gerendert wurde.

body {
  font-family: Roboto, sans-serif;
  font-display: fallback;
}

Variable Schriftarten

Wenn Sie viele unterschiedliche Schriftstärken oder Stile desselben Schriftbilds verwenden, kann es sein, dass Sie am Ende viele separate Schriftartdateien verwenden – eine separate Schriftartdatei für jede Schriftstärke oder jeden Stil.

Variable Schriftarten lösen dieses Problem durch die Verwendung einer einzigen Datei. Eine Datei mit variabler Schriftart ist responsiv, anstatt separate Dateien für normal, fett, extrafett usw. zu haben. Sie enthält alle Informationen, die für die Darstellung über ein Spektrum an Gewichten oder Stilen erforderlich sind.

Der Buchstabe „A“ in unterschiedlichen Gewichtungen dargestellt.

Das bedeutet, dass eine einzelne variable Schriftartdatei größer ist als eine einzelne reguläre Schriftartdatei, aber eine einzelne variable Schriftartdatei wahrscheinlich kleiner als mehrere reguläre Schriftartdateien ist. Wenn Sie viele unterschiedliche Schriftstärken verwenden, kann eine variable Schriftart zu einer großen Leistungssteigerung führen.

Bei einer guten Typografie im Web geht es nicht nur um die Schriftauswahl, die Sie als Designfachkraft treffen. Bei der responsiven Typografie geht es auch darum, das Gerät und die Netzwerkverbindung der Nutzenden zu respektieren. Das Endergebnis ist ein Design, das sich anfühlt, egal wie es betrachtet wird.

Sie wissen nun, wie der responsive Text funktioniert. Als Nächstes beschäftigen wir uns mit responsiven Bildern.

Wissen testen

Testen Sie Ihr Wissen über Typografie

Es müssen Stile hinzugefügt werden, damit Text im Darstellungsbereich umgebrochen werden kann.

Richtig
Das Hinzufügen von Stilen ist nicht erforderlich.
Falsch
Der Text wird standardmäßig ohne zusätzliche Stile umgebrochen.

clamp() ist nützlich für die fließende Typografie, weil

Sie ermöglicht das einfache Einbetten von calc()-Funktionen
Das ist zwar richtig, aber es ist kein guter Grund, clamp() für die Typografie zu verwenden.
Der Browser wird dafür hervorragend unterstützt.
Das ist zwar richtig, aber es ist kein guter Grund, clamp() für die Typografie zu verwenden.
Damit kann die Schriftgröße zwischen sinnvollen Mindest- und Höchstwerten festgelegt werden, während gleichzeitig ein skalierbarer Mittelwert angegeben wird.
Vermeiden Sie zu kleinen oder zu großen Text genau und sorgen Sie für eine gleichmäßige Schriftgröße.
Das vereinfacht die Berechnung.
Bitte versuchen Sie es noch einmal.

Welche Arten von line-height-Werten wurden in diesem Leitfaden empfohlen?

24px
In dem Beitrag wird ausdrücklich darauf hingewiesen, dass für line-height keine Pixelwerte verwendet werden sollen.
2rem
Obwohl Rems relative Werte sind, können sie dennoch zu kleine oder zu große Zeilenhöhen erzeugen.
1.5
Es wird empfohlen, relative Werte ohne Einheit zu verwenden.
2vw
Darstellungseinheiten im Darstellungsbereich als line-height wären problematisch.

Was macht font-display?

Teilt dem Browser mit, wie er den Wechsel von einer System- zu einer Webschriftart verwalten soll.
Hilft beim Übergang zu einer benutzerdefinierten Schriftart.
Mit dieser Einstellung kann die Schriftart auf block oder inline-block festgelegt werden.
Für Schriftarten gibt es keine Anzeigetypen.
Ändert sich, ob die Schriftart ausgeblendet ist oder nicht.
Schriftarten können nicht ausgeblendet werden.
Ermöglicht die Steuerung des zeitlichen Ablaufs beim Laden von Remote-Schriftarten.
Hilft Autoren dabei, das Laden von benutzerdefinierten Schriftarten anzupassen.