Next.js-CSSサポート

Next.jsでは、styled-jsxという名前のinbuildcss-in-jsライブラリを使用できます。これにより、reactコンポーネント内にcssを書き込むことができ、これらのスタイルはコンポーネントにスコープされます。

この例では、他のコンポーネントを含めることでスタイルを設定するために使用されるContainerオブジェクトを作成します。

メタデータの章で使用されているnextjsプロジェクトを更新しましょう。

まず、ルートレベルでComponentsディレクトリを作成し、次のようにファイルcontainer.module.cssを追加します。

.container {
   max-width: 36rem;
   padding: 0 1rem;
   margin: 3rem auto 6rem;
   border: 1px solid red;  
}

Componentsディレクトリにcontainer.jsファイルを作成します

import styles from './container.module.css'

function Container({ children }) {
   return <div className={styles.container}>{children}</div>
}

export default Container

次に、first.jsでContainerコンポーネントを使用します。

import Link from 'next/link'
import Head from 'next/head'
import Container from '../../components/container'

export default function FirstPost() {
   return (
      <>
         <Container>
            <Head>
               <title>My First Post</title>
            </Head>
            <h1>My First Post</h1>
            <h2>
            <Link href="/">
               <a>Home</a>
            </Link>
            </h2>
         </Container>
      </>	  
   )
}

Next.jsサーバーを起動します

次のコマンドを実行してサーバーを起動します-。

npm run dev
> [email protected] dev \Node\nextjs
> next

ready - started server on http://localhost:3000
event - compiled successfully
event - build page: /
wait  - compiling...
event - compiled successfully
event - build page: /next/dist/pages/_error
wait  - compiling...
event - compiled successfully

出力を確認する

ブラウザでlocalhost:3000を開き、最初の投稿に移動すると、次の出力が表示されます。