Nextjs에서 tailwind 써보기
공식문서 보면서 tailwind 써보기
2023-02-18
예전에 하다가 중단된 프로젝트를 다시 시작해 보려고 새 레포로 마이그레이션 하는 과정에서
패키지 버전도 올리고, 다른 기술을 찾아보다가 예전부터 써보고싶었던 tailwindcss를 써보기로 했다.
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
테일윈드 설치 init을 하게 되면 postcss.config.js
파일과 tailwind.config.js
파일이 생성된다
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./app/**/*.{js,ts,jsx,tsx}",
"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
// Or if using `src` directory:
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
나는 src 폴더를 사용하기 때문에 "./src/**/*.{js,ts,jsx,tsx}"
경로로 사용
// globals.css
@tailwind base; // 테일윈드의 기본 스타일
@tailwind components; // 모든 클래스 요소
@tailwind utilities; // 유틸리티
전역으로 설정
구글에서 지원하는 폰트를 사용해 tailwind에 적용
// Layout
const roboto = Roboto({
subsets: ["latin"],
weight: ["400", "500", "700"],
variable: "--font-roboto"
});
const Layout = ({ children }: { children: React.ReactNode }) => {
return (
<main className={`max-w-3xl m-auto p-3 text-black-500 ${roboto.className} font-sans`}>
<Header />
{children}
</main>
);
};
export default Layout;
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/**/*.{js,ts,jsx,tsx}"],
theme: {
extend: {
colors: {
primary: {
50: "#f4f6fa",
100: "#e8edf5",
200: "#c6d1e5",
300: "#a4b6d5",
400: "#5f7fb6",
500: "#1b4897",
600: "#184188",
700: "#143671",
800: "#102b5b",
900: "#0d234a"
},
secondary: {
50: "#fefaf5",
100: "#fcf5eb",
200: "#f9e6cd",
300: "#f5d7af",
400: "#edb872",
500: "#e59a36",
600: "#ce8b31",
700: "#ac7429",
800: "#895c20",
900: "#704b1a"
},
black: {
50: "#f5f5f5",
100: "#eaebeb",
200: "#cbcccd",
300: "#acaeaf",
400: "#6d7174",
500: "#2f3438",
600: "#2a2f32",
700: "#23272a",
800: "#1c1f22",
900: "#17191b"
},
white: "#ffffff"
},
fontFamily: {
sans: ["var(--font-roboto)"]
}
}
}
};
테일윈드 자체에 기본 색상이 지정된 것도 있었고,
이런식으로 색상도 지정하면 자동으로 적용되는것 같다.
기본색상을 완전히 바꾸려면 theme.colors
서 설정이 가능하다고 한다.
-
조건부는 템플릿 리터럴을 사용
-
반응형
<img class="w-16 md:w-32 lg:w-48" src="...">
- hover나 focus 등
<button class="dark:md:hover:bg-fuchsia-600 ...">
Save changes
</button>