Quantcast
Channel: #Typografie - Agentur kulturbanause
Viewing all 69 articles
Browse latest View live

Spiegelungen im Webdesign – Die Grundlagen als Screencast

$
0
0
spiegelung-webdesign

Die Photoshop-Profis haben ein Video zum Thema "Spiegelungen" von mir veröffentlicht. In Folge 93 des Podcasts beschreibe ich die Grundlagen der Spiegelung von zweidimensionalen und dreidimensionalen Objekten, und gehe auf häufige Fehlerquellen ein. Am Beispiel des Wet-Floor-Effektes werden darüber hinaus die typischen handwerklichen Techniken beschrieben.

Das Thema Spiegeleffekte habe ich in der Vergangenheit bereits in meinem Artikel "10 Tipps zu Spiegelungen im Webdesign" behandelt. Einen fortgeschrittenen Screencast zum Thema Wasserspiegelung findet ihr hier.

Spiegeleffekte für moderne Webgrafiken

Galileo-Press, bzw. die Photoshop-Profis beschreiben den Inhalt des Videos so:

Spiegeleffekte sind in modernen Weblayouts immer gern gesehen. Sie sorgen für einen edlen Glanz und zeichnen hochwertige Webseiten aus, ganz in Anlehnung an eine erfolgreiche Apfelmarke. Jonas Hellwig zeigt Ihnen in dieser neuen Folge der »Photoshop-Profis«, wie Sie mit wenigen Handgriffen überzeugende Spiegeleffekte erzeugen. Doch Vorsicht: Nicht jeder Text oder jedes Objekt eignet sich gleichermaßen gut für einen Spiegleffekt!

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.


Style Tiles – Design-Konzepte für responsive Websites entwickeln

$
0
0
logo-style-tiles

Wenn man gemeinsam mit einem neuen Kunden ein Webdesign-Projekt plant, möchte man einerseits ein ansprechendes und zuverlässiges visuelles Konzept ausarbeiten, andererseits aber wenig Zeit mit Entwürfen vergeuden, die dem Kunden nicht gefallen. An dieser Stelle setzen die sog. »Style Tiles« von Samantha Warren an und füllen die Lücke zwischen schnellen aber ungenauen, und detaillierten aber zeitintensiven Techniken. Style Tiles sind sozusagen ein Mockup für die Gestaltung.

Was sind Style Tiles?

Samantha Warren hat eine Photoshop-Vorlage erstellt, die es Webdesignern und Medienberatern erleichtert die wesentlichen gestalterischen Merkmale einer Website zusammenzufassen. Die Photoshop-Vorlage soll dabei lediglich als Inspiration und Hilfestellung dienen, individuelle Anpassungen sind notwendig und ausdrücklich erwünscht.

Style Tiles - Website

Um den Stil einer Website beurteilen zu können ist der Aufbau oder das Navigationskonzept zweitrangig, die Style Tiles konzentrieren sich daher eher auf grafische Aspekte wie Logo, Schrift, Farben, die Gestaltung von Links und Buttons und Texturen, Pattern etc.

Photoshop-Vorlage der Style-Tiles
Photoshop-Vorlage der Style Tiles

Wie setze ich Style Tiles ein?

Style Tiles werden dort eingesetzt, wo eine wage Auswahl an Inspirationsbeispielen zu unkonkret ist, die Ausarbeitung von Skizzen und Mockups jedoch zu zeit- und kostenintensiv. Ziel der Style Tiles ist es ein visuelles Konzept zu erarbeiten das für den Kunden verständlich ist, ohne dass er stark abstrahieren muss. Der Webdesigner kann in kürzerer Zeit einen Look kreieren und verschiedene Stilrichtungen einfacher vergleichen.

Beispiel für einen ausgearbeiteten Style Tile
Beispiel für ein ausgearbeitetes Konzept

Fazit

Es gibt Techniken bei denen fragt man sich warum man nicht schon längst selbst darauf gekommen ist. Dabei geht es mir weniger um die Photoshop-Vorlage sondern um die Idee für diesen Konzeptionsschritt überhaupt. Ich werde „Style Tiles“ in eigener Form definitiv in kommenden Projekten ausprobieren. Inwiefern sich die Technik bewährt wird sich zeigen – ich bin gespannt wie Kunden mit den Entwürfen umgehen und inwiefern Abweichungen zwischen Style Tiles und endgültigem Layout auftreten. Was meint ihr?

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Kerning für Webfonts – Type Butter jQuery-Plugin

$
0
0
Type Butter

Vor einiger Zeit habe ich bereits einen Artikel über Kerning und Ligaturen im Browser geschrieben - heute möchte ich das Thema noch einmal aufgreifen. Type Butter ist ein neues jQuery-Plugin, mit dem ihr das Kerning der Schriftarten eurer Website verbessern könnt.
Im Moment liegen große Überschriften ja voll im Trend. Doch gerade bei großen Schriftgrößen entstehen häufig unschöne Abstände zwischen den Buchstaben. Mit Type Butter könnten sie der Vergangenheit angehören.

Wie setze ich Type Butter ein?

Das Script wird heruntergeladen und als jQuery-Plugin im Quellcode eingebettet. Zusätzlich wird ein weiteres Script für die gewünschte Schrift eingebunden. Anschließend müsst ihr nur noch den Selector festlegen in dem Ihr das verbesserte Kerning aktivieren wollt, also beispielsweise den body eurer Website.


jQuery('body').typeButter({
     'default-spacing' : '0em'
});

Neben diesen simplen Basis-Settings könnt ihr individuelle Einstellungen für eine riesige Auswahl an Schriften festlegen.

Type Butter

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Webfonts – eine Einführung in moderne Web Typografie

$
0
0
was_sind_webfonts

Wem Webdesign im Sinne von guter Gestaltung am Herzen liegt, der verzweifelte lange Zeit am eingeschränkten Schriftangebot. Eine ausgefallene Schriftart musste bisher meist in eine Grafik eingebettet werden. Das hat den Nachteil, dass Suchmaschinen den Text nicht lesen können. Mit der Entwicklung von Webfonts besteht die Möglichkeit, Schriften mittels CSS einzubinden, die nicht auf dem Computer des Anwenders installiert sein müssen. Die Auswahl an Schriften in der Webtypografie ist dadurch ähnlich umfangreich wie im Printdesign.

Schriften per CSS-Code zuweisen

Wenn auf einer Website eine bestimmte Schrift verwendet werden soll, werden mit Hilfe der CSS-Eigenschaft font-family mehrere Schriftarten und die Schriftfamilie nacheinander aufgelistet. Der Browser geht diese Liste durch und wählt die erste Schrift aus, die auf dem Betriebssystem des Anwenders installiert ist.

So eine Auflistung – der sog. Font Stack – sieht im CSS-Stylesheet beispielsweise so aus:

p  {
  font-family: Georgia, "Times New Roman", serif;
}

Die Angabe der Schriftfamilie (z. B. serif) wird als letztes geschrieben und gibt dem Browser die Möglichkeit, einen ähnlichen Schrifttyp zu finden, sofern keine der zuvor notierten Fonts gefunden wurde.

Websichere Schriften – immer nur Arial und Verdana?

Lange Zeit blieb die Schriftauswahl bei der Gestaltung von Websites auf die Systemschriften beschränkt. Da jedoch nicht alle Systemschriften bei Windows und Mac absolut identisch sind, wurde auf eine noch kleinere Schnittmenge zurückgegriffen. Hierbei handelt es sich um die sog. websicherer Schriften, also Schriften die auf allen gängigen Betriebssystemen vorinstalliert sind. Zu diesen websicheren Schriften zählen Arial, Georgia, Times New Roman, Courier New, Lucida Sans und Verdana.

Die Folge der geringen Auswahl an Schriften ist eine gewisse Vorhersehbarkeit und Eintönigkeit des Schriftbildes am Bildschirm. Aber Dank der Webfonts gibt es einen Lichtblick im Bereich Webtypografie.

Websichere Schriften auf Windows und Mac

Websichere Schriften, die bei Windows und Mac auf dem System vorinstalliert sind

Webfonts verändern das Webdesign

Die Entwicklung von Webfonts macht es möglich, Schriften unabhängig vom verwendeten Betriebssystem auf einer Webseite einzusetzen. Wird eine Website aufgerufen, greift der Browser nicht mehr nur auf die lokal installierte Schriftensammlung zurück, sondern er lädt die Schriftdateien von einem Webserver. Voraussetzung hierfür ist die Einbettung des Webfonts mithilfe von der CSS-Regel @font-face, sowie die Angabe der Schriftart im Font Stack.

p  {
  font-family: "MEIN WEBFONT", Georgia, "Times New Roman", serif;
}

