サーバサイドCSS

以前このブログでも紹介した、拙作の「Smart*CSS」をウノウラボで紹介させて頂きました。流石に自分とこみたいな零細ブログで書くのとは大違いで、見る見るうちにブクマが増えていきます。
前回のフォームのユーザビリティネタは幅広い層に読んでもらえるようにということで、ある程度の狙いを持って書いたんですが、今回は完全に自分の趣味ネタだったので、正直こんなに反響があるとは思ってませんでした。やっぱりニッチなのかなぁとも思っていましたが、「便利そうだ」的なコメントを多く頂いて本当にありがたい限りです。頑張って育ててみよう。
「静的ファイルにも出力したい」という声もありましたが、実は公開前には用意していました。何しろ、ディレクトリ内のscssファイル一覧を取得して、PEAR::HTTP_Request経由で拾ってくれば静的ファイルになるんだから、作るのは簡単です。敢えて外したのは「CSSを構造化する」というキモの部分を出来るだけシンプルに見せたかったのと、システムを構成するファイルを極力減らしたかったからです。普段HTMLとCSSしか書いていないような人の拒否反応を少しでも和らげたかったんですね。

ただ、ラボブログで書いたように「サーバサイドでブラウザを判別して最適化したCSSを出力」というのもやりたいと思っていて、そうなると静的ファイルでは処理出来なくなってしまうという新たな問題も出てきます。方針としては、

  • hoge.tpl, hoge_ie6.tplみたいにブラウザ毎にキャッシュしておいて、UAの判定だけサーバサイドで行う
  • Validかどうかはさておき、クロスブラウザCSSを静的ファイルとして出力する

あたりが考えられますが、パフォーマンスを考えるとやっぱり後者ですかね。現状、CSSがValidであることのメリットって基本的には無いと思うし。しかも自分でInvalidなCSSを書く訳じゃなくて、スクリプトに吐かせるんだから。パフォーマンスを上げる事の方が遥かに大事かなという気はします。

その前に、今の仕様だと複数のscssファイルを処理するとその数だけphpが走ってしまうので、import処理をSmart*CSS内で処理するようにしたいですね。今は変数を宣言してもそのファイル内でしか使えないけど、そうすれば変数定義用のファイルを別に持って、それを使い回すといったことも出来るようになります。逆にそうじゃないと変数のメリットが薄いですよね。うん、だいぶ面白くなってきた。

にしても特筆すべきは、ラボとは言え会社のブログで個人の成果物を紹介することをOKしてくれるウノウの太っ腹ぶり。というかむしろ発表の場として活用してくださいというスタンス。自分の勤務先ながらありがたい限りです。btoさんには感謝しきりです。逆に言えば自分の力よりも遥かに大きい場をもらってしまえるわけで… チャンスは活用させてもらいながらも、それを自分の力だと勘違いしないように戒めつつ精進していきたいですね。