Tailwind CSS
๊ฐ์ฅ ๋ํ์ ์ธ Utility-First CSS ํ๋ ์์ํฌ๋ก, ์ด๋ฏธ ์์ฑ๋ CSS์ฝ๋๊ฐ ํด๋์ค๋ก ์ง์ ๋์ด ์์ด ์ด๋ฅผ ์กฐํฉํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
*Utility-First CSS : ๋ฏธ๋ฆฌ ์ธํ ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ํ์ฉํ์ฌ HTML์ฝ๋ ๋ด์์ CSS๋ฅผ ์ ์ฉ์ํค๋ ๊ฒ์ ๋ป ํ๋ค.
*์ ํธ๋ฆฌํฐ ํด๋์ค : ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ์์ฑ์ ๋ชจ์์ ํด๋์ค๋ก ๋ง๋ ๊ฒ์ด๋ค. ์ค๋ณต๋ ์ฝ๋๋ฅผ ๋ฐฉ์งํ ์ ์๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
Tailwind CSS์ ์ฅ๋จ์
์ฅ์
- CSS ์ฝ๋๋ฅผ ์ง์ ์์ฑํ์ง ์์๋ ๋จ => ๊ฐ๋ฐ์๋๊ฐ ๋นจ๋ผ์ง
- ์ฒด๊ณ์ ์ด๊ณ ์ผ๊ด๋ ๋์์ธ ์ฌ์ฉ ๊ฐ๋ฅ
๋จ์
- ์ด๊ธฐ ์ค์ ์ด ๋ณต์กํจ
- ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ์์ข์์ง (ํนํ ์ ๋๋ฉ์ด์ ๋ฑ์ ์ ์ฉ ํ ๋๋ ์ ๋ง ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ณ ๋๋ฌ์์ง ์ ์๋ค)
- css์ ํฌ๊ธฐ๊ฐ ์ปค์ง ์ ์์ (๋ด๊ฐ ์ฌ์ฉํ์ง ์๋ ํด๋์ค๋ค๋ ๋ค ํฌํจ๋์ด์์)
์ฌ์ฉ ์ค๋น
1. ์ค์น (Tailwind CSS v3 )
1) v3์ผ๋ก ์์กด์ฑ ์ค์น
v3์์๋ ์ค์ ํ์ผ(tailwind.config.js)๋ฅผ ์์ฑํด ์ฌ์ฉ์ ์ ์๋ฅผ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค์ ํ์ผ์ ์์ฑํด์ค์ผ ํ๋ค.
- PostCSS : JS๊ธฐ๋ฐ ํ๋ฌ๊ทธ์ธ์ผ๋ก CSS๋ฅผ ํ์ฑ/๋ณํํจ
- Autoprefixer : PostCSS์ฉ ํ๋ฌ๊ทธ์ธ, ๋ธ๋ผ์ฐ์ ์ ๋์ฌ(Vendor Prefix. '-webkit-', '-moz-', '-ms-', '-o-')๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํด์ค
(transition:transform 1s; ๋ง ์์ฑํ ๊ฒฝ์ฐ -webkit-transition, -moz-transition ๋ฑ ์๋์ผ๋ก ์ฝ์ ํด์ค)
## ์ค์น
npm install tailwindcss@3 postcss autoprefixer
## ์ค์ ํ์ผ ๋ง๋ค๊ธฐ
npx tailwindcss init -p
2) ์ค์ ํ์ผ(tailwind.config.js) ์์
/** @type {import('tailwindcss').Config} */
export default {
content: ['./index.html', './src/**/*.{js,jsx,ts,tsx}'],
theme: {
extend: {},
},
plugins: [],
};
3) ./src/index.css์ ๊ธฐ์กด๋ด์ฉ ์ญ์ ํ @tailwind ์ง์๋ฌธ ์ถ๊ฐ
@tailwind base;
@tailwind components;
@tailwind utilities;
4) ์ด๋ @tailwind์์ ๊ฒฝ๊ณ ๊ฐ ๋ฌ๋ค๋ฉด 3. ์ต์คํ ์ ์ค์น์ ์๋ ์ต์คํ ์ ๋ค์ ์ค์นํด์ฃผ๋ฉด ๋๋ค.
2. ์ค์น (Tailwind CSS v4์ ๊ฒฝ์ฐ)
++ Vite ํ๋ฌ๊ทธ์ธ๊ณผ PostCSS ํ๋ฌ๊ทธ์ธ์ ๋์์ ์ฐ๋ฉด ์ถฉ๋ํ ์ ์๋ค๊ณ ํ๋ค. ๋ ์ค vite ํ๋ฌ๊ทธ์ธ์ ์ฐ๋ ๋ฐฉ์์ผ๋ก ์ฌ์์ ํ์๋ค.
1) ํฐ๋ฏธ๋์ ์ค์น
npm install tailwindcss @tailwindcss/vite
2) vite.config.js์ ํ๋ฌ๊ทธ์ธ ์ถ๊ฐ
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [ tailwindcss() ],
})
3) ./src/index.css์ ๊ธฐ์กด๋ด์ฉ ์ญ์ ํ @tailwind ์ง์๋ฌธ ์ถ๊ฐ
@import 'tailwindcss';
3. ์ต์คํ ์ ์ค์น
1) PostCSS Language Support
https://marketplace.visualstudio.com/items/?itemName=csstools.postcss
PostCSS Language Support - Visual Studio Marketplace
Extension for Visual Studio Code - Syntax highlighting for modern and experimental CSS in VSCode
marketplace.visualstudio.com
2) Tailwind CSS IntelliSense
ํด๋์ค๋ฅผ ์๋์์ฑํด์ฃผ๋ ์ต์คํ ์
https://marketplace.visualstudio.com/items/?itemName=bradlc.vscode-tailwindcss
Tailwind CSS IntelliSense - Visual Studio Marketplace
Extension for Visual Studio Code - Intelligent Tailwind CSS tooling for VS Code
marketplace.visualstudio.com
์ค์น ํ ํธํ๊ฒ ์๋์์ฑ์ ์ ์ฉํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐ ์ค์ ์ด ํ์ํ๋ค
(๋ ๊ทธ๋ฅ ์๋๋ ์ค ์์๋๋ฐ className=" ์์ ํ๋ฒ ๋์ด์ฐ๊ธฐ๋ฅผ ํด์ผ ์๋์์ฑ์ด ์๊ธด๋ค๊ณ ํ๋ค...)
Mac : alt+Shift+p
Window : ctrl+Shift+p
๋ฅผ ๋๋ฅธ ํ open user Settings(JSON)์ผ๋ก ๋ค์ด๊ฐ๋ค.
๊ฐ์ฅ ์ต์์ {} ์์ ๋ค์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ค.
// tailwindcss
"editor.quickSuggestions": {
"strings": true
},
"files.associations": {
"*.js": "javascript",
"*.css": "tailwindcss"
},
๊ทธ๋๋ ์ ์ฉ์ด ์๋๋ค๋ฉด vscode๋ฅผ ์ข ๋ฃ ํ ๋ค์ ์์ํ๋ฉด ์ ์ ์ฉ์ด ๋๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ
๊ณต์๋ฌธ์ : https://tailwindcss.com/docs/installation/using-vite
๊ณต์๋ฌธ์์์ ํด๋์ค๋ฅผ ์ฐพ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
์์ 1
import './App.css';
function App() {
return (
<div className="h-screen flex justify-center items-center">
<div className="text-3xl text-blue-700 font-bold underline">
Vite + React
</div>
</div>
);
}
์ด ๋ h-screen์ height : 100vh๋ฅผ ๋ปํ๋ฉฐ, h-[100vh]์ฒ๋ผ ์ธ ์๋ ์๊ณ ,
text-blue-700์ text-[#1447e6] ์ ๊ฐ์ ํ์์ผ๋ก๋ ๋์ ์์ฑํ ์๋ ์๋ค.
์ฐธ๊ณ
- tailwind css ์ค์น :
1. https://www.fdaytalk.com/npx-tailwindcss-init-npm-error-could-not-determine-executable-to-run/
2. https://www.inflearn.com/community/questions/1518289/tailwind-css-%EB%B2%84%EC%A0%BC-%EB%8B%A4%EB%A6%84%EB%AC%B8%EC%A0%9C?srsltid=AfmBOooQa_OwWVkRR8qKJ62N-dqazbGelwnTQnL14baezBbRCgg9RZda
3. https://tailwindcss.com/docs/installation/using-vite
- ์๋์์ฑ : https://frontend-development.tistory.com/96
'react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React / openweatherapi ์ฌ์ฉํ๊ธฐ (0) | 2025.04.17 |
---|---|
React / Todo-List ๋ง๋ค๊ธฐ (2) (0) | 2025.04.17 |
React / ์คํ์ผ๋ง (2) - Styled Components (1) | 2025.04.16 |
React / ์คํ์ผ๋ง (1) - SCSS (0) | 2025.04.15 |
React / custom Hook (1) | 2025.04.11 |