CSS signature

はてなアイデアで、はてなダイアリーの body に CSS signature なるものをつけてほしいという要望をいただきました。(いただきましたというか、ずいぶん前のものがあがってきた、というか。) 恥ずかしながら CSS signature というのは初めて耳にしたもので、最初は何だかわからなかったのですが、どうやら body の id にサイト固有の文字列を振って、ユーザースタイルシートを使いやすくしようというものらしい。(そうとは知らずにidea:5541を id にローカルな名前をつけるっていうのはあまり前例をみないっていうんで却下してしまった、ごめんなさい。)

たとえばこの日記なんかだと

<body id="d-hatena-ne-jp_naoya">

と振っておくと

body#d-hatena-ne-jp_naoya {
  ...
}

CSS をユーザースタイルシートに定義しておけば、この日記のデザインだけをユーザースタイルシートで変更することができる、ほかのページには影響しない、ってことらしいです。

この辺、

で、調べてみるとこれは " CSS signature "といって Eric A. Meyer さんという CSS の偉い人の css-discuss というメーリングリストへの投稿が元みたいな雰囲気でした。

という Temporary-Depot にあるエントリーが参考になりました。(ドキュメントの翻訳などあり)で、この記事自体は 1月のもので、あくまで ML での提案がきっかけて盛り上がっているというので、どこかで仕様が策定されたのかどうかはわからず。そこでもう少し調べてみたのですが、404 : CSS signature どうしようという話では、signature に使う id の命名規則があいまいで...という指摘がありました。これが3月。

Operaのサイトでも id="operacom" なんて id が埋め込まれていたり、もともと提唱した人が CSS の偉い人だったりするらしく、それなりのバックグラウンドを伴っている CSS signature ですが、そのディスカッションの現在の進捗ってどうなってるんだろう。はてなダイアリーの body に埋め込むに値する、議論し尽くされた提案なんだろうか、という辺が知りたいところです。

The global structure of an HTML document の(私的)日本語訳 の中では

HTMLにおいて、id属性は、次の各々の役割を果たす。

ユーザエージェントによる処理一般に用いる。(例えば、HTMLページからデータベースへデータを移植する際にフィールド名を識別するとか、HTML文書を他のフォーマットに変換するなど。)

とありますし、特に id にサイト固有のタグを付けてユーザースタイルシートなどに生かすというのは、仕様上は問題なさそう。要は、そういうポリシーで ID を付けるかどうかっていう程度の話なのかな。

どんな塩梅か使ってみたい、でもいきなりダイアリーに id を埋め込むのはちょっとアレなので、ためしに CSS signature を振る Greasemonkey を作ってみました。

このスクリプトをインストールしておいて、ダイアリーとかブックマークのユーザーのページを見ると body に d-hatena-ne-jp_naoya なんてという id が振られます。あとはその id にあったスタイルシートを定義してやれば、いちおうそれっぽくなります。

ということで識者の方の意見も聞いてみたいです。