Vergessen Sie RGB und HEX

Es gibt verschiedene Möglichkeiten, Farben in CSS darzustellen. Eines davon ist das HSL-System. In diesem Artikel werde ich Ihnen zeigen, welche Möglichkeiten sich fĂŒr einen Layout-Designer ergeben.

Was ist HSL?


Der Name des HSL-Formats leitet sich aus einer Kombination der ersten Buchstaben Farbton (Farbton), SĂ€ttigung (SĂ€ttigung) und Helligkeit (Helligkeit oder Helligkeit) ab.

Der Farbton ist der Farbwert im Farbkreis und wird in Grad eingestellt. 0 ° entspricht Rot, 120 ° GrĂŒn und 240 ° Blau. Der Wert des Farbtons kann von 0 bis 359 variieren. Die



SÀttigung ist die FarbintensitÀt, gemessen in Prozent von 0% bis 100%. Legt fest, wie weit die Farbe von Grau mit derselben Helligkeit entfernt ist.

Die Helligkeit gibt an , wie hell die Farbe ist, und wird als Prozentsatz von 0% bis 100% angegeben. Kleine Werte machen die Farbe dunkler und hohe Werte heller, extreme Werte 0% und 100% entsprechen Schwarzweiß.



HSL-Vorteile ()


Der Hauptvorteil von HSL ist die Möglichkeit, Farbeigenschaften unabhĂ€ngig voneinander festzulegen . Dies eröffnet Ihnen große Chancen. Sie können die Farbe leicht heller, dunkler, gesĂ€ttigter oder verfĂ€rben. Und unter Beibehaltung des Schattens. Oder umgekehrt - Ă€ndern Sie die Farben, ohne ihre SĂ€ttigung oder Helligkeit zu Ă€ndern. Oft werden PrĂ€prozessoren verwendet, um diese Funktionen zu verwenden, aber Sie können auch darauf verzichten.

Einige Beispiele


Abgeleitete Farben des gleichen Farbtons


Eine der hÀufigsten Aufgaben: eine Komponente herzustellen, die einen einzigen Grundton annimmt, aber aus mehreren Variationen besteht. In meinem Beispiel ist dies eine typische Warnung, bei der die Farbe von Text, Hintergrund und Strich den gleichen Farbton und die gleiche SÀttigung, aber unterschiedliche Helligkeit aufweist:

.success {  
  border-color:     hsl(120, 50%, 40%);
  color:            hsl(120, 50%, 20%);
  background-color: hsl(120, 50%, 90%);
}


Sehen Sie, wie schön und klar? Es ist sofort klar, dass dies eine „Familie“ von Blumen ist. In anderen Formaten wĂŒrde es ungefĂ€hr so ​​aussehen:

/* rgb */
.alert {
  border-color:     rgb(51, 153, 51);
  color:            rgb(25, 77, 25);
  background-color: rgb(217, 242, 217);
}

/* hex */
.alert {
  border-color:     #339933;
  color:            #194d19;
  background-color: #d9f2d9;
}

Ich weiß nichts ĂŒber dich, aber es fĂ€llt mir schwer, mir einen solchen Code anzusehen, um zu sagen, ob diese Farben irgendwie miteinander verbunden sind oder nicht.

Aber das sind Kleinigkeiten. Bei Verwendung der benutzerdefinierten CSS-Eigenschaften wird die wahre Leistung angezeigt.

Wie sie sagen, pass auf deine HĂ€nde auf. Wenn wir eine Komponente der Farbe erstellen, z. B. einen Farbton oder eine Variable, können wir leicht eine unendliche Anzahl von Variationen unserer Komponente erstellen, indem wir nur den Grundfarbton darin Ă€ndern. Und alle Derivate werden davon abgestoßen.

.alert {
  border-color:     hsl(var(--hue), 50%, 40%);
  color:            hsl(var(--hue), 50%, 20%);
  background-color: hsl(var(--hue), 50%, 90%);
}



Bleichen


In diesem Beispiel hat die Aus-Taste eine reduzierte SÀttigung. Es hat immer noch eine subtile Blautönung, ist aber fast grau. Und wenn Sie den Mauszeiger bewegen, behÀlt der Knopf Farbton und SÀttigung bei, aber es wird dunkler.



Um dieses Problem zu lösen, reicht es aus, nur einen der drei Parameter zu Àndern, um eine abgeleitete, aber Àhnliche Farbe zu erhalten. Was bei Verwendung von RGB oder Hex nicht so einfach ist.

Wie im ersten Beispiel können Sie den Farbton leicht Àndern, ohne alle anderen Farbeigenschaften Ihrer Komponente zu beeinflussen.


Farbvererbung


Eine der coolsten Techniken: Erstellen eines Farbtons ausgehend von einem anderen. Dies wird durch einfaches HinzufĂŒgen in calc () erreicht.

:root{
  --hue: 120;
}

header {
  background-color: hsl(var(--hue), 30%, 20%)
}

header button {
  background-color: hsl(calc(var(--hue) + 130), 80%, 50%)
}

In diesem Beispiel hÀngt der Farbton der SchaltflÀche (+ 130 ° im Farbkreis) vom Farbton des Containers ab.


Auf einfache Weise können Sie vollwertige, flexible Farbpaletten fĂŒr Ihre Websites erstellen, indem Sie nur einen Grundton festlegen und von diesem ausgehen.

Alle Ihre Komponenten behalten ihre SĂ€ttigung und Helligkeit bei, wie in den vorherigen Beispielen gezeigt.



Zukunft


In der Spezifikation des CSS-Farbmoduls Stufe 4 wurden neue Funktionen beschrieben: lab () und lch () zum Angeben von Farben in den gleichnamigen Formaten. LCH hat die gleiche FlexibilitĂ€t wie hsl, bringt jedoch eine Reihe von Verbesserungen mit Blick auf moderne GerĂ€te. Weitere Informationen hierzu finden Sie im Artikel „ LCH-Farben in CSS: Was, warum und wie? ".

Gesamt


Meiner Meinung nach hat das hsl-Format im Vergleich zu Alternativen eine fantastische FlexibilitĂ€t. In Kombination mit Variablen bieten Sie praktisch alle Möglichkeiten fĂŒr die Arbeit mit Farben, von PrĂ€prozessoren bis hin zu nativem CSS.

PS Entschuldigung fĂŒr den lauten Titel :)

All Articles