≪ Today I learned.
RSS購読
    公開日
    タグ
    CSS
    著者
    ダーシノ

    CSS Relative Colorsで色を柔軟に扱う

    Relative Colorsを使うことで、オリジナルの色に対して、rgba、hsl、lchなどのカラー関数を適用できるようになった。

    構文は以下のようにfromをつけることで、カラー関数の再適用ができる。

    color-function(from origin channel1 channel2 channel3 / alpha)

    たとえば、デザイントークンなどhexで定義された色を、hsl関数を用いて彩度や輝度のみを変更したり、rgb関数のRed要素だけを変更したりできる。 アニメーションや:hover:activeなどのバリエーション作成に便利。

    チャンネルを変更しない場合は、rgbならr/g/b、hslならh/s/lのように指定するとオリジナルの色を引き継げる。

    :root {
      --origin-color: #88CC00;
    }
    
    .origin {
      background-color: var(--origin-color);
    }
    
    .brighten {
      background-color: hsl(from var(--origin-color) h s 80%);
    }
    
    .bluely {
      background-color: rgb(from var(--origin-color) r g 255);
    }

    デモ

    Origin
    Brighten
    Bluely