mitmario.dev

Der Hero-Text

CSS Im Browser 3 Min Lesezeit 3 BeispieleLektion 6 von 7

Der Hero ist der erste Block einer Seite und besteht bei fast jedem Portfolio aus denselben drei Teilen, einer kleinen Rubrik, einer großen Überschrift und einem Untertitel. Neue Eigenschaften braucht er nicht. Alles dafür kennst du aus diesem Abschnitt, und dazu kommt die Skala der Tokens.

Die Teile

  • Größensprünge aus einer Skala, damit die drei Zeilen in einem erkennbaren Verhältnis zueinander stehen.
  • Die engere Zeilenhöhe für die Überschrift, weil große Schrift weniger Luft braucht.
  • Die gesperrte Rubrik, also text-transform mit letter-spacing in em.
  • text-wrap: balance an der einen Stelle, an der es etwas bringt.
  • Die Zeilenlänge, die bei den Einheiten mit ch schon kurz vorkam.

Die Größen als Verhältnis

Die Größen als Verhältnis
.gruppe {
  font-family: system-ui, sans-serif;
  border: 1px solid #d4d4d8;
  padding: 16px;
  margin-bottom: 16px;
}

.gruppe h2 {
  margin: 0 0 8px 0;
  line-height: 1.1;
}

.gruppe .rubrik,
.gruppe .unter {
  margin: 0;
}

/* 15, 29 und 19: keine erkennbare Beziehung zueinander. */
.zufall .rubrik {
  font-size: 15px;
}

.zufall h2 {
  font-size: 29px;
}

.zufall .unter {
  font-size: 19px;
}

/* 16, 32 und 20: das Doppelte und ein Viertel mehr. */
.skala .rubrik {
  font-size: 16px;
}

.skala h2 {
  font-size: 32px;
}

.skala .unter {
  font-size: 20px;
}

Beide Gruppen enthalten dieselben drei Elemente in fast derselben Größe. Die untere wirkt trotzdem geordneter, und dabei geht es nur um ein paar Pixel.

Wie bei den Abständen bringt eine Skala die Größen in eine Beziehung. 16, 32 und 20 sind das Einfache, das Doppelte und ein Viertel mehr. 15, 29 und 19 sind drei Zahlen, die zufällig nebeneinander stehen.

Für Schriftgrößen wächst eine Skala meistens mit einem Faktor statt in festen Schritten. Jede Stufe ist ungefähr das 1,25- bis 1,4-fache der vorigen, auf glatte Zahlen gerundet. Unten gibt das kleine Sprünge und oben große. Die Skala des Portfolios ist 14, 16 und 20, und darüber kommen zwei fließende Stufen bis 28 und 40, als Tokens --schrift-s bis --schrift-2xl.

Die Zeilenlänge

Die Zeilenlänge in ch
p {
  font-family: system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.5;
  background-color: #f4f4f5;
  padding: 8px;
  margin-bottom: 12px;
}

/* ch ist die Breite der Ziffer Null in der aktuellen
   Schrift. 24ch sind also ungefähr vierundzwanzig
   Zeichen. Für echten Fließtext nimmt man 60ch; das
   greift je nach Schrift erst ab rund 600 bis 700px. */
.schmal {
  max-width: 24ch;
}

Als lesbare Länge für eine Zeile Fließtext nennt Robert Bringhurst in „The Elements of Typographic Style“ 45 bis 75 Zeichen. Darunter zerfällt der Text, darüber verliert das Auge beim Zeilensprung die Zeile.

Mit max-width: 60ch steht das direkt im Code, denn ch ist die Breite der Ziffer Null in der aktuellen Schrift. Eine Angabe in Pixeln täte dasselbe, aber nur so lange, bis jemand die Schriftgröße ändert.

Im Beispiel steht trotzdem 24ch. 60ch sind bei 18px je nach Schrift rund 600 bis 700 Pixel, und in einer schmaleren Spalte greift die Grenze dann nie. Beide Absätze wären gleich breit, und es gäbe nichts zu sehen. Für echten Fließtext bleiben es 45 bis 75 Zeichen.

Über der Seite steht bei diesem Beispiel „für 900 px“, und im Vollbild steht die Seite von allein auf diesen 900. Der obere Absatz ist dann 884 Pixel breit, der untere bleibt bei rund 250 bis 290, je nachdem, welche Schrift dein System für system-ui nimmt. Um diesen Unterschied geht es. Bei dieser Breite würden übrigens auch die empfohlenen 60ch greifen.

Für den Hero heißt das, dass die Überschrift weniger Zeichen je Zeile bekommt als der Untertitel. Große Schrift verträgt kürzere Zeilen, weil eine Zeile ohnehin schon breit ist. Ich fange mit 20ch für die Überschrift und 55ch für den Untertitel an.

In Pixeln ist die Zeile der Überschrift trotzdem die längere, denn 20ch bei 60px Schrift sind breiter als 60ch bei 18px. Die 45 bis 75 Zeichen gelten für Text, den man Zeile für Zeile liest, nicht für drei Wörter in großer Schrift.

Wo balance zählt

Wo balance zählt
h2 {
  font-family: system-ui, sans-serif;
  font-size: 32px;
  line-height: 1.1;
  max-width: 22ch;
  margin: 0 0 24px 0;
}

/* Verteilt die Zeilen gleichmäßig, statt die letzte
   mit einem einzelnen Wort zu füllen. */
.mit {
  text-wrap: balance;
}

text-wrap: balance verteilt die Zeilen einer Überschrift gleichmäßig. Ohne es steht regelmäßig ein einzelnes Wort allein in der letzten Zeile, und das sieht nach Versehen aus.

Der Browser rechnet dafür mehrere Umbruchvarianten durch, und das kostet etwas. Deshalb greift es nur bis zu einer Handvoll Zeilen und ist ausdrücklich für Überschriften gedacht. Für Fließtext gibt es pretty. Das rechnet weniger und verhindert vor allem die einsame letzte Zeile, nur Firefox kennt es bisher nicht.

Der Hero als Probe

Am Hero siehst du Typografie-Entscheidungen sofort, weil dort nichts ablenkt. Es gibt kein Bild, keine Navigation, keine Karten. Nur drei Textzeilen.

Wirkt eine Seite an dieser Stelle unruhig, liegt es meist an einem von drei Dingen. Die Größen stehen in keinem Verhältnis, die Zeilenhöhe der Überschrift ist zu weit, oder die Zeilen sind zu lang.

In der Aufgabe entsteht dieser Block aus den Stufen der Tokens.

Zum Mitnehmen

Der Hero-Text braucht kein neues Werkzeug: Größen aus einer Skala, eine enge Zeilenhöhe für die große Überschrift, eine gesperrte Rubrik, balance und eine Grenze in ch.

Jetzt du

Basis Konto, kostenlos

Zu dieser Lektion gehört eine Aufgabe. Du schreibst den Code selbst, und nach jedem Lauf sagt dir eine Prüfliste, was schon stimmt.

Dafür brauchst du das Basis Konto. Es kostet nichts, und ein Passwort gibt es auch nicht.

Was in dieser Lektion steckt

  • Artikel mit 3 Beispielen zum Ausprobieren

    Steht hier, ohne Konto lesbar.

  • Aufgabe im Editor, direkt im Browser geprüft

    Öffnet sich mit dem Basis Konto.