Rudi Ratlos: Frage zum Wiki-Artikel „oklab()“

problematische Seite

Je nach Fundstelle varieren die Bezeichner der einzelnen Komponenten. Gefunden habe ich da bislang oklab(l a b / A) und oklab(l a b / alpha) (biese Versionen: MDN), oklab(L a b / A), oklab(L a b / Alpha) und, überwiegend, Stellen ohne „kalkulierbare“ Alpha-Werte. Da gibt es nur diskrete Zahlen.
Ist an der Stelle das CSS entsprechend ignorant gegenüber der Groß-/Kleinschreibung? Insbesonders „die A-Klasse“ …
Daß nicht auch noch ein oklab(l a b / a) dabei war, ist jedenfalls fast schon irritierend.

  1. problematische Seite

    Servus!

    Je nach Fundstelle varieren die Bezeichner der einzelnen Komponenten. Gefunden habe ich da bislang oklab(l a b / A) und oklab(l a b / alpha) (biese Versionen: MDN), oklab(L a b / A), oklab(L a b / Alpha) und, überwiegend, Stellen ohne „kalkulierbare“ Alpha-Werte. Da gibt es nur diskrete Zahlen.\

    Du hast Recht, das sind Bezeichner für diese Zahlen- oder Prozentwerte.

    Ist an der Stelle das CSS entsprechend ignorant gegenüber der Groß-/Kleinschreibung?

    CSS ist case-insensitive, d.h #BADA55ist das gleiche wie #bada55, aber hier sind das eben Bezeichner für Zahlenwerte.

    <span style="background: oklab(0.5 a -0.4)"></span> wäre falsch und wird ignoriert.

    Insbesonders „die A-Klasse“ …\

    Du sprichst auf die Transparenz_mit_Alphakanal an. Da gehört ein Wert von 0-1 oder eine Prozentangabe hin, kein Platzhalter.

    BTW: Ich habe zwar den Artikel zu den Farbangaben geschrieben, musste aber selbst erst einmal nachlesen, wofür a und b stehen, intuitiver ist oklch() mit

    • L (Lightness)
    • C (Chroma)
    • H (Hue) - der Farbton

    Farbe/Farbmodelle#oklch()

    Herzliche Grüße
    Matthias Scharwies

  2. problematische Seite

    @@Rudi Ratlos

    Je nach Fundstelle varieren die Bezeichner der einzelnen Komponenten. Gefunden habe ich da bislang oklab(l a b / A) und oklab(l a b / alpha) (biese Versionen: MDN), oklab(L a b / A), oklab(L a b / Alpha) und, überwiegend, Stellen ohne „kalkulierbare“ Alpha-Werte. Da gibt es nur diskrete Zahlen.

    Wenn du die Bezeichner als metasyntaktische Variablen (Platzhalter) verwendest, kannst du sie benennen, wie es am verständlichsten ist, bspw: rgb(rot grün blau / Alpha-Kanal) bzw. oklab(Helligkeit a-Wert b-Wert / Alpha-Kanal).

    Dann wäre es aber vielleicht sinnvoll zu verdeutlichen, dass es sich um Platzhalter handelt; bspw. rgb(<rot> <grün> <blau> / <Alpha-Kanal>) oder oklab(<Helligkeit> <a-Wert> <b-Wert> / <Alpha-Kanal>).

    Wenn es sich aber um Syntax handelt wie bei relativen Farbangaben, dann müssen die vorgegebenen Bezeichner eingehalten werden. Für den Alphakanal-Wert bspw. muss es alpha sein; a ist falsch, s. dieses Posting.

    Das gesagt, ist es vielleicht doch besser, die Bezeichner konsistent zu verwenden, für metasyntaktische Variablen also dieselben wie die bei relativen Farbangaben. Also rgb(r g b / alpha) bzw. oklab(l a b / alpha).

    Daß nicht auch noch ein oklab(l a b / a) dabei war, ist jedenfalls fast schon irritierend.

    Bei relativen Farbangaben wäre das kein (Syntax-)Fehler; es bewirkt aber vermutlich nicht das Gewünschte, s. Codepen.

    Bei oklch() hingegen ist die Verwendung von a ein Syntaxfehler. Die fehlerhafte Deklaration wird ignoriert; es gilt der Defaultwert.

    🖖 Live long and prosper

    --
    “In my home, the America I love, the America I've written about, that has been a beacon of hope and liberty for 250 years, is currently in the hands of a corrupt, incompetent and treasonous administration. Tonight, we ask all who believe in democracy and the best of our American spirit, to rise with us, raise your voices against authoritarianism, and let freedom reign.”
    — Bruce Springsteen, Manchester 2025-05-14