Seither ist eine individuelle Typografie im Web möglich, wie sie Jahre lang nur im Printdesign umgesetzt werden konnte.

Ursprünglich wurden für die noch gering auflösenden Bildschirme Bitmap-Schriften verwendet, die aus einzelnen Pixeln aufgebaut sind und schlecht skalierbar waren. Im Gegensatz dazu basieren Systemschriften, auch Outline-Schriften genannt, auf Vektoren (TrueType-Format), die ein verlustfreies Skalieren ermöglichen. Alle Webfonts sind Vektorschriften, die zusätzliche Hinweise (Hints) zur Art des Rasterns für die optimale Darstellung am Bildschirm mitliefern (Hinting). Das Ergebnis ist ein gestochen scharfes Schriftbild bei jeder Bildschirmauflösung sowie bei allen Betriebssystemen und Browsern.

Unterschied Bitmap- und Vektorschrift

Links die Darstellung eines Pixelfonts, rechts die vektorbasierte (Outline) Variante

EOT, TTF, WOFF und SVG

Für das Einbinden von Webfonts sind unterschiedliche Dateiformate für die verschiedenen Browser nötig. Diese müssen im CSS-Code mit @font-face angegeben werden. Das EOT-Format wurde bereits von Microsoft für den Internet Explorer 4 entwickelt und wird auch ausschließlich vom IE unterstützt. Schriften im TTF-Format (True Type Format) werden von Firefox, Safari, Chrome und Opera angezeigt. Das WOFF-Format (Web Open Font Format) ist 2012 vom W3C zum Standard erklärt worden und wird von modernen Browsern unterstützt. Es bietet mit seiner Containerstruktur den Vorteil, dass True Type Schriftarten verlustfrei komprimiert werden und zusätzliche Informationen zur Lizenz mitgeliefert werden können. Das SVG-Format (Scalable Vector Graphics) wird u.a. für die Darstellung auf dem iPhone und iPad benötigt.

Internet Explorer war Vorreiter

Bereits in den neunziger Jahren war es mit dem Internet Explorer 4 möglich, extern gehostete Schriftdateien einzubinden. Aus Mangel an geeigneten Schriften im passenden Format konnte sich diese Technologie allerdings noch nicht durchsetzen.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Webfonts mit einem Webfont-Generator erstellen

$
0
0
webfont

Wer keine Systemschriften verwenden oder auf Webfont-Anbieter zurückgreifen möchte, kann selbst aus einer vorliegenden Desktop-Schrift einen Webfont erzeugen. In diesem Fall kann die Schrift sehr individuell für die Website ausgewählt werden. Allerdings solltet ihr in Bezug auf das Lizenzmodell der Ausgangsschrift einiges beachteten. Wie ihr mithilfe eines Webfont-Generators eine Schrift in das passende Dateiformat umwandelt, beschreiben wir in diesem Artikel.

Von der Desktop-Schrift zum Webfont

Am Beispiel des Webfont-Generators von Font Squirrel zeigen wir euch, wie einfach es ist, aus einer Desktop-Schrift einen Webfont zu generieren. Einzige Voraussetzung dafür ist, dass der Font im TrueType- oder OpenType-Format vorliegt (*.ttf, *.otf). Alle Webfonts basieren auf Vektoren und bei den oben genannten Schriftformaten handelt es sich um Outline-Schriften mit Vektorkonturen.

Sofern ihr euch sicher seid, dass ihr von der ausgewählten Schrift einen Webfont erstellen dürft, könnt ihr sie im Generator hochladen. Wenn euch die Einstellungen »Basic« oder »Optimal« ausreichen, ist die Konvertierung für euch bereits abgeschlossen.

Webfonts selbst erstellen mit Webfont Generator

Webfonts selbst erstellen mit einem Webfont Generator

 

Wenn Ihr detaillierte Einstellungen zur Konvertierung vornehmen wollt, wählt den Modus »Expert«. Hier stehen u.a. folgende Einstellungen zur Verfügung.

Webformate TTF, WOFF und EOT

In diesem Abschnitt wählt ihr die gewünschten Dateiformate für den Webfont aus. Das TrueType-Format wird noch von älteren Browsern benötigt, WOFF (Web Open Format) hata sich bei modernen Browsern als Standard durchgesetzt und Embedded Open Type (EOT) wird noch für den Internet Explorer gebraucht.

Im Webfont Generator werden die Webfont-Formate ausgewählt

Die wichtigsten Webfont-Formate sind ausgewählt

TrueType Hinting

Insbesondere die Darstellung kleiner Schriftgrade am Bildschirm ist wegen des Pixelrasters problematisch. Dem wird mittels Hinting entgegengewirkt. Dem Webfont werden Hinweise (Hints) mitgeliefert, wie die Schrift angepasst werden soll. Diese Hints können Schriftgestalter manuell dem Font mitgeben oder die Bildschirmoptimierung wird während des Rasterns automatisch durchgeführt (TTFAutohint). In unserem Fall überlassen wir das Hinting Font Squirrel.

Rendering – die Vektorschrift wird gerastert

Bei »Rendering« kann der Abstand über und unter der Schrift (Fix Vertical Metrics) reguliert werden, damit die Ober- und Unterlängen in der Ansicht verschiedener Browser nicht verloren gehen. Mit »Fix GASP Table« wird die Schrift für Graustufen-Displays optimiert. Mit »Fix Missing Glyphs« werden Leerzeichen (Spaces) und Bindestriche (Hyphens) hinzugefügt.

Einstellungen zum Hinting und Rendern der Schrift

Das Hinting und Rendern der Schrift kann bis zu einem gewissen Grad beeinflusst werden

Beim Webfont die x-Höhe anpassen

Die x-Höhe (Mittellänge= Höhe des Kleinbuchstabens ohne Ober- und Unterlänge) kann auf die Größe einer der aufgelisteten Schriften skaliert werden. Das hat optische Vorteile, wenn die Schrift nicht oder nicht direkt geladen wird.

Teilfont (Subset) erstellen

Beim »Subsetting« können nicht gewünschte Glyphen ausgeschlossen werden, um die Dateigröße zu minimieren. Das »Basic Subsetting« schließt alle Buchstaben bzw. Zeichen aus, die nicht in Westeuropa gebraucht werden. Das »Custom Subsetting« bietet die Möglichket, bestimmte Sprachen oder einzelne Zeichen in den Teilfont aufzunehmen.

x-Höhe wie bei Systemschriften anpassen

x-Höhe: Die Mittellänge kann an die Größe der Systemschriften angepasst werden

Open Type Features in den Webfont übernehmen

Mit Open Type Features sind alternative Formen für ein Zeichen gemeint (z. B. Kapitälchen, Mediävalziffern und auch Ligaturen), die hinterlegt und noch weitere in sogenannten Style Sets zusammengefasst sind. Sofern eure Desktop-Schrift solche Open Type Features enthält, können sie hier mit aufgenommen werden.

Open Type Features in den Webfont einbinden

Enthält die Desktop-Schrift Kapitälchen oder Mediävalziffern, können diese mit eingebunden werden

Stylesheet

Am Ende könnt ihr entscheiden, ob der Webfont mit allen Zeichen durch Base64 codiert und direkt in das Stylesheet eingebettet werden soll. Alternativ wählt die klassische Variante mit externen Schrift-Dateien. Bei »Advanced Options« könnt ihr neben einem Suffix auch die Laufweite des Webfonts erhöhen oder verringern (Adjust Glyph Spacing).

Lizenzierung der Schrift beachten!

Das Wichtigste beim Konvertieren von Fonts in Webfonts ist die Frage, ob ihr es überhaupt dürft. Eine Desktop-Schrift kann nicht ohne Weiteres in einen Webfont konvertiert werden, wenn ihr keine Erlaubnis dafür habt. Das kann rechtlich sehr unangenehme und teure Folgen haben. Im Lizenzmodell der Ausgangsschrift muss dazu das sog. »Web Embedding« gestattet sein. Andernfalls erzeugt und vertreibt ihr Raubkopien der Schriftart.

Lizenz wichtig beim Erstellen von Webfonts

Wichtig ist, dass ihr die Lizenz zum Konvertieren einer Desktop-Schrift in einen Webfont besitzt

Schriftgestaltung für Web anders als für Print

Wenn ihr die Erlaubnis zum Konvertieren besitzt, ist die Nutzung eines Webfont-Generators eine schnelle und unkomplizierte Sache. Aus gestalterischer Sicht sei allerdings noch ein Punkt erwähnt. Automatisch erstellte Webfonts, die auf Grundlage eines Print-Fonts erzeugt wurden, unterscheiden sich gestalterisch von echten Webfonts, die Schriftgestalter extra für die optimale Lesbarkeit am Bildschirm entworfen haben. Profis sehen den Unterschied.

