Color Alpha Anywhere

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

In meinem Artikel „Verschiedene Grade der Nutzung von benutzerdefinierten Eigenschaften“ habe ich eine Situation mit Farben und CSS-benutzerdefinierten Eigenschaften angesprochen, in der ich mit dem Aufbrechen von HSL-Farbwerten „zu weit gegangen“ bin. Jeden einzelnen Farbwert in seine H-, S- und L-Teile aufzubrechen, ist vielleicht ein Schritt zu weit.

Aber wahrscheinlich möchten Sie es so aufteilen

html {
  --color-1-hsl: 200deg 15% 73%;
  --color-1: hsl(var(--color-1-hsl));
}

Also, zwei benutzerdefinierte Eigenschaften pro Farbe in Ihrem Farbsystem. Warum? Weil Sie jetzt eine wirklich einfache Möglichkeit haben, es zu verwenden, *und* Sie haben eine Möglichkeit, Alpha auf die Farbe anzuwenden, wenn Sie möchten.

.card {
  background: var(--color-1);
}
.card-with-alpha {
  background: hsl(var(--color-1-hsl) / 0.5);
}

Es gibt eigentlich keinen anderen Weg, eine vorhandene Farbe in CSS zu nehmen und Transparenz mit Alpha darauf anzuwenden. Nun, das sage ich, aber tatsächlich

/* Future CSS! (works in Safari TP right now) */
.card-with-alpha {
  background: hsl(from var(--color-1) h s l / 0.5);
}

Das ist nett, aber ich bin mir nicht ganz sicher, wann wir uns darauf im produktiven Einsatz verlassen können.

Wissen Sie, was wir auch nicht für etwas super Wichtiges im produktiven Einsatz verwenden können? Houdini Paint Worklets. Noch keine Firefox- oder Safari-Unterstützung dafür.

Eine Enttäuschung, denn Dave hatte dieses Ding fast geknackt! Die Erkenntnis hier ist, dass Houdini Paint Worklets im Grunde ein Bild zurückgeben, das Sie mit <canvas>-APIs malen. Sie können ein Rechteck in Canvas mit jedem Farbformat malen, dann die globalAlpha setzen, das als Bild zurückgeben und das schaltet im Grunde Alpha für jedes Farbformat frei! Es funktioniert (in Chrome)

Dave hat den Code auf GitHub hochgeladen und darüber gebloggt. Natürlich gab es auch ein gutes Video dazu

Liken und abonnieren.

Aber wenn Sie ein System wie dieses im produktiven Einsatz benötigen, machen Sie einfach die benutzerdefinierte Eigenschaftstechnik, die ich zuerst erwähnt habe.

Eine frühere Version dieses Posts wurde per Tweet-Bombing überflutet, aber ich blogge ihn hier, weil echte Blogger bloggen.