next.js 고유의 style을 주는 방법
component return문 안에서 다음과 같이 작성
-> style 태그에 props로 jsx추가
 <style jsx>{`
        nav {
          background-color: tomato;
        }
        a {
          text-decoration: none;
        }
      `}</style>

styled jsx로 스타일을 주면
자동으로 요상한 클래스명이 생긴다
이 것들은 모듈별로 구분되어 생성됨 - 덕분에 각각의 파일 내부의 영역을 개별적으로 설정할 수 있다
className이 중복되더라도 자동으로 생성된 클래스명으로 각각의 파일을 구분
-> 파일들이 개별적인 스코프를 갖는다
styled jsx를 적용한 NavBar
import Link from "next/link";
import { useRouter } from "next/router";
export default function NavBar() {
  const router = useRouter();
  return (
    <nav>
      <Link href="/">
        <a className={router.pathname === "/" ? "active" : ""}>Home</a>
      </Link>
      <Link href="/about">
        <a className={router.pathname === "/about" ? "active" : ""}>About</a>
      </Link>
      <style jsx>{`
        nav {
          background-color: tomato;
        }
        a {
          text-decoration: none;
        }
        .active {
          color: yellow;
        }
      `}</style>
    </nav>
  );
}
styled jsx 문법에 global props 추가하면 전역 style을 줄 수 있다
 <style jsx global>{`
        nav {
          background-color: tomato;
        }
        a {
          text-decoration: none;
        }
      `}</style>
global을 줄 때는 파일의 위치나 구조를 생각해야함
-> 해당 파일 내부에 속한 component들만 global 설정이 된다
Next.js가 모든 페이지를 렌더링할 수 있게 하는 기본 페이지로
디폴트로 보이지는 않지만 커스텀하려면 _app.js 파일을 생성해야 한다
이름은 반드시 _app.js
렌더링시 _app.js를 가장 먼저 확인한다
app.js custom을 위한 생성
// _app.tsx
import type { AppProps /*, AppContext */ } from "next/app";
export default function App({ Component, pageProps }: AppProps) {
  return <Component {...pageProps} />;
}
"/about" 으로 이동한다면 _app.tsx의 Component에 About이 들어가서 렌더링 되는
global style을 주려면 _app.tsx에 주면 된다
typescript, next.js _app.tsx type 블로그
아래에서 다른 내용을 추가해서 만들어도 된다
import type { AppProps /*, AppContext */ } from "next/app";
export default function App({ Component, pageProps }: AppProps) {
  return (
    <div>
      <Component {...pageProps} />
      <span>hello</span>
    </div>
  );
}
layout을 쉽게 만들 수 있을 것 같다
import type { AppProps /*, AppContext */ } from "next/app";
import NavBar from "../components/NavBar";
export default function App({ Component, pageProps }: AppProps) {
  return (
    <div>
      <NavBar />
      <Component {...pageProps} />
      <span>hello</span>
    </div>
  );
}
import type { AppProps /*, AppContext */ } from "next/app";
import NavBar from "../components/NavBar";
export default function App({ Component, pageProps }: AppProps) {
  return (
    <div>
      <NavBar />
      <Component {...pageProps} />
      <span>hello</span>
      <style jsx global>
        {`
          a {
            color: skyblue;
          }
        `}
      </style>
    </div>
  );
}
기본적인 next.js는 module이 아닌 css파일을 import할 수 없다
custom App인 _app.js에서는 가능
import type { AppProps /*, AppContext */ } from "next/app";
import NavBar from "../components/NavBar";
import "../styles/globals.css";
export default function App({ Component, pageProps }: AppProps) {
  return (
    <div>
      <NavBar />
      <Component {...pageProps} />
      <span>hello</span>
      <style jsx global>
        {`
          a {
            color: skyblue;
          }
        `}
      </style>
    </div>
  );
}