はじめに
Next.js app routerのチュートリアルの第2章のアウトプットします。
第2章 CSSスタイル
この章では下記を学習しました。
- グローバルCSSをインポートする
Tailwind
CSSモジュール
-
clsx
でクラス名を柔軟に変更する
グローバルCSSのインポート
グローバルCSSファイルはアプリケーション全体で使用できる必要がある。
その場合はlayout.tsx
でインポートする。
layout.tsx
はapp router
におけるルートレイアウトと呼ばれるファイルみたいです。
ここに書いたコードはすべてのページで共有されるため、header
やfooter
といったものはおそらくここに書くのでしょう。
Tailwind
Next.js
はcreate-next-app
で新しいプロジェクトを作成した場合にTailwind
を使うか尋ねられます。
その時にYes
を選択しておけば、すぐにTailwind
が使える状態になっています。
CSSモジュール
一意のクラス名を自動的に作成することで CSS のスコープをコンポーネントに設定できるため、スタイルの衝突についても心配する必要がなくなります。
だそうです。
私は、Tailwind
が結構好きですし、この後のコースもTailwind
でスタイリングをするみたいなので適当に読み飛ばしました。
clsx
でクラス名を柔軟に変更する
条件に基づいて要素のスタイルを設定するしたいという場合があります。
その時に使えるライブラリがclsx
です。
例えば以下のコードでは、status
でred
orblue
を受け取ります。
そして、div
のclassName
の中で条件式を書くことができます。
import clsx from 'clsx';
type Status = 'red' | 'blue';
type Props {
status: Status;
}
export default function Test({ status }: Props) {
return (
<div
className={clsx({
'bg-red-100': status === 'red',
'bg-blue-100': status === 'blue',
})}
>
test
</div>
);
}
status
がred
の場合
<Test status="red" />
status
がblue
の場合
<Test status="blue" />
おわりに
まだまだ楽勝ですね!
次の記事