Links / Quellen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Sollte text-indent: -9999px; ersetzt werden?

$
0
0
text-verstecken-css-intend

Ich behaupte einfach mal, dass wohl jeder Webdesigner schon Text mit der CSS-Eigenschaft text-indent: -9999px; versteckt hat. Die aus heutiger Sicht schon fast antike Technik entstammt noch Zeiten, in denen wir ausgefallene Schriftarten mit Hilfe von Grafiken einbetten mussten. Da es Webfonts noch nicht gab, wurden Schmuckschriften in Bildern gespeichert. Anschließend wurde einem Element die Grafik als Hintergrundbild zugewiesen; der für die Suchmaschinen enthaltene „echte“ Text wurde versteckt. Mit Hilfe von text-indent: -9999px; wurde er um 9999 Pixel aus dem sichtbaren Bereich heraus verschoben.

Die Nachteile von -9999px

Heute müssen Texte nur noch selten versteckt werden, da durch die Technologie der Webfonts nahezu jede Schriftart verwendet werden kann. Auch Icon-Fonts tragen zu dieser Entwicklung bei. Doch text-indent: -9999px; ist nicht nur oft überflüssig geworden, die Technik hat auch tatsächliche Nachteile.

  • Sehr lange Texte lassen sich nicht komplett verstecken
  • Die Performance der Website wird massiv beeinträchtigt, da der Browser eine 9999 Pixel große Box rendern muss.

Die neue Technik

Nun bin ich vor ein paar Tagen über einen Artikel von L. Jeffrey Zeldman gestolpert, der mich zu diesem Beitrag inspiriert hat. In diesem Artikel wird eine bessere Lösung zum Verstecken von Texten beschrieben, die ich hier vorstellen und zur Diskussion stellen möchte. Mit Hilfe folgender CSS-Klasse wird das Zielobjekt angesprochen und der Text ausgeblendet.


.hide-text {
 text-indent: 100%;
 white-space: nowrap;
 overflow: hidden;
}

Alternative Methode

In der HTML5Boilerplate wird noch einer zweite Variante vorgestellt.

 
.ir {
    background-color: transparent;
    border: 0;
    overflow: hidden;
    /* IE 6/7 fallback */
    *text-indent: -9999px;
}

.ir:before {
    content: "";
    display: block;
    width: 0;
    height: 150%;
}

Links / Quellen

Absatzformate und Zeichenformate in Photoshop nutzen und exportieren

$
0
0
absatzformate-zeichenformate-cs6

Aufgrund vieler Nachfragen habe ich ein Video zum Thema Absatz- und Zeichenformate von PS CS6 erstellt. In diesem Screencast zeige ich euch wie ihr die Formate einsetzen könnt, und wie ihr häufige Probleme im Umgang mit diesen Werkzeugen vermeidet. Da insbesondere die Export-Funktion häufig angefragt wurde, gehe in diesem Zusammenhang auch auf den Export/Import von Absatzformaten ein. Ich hoffe das Video hilft euch weiter, dieses wirklich hilfreiche Werkzeug endlich auch produktiv zu nutzen

Absatz- und Zeichenformate in Photoshop CS6

In diesem Video zeige ich anhand eines Beispiel-Dokuments, wie ihr Absatzformate/Zeichenformate anlegt und verschiedenen Textelementen zuweist. Wichtig ist dabei vor allem, dass ihr den Basisabsatz von Photoshop nicht mit individuellen Einstellungen überschreibt und Formate nicht versehentlich auf gesamte Ebenen anwendet.

Probleme im Umgang mit Absatzformaten vermeiden

Die Absatz- und Zeichenformate reagieren häufig anders als erwünscht. Wenn ihr euch über ein bestimmtes Verhalten wundert, prüft ob einer der folgenden Lösungsvorschläge das Problem behebt:

  • Ist das Format auf zuvor formatierten Text angewendet worden? Wenn ja: Überschreibung löschen
  • War die gesamte Textebene aktiv? Wenn ja, wirkt sich ein zugewiesenes Format auf alle Texte dieser Ebene aus

Photoshop CS6: Absatzformate exportieren

Wenn ihr Absatzformate exportieren möchtet, so speichert einfach die gesamte Photoshop-Datei. Absatzformate werden in Form einer PSD importiert, ein eigenes Format existiert nicht.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Text mit Verlauf überlagern in CSS

$
0
0
text-gradient-css3

In Photoshop lässt sich ein Text unkompliziert mit Hilfe einer Verlaufsüberlagerung optisch aufwerten. Doch wie sieht es in CSS aus? Verläufe lassen sich grundsätzlich in CSS3 herstellen, nur auf Texten funktioniert es leider nicht so einfach. Hier kann kein Verlauf als Farbe angegeben werden, es sind daher nur einfarbige Texte möglich. Mit folgendem Trick könnt ihr zumindest in Webkit-Browsern (Chrome, Safari, Safari mobile, Android Browser) einen Verlauf als Textfarbe festlegen. In inkompatiblen Browsern wird der Text einfarbig dargestellt.

Transparenter Text + Schnittmaske

Der Effekt lässt sich mit wenig Aufwand herstellen. Zunächst wählt ihr wie gewohnt eine Schriftart, die Schriftgröße und eine Farbe als Fallback-Lösung für inkompatible Browser. Im zweiten Schritt folgen Angaben, die nur Webkit-Browser lesen und interpretieren können.

Ein Verlauf im Hintergrund, ein transparenter Text und eine Schnittmaske erzeugen einen CSS3-Verlauf auf Text
Ein Verlauf im Hintergrund, ein transparenter Text und eine Schnittmaske erzeugen einen CSS-Verlauf auf Text

Dem Hintergrund des Textes wird ein linearer Farbverlauf zugewiesen, der Text selbst erhält eine transparente Füllung. Anschließend wird eine Schnittmaske erstellt. Der transparente Text dient dabei als Grundlage, der Verlauf wirkt nur noch in diesem Bereich. Das Endergebnis ist daher ein Verlauf in Form des Textes.

CSS-Code für Text-Gradients & Live-Beispiel

Der CSS-Code ist erfreulich übersichtlich.


.gradientText {
  font-family: Arial;
  color: yellow;
  font-size: 150px;
  background: -webkit-linear-gradient(yellow, green);
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;	
}

Die nachfolgende Abbildung ist ein Live-Beispiel. Aufgrund des Vendor-Prefixes -webkit- könnt ihr das Beispiel natürlich nur in Chrome oder Safari sehen.


Beispiel in neuem Fenster öffnen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.


CSS Regions mit Adobe Edge Reflow

$
0
0
css-regions-reflow-grafik

CSS Regions sind eine CSS-Technologie mit deren Hilfe Inhalte durch verschiedene Container geleitet werden können. Sollte euch das Konzept hinter CSS Regions unbekannt sein, lest bitte zunächst meine Einführung in dieses Thema. In Adobe Edge Reflow – einem Design-Tool für Responsive Web Design – sind CSS Regions nun ebenfalls verfügbar. Die Einführung in Edge Reflow findet ihr wiederum hier.

In diesem Beitrag erkläre ich wie CSS Regions in Edge Reflow aktiviert und eingesetzt werden können.

Schritt 1 – CSS Regions in Reflow aktivieren

CSS Regions sind zum Veröffentlichungszeitpunkt dieses Artikels noch ein experimentelles CSS-Feature. Die Funktion muss daher zunächst in Reflow aktiviert werden.
Wählt in Reflow den Menüpunkt »View → Shiny Web Features«. Es erscheint ein Fenster mit verschiedenen experimentellen CSS-Funktionen. Aktiviert hier den Schalter für CSS Regions und bestätigt den Dialog.

CSS Regions in Reflow aktivieren
CSS Regions in Reflow aktivieren

Schritt 2 – Region Container erstellen

Wählt das Textwerkzeug von Reflow, zieht einen Textrahmen auf und schreibt ein wenig Text hinein. Über einen Rechtsklick auf den Textrahmen öffnet ihr das Kontextmenü. Wählt hier den Eintrag »Create Region Container«.

Textrahmen in Region Container umwandeln
Textrahmen in Region Container umwandeln

Schritt 3 – Verkettete Textrahmen erstellen

In der unteren rechten Ecke des Textrahmens ist nun ein kleines rotes Plus-Icon erschienen. Klickt das Icon an und zieht anschließend einen weiteren Textrahmen auf. Ihr erkennt anhand einer dicken blauen Verbindungslinie, dass die beiden Textrahmen nun verkettet sind. Die Funktion ist nahezu identisch mit Überhangtexten in InDesign.
Bei Bedarf können weitere Textboxen erstellt werden.

