第49章:CSSの選択肢:CSS Modules / Tailwind / CSS-in-JS ざっくり🎛️✨
Next.jsって、実は「CSSの選び方」がけっこう自由なんだよね〜😊✨ 代表的には Tailwind / CSS Modules / Global CSS / External CSS / Sass / CSS-in-JS みたいに色々用意されてるよ〜! (Next.js)
この章は、その中でもよく使う CSS Modules / Tailwind / CSS-in-JS を「ざっくり理解して、選べるようになる」回だよ〜🧁💕
この章のゴール🎯
- 3つのスタイル手法の「違い」をふんわり理解する🫶
- 自分のプロジェクトに「どれが合うか」判断できるようになる💡
- 次の章(CSS Modulesの実践)にスムーズにつなげる🚀
まず結論:どれを選べばいいの?🤔💭
「迷ったら」このイメージでOKだよ〜!✨
- CSS Modules:普通のCSSで、コンポーネントごとに安全に書きたい🧵
- Tailwind:とにかく速くそれっぽいUIを作りたい⚡
- CSS-in-JS:デザインシステムや動的テーマなど、JS主導で管理したい🎨
図解:ざっくり選び方チャート🗺️✨(Mermaid)
① CSS Modules:いちばん「安心して始めやすい」やつ🧵😊
どんな感じ?
- ファイル名が
*.module.cssならCSS Modules扱い✨ - クラス名が自動でユニーク化されて、他のコンポーネントと衝突しにくいよ〜🛡️ (Next.js)
何が嬉しい?
- 「CSSはCSSで書きたい」派にやさしい💞
- コンポーネント単位で管理できて、後から見返しやすい📦
ミニ例(雰囲気だけ)
import styles from "./Card.module.css";
export function Card() {
return <div className={styles.card}>かわいいカード✨</div>;
}
/* Card.module.css */
.card {
padding: 16px;
border: 1px solid #ddd;
border-radius: 12px;
}
② Tailwind:爆速で“それっぽい”を作れる🌪️⚡
どんな感じ?
- CSSを書かずに、
classNameにユーティリティクラスを並べて作る感じ✨ - Next.jsでも定番で、公式ガイドもあるよ〜! (Next.js)
- Tailwind側の “Next.js用セットアップ手順” もまとまってるよ〜🧁 (Tailwind CSS)
何が嬉しい?
- 余白・色・角丸・影などが その場で決まるから、試行錯誤が速い💨
- 「CSSファイル行ったり来たり」が減って、テンポよく作れる🎶
ミニ例(雰囲気だけ)
export function Card() {
return (
<div className="p-4 border rounded-xl">
かわいいカード✨
</div>
);
}
ちょい注意⚠️
classNameが長くなりがち(慣れると整理できるよ!)🧹
③ CSS-in-JS:JSの中でスタイルを握る💅🧠
どんな感じ?
- styled-components / Emotion みたいなライブラリで、JS(TS)の中にスタイルを書くやつだよ〜✨
- Next.jsにも CSS-in-JSのガイドがあるよ(ただし状況によって注意点あり) (Next.js)
- Next.js側も「いろんなCSS-in-JSをテスト中で、例を増やしていくよ」的なスタンスだよ〜🧪 (Next.js)
何が嬉しい?
propsで色を変える、とか 動的デザインが得意✨- 大きめアプリで「デザインルール」を作りたいときに便利🧩
ちょい注意⚠️(ふんわりでOK)
- ライブラリによっては 設定が必要だったり、Server Componentsとの相性を考える必要があるよ〜(ここは後で慣れてからでOK🙆♀️) (Next.js)
おまけ:Global CSS って何?🌍✨(一言だけ!)
- アプリ全体に効くCSS(リセットCSSとか)に使うよ〜🧼
- App Routerだと
app/layout.tsxで読み込むのが基本! (Next.js)
使い分けの目安まとめ🧁✨
-
CSS Modules: 「安全・読みやすい・普通のCSS」でいきたい人におすすめ🧵🛡️
-
Tailwind: 「最短で見た目を整えたい」「UI作りが多い」なら強い🌪️⚡
-
CSS-in-JS: 「デザインシステム」「テーマ切り替え」「動的スタイル」を本格的にやりたい時に強い💅🎨
ちいさな練習(選ぶだけでOK)🎮✨
次のうち、あなたならどれを選ぶ?(正解はないよ〜!💞)
- 2〜3ページの小さめサイトで、CSSは普通に書きたい🏠🧵
- 画面数が多くて、とにかく早くUIを量産したい🏃♀️💨
- ダークモードやテーマ切り替えをガッツリやりたい🌙🎨
次の章(第50章)では、いちばん始めやすい CSS Modules を実際に手を動かしてやっていくよ〜🧵✨