🎨 CSS Advent Calendar: Day 9 / Standards and Ecosystem
Published on
Updated on
CSS 標準から、CSS 標準外の変化への転換
Table of Contents
Table of Contents
はじめに
Day8 までで、一旦 CSS の基本的な考え方については終止符を打つことにします。
振り返ると、UA Style のみが適用できた HTML の時代に <IMG>
が登場し、Web に装飾を渇望する人たちによって、Web が「巨大な Fax マシーン」になる危機感から、CSS が生まれたところから始まりました。現に、CHSS の最初の提案(1994年10月10日)は、Netscapeが <CENTER>
や <FONT>
などの Presentational な HTMLタグを発表するわずか3日前でした。
CHSS 含め、CSS の仕様自体に関しては、これまでにさまざまな提案が出され、幾重にも改善がなされてきました。「Hints であり Suggestions であり、Balance を保つ」という思想を確立し、Cascade や、それを包含する Style Resolution のプロセスはその上で構築されてきました。
ところで、ブラウザや我々開発者は、こうして静かに進化してきた CSS とどう向き合ってきたのでしょうか? 仕様の外に目を向けると、CSS を取り巻く環境の進化は必ずしも順当に進んできたとは言い難いのかもしれません。
Ecosystem around CSS Standards
そもそも、CSS が登場した段階では、複数のブラウザがそれぞれの UA Style を持っていたり、標準化団体や仕様が今ほど強い影響力を持っていなかったりで、互換性が最初かつ最大の課題となっていました。
それに加えて大きなパラダイムシフトを産んだのは、Apple による iPhone の発表だったように思います。 モバイルデバイスの普及により、Web の利用シーンが格段に増え、あらゆる環境/デバイス/ユーザから Web を使えるようにするための適応性(後のレスポンシブ)がこれまで以上に求められるようになりました。 Web は元からこうした適応性を持つように根底では設計されていましたが、当時のデザイナーや開発者がそうした「適応性を考えるきっかけ」がモバイルの普及以前にあったのかというと、甚だ疑問が残ります。 デザインツールや Web 自体も適応性に対してまだまだ未熟な状態でした。
また、モバイルの普及はネイティブアプリの普及を産み、ネイティブアプリの普及は Web の優位性を再考する要因にもなりました。 SPA エコシステムの拡大に代表される「Web プラットフォームの開発容易性向上」は、Web が出したその解決策の一つと言えるでしょう。
SPA 開発は、宣言的 UI によってバーストし、Node.js に代表されるサーバサイド JS と各種 bundler やビルドツールを活用した、いわゆる ”Web フロントエンド” をもたらしました。 CSS に至っても、目まぐるしく進化するフロントエンド開発のスタイル/思想に合わせて、さまざまなツールやフレームワークが登場してきました。
こうした「標準外の変化」による多くの試行錯誤は、最終的には標準側のソリューションにつながることも多々あります。 しかし、時には、標準の思い描く理想と乖離したまま、標準外で普及が進むこともあります。 そうした「標準外の変化」がどのようなものであり、なぜ発展し、いかに CSS 標準に影響を与えてきたのか。
Day10 からの連載では、ざっくり以下のような構成で、CSS 標準外の変化を振り返っていこうと思います。
- ブラウザの負債とエコシステム側の解決策
- モバイルの登場と適応性
- ネイティブアプリの隆盛と Web の抱えた不安、あるいは対抗
- SPA の隆盛と宣言的 UI がもたらした開発手法
- さまざまな CSS アーキテクチャの登場
- コンポーネント志向開発と CSS
- CSS 標準外の変化が与えた標準への影響
- 詳細度から Cascade Layers、Scope へ
- CSS と調和する Web Design の未来
これまで CSS や Cascade の基本哲学/処理を丁寧に解説してきたのは、こののちに説明する「標準外の変化」との対比として、理解を助ける材料になれば、という意図によるものでした。 よって、Day1~Day8 に関しては、必要に応じて戻って参照していただければと思います。
Day10 からは、CSS 標準外の変化に目を向けつつ、標準側考え方を踏まえて、これまでの CSS エコシステムの歴史を具体的に振り返っていきます。数回に分けた連載形式でお届けする予定です。
少々短いですが、Day9 は、ここまでのまとめと、これからへの前触れ・接続を担う立ち位置として閉じたいと思います。