Verkettete CSS Regions in Reflow
Verkettete CSS Regions in Reflow

Schritt 4 – CSS Regions testen

Um sehen zu können wie die CSS Regions funktionieren, verändert die Größe der ersten Textbox soweit, bis Inhalte in den zweiten Container herüberfließen. In Reflow könnt ihr auch über eine Skalierung der Arbeitsfläche die Textboxen stauchen.

Wenn ihr das Projekt im Browser anschauen möchtet, wählt die Funktion »View → Preview in Chrome«. Achtet darauf, dass dazu CSS Regions im Browser aktiviert sein müssen.

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Web-Typografie: Perfekte Zeilenlängen im Responsive Design

$
0
0
responsive-typo

Das Layout einer Website hat u.a. die Aufgabe, Informationen bestmöglich zugänglich zu machen. Insbesondere die Web-Typografie spielt dabei eine wichtige Rolle. Damit ein Text gut lesbar ist, sollten die Zeilen eine optimale Länge haben. Im Responsive Design muss dazu meist die Schriftgröße über die verschiedenen Displaygrößen hinweg verändert werden, damit die Zeilen auf allen Geräten im optimalen Bereich liegen. Auf Smartphones ist Text daher i.d.R. kleiner als auf großen Monitoren.

Die ideale Zeilenlänge für Websites

Im Web werden circa. 45 – 75 Zeichen pro Zeile als ideal bezeichnet. Betrachtet diese Werte aber bitte nicht zu dogmatisch – Google spricht beispielweise von maximal 70 – 80 Zeichen je Zeile. Wichtig ist, dass ihr die Zeilenlänge im Blick behaltet und eingreift, sobald der Text den lesbaren Bereich verlässt. Mit zunehmender Erfahrung entwickelt ihr so ein besseres typografisches Gespür.

Zeilenumbrüche markieren

Ein beliebter Trick ist das Hervorheben der optimalen Zeilenlänge. Oft geschieht dies zu einem sehr frühen Zeitpunkt des Projekts, also beispielsweise im Prototypen. Der technische Hintergrund ist denkbar einfach. Innerhalb des Textes wird der Abschnitt von 45 – 75 Zeichen mit einem <span>-Element markiert. Über CSS wird das Element eingefärbt, damit es sichtbar ist. Anschließend müsst ihr nur darauf achten, dass die Zeilenumbrüche immer innerhalb der Markierung liegen. Somit ist sichergestellt, dass die Zeilenlänge sich im lesbaren Bereich bewegt.


Lorem ipsum dolor sit amet, consetetur sadip<span>scing elitr, sed diam nonumy e</span>irmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.


span {background:lime;}

Breakpoints für die Schriftgröße definieren

Über die verschiedenen Displaygrößen hinweg ändern sich die Zeilenlängen. Der Text bricht anders um. Sobald ihr merkt, dass die Markierung in einem bestimmten Viewport entweder in eine oder in drei Zeilen rutscht, hat der Text den perfekt lesbaren Bereich verlassen. In diesem Fall wird mit Hilfe von Media Queries ein Breakpoint gesetzt und der Text optimiert. Normalerweise wird eine der folgenden Methoden verwendet um die Zeilenlänge zu optimieren:

  • Die Schriftgröße wird verändert
  • Die Abstände um den Text herum werden verändert
  • Der Text wird mehrspaltig
  • Das Layout wird mehrspaltig

@media screen and (min-width:31.25em) {
  body {
    font-size:1.1em;	
  }	
}

@media screen and (min-width:40.625em) {
  body {
    font-size:1.2em;	
  }	
}

Das folgende Beispiel zeigt die Vorgehensweise mit Hilfe der Schriftgrößenanpassung.

Beispieldatei öffnen

Fließtexte und Überschriften in unterschiedlichem Verhältnis anpassen

Das vorausgegangene Beispiel verändert alle Schriften in gleichem Verhältnis. Durch weniger Freiraum auf kleinen Displaygrößen wirkt die Überschrift dort jedoch zu klobig. Bei viel Platz wirkt sie zu klein.
Ein bestmögliches Ergebnis erhaltet ihr, wenn die Überschriften separat angepasst werden. Auf kleinen Displays sollte das Verhältnis von Überschrift zu Fließtext geringer sein als auf großen Displays. Die folgende Demo zeigt eine optimierte Ansicht.

Beispieldatei öffnen

Den Betrachtungsabstand beachten

An der in diesem Beitrag beschriebenen Technik wird häufig kritisiert, dass der Text auf Smartphones zu klein angezeigt wird. Das ist nicht der Fall. Achtet unbedingt darauf eine realistische Test-Situation herzustellen. Wenn ihr einen Website-Prototypen entwickelt und diesen Prototypen auf einem echten Gerät betrachtet, werdet ihr merken, dass der Text gut lesbar ist. Das hängt mit dem unterschiedlichen Betrachtungsabstand der verschiedenen Geräteklassen zusammen. Ein Smartphone halten wir näher vor die Augen, daher darf der Text auch kleiner sein. Schwierig wird es, wenn die Smartphone-Ansicht am Computer gelayoutet wird. In diesem Fall passen Layoutversion und Betrachtungsabstand nicht zusammen. Ein möglichst früher Test des Layouts auf dem echten Gerät ist daher fast unverzichtbar.

Video-Tutorial zu diesem Beitrag

Das folgende Video zu diesem Thema geht noch etwas mehr in die Tiefe. Das Video ist ein Auszug aus meinem Video-Training »Modernes Webdesign«.

Links / Quellen

Optimize text for reading
Google-Developers-Bereiche zum Thema optimierte Lesbarkeit von Web-Texten
A More Modern Scale for Web Typography
Dieser sehr lesenswerte Artikel behandelt ausführlich das Verhältnis von Fließtext-Größen zu Überschrift-Größen
Responsive Paragraphs
Ergänzendes, englischsprachiges Video zum Thema

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Die CSS-Eigenschaft box-decoration-break – padding & Co. beim Zeilenumbruch beibehalten

$
0
0
box-decoration-break

Wenn ihr Inline-Elementen über padding einen Innenabstand zuweist, dann wird dieses padding bei einem Zeilenumbruch ignoriert. Gleiches gilt für Eigenschaften wie box-shadow oder border-radius. Diese Tatsache ist in der Praxis extrem lästig, da es beispielsweise nicht möglich ist nur den Textbereich einer mehrzeiligen Überschrift mit einer Hintergrundfarbe zu hinterlegen und ansprechend zu gestalten. An den Zeilenumbrüchen wird der Hintergrund unschön abgeschnitten. Die CSS-Eigenschaft box-decoration-break schafft Abhilfe.

Zeilenumbrüche mit CSS optimieren

Angenommen wir möchten die Überschriften auf unserer Website so gestalten, dass der Text farbig hinterlegt ist. Da das HTML-Element ein Block-Element ist, muss die Überschrift zunächst auf display:inline; gestellt werden, damit der farbige Hintergrund auch wirklich nur hinter dem Text angezeigt wird. Mit padding sorgen wir dafür, dass der Text einen kleinen Abstand zum Rand des eingefärbten Hintergrunds behält.

Sofern die Überschrift einzeilig ist gibt es kein Problem. Bei mehrzeiligen Überschriften hingegen bricht der Text um, und verliert an der Umbruchkante das padding. Sehr ärgerlich.

h1 {
  font-size: 1.3em;
  background: #222;
  color: white;
  padding: .3em .7em .2em .4em;
  display: inline;
  line-height: 160%;
}
box-decoration-break-css

Das Standard-Styling: An den Umbrücken entstehen harte Kanten

CSS box-decoration-break

Die CSS-Eigenschaft box-decoration-break ermöglicht es die Gestaltung an der Umbruchkante eines Inline-Elements festzulegen. Es stehen folgende Eigenschaften zur Verfügung:

Eigenschaften für box-decoration-break

slice
Das Element wird als Ganzes betrachtet und die Gestaltung wird nur an den Außenkanten angewandt. Bei einem Umbruch entsteht ein harter Schnitt (Standardwert).
clone
Das Element wird – sofern ein Umbruch in der Horizontalen oder Vertikalen stattfindet – in Fragmente unterteilt. Der Style wird dann auf jedes Fragment einzeln angewandt.

Mit der Eigenschaft clone kann das Problem aus dem o.g. Beispiel problemlos korrigiert werden.

