Next.js で、すべてのページコンポーネント (pages/*.tsx
) に共通のスタイルシート(いわゆるグローバル CSS)を適用したい場合は、pages/_app.tsx(js)
というファイルを作成して、そこで CSS ファイルをインポートします。
例えば、グローバル CSS として次のようなファイルを用意したとします。
この CSS ファイルを pages/_app.tsx
からインポートすれば、すべてのコンポーネントにスタイルが反映されます。
このファイルが存在しない場合は作成してください。
☝️ pages/_app.tsx って何者?
Next.js は
pages/_app.tsx
を特殊なファイルとして扱い、ここで default export
しているコンポーネントを、すべてのページコンポーネントの親コンポーネントとして扱います。
具体的には、上記コード中の Component
部分が各ページのコンポーネントに置き換えられた形で動作します。
結果的に、ここでインポートした CSS が、全ページから参照できることになります。
ちなみに、ここで複数の CSS ファイルをインポートしている場合は、Next.js が Web サイトのビルド時に 1 つの CSS ファイルにマージしてくれます。Bootstrap や Tailwind CSS などの CSS フレームワークを使いたい場合も、この pages/_app.tsx
ファイルでインポートすれば OK です。
関連記事
- Next.js で Sass (scss/sass) を有効にする
- Next.js でコンポーネント単位の CSS を作成する (CSS Modules)
- Next.js の Image コンポーネントで画像を表示する (next/image)
- Next.js の API Routes 機能で Web API を作成する
- Next.js のダイナミックルーティング機能を利用する (getStaticPaths, getStaticProps, getServerSideProps)
- Next.js でコンポーネント内に直接 CSS を記述する (styled-jsx)
- Next.js で全ページ共通のレイアウトを定義する(Layout コンポーネント)