本当は色相を徐々に変えたかったが、今の書き方のCSSとこの実装ではうまくできなかった。色をスクリプトで作ってやれば可能だが、カスタム・プロパティーで管理できなくなるので見送った。どう書いてうまくいかなかったか、の記録を残しておく。
:root {
--hue: 45;
--color-background: hsl(var(--hue) 50% 95%);
transition: --hue 0.3s ease-in;
}
色相を徐々に変えたいだけだったので、このようにしたかったが、動かない。カスタム・プロパティーはtransition-property
プロパティー(やそれに相当するもの)では指定できないようだ。もちろんall
でも動かない。
:root {
--hue: 45;
--color-background: hsl(var(--hue) 50% 95%);
}
html {
background-color: var(--color-background);
transition: background-color 0.3s ease-in;
}
また、カスタム・プロパティーの更新では値が変化したと認識されないようで、transition-property
プロパティーで指定しても反応してくれない。値そのものが変化する必要がありそうだ。
カスタム・プロパティー(を使った抽象化やカプセル化)とCSSアニメーションの組み合わせは鬼門なのかもしれない。Web Animation Level 1仕様のカスタム・プロパティーの項を読む限りは、うまく書けば動くように実装されるべきと読めるが、ちゃんと書く方法がよくわからない。もうちょっと調べて、うまい書き方が見つかることを祈っている。