h1 {

  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
Korrigierte Darstellung mit box-decoration-break

Korrigierte Darstellung mit box-decoration-break

Beispiel anschauen

Browsersupport

Zum Veröffentlichungszeitpunkt dieses Beitrags unterstützen alle Browser bis auf den Internet Explorer die Eigenschaft. Den exakten Browsersupport entnehmt ihr bitte der Website caniuse.com

Links/Quellen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Getippter Text mit CSS-Animationen

$
0
0
typing-css

Wenn der Eindruck erweckt werden soll, als würde ein Text getippt, wird häufig auf JavaScript zurückgegriffen. Wir haben selbst einige Tools zu diesem Zweck zusammengetragen. Doch der Effekt lässt sich auch mit einer CSS Keyframe-Animation erstellen. In diesem Beitrag zeigen wir wie es geht und was sich dennoch mit JavaScript optimieren lässt.

Die ch-Einheit und der Monospace-Font

Die Einheit ch definiert in CSS eine Breite, die der Null (0) in der gewählten Schriftart entspricht. Bei einem Monospace-Font sind alle Buchstaben gleich breit. Das machen wir uns zu nutze, indem wir die Länge des Textes von der Breite 0 auf die Breite 48ch animieren. Die 48 kommt hier zustande, da der Text des folgenden Beispiels eine Länge von 48 Zeichen umfasst.

steps()

In einer CSS-Keyframe-Animation kann die timing-function in steps() angegeben werden. Die steps()-Funktion legt fest, wie viele Abstufungen zwischen zwei Schlüsselbildern erzeugt werden sollen. Wenn wir die Anzahl der steps() mit der Anzahl der Buchstaben (48 in unserem Beispiel) gleich setzen, und gleichzeitig die Breite des Textes von 0 auf 48ch animieren, erscheinen die Buchstaben einzeln nacheinander.

white-space: no-wrap;

Wenn der Text aus mehreren Wörtern besteht, bricht die Animation am Leerzeichen ab. Nach dem Leerzeichen werden dann immer ganze Wörter eingeblendet, nicht mehr einzelne Buchstaben, wie eigentlich gewünscht. Mit Hilfe von white-space: no-wrap; beheben wir das Problem.

<h1 class="animated-text">Danke für deinen Besuch auf kulturbanause.de =:)</h1>
.animated-text {
 font-family: monospace;
 overflow: hidden;
 height:1.1em;
 word-wrap: break-word;
 white-space: nowrap;
 animation: typing 4s steps(48) forwards;
}

@keyframes typing {
  from { 
    width: 0;
  }

  to { 
    width: 48ch;
  }
}

Beispiel anschauen

Animation mit JavaScript vereinfachen

Etwas lästig an der oben beschriebenen puren CSS-Variante ist, dass die Anzahl der Buchstaben (48) manuell zwei Mal im Code notiert werden muss: Einmal innerhalb der animation-Eigenschaft und einmal innerhalb der @keyframes.

Mit ein wenig JavaScript (jQuery) können wir Anzahl der Zeichen innerhalb des Selektors .animated-text automatisch auslesen.

var character_count = $('.animated-text').text().length;

Anschließend bauen wir die Zeichenzahl innerhalb der animation-Eigenschaft wieder ein, und ergänzen den Selektor .animated-text entsprechend.

$('.animated-text').css('animation', 'typing 4s steps(' + character_count + ') forwards').css('font-family', 'monospace');

Die @keyframes statten wir ebenfalls mit der ausgelesenen Zahl aus und fügen im <head> einen Style-Abschnitt ein, der die @keyframes-Regel beinhaltet.

$('<style>@keyframes typing {from {width: 0; } to {width: ' + character_count + 'ch; } }</style>').appendTo('head');

 

Beispiel anschauen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Textmasken mit CSS erstellen

$
0
0
css-text-maske

Textmasken erfreuen sich im Grafik-Design – insbesondere im Print-Design – größter Beliebtheit. Leider war es mit Webtechnologien lange Zeit kaum möglich eine Textmaske herzustellen, bei der der Text als Reintext im HTML-Code steht. Aber gerade das ist wichtig, damit der Text geändert und übersetzt, sowie von Suchmaschinen und Screenreadern ausgelesen werden kann. In diesem Beitrag zeigen wir, wie ihr mit Hilfe von CSS Blend Modes eine semantisch korrekte Textmaske erstellt.

Das Grundprinzip verstehen

Die Textmaske besteht aus zwei Elementen: Dem Text selbst und einem Element, dass diesen Text überlagert und den Inhalt der Maske bereitstellt. Im Idealfall ist dieses Überlagerungselement ein CSS Pseudoelement.

Mit Hilfe eines CSS Blend Modes wird nun das Element mit dem Text verrechnet. Einen detaillierten Beitrag zu CSS Blend Modes findet ihr hier. Wenn der Hintergrund der Textmaske weiß sein soll, dann benötigt ihr schwarzen Text und den Blendmodus »screen« (In Photoshop »Negativ Multiplizieren«). Wenn der Hintergrund der Textmaske schwarz ist, benötigt ihr weißen Text und den Blendmodus »multiply« (In Photoshop »Multiplizieren«).

css-text-mask

Schwarzer Text auf weißem Grund wird mit einem farbigen Verlauf im Blendmodus »screen« überlagert, um den Verlauf auf den Text zu begrenzen

 

Text mit Farbverlauf weißem Grund

Der folgende CSS-Code ist notwendig, um eine Textmaske auf weißem Grund zu erzeugen. Der Blendmodus »screen« sorgt dafür, dass alle Pixel des Überlagerungselements sichtbar sind, die vor schwarzen Pixeln platziert wurden. Alles was vor weißen Pixeln positioniert wurde ist unsichtbar. Graue Pixel sorgen für Halbtransparenzen.

Beispiel anschauen

<h1>kulturbanause.de</h1>
h1 {
 position: relative;
 color:black;
}

h1:before {
 position: absolute;
 top:0;
 left:0;
 right:0;
 bottom:0;
 content: '';
 background:linear-gradient(45deg, gold, deeppink);
 mix-blend-mode:screen;
}

Text mit Farbverlauf auf schwarzem Grund

Der folgende CSS-Code erzeugt eine Textmaske auf schwarzem Grund. Hier ist es genau umgekehrt. Der Modus »multiply« sorgt dafür, dass nur die Pixel des Überlagerungselements sichtbar sind, die vor weißen Pixeln positioniert werden. Alles was vor schwarz steht ist unsichtbar.

Beispiel anschauen

<h1>kulturbanause.de</h1>
html {
 background:black;
}

h1 {
 position: relative;
 color:white;
}

h1:before {
 position: absolute;
 top:0;
 left:0;
 right:0;
 bottom:0;
 content: '';
 background:linear-gradient(45deg, gold, deeppink);
 mix-blend-mode:multiply;
}

Textmaske aus Bild

Die bisherigen Beispiele arbeiten mit einem Verlauf. Selbstverständlich kann auch ein Bild oder ein Video innerhalb des Textes dargestellt werden.

Beispiel anschauen

Jetzt bist Du gefragt

Gefällt Dir dieser Beitrag oder bist du anderer Meinung? Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Schriftgrößen in vw – Bilder mit Texten proportional skalieren

$
0
0

Textinhalte die optisch in oder vor einem Bild positioniert werden sollen, stellen in einem flexiblen Layout eine große Herausforderung dar. Das Problem besteht darin, dass Bilder meist proportional skaliert werden, wohingegen Texte einfach nur an anderer Stelle umbrechen. Dadurch entsteht ein schwer steuerbares Ungleichgewicht.

Individuelle Breakpoints für jedes Bild sind zwar technisch möglich, in der Praxis jedoch meist nicht realistisch. Auch wäre es denkbar, den Text direkt mit in die Grafik zu speichern, doch aus Gründen der Suchmaschinenoptimierung, Editierbarkeit und Übersetzbarkeit ist eine solche Lösung ebenfalls inakzeptabel.

In diesem Beitrag erklären wir, wie Texte, die optisch vor einem Bild platziert wurden, gemeinsam mit dem Bild proportional skaliert werden können.

Texte mit Hilfe der Einheit vw proportional skalieren

Die Einheit vw (Viewport Width) ermöglicht es Elemente anhand der Breite oder der Höhe (vh = Viewport Height) des Viewports zu gestalten. Wenn man die Schriftgröße in vw angibt, skaliert der Text automatisch größer und kleiner, wenn der Viewport sich verbreitert.

h1 {
  font-size: 7vw; 
} 

p {
   font-size: 4vw; 
}

Doch nicht nur Texte können in vw definiert werden, auch Abmessungen mit padding, Umrahmungen mit border und die meisten anderen Eigenschaften lassen sich mit diesem Trick wunderbar flexibel gestalten.

Beispiel: Bild, Text und Button proportional skalieren

