CSSの長さでは、値が0の場合に限って単位を省略できる。このルールは周波数や角度、時間においては適用されないため、たとえば0ms
は0
とは書けない。しかしこの場合は0s
と違う単位で書くことによって1文字短くなる。こういった安全な単位の変換機能をCSSWringへ組み込んだ。
具体的には角度と周波数、そして時間をそれぞれの最も短い単位へ変換する。それぞれの最も短い単位の対応は以下のようなものだ。
型 | 変換元 | 変換先 |
---|---|---|
角度 | deg |
deg |
grad |
deg |
|
rad |
deg |
|
turn |
deg |
|
周波数 | Hz |
Hz |
kHz |
Hz |
|
時間 | ms |
s |
s |
s |
解像度である0dpcm
や0dppx
を0dpi
へ変換する機能も作ったが、メディア・クエリー内を正規表現でいじるのは危険そうなのでやめておいた。来るメディア・クエリーのレベル4仕様におけるクエリー・パラメーターのとてつもない強化との間で整合性をとるのが難しそうだからだ。また0ms
などは書かれる可能性がないこともないが、0dppx
がメディア・クエリーで使われるとは到底思えないことからでもある。
哲学的にも性能的にもあまり意義深い機能ではないので、まだリリースはしていない。バグや誤爆はなさそうなので、次のリリースには組み込まれるだろう。
角度ではdeg
とgrad
、rad
、turn
でどれが一番短くなるかを計算できそうだ。時間でも最後が2桁以上の0で終わるms
ならs
に変換した方が短いかもしれない。この辺りの単純な変換を考慮した短縮機能も考えてみたい。