일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- React JS
- design pattern
- 리액트
- useEffect
- 코딩테스트 고득점 Kit 완전탐색
- 프로그래머스 완전탐색
- react
- 장고
- 자바
- NextJS
- 리액트 훅
- websocket
- 자바 공부
- 프로그래머스
- 백준
- Java
- codesandbox
- 프로그래머스 자바
- react firebase
- 프로그래밍 언어론
- JavaScript
- 디자인 패턴
- useState
- react hook
- 자바스크립트
- 데이터모델링과마이닝
- 코틀린
- vanillaJS
- 코딩테스트 고득점 Kit
- 컴퓨터 네트워크
- Today
- Total
기록하는 개발자
[NextJs] NextJs에 TailwindCss 적용 하기 본문
1. 프로젝트 생성
- 프로젝트가 없는 경우 프로젝트부터 생성해준다.
npx create-next-app my-project
cd my-project
2. postcss , autoprefixer와 함께 TailwindCss 설치
npm install -D tailwindcss postcss autoprefixer
3. Tailwind configs 파일을 만들기 위한 초기화 command 입력
npx tailwindcss init -p
4. 확장 프로그램 PostCSS Language Support 다운
- VSCode에서는 global.css에 @tailwind를 추가하면 "Unknown at rule @tailwind" 라는 경고가 발생한다.
@tailwind 키워드를 알 수 없는 키워드로 분류하기 때문이다. 확장 프로그램 PostCSS Language Support 를 다운받으면 경고 문구가 보이지 않는다.
(다른 해결 방법들 https://imkh.dev/vue-tailwind-rule/https://velog.io/@jinsunkimdev/React%EC%97%90%EC%84%9C-TailwindCSS-%EC%82%AC%EC%9A%A9-%EC%8B%9C-warning-Unknown-at-rule-tailwind-css )
5. Tailwind.configs.js
- Tailwind.configs.js 파일에서 Tailwind를 적용시키킬 파일들의 path 설정
module.exports = {
content: [
"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
6. global.css에 @tailwind 추가
@tailwind base;
@tailwind components;
@tailwind utilities;
7. tailwindcss 사용하기
공식 사이트에서 적용하고 싶은 style을 검색하면
Tailwind에서 쓰이는 문법을 확인할 수 있다.
특정 px을 적용하고 싶다면 아래와 같이 대괄호 안에 표기할 수 있다.
<div class="m-[5px]"></div>
TailwindCss 적용 예시
[ TailwindCss 적용 전 ] - Detail.tsx
export default function Detail({...}) {
...
return (
<div className={`${styles.container}`}>
<p className={`${styles.title}`}>{title} </p>
<div className={`${styles.bottom}`}>
<img
className={`${styles.poster}`}
src={...}
/>
)}
<p className={`${styles.content}`}>{content}</p>
</div>
</div>
);
}
[ TailwindCss 적용 전 ] - Detail.module.css
.container {
width: 100%;
text-align: center;
}
.title {
font-size: 20px;
font-weight: 700;
}
.bottom {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
margin: 0 auto;
margin-top: 50px;
}
.poster {
max-width: 100%;
border-radius: 20px;
margin: 10px 20px 30px 20px;
}
.content {
width: 50%;
line-height: 25px;
}
TailwindCss 적용 후
export default function Detail({...}) {
...
return (
<div className="w-full text-center">
<p className="text-[20px] font-bold mb-[10px]">{title} </p>
<div className="flex items-center justify-center mx-auto my-0 mt-[50px] w-4/5">
<img
className="max-w-full rounded-[20px] mt-[10px] mx-[20px] mb-[30px]"
src={...}
/>
)}
<p className="leading-[25px] w-1/2">{content}</p>
</div>
</div>
);
}
위처럼 작성하고 나면 css 파일은 작성하지 않아도 된다.
정말 무궁무진한 개발의 세계...🥹🥹
<div className="flex items-center justify-center mx-auto my-0 mt-[50px] w-4/5"></div>
그러나 위처럼 inline css가 길어지는 것과 비슷한 가독성 저하와 재사용 불가의 문제가 있다.
다음 포스팅에서는 tailwind에서 제공하는 'components'를 이용해서 가독성과 재사용성을 높여보겠다.
'Web > NextJs' 카테고리의 다른 글
[NextJs] React-Query의 useInfiniteQuery로 무한스크롤 구현하기 (1) | 2023.05.17 |
---|---|
[NextJs] TailwindCss component (1) | 2023.05.11 |
[NextJs] NextJs에 Swiper 적용하기 (1) | 2023.05.11 |
[NextJs] getStaticProps와 getServerSideProps (0) | 2023.05.09 |
[NextJs] next.config.js 의 redirects와 rewrites (0) | 2023.05.09 |