Das folgende Beispiel zeigt die praktische Anwendung.

Beispiel anschauen

Folgender Code wird benötigt um das Beispiel herzustellen:

<div>
 <img src="bild.jpg" alt="">
 <div class="textcontainer">
 <h1>Headline</h1>
 <p>Lorem ipsum dolor <br>sit amet, consectetur  <br>adipisicing elit.</p>
 <a href="#">Button</a>
 </div>
</div>
div {
   position: relative; 
}

img {
   width: 100%;
   height: auto;
} 

.textcontainer {
   color: white;
   font-family: arial, sans-serif;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   padding: 5vw;
} 

h1 {
   font-size: 7vw;
} 

p {
   font-size: 4vw; 
} 

a {
   font-size: 4vw;
   color: white;
   text-decoration: none;
   padding: .5em 1em;
   border: .1em solid #DA9C07;
   display: inline-block;
   margin-top: 2vw;
}

Stufenlos skalierende Texte und Schriftgrößen mit CSS calc()

$
0
0

Der Betrachtungsabstand beim Lesen von Texten ändert sich erheblich, wenn man die Nutzung über Smartphones, Tablets, Notebooks und große Desktop-Monitore vergleicht. Je kleiner das Gerät, desto näher ist üblicherweise auch der Betrachtungsabstand. Die gewählte Schriftgröße muss diesen Betrachtungsabstand ausgleichen, was bedeutet, dass Schrift auf Smartphones kleiner sein sollte als auf großen Bildschirmen. Mit Hilfe der CSS calc()-Funktion lassen sich fließend skalierende Texte bzw. Schriftgrößen im Responsive Design realisieren.

Alternative Lösungen für skalierende Schriftgrößen

Die gängigste Lösung zur Veränderung der Schriftgröße ist der weg über CSS Media Queries. Hierbei ändert sich die Schriftgröße jedoch stufenweise – was suboptimal sein kann.

Eine weitere gängige Methode ist die Verwendung der vw-Einheit zur Gestaltung von Schriftgrößen, die sich jedoch sehr schlecht steuern lässt, wenn der Inhalt nicht einspaltig ist.

Responsive Schriftgrößen mit CSS calc()

Mit Hilfe der CSS-Funktion calc() kann der Text automatisch zwischen einem minimalen und einem maximalen Wert skaliert werden.

Wenn ihr möchtet, dass der Text bei 320 Pixeln Viewport-Breite 16 Pixel groß ist und bei 1600 Pixeln Viewport-Breite 28 Pixel, dann ist folgende Formel notwenig:

body {
 font-size: calc(16px + (28 - 16) * ((100vw - 320px) / (1600 - 320)));
}

Beispiel anschauen

 

Erklärung der Formel

Die oben gezeigte calc()-Funktion basiert auf folgender Formel:

body {
  font-size: calc([minimum size] + ([maximum size] - [minimum size]) * ((100vw - [minimum viewport width]) / ([maximum viewport width] - [minimum viewport width])));
}

Eine detaillierte Erklärung der Formel findet ihr u.a. beim Smashing Magazine.


Automatische CSS Initialen (Drop Caps)

$
0
0

Eine Initiale dient im Print- und Webdesign nicht nur als Zierelement – sie kann auch die Lesbarkeit von Texten erheblich verbessern, da sie den Blick des Lesers führt. Wir zeigen euch in diesem Beitrag wie ihr mit dem CSS Pseudoelement :first-letter eine automatische Initiale für eure Website gestalten könnt.

Webfont einbinden und grundlegende Font-Styles

Zunächst nehmen wir ein paar grundlegende Schrifteinstellungen vor, von denen Größen und Abstände der Initiale abhängig sind. Als Webfont für dieses Beispiel benutzen wir die »Roboto«, die wir direkt über Google Fonts einbinden. Das geschieht mit folgender Zeile im <head> unseres HTML-Dokuments:

<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">

Im CSS-Code setzen wir die Schriftgröße auf 100% zurück und legen den Font fest.

body {
  font-size: 100%; 
  font-family: 'Roboto', sans-serif;
}

p { 
  line-height: 1.5;
}

Außerdem haben wir für Absätze eine Zeilenhöhe von 150% festgelegt.

Die Initiale mit CSS ansprechen

In unserem Beispiel soll der erste Buchstabe des ersten Absatzes auf einer Seite zu einer Initiale werden. Um genau diesen Buchstaben via CSS ansprechen zu können, benutzen wir eine Kombination aus den CSS Pseudo-Selektoren :first-of-type und :first-letter:

p:first-of-type:first-letter {
  /* style */
}

Beachtet, dass Satzzeichen die vor dem ersten Buchstaben stehen das selbe Styling wie die Initiale erhalten.

Die Initiale mit CSS stylen

Wir möchten erreichen, dass die Initiale in der Höhe genau zwei Zeilen einnimmt. Außerdem müssen wir den Abstand zum Text auf der rechten Seite anpassen. Das erreichen wir mit folgendem CSS-Code:

p:first-of-type:first-letter { 
  font-size: 300%;
  line-height: 1;
  float: left;
  padding-right: .125em;
}

Verwendet ihr einen anderen Font oder sogar eine Schriftmischung – z.B. eine Initiale mit Serifen zusammen mit einem serifenlosen Text – werdet ihr im CSS die Werte etwas anpassen und ggf. zusätzlich mit margin arbeiten müssen. Leider lassen sich die Größen nicht zuverlässig berechnen, weshalb ihr um die manuelle Feinjustierung nicht herum kommen werdet.

Bugfix für Firefox

Da im Firefox die Höhe der Initiale falsch berechnet wird, müssen wir mit folgendem Media Query noch einen Abstand korrigieren – ausschließlich für den Firefox.

/* Anpassungen für Firefox */
@-moz-document url-prefix() {
  p:first-of-type:first-letter {
    margin-top: .15em;
  }
}

Noch einmal das gesamte CSS zusammengefasst:

body {
  font-size: 100%;
  font-family: 'Roboto', sans-serif;
}
p {
  line-height: 1.5;
}
p:first-of-type:first-letter {
  font-size: 300%;
  line-height: 1;
  float: left;
  padding-right: .125em;
}
/* Anpassungen für Firefox */
@-moz-document url-prefix() {
  p:first-of-type:first-letter {
    margin-top: .15em;
  }
}

Beispiel anschauen

Bugs & Browsersupport

Der Browsersupport für die oben beschriebenen Techniken ist sehr gut. Ab dem Internet Explorer 6 gibt es bereits Support für ::first-letter – allerdings mit der Schreibweise mit nur einem Doppelpunkt (:first-letter). Ab dem IE 9 ist die Unterstützung dann uneingeschränkt.

Es gibt zwei allgemein bekannte Bugs. Den ersten haben wir oben schon erwähnt und behoben – Firefox scheint die Höhe von dem mit :first-letter angesprochenen Buchstaben falsch zu berechnen.

Der zweite Bug betrifft Webkit-Browser. Hier wird die Initiale bei einer Textauswahl (visuell) nicht mit markiert. Beim Kopieren in die Zwischenablage kommt sie trotzdem mit.

CSS-Spezifikation und JavaScript Polyfill

Die manuelle Anpassung des CSS-Codes je nach Schriftart und die kleineren Bugs sind etwas lästig. Daher arbeitet die Arbeitsgruppe CSS bereits an einer neuen CSS Eigenschaft für »Drop Cap« Layouts. Adobe hat mit dropcap.js einen Polyfill entwickelt, wodurch die zukünftige CSS-Technik dank JavaScript bereits in Browsern der aktuellen Generation läuft. Eine interaktive Demo des Polyfills findet ihr hier.

CSS Text Decoration Styling – Farbig unterstrichene Texte, Unterbrechungen bei Unterlängen, Effekte für Linien usw.

$
0
0

Links werden in HTML automatisch unterstrichen dargestellt. Ein unterstrichenes Wort auf einer Website wird daher vom Anwender intuitiv als Hyperlink interpretiert – weshalb man das Gestaltungsmittel der Unterstreichung bewusst einsetzen sollte. Der CSS-Befehl text-decoration:underline; sorgt dafür, dass ein Text unterstrichen wird. Wenn mehr gestalterische Freiheit gewünscht war, haben Designer häufig border-bottom eingesetzt. Das CSS Text Decoration Module Level 3 erweitert die Möglichkeiten von text-decoration um Farben, Abstände und Effekte.

Die text-decoration Kurzschreibweise

Die wahrscheinlich bereits bekannte CSS-Eigenschaft text-decoration ist eine Kurzschreibweise für die Eigenschaften [text-decoration-line] [text-decoration-style] und [text-decoration-color].

