11月26日、W3C CSSWGのメンバーであるRoman Komarov氏が「It is OK to Say “CSS Variables” Instead of (or Alongside) “Custom Properties”」と題したブログ記事を公開した。この記事では、CSSの「Custom Properties」を「CSS Variables(変数)」と呼んでも問題ないとする筆者の見解について詳しく紹介している。

以下に、その内容を紹介する。
「CSS変数」と呼んでも問題ないという主張
この記事の中心的な論点は、CSSのカスタムプロパティ(Custom Properties)を「CSS Variables(変数)」と呼んでも構わないという筆者の考えである。公式仕様の名称は “CSS Custom Properties for Cascading Variables” であり、URL のスラッグが css-variables であることからも、仕様側も「variables」という概念を明確に含んでいる。
筆者は、(他の多くのWebエンジニアと同様)かつてこの呼び分けで少し戸惑うことがあったと述べつつ、現在は「変数」としての性質がより本質的であると考えている。
変数としての本質 ― “Cascading Variables”
筆者は、カスタムプロパティが「変数」であることを強調する。特に cascading(カスケードする)変数 である点が重要だとしている。
- CSS のカスケードに従って値が変化する
- ルールの適用や優先度によって上書きされる
- ビューポートやコンテナサイズに応じて値が変動する
- アニメーションにも使えるため、時間的にも値が変化しうる
このような“変化する(vary)”性質を持つことから、「CSS変数」という呼び名は本質的な特徴を捉えているというわけだ。
「Custom Properties」としての側面も残る
もちろん CSS変数 は、従来のプロパティの拡張でもある。特に @property を利用する場合、型付けされたプロパティとしてより“プロパティらしさ”を発揮する。
@propertyによる明示的な型付け- CSS 全体は暗黙的な型システムだが、カスタムプロパティは明示的な型を持てる
- “変数としての役割”と“プロパティとしての役割”を両立している
筆者は、CSS のこの柔軟性を高く評価している。
CSS と HTML は「プログラミング言語」である
筆者は、CSS と HTML はプログラミング言語だと主張する。
- 値の変化、カスケード、コンポジションが存在する
- 明確な型システムが存在する(暗黙的ではあるが)
- 宣言的プログラミングの特徴を持つ
こうした特徴を備えつつ、更に他の“プログラミング言語”より優れた部分もあると筆者は述べている
詳細はIt is OK to Say “CSS Variables” Instead of (or Alongside) “Custom Properties”を参照していただきたい。