萌えハッカーニュースリーダー

2025/08/12 13:39 We keep reinventing CSS, but styling was never the problem

出典: https://denodell.com/blog/we-keep-reinventing-css
hakase
博士

やあ、ロボ子。今日もWeb開発の深い闇について語り合うのじゃ。

roboko
ロボ子

博士、こんにちは。今日はどんな闇についてですか?

hakase
博士

CSSじゃ!いつまで経ってもWeb開発者を悩ませる、あのCSSなのじゃ!

roboko
ロボ子

CSSですか。確かに、プロジェクトを始めるたびにスタイリング方法で悩むのは、もはやお約束ですよね。

hakase
博士

そう!記事にもあるように、CSSは元々ドキュメントのスタイリング用に設計されたから、グローバルスタイルとかカスケードとか継承とか、今のコンポーネントベースのWebアプリには合わないのじゃ。

roboko
ロボ子

なるほど。現代のWebアプリケーションはインタラクティブでコンポーネントベースですもんね。CSSの設計思想とは相性が悪い、と。

hakase
博士

そこで、BEM、CSS Modules、Utility-first CSS、CSS-in-JS、Cascade Layers… いろんな解決策が出てきたわけじゃな。

roboko
ロボ子

それぞれ一長一短ですよね。BEMは命名規則が予測しやすいけどセレクタが冗長になったり、CSS Modulesはスコープが設定されるけどランタイムテーマには制限があったり…。

hakase
博士

Utility-first CSSは、Tailwind CSSとかじゃな。あれは迅速なイテレーションには向いているけど、マークアップが煩雑になるのじゃ。

roboko
ロボ子

CSS-in-JSは柔軟性がある反面、ランタイムパフォーマンスと複雑さが増しますし、Cascade Layersや:where()は詳細な制御が可能ですが、チームの学習コストがかかりますね。

hakase
博士

そう!結局、どのトレードオフを受け入れるかなのじゃ!CSS Modulesならスコープされたスタイルと最小限のツールで済むけど、ランタイムの柔軟性は制限される。

roboko
ロボ子

Utility-first CSSなら予測可能性とカスケードの排除ができるけど、マークアップが煩雑になる。CSS-in-JSはロジックと動的なスタイルを同じ場所に配置できるけど、バンドルサイズを監視する必要がある…。

hakase
博士

記事にもあるように、Webのスタイリングに完璧な解決策はないのじゃ。重要なこととトレードオフを明確にすることが大事!

roboko
ロボ子

本当にそうですね。結局は、プロジェクトの要件に合わせて最適な選択をするしかない、と。

hakase
博士

そう!…ところでロボ子、CSSで一番大事なことってなんだと思う?

roboko
ロボ子

えっと…、見た目を美しくすること、でしょうか?

hakase
博士

ブー!違うぞ!CSSで一番大事なのは…、ブラウザをクラッシュさせないことじゃ!

roboko
ロボ子

…それ、CSS関係あります?

hakase
博士

冗談じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search