.selektor {
  text-decoration: underline wavy yellowgreen;
}

text-decoration-line

Wenn ihr festlegen wollt wo sich die Linie befindet, verwendet text-decoration-line mit einem der folgenden Werte:

  • underline – Der Text wird unterstrichen
  • overline – Die Linie befindet sich oberhalb des Textes
  • line-through – Der Text wird durchgestrichen
  • blink (veraltet)

text-decoration-style

Wenn ihr beeinflussen wollt welche Form die Unterstreichung hat, könnt ihr mit text-decoration-line – ähnlich wie bei border-style – aus verschiedenen Linienarten wählen:

  • solid – durchgehende Linie
  • dashed – gestrichelte Linie
  • dotted – gepunktete Linie
  • wavy – geschwungene Linie
  • double – doppelte Linie

text-decoration-color

Mit text-decoration-color wird die Farbe bestimmt.

text-decoration-skip

Die Eigenschaft text-decoration-skip führt dazu, dass die Linie an bestimmten Stellen unterbrochen wird. Welche Stellen das sind, legt der Wert fest:

  • ink – Unterlängen des Textes werden ausgespart
  • objects – Inline-Block-Elemente werden nicht unterstrichen
  • spaces – Leerzeichen und Satzzeichen werden nicht unterstrichen
  • edges – Wenn zwei unterstrichene Elemente direkt nebeneinander liegen, wird ein Abstand angezeigt
  • box-decoration: vererbte margin-, padding- und border-Werte werden ausgespart

Dank text-decoration-skip: ink; wird die Unterstreichung bei einer Unterlänge des Textes unterbrochen

text-underline-position

Normalerweise wird die Linie in den Unterlängen eines Textes platziert – weshalb es Sinn machen kann mit text-decoration-skip Unterbrechungen einzufügen. Mit text-underline-position:under; kann die Linie auch nach unten verschoben werden.

Browser-Support

Den detaillierten Browser-Support könnt ihr auf caniuse.com nachlesen.

 

Textausrichtung mit CSS: Text von oben nach unten bzw. von rechts nach links schreiben

$
0
0

Die Ausrichtung von Text auf einer Website kann kompliziert werden, beispielsweise wenn rechtslaufende Sprachen wie Arabisch abgebildet werden sollen oder wenn aus gestalterischer Sicht Text von oben nach unten laufen soll. Wir geben euch in diesem Beitrag eine Übersicht über die verschiedenen CSS-Techniken zum Ausrichten und zum Positionieren von Text.

Horizontale Textausrichtung mit text-align

Um Text horizontal auszurichten, stehen euch mit CSS ähnliche Optionen wir in einer klassischen Textverarbeitung zur Verfügung. Ihr könnt Text links, zentriert oder rechts ausrichten bzw. Blocksatz verwenden. In CSS steuert ihr die Ausrichtung von Text über die Eigenschaft text-align. Es stehen folgende Werte zur Verfügung:

  • left: linksbündig
  • center: zentriert
  • right: rechtsbündig
  • justify: Blocksatz

Folgender Code zentriert einen Absatz.

p {
  text-align:center;
}

Beachtet bitte, dass sich text-align auch an die Kind-Elemente weitervererbt und Inline-, sowie Inline-Block-Elemente beeinflusst.

Text zentriert ausgerichtet mit CSS und »text-align:center«

Text zentriert ausgerichtet mit CSS und text-align: center

Verwechselt die Textausrichtung auch keinesfalls mit der Lese- bzw. Laufrichtung. Rechtslaufende Sprachen wie Hebräisch oder Arabisch würden falsch dargestellt werden, wenn ihr sie nur über text-align: right rechts ausrichtet. Die Satzzeichen stehen dann nämlich immer noch auf der falschen Seite der jeweiligen Zeile.

Horizontale Laufrichtung mit direction

Mit der CSS Eigenschaft direction steuert ihr die Laufrichtung von Text. Zur Auswahl stehen folgende Werte:

  • ltr für von links nach rechts laufenden Text (left to right)
  • rtl für von rechts nach links laufenden Text (right to left)

Folgender CSS-Code stellt einen Absatz rechtsläufig dar:

p {
  direction: rtl;
}

Der Unterschied zwischen rechtsbündig und rechtslaufend besteht darin, dass beispielsweise die Satzzeichen an anderer Stelle stehen. Für Texte in linkslaufenden Sprachen – z. B. dem nachfolgend abgebildeten Blindtext – ist rtl daher nicht geeignet. Für rechtslaufende Sprachen wie Arabisch ist der rtl-Wert allerdings zwingend notwendig

Leserichtung von rechts nach links mit CSS »direction:rtl«

Leserichtung von rechts nach links mit CSS direction:rtl

 

Beispiel anschauen

Gesamtes Layouts mit dir="rtl" spiegeln

Für rechtslaufende Sprachen kann es Sinn machen das gesamte Layout rechts auszurichten. Damit sich alle Blockelemente in einer Website automatisch rechts ausrichten und sämtlicher Text rechts läuft, ergänzt ihr einfach den <html>-Tag eures Dokuments um das Attribut dir="rtl" (Direction: right-to-left).

<html dir="rtl" lang="ar">

Damit wird auch die Leserichtung des gesamten Dokuments gespiegelt. Satzzeichen werden also auf der linken Seite der jeweiligen Zeile angezeigt.

Gesamtes Layout rechlaufend ausgerichtet mit »dir="rtl«

Gesamtes Layout rechlaufend ausgerichtet mit dir="rtl" (eignet sich nur für rechtslaufende Sprachen)

Im folgenden Beispiel wurde nichts am CSS verändert. Wir haben lediglich die Textausrichtung im <html>-Tag wie beschrieben angegeben.

Beispiel anschauen

Vertikale Textausrichtung mit writing-mode

Um Text vertikal auszurichten existiert u.a. die CSS-Eigenschaft writing-mode. Wir haben bereits 2010 schon einmal über diese Eigenschaft berichtet. Allerdings war damals der Browsersupport auf den Internet Explorer beschränkt. Mittlerweile unterstützen es alle modernen Browser. Der Internet Explorer bis einschließlich Version 11 unterstützt jedoch andere Werte einer früheren Version von writing-mode die wir in dem erwähnten Artikel beschreiben.

Für alle anderen Browser (inkl. Microsoft-Browser ab Edge) verfügt die CSS-Eigenschaft writing-mode über folgende Werte:

  • horizontal-tb: ist die Standardeigenschaft und steht für »horizontal-top-to-bottom« – also die normale westliche Leserichtung von links nach rechts und von oben nach unten.
  • vertical-lr: steht für »vertical-left-to-right«
  • vertical-rl: steht für »vertical-right-to-left«
p {
  writing-mode: vertical-lr;
}

Mit writing-mode kann also bestimmt werden ob Text vertikal von links nach rechts oder andersherum vertikal und von rechts nach links läuft.

Text vertikal mit CSS und »writing-mode: vertical-lr« ausgerichtet.

Text vertikal mit CSS und writing-mode: vertical-lr ausgerichtet.

Text vertikal mit CSS und »writing-mode: vertical-rl« ausgerichtet.

Text vertikal mit CSS und writing-mode: vertical-rl ausgerichtet.

Beispiel anschauen

Vertikale Textausrichtung mit text-orientation

Ergänzend zu writing-mode kann auch text-orientation verwendet werden. Diese Eigenschaft hat nur einen Effekt auf Elemente, die nicht writing-mode: horizontal-tb haben.

Die Eigenschaft text-orientation wird weder vom Internet Explorer noch von Edge unterstützt. Die Unterstützung scheint auch für die Zukunft nicht geplant zu sein.

Es stehen folgende Werte zur Verfügung:

  • sideways:Ist die Standardeigenschaft, wenn ihr writing-mode: vertical-lr oder writing-mode: vertical-rl verwendet habt.
  • upright: Dreht quasi die einzelnen Buchstaben einer vertikal gedrehten Zeile wieder um 90 Grad zurück in die Ausgangslage. Damit haben die einzelnen Buchstaben die natürliche Ausrichtung, die Zeile läuft trotzdem von oben nach unten.
  • sideways-right: Ist im Prinzip das gleiche wie sideways. Wird aber aus Kompatibilitätsgründen nicht abgeschafft.
  • mixed: Dreht die Zeichen horizontaler Schriften –  z. B. Ostasiatische Schriften – um 90° und legt die Buchstaben von vertikalen Skripten als natürlich fest.
  • use-glyph-orientationDieser Wert beeinflusst nur SVGs. Sie bewirkt, dass der Wert der veralteten SVG-Eigenschaften glyph-orientation-vertical und glyph-orientation-horizontal verwendet wird.

In unserem nächsten Beispiel haben wir den Text von oben nach unten laufen lassen, wobei die Ausrichtung der einzelnen Buchstaben unverändert bleibt. Dafür ist im CSS folgender Code notwendig:

p { 
  writing-mode: vertical-lr; 
  text-orientation: upright; 
}
Vertikal ausgerichteter Text ergänzt mit der CSS Eigenschaft »text-orientation: upright«

Vertikal ausgerichteter Text ergänzt mit der CSS Eigenschaft text-orientation: upright

Beispiel anschauen

Zahlen horizontal darstellen mit text-combine-upright

Nun gibt es Sprachen wie Japanisch oder Chinesisch, in denen diese Textausrichtung den Standard darstellt. Für einen speziellen Effekt, der »tate-chū-yoko« genannt wird, gibt es noch die weitere CSS Eigenschaft text-combine-upright für die Darstellung von Zahlen.

Es stehen folgende Werte zur Verfügung:

  • all: alle Ziffern werde horizontal auf einer Breite von 1em dargestellt
  • digits: bis zu 2 aufeinanderfolgende Ziffern werden horizontal auf einer Breite von 1em dargestellt
  • digits 4: bis zu 4 aufeinanderfolgende Ziffern werden horizontal auf einer Breite von 1em dargestellt
CSS text-orientation-upright: all (rechts) für die Darstellung von Zahlen in Japanischer Schrift

CSS text-orientation-upright: all (rechts) für die Darstellung von Zahlen in Japanischer Schrift

Die CSS Eigenschaft wird in diesem Fall nicht auf den gesamten Absatz angewendet – dies würde zu einer Fehldarstellung führen – sondern nur auf die Zahlen. Dazu umschließen wir sie mit einem <span> und geben diesem die Eigenschaft text-combine-upright. Das sieht dann im HTML-Code folgendermaßen aus:

<p>
  文化<span>20</span>俗物<span>18</span>
</p>

Und im CSS:

span {
  text-combine-upright: all;
}

Der Browsersupport für text-combine-upright ist allerdings derzeit noch durchwachsen. Den Wert text-combine-upright: all; unterstützen so weit alle modernen Browser mit Präfix (-webkit, -ms). Die digits-Werte werden nur vom Internet Explorer unterstützt und von Firefox, sobald sie manuell in den Einstellungen aktiviert werden.

Text drehen mit transform: rotate()

Natürlich kann auch jedes Text enthaltene Element mit der CSS Eigenschaft transform: rotate() gedreht werden. Innerhalb der Klammern wird dabei der Winkel in Grad angegeben um den das Element gedreht werden soll (es können auch negative Werte angegeben werden). Folgendes Beispiel dreht ein <p> im Winkel von 90 Grad im Uhrzeigersinn:

p {
  transform: rotate(90deg);
}
Text mit CSS »transform: rotate(90deg)« im Uhrzeigersinn gedreht.

Text mit CSS transform: rotate(90deg) im Uhrzeigersinn gedreht.

Allerdings bietet sich diese Technik meist nicht an, da sich gedrehte Elemente gegenseitig nicht wie gewünscht beeinflussen. In unserem Beispiel seht ihr, dass das gedrehte Element das andere überlagert, anstatt es zu verschieben. Generell kann die Positionierung von gedrehten Elementen etwas verwirrend sein.

Allerdings kommt ihr um transform: rotate() nicht herum, wenn ihr euren Text nicht exakt um 90 Grad drehen möchtet. Mit  transform: rotate() habt ihr nämlich die Freiheit Elemente in Grad Schritten mit mehreren Nachkommastellen zu drehen.

Beispiel anschauen

Ergänzende Links

Sketch: Erweiterte Typografie-Einstellungen und Formatierung für Listen

$
0
0

Die typografischen Möglichkeiten von Sketch scheinen auf den ersten Blick überschaubar zu sein. Zwar stimmt es, dass in Layoutprogrammen wie InDesign die typografischen Möglichkeiten deutlich umfangreicher sind, aber auch in Sketch gibt es zahlreiche versteckte Optionen um Schrift und Text zu optimieren.

Erweiterte Einstellungen für Versalien und unterstrichenen Text

Sobald ein Textrahmen ausgewählt ist, stehen rechts in den Einstellungen die Optionen zum Editieren dieses Textes zur Verfügung. Im oberen Bereich des Bedienfelds kann über das Zahnrad-Icon eine weitere Einstellungsebene eingeblendet werden. Dort lassen sich Texte in Versalien setzen, unterstreichen oder in Kleinbuchstaben setzen.

Detaileinstellungen für Typografie

Wenn die erweiterten Einstellungen nicht ausreichen – beispielsweise da Mikrotypografische Einstellungen wie Ligaturen, hoch- und tiefgestellte Zahlen o.ä. vorgenommen werden sollen – gibt es in Sketch noch weitere Möglichkeiten.

Unter dem Eintrag »Text« in der Menüleiste stehen entsprechende Optionen zur Verfügung.

Sollte auch das nicht ausreichen, kann unter »View → Show Fonts« ein weiteres Bedienfeld aktiviert werden. Dort wiederum kann unter den »Einstellungen (Zahnrad) → Typografie« ein Bedienfeld für Detailtypografie aktiviert werden.

Listen formatieren

In Sketch können Texte unkompliziert als geordnete bzw. als ungeordnete Listen formatiert werden. Voraussetzung dafür ist ein Textrahmen mit mindestens einer Zeile Text. Anschließend kann unter »Text → List Type« die gewünschte Listenart gewählt werden.

Wenn detaillierte Listen-Formatierungen gewünscht sind, markiert einen Listeneintrag und wählt aus dem Kontextmenü (Rechtsklick) den Eintrag »List«. Anschließend kann die Formatierung detailliert mit Präfix und Suffix formatiert werden.

Ausgeschnittener Text mit CSS

$
0
0

Ein einzelner interessanter Effekt kann das Layout der gesamten Website spürbar verbessern. Maskierter bzw. ausgeschnittener Text, durch den man eine weiter hinten liegende Ebene – z. B. ein Foto oder einen Verlauf – sieht, kann ein spannender Eyecatcher sein. Mit CSS lässt sich der Effekt unkompliziert herstellen. Der Trick basiert auf der Blend Mode-Technik und kann sehr gut nach dem Prinzip des Progressive Enhancement eingesetzt werden.

Typo cut-out mit CSS

Damit der Effekt sichtbar wird sind zwei Elemente notwendig. Der Text und ein Container-Element, dass den Hintergrund erhält, der durch den Text hindurch sichtbar sein soll. Im folgenden Beispiel ist dieser Hintergrund ein Verlauf – ein Foto wäre natürlich ebenfalls möglich.

Transparenter Text auf weißer bzw. schwarzer Grundfläche

Transparenter Text auf weißer bzw. schwarzer Grundfläche

Der Text innerhalb des Containers erhält ebenfalls einen Hintergrund. Ist dieser Hintergrund weiß, muss die Textfarbe schwarz sein. Ist der Hintergrund schwarz, muss weißer Text verwendet werden.

<div class="container">
  <div class="text-light">kulturbanause_</div>
  <div class="text-dark">kulturbanause_</div>
</div>
/* Wir zeigen hier nur den für das Beispiel relevanten CSS Code */

.container {
  /* hier die gewünschte Hintergrundgestaltung */
}

.text-dark {
  background-color: black;
  color: white;
  mix-blend-mode: multiply;
}

.text-light {
  background-color: white;
  color: black;
  mix-blend-mode: screen;
}

Die CSS Blendmodi screen bzw. multiply sorgen dafür, dass schwarzer Text auf weiß bzw. weißer Text auf schwarz transparent werden. Dazu wird mit mix-blend-mode das Text-Element mit dem Hintergrund verrechnet. Der Effekt ähnelt dem Einsatz einer Maske.

Beispiel anzeigen

Browser-Support und Progressive Enhancement

In alten bzw. nicht-kompatiblen Browser wird der Text schwarz bzw. weiß dargestellt. Somit ist die Lesbarkeit in allen Systemen gewährleistet und es entsteht kein optischer Fehler. Es fällt wahrscheinlich nicht einmal auf, dass die Basis-Version dargestellt wird, wenn der Vergleich mit der optimalen Version nicht bekannt ist.

Die Fallback-Lösung für inkompatible Browser

In allen Browser in denen die CSS-Technologie Blend Modes unterstützt wird ist der Text transparent ausgeschnitten. Moderne Systeme erfahren somit eine Verbesserung nach dem Prinzip des Progressive Enhancement.

Den detaillierten Browsersupport findet ihr auf caniuse.com.

Viewing all 69 articles
Browse latest View live