より短い単位へ(0の場合だけ)

CSSの長さでは、値が0の場合に限って単位を省略できる。このルールは周波数や角度、時間においては適用されないため、たとえば0ms0とは書けない。しかしこの場合は0sと違う単位で書くことによって1文字短くなる。こういった安全な単位の変換機能CSSWringへ組み込んだ。

具体的には角度と周波数、そして時間をそれぞれの最も短い単位へ変換する。それぞれの最も短い単位の対応は以下のようなものだ。

変換元 変換先
角度 deg deg
grad deg
rad deg
turn deg
周波数 Hz Hz
kHz Hz
時間 ms s
s s

解像度である0dpcm0dppx0dpiへ変換する機能も作ったが、メディア・クエリー内を正規表現でいじるのは危険そうなのでやめておいた。来るメディア・クエリーのレベル4仕様におけるクエリー・パラメーターのとてつもない強化との間で整合性をとるのが難しそうだからだ。また0msなどは書かれる可能性がないこともないが、0dppxがメディア・クエリーで使われるとは到底思えないことからでもある。

哲学的にも性能的にもあまり意義深い機能ではないので、まだリリースはしていない。バグや誤爆はなさそうなので、次のリリースには組み込まれるだろう。


角度ではdeggradradturnでどれが一番短くなるかを計算できそうだ。時間でも最後が2桁以上の0で終わるmsならsに変換した方が短いかもしれない。この辺りの単純な変換を考慮した短縮機能も考えてみたい。