Next.js 12 - Global Style

2025. 3. 7. 13:03·♠️ Next.js 12

Next.js 12

⚫ Global Style을 추가하는 법


import NavBar from "../components/NavBar";

export default function Home() {
  return (
    <div>
      <NavBar />
      <h1>Hello</h1>
      <style jsx global>{`
        a {
          color: white;
        }
      `}</style>
    </div>
  );
}

- styled - jsx에 global이라는 prop을 추가하면 된다.

- 하지만 <NavBar>가 Home과 About 페이지 별로 style이 다르게 나타난다.

  (Home에서 style에 global 속성을 주었어도, NavBar는 적용되나, About 페이지의 NavBar는 별도로 설정해줘야 한다.)

 

⚫ 모든 페이지들에 전역적으로 스타일링을 하고 싶다면?


- global 속성이 들어간 style을 복붙하는 방법은 너무 구리다.

  (<NavBar>를 복붙하는 것도 개선해야 한다)

 

- App component를 만들어야 한다.(일종의 어떤 컴포넌트의 blueprint)

  기본으로 프레임워크 내에 포함되어 있다.

  _app.js라는 파일을 pages 내에 생성해야 한다. (무조건 이 이름으로)

(Next.js는 _app.js를 가장 먼저 확인한다.)

 

⚫ _app.js 설정법


- Next.js가 기본적으로 페이지들을 render할 때 사용되는데, 이 파일을 custom함으로써 template으로 사용할 수 있다.

 

- 아무 이름으로 함수를 만든다. Next.js가 _app.js를 자동으로 호출하면서 이 함수를 호출할텐데, 2개의 prop과 함께 호출한다.

  (Component, pageProps)

import NavBar from "../components/NavBar";
import "../styles/globals.css";

export default function App({ Component, pageProps }) {
  return (
    <>
      <NavBar />
      <Component {...pageProps} />
      <span>hello</span>
      <style jsx global>{`
        a {
          color: white;
        }
      `}</style>
    </>
  );
}

- Next.js로 앱을 만들 때는 global CSS 파일을 import 할 수 없다.

  커스텀 <App> 이외의 파일들로부터는 import 할 수 없다는 error가 뜬다.

  페이지나 컴포넌트 내에 CSS를 import하고 싶다면, 반드시 그 CSS는 module.css이어야 한다.

 

(module.css 파일 형태를 제외한 모든 나머지 CSS파일들은 _app.js에서만 import해와서 사용해야 한다. 글로벌 CSS간의 충돌을 피하기 위해서이다.)

'♠️ Next.js 12' 카테고리의 다른 글

Next.js 12 - public dir, API key 숨기기(redirects, rewrites)  (0) 2025.03.10
Next.js 12 - Layout, Head component  (0) 2025.03.10
Next.js 12 - Styled JSX, unknown property jsx found  (0) 2025.03.04
Next.js 12 - CSS Modules  (0) 2025.03.01
Next.js 12 - Routing  (0) 2025.03.01
'♠️ Next.js 12' 카테고리의 다른 글
  • Next.js 12 - public dir, API key 숨기기(redirects, rewrites)
  • Next.js 12 - Layout, Head component
  • Next.js 12 - Styled JSX, unknown property jsx found
  • Next.js 12 - CSS Modules
j2yonghwa
j2yonghwa
Trying to be a fullstack developer 🚀
  • j2yonghwa
    j2yonghwa
    j2yonghwa
  • 전체
    오늘
    어제
    • 분류 전체보기 (156)
      • ⏰ Daily WakaTime (1)
      • 🏖️ 노마드코더 (2)
      • 🍺 Dev Setup (3)
      • 🔭 Tech Info (1)
      • 🚫 Error (1)
      • 📂 라이브러리 (23)
      • ♣️ Next.js 14 (10)
      • ♠️ Next.js 12 (20)
      • 🛸 React Native (12)
      • 🦋 TypeScript (1)
      • 🐍 Python (2)
      • 🌊 TailwindCSS (4)
      • 🧩 SQL (25)
      • 💎 Prisma (5)
      • 🌱 MongoDB (4)
      • 🎯 Redis (1)
      • 🧬 GraphQL (2)
      • 🔥 Firebase (7)
      • 💸 Third-Party Services (2)
      • 🕸️ Web (1)
      • 🏆 코딩테스트 (23)
      • 📙 모딥다 (5)
      • 📗 코테 합격자 되기 -JS- (0)
      • 📘 클린코드 (0)
      • 🍯 꿀팁 🐝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃헙
  • 공지사항

  • 인기 글

  • 태그

    dev setup
    0레벨
    PostgreSQL
    SQL
    라이브러리
    next.js 14
    next.js 12
    tailwindcss
    MySQL
    코딩테스트 입문
    React Native
    API
    react router
    mongoDB
    Prisma
    Firebase
    Next.js
    Python
    자바스크립트
    모딥다
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
j2yonghwa
Next.js 12 - Global Style
상단으로

티스토리툴바