Next.js 에서 Emotion 을 사용하려면 간단한 설정을 해주어야 한다.
Typescript 를 적용하기위해 --ts 를 붙여준다.
npx create-next-app [프로젝트명] --ts
Emotion/styled , Emotion/react, Emotion/css 를 설치해준다.
npm install emotion/styled, emotion/react, emotion/css
글로벌 스타일 선언
export const globalStyles = (
<Global styles={css`
html {
font-size: 62.5%;
box-sizing: border-box;
}
}
)
import { globalStyles } from 'styles/GlobalStyle';
export default function App({ Component, pageProps }: AppProps) {
return (
<Layout>
{globalStyles}
<Component {...pageProps} />
</Layout>
);
}
import { Theme } from '@emotion/react';
const theme: Theme = {
fontSizes: {
xxs: '12px',
xs: '13px',
sm: '14px',
base: '16px',
md: '18px',
lg: '24px',
},
colors: {
black: '#000',
dark: '#191a20',
primary: '#3f4150',
secondary: '#8c8d96',
},
};
export default theme;
import { ThemeProvider } from '@emotion/react';
import theme from 'styles/theme';
export default function App({ Component, pageProps }: AppProps) {
return (
<Layout>
{globalStyles}
<ThemeProvider theme={theme}>
<Component {...pageProps} />
</ThemeProvider>
</Layout>
);
}
{
"presets": [
[
"next/babel",
{
"preset-react": {
"runtime": "automatic",
"importSource": "@emotion/react"
}
}
]
],
"plugins": ["@emotion/babel-plugin"]
}
안녕하세요, 혹시 nextjs app dir 사용하는 13버전에서 이모션 사용 잘 되시나요?