CSS Function - oklab()



The oklab() function in CSS expresses a color in the oklab color space. It represents all the colors that are visible to human eye. It works with the Cartesian coordinates on the Oklab color space, i.e., the a- and b-axes.

To add the color transparency, an optional alpha component can be passed to the oklab() function.

In order to use the polar color system, for chroma and hue, you can use the oklch() function.

Possible values

The functional notation for oklab() function is oklab(L a b[ / A]).

  • L: can contain either of the format(s), that represents the perceived lightness:

    • a <number>: any number between 0 and 1, where 0 corresponds to 0% (black) and 1 corresponds to 100% (white).

    • a <percentage>: any value between 0% and 100%.

    • keyword none

  • a: can contain either of the format(s), that specifies the distance along the a-axis in the oklab color space (shows how green/red color is):

    • a <number>: any number between -0.4 and 0.4.

    • a <percentage>: any value between -100% and 100%.

    • keyword none

  • b: can contain either of the format(s), that specifies the distance along the b-axis in the oklab color space (shows how blue/yellow color is):

    • a <number>: any number between -0.4 and 0.4.

    • a <percentage>: any value between -100% and 100%.

    • keyword none

  • A: represents the transparency of the color. It is an optional value.

    • <alpha-value>: any number between 0 and 1, where 1 corresponds to full opacity and 0 corresponds to full transparency.

    • keyword none

Syntax

oklab(29.2345% 0.3825 20.0664%) | oklab(1 39.3825% 20.0664%) | oklab(29.2345% -0.23 20.0664% / 0.5);

CSS oklab() - Combination of Values

Following is an example showing the usage of oklab() function with different combinations of values:

<html>
<html>
<head>
<style>
   div {
      width: 100px;
      height: 100px;
      border: 2px solid black;
      margin-bottom: 10px;
   }
   
   .oklab-light-50 {
      background-color: oklab(50% -100% 0.4);
   } 

   .oklab-light-100 {
      background-color: oklab(100% 0.4 85%);
   } 

   .oklab-light-none {
      background-color: oklab(none 0.29 0.34);
      color: white;
   }

   .oklab-b-none {
      background-color: oklab(.75 75% none);
   }

   .oklab-with-alpha {
      background-color: oklab(1 0.12 75% / 0.8);
   }
</style>
</head>
<body>
   <div class="oklab-light-50">oklab(50% -100% 0.4)</div>
   <div class="oklab-light-100">oklab(100% 0.4 85%)</div>
   <div class="oklab-light-none">oklab(none 0.29 0.34)</div>
   <div class="oklab-b-none">oklab(0.75 75% none)</div>
   <div class="oklab-with-alpha">oklab(1 0.12 75% / 0.8)</div>
</body>
</html>
Advertisements