์์ฆ Next.js๋ฅผ ์ฌ์ฉํ๋ฉฐ CSS-IN-JS ๋์์ด ์๋๋ ๋ฌธ์ ๋ก Tailwind CSS๋ฅผ ์์ฃผ ์ฌ์ฉํ๊ณ ์๋ค. VScode ์์ Tailwind CSS IntelliSense ๋ผ๋ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ ๊ณตํด Tailwind์์ ์ ํด์ง ํฌ๋งท์ ๋ณด์ฌ์ฃผ์ง๋ง ์ฝ๊ฐ์ ๋ถํธํจ์ด ์๋ค. ์ค์ ์ ํตํด ํด๊ฒฐํด๋ณด์!
Tailwind
- Tailwind๋ CSS ํ๋ ์์ํฌ๋ก ์์ฒญ๋๊ฒ ๋ง์ utility class๋ก ์ด๋ฃจ์ด์ง ํ๋ ์์ํฌ๋ค.
- ๋ง๋ค์ด์ ธ ์๋ utility class๋ฅผ class์ ๋ฃ์ด์ฃผ๊ธฐ๋ง ํ๋ฉด ํด๋น ์คํ์ผ๋ง์ด ์ ์ฉ๋๋ค.
์ฌ์ฉ๋ฒ
์ค์น๋ฐฉ๋ฒ์ ๊ณต์ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์. ๊ณต์ํ์ด์ง๋ฅผ ๋ฐ๋ผ ์ค์นํ๋ค๋ฉด ์ฌ์ฉ๋ฒ์ ๋ณ๊ฑฐ ์๋ค.
function App() {
return (
<div className=" flex items-center justify-center gap-4 w-full h-screen">
<div className=" w-12 h-12 bg-red-300" />
<div className=" w-12 h-12 bg-blue-300" />
</div>
);
}
export default App;
- ์ ํด์ง utility class๋ฅผ className์ ์ ์ฉํด์ฃผ๋ฉด ๋๋ค.
- ๊ทผ๋ฐ ๋ญ๊ฐ ์ด์ํ์ง ์์๊ฐ? className ์ฒซ๊ธ์์ ๊ณต๋ฐฑ!!! ๋ฐ๋ก ์ ๊ฒ ์ด ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ๋ ์ด์ ๊ณ ์ ์ ๋ ๊ฒ ๋์๋์ง ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์์๋ณด์.
Tailwind CSS IntelliSense
๊ฐ๋ฐ์์ ๋ฌด๋ฃ ์๋ํฐ๋ก VScode๋ฅผ ๋ง์ด๋ค ์ฌ์ฉํ๋ค. ์ด VScode์ ์ฅ์ ์ผ๋ก๋ ๋ง์ ํ์ฅํ๋ก๊ทธ๋จ์ด ์๋ค๋ ๊ฒ์ธ๋ฐ ์ด ์๋ง์ utility class๋ฅผ ๊ณต์ ๋ฌธ์๋ฅผ ๋ค์ ธ๊ฐ๋ฉฐ ์ฐพ๊ธฐ๋ ํ๋ค๊ธฐ์ ์๋ ์์ฑ ํ์ฅ ํ๋ก๊ทธ๋จ์ธ Tailwind CSS IntelliSense๊ฐ ์กด์ฌํ๋ค.
- ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํ๊ณ ๋๋ฉด ๋ด๊ฐ ์ ๋ ฅํ ํ ์คํธ์ ๋ฐ๋ผ ์๋์์ฑ utility class์ ํด๋น class๊ฐ ์ด๋ค ์คํ์ผ๋ง์ ์ ๊ณตํ๋์ง ์ ์ ์๋ค.
Tailwind CSS IntelliSense ๋ถํธํจ
- ์ฌ์ฉํด ๋ณธ ์ฌ๋๋ค์ ๋ค ์๊ฒ ์ง๋ง ์ ํ์ฅํ๋ก๊ทธ๋จ์ ๋์ด์ฐ๊ธฐ๋ฅผ ํด์ค์ผ ๋์จ๋ค,, ํ.. ์ฒซ์นธ์ ๋น ๊ณต๋ฐฑ์ด ์๊ธฐ๊ฒ ๋๊ณ ์ด๊ฒ ์ซ๋ค๋ฉด className -> Tab์ ์ ๋ ฅํ์ ๋ ๋์ค๋ ํฐ ๋ฐฐ๊ฒฝ์ esc๋ก ์ ๊ฑฐํ๊ณ ๋ฌธ์์ด ""์ ๋ค์ ์ ๋ ฅํด์ค์ผํ๋ค.
- ๋ฌผ๋ก ๊ทธ๋ฅ ์ด๋ค์์ ๊ณต๋ฐฑ์ ์ง์ฐ๋ฉด ๋๊ธดํ๋ค. ๊ทผ๋ฐ Tailwind๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ชจ๋ ํ๊ทธ์ className์ ๋ฃ์ด์คํ ๋ฐ ๊ทธ๋๋ง๋ค ๊ณต๋ฐฑ์ ์ง์ฐ๋ฌ ๋ค๋ก๊ฐ์ผ ํ๋ค๋ฉด ์ด๊ฒ๋ ์๊ทผํ(๊ต์ฅํ) ๊ท์ฐฎ์ ์์ ์ด ์๋ ์ ์๋ค. ๋คํํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ฐ์ VScode์์ Alt(window๋ control) + Shift + P ๋ฅผ ๋๋ฌ ํด๋น ๊ฒ์์ฐฝ์ ์ผ ํ settings ๋ฅผ ์ ๋ ฅํด์ฃผ์.
- JSON ํ์ผ์ ์ด๋ฉด ๋ญ๊ฐ ์จ์์ ๊ฑด๋ฐ ์ ๊ฒฝ์ฐ์ง ๋ง์. ํด๋น ํ์ผ์ ์๋ํฐ์ ๋ํ ์ฌ์ฉ์์ ์ค์ ํ์ผ์ด๋ค.
"editor.quickSuggestions": {
"strings": true
},
- json ์์ ํด๋น ๋ฌธ๊ตฌ๋ฅผ ๋ณต์ฌํด ๊ทธ๋๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
- ์ด๊ฑด editor์์ ๋น ๋ฅธ ์ ์์ ์ฃผ๋ ์ต์ ์ธ๋ฐ string์ ๋ํ ๋ชจ๋ ๊ฑธ ๋น ๋ฅด๊ฒ ์ ์ํด์ค๋ค. strings์ ๋ํ๊ฑธ ๋น ๋ฅด๊ฒ ์ ์ํด์ฃผ๋๋ฐ className๋ string์ด๋ ๋น๊ทผ ์ ์์ ์ค๋ค.
"files.associations": {
"*.js": "javascript",
"*.css": "tailwindcss"
},
- ์ด๊ฑด ๋ค๋ฅธ๊ธ ๋ณด๊ณ ํน์๋ ํด์ ์ ์ด๋๋๊ฑด๋ฐ ํ์ฅ์๋ฅผ ์ธ์ ์ํ ๊ฒฝ์ฐ ๋ช ์ํด์ฃผ๋ ์ต์ ์ด๋ค. cssํ์ผ์ด ์๋๋ ์๋ฏธ ์๋ค๊ณ ์๊ฐํ๋๋ฐ ์ด๊ฒ ํ์ํ๋ค๋ ๊ธ์ ๋ด์ ํน์๋ ์ ์ด๋๋๋ค. ์ฒซ๋ฒ์งธ๊ฑธ ์ ์ฉํ๊ณ VScode ๋ฆฌ๋ก๋ฉ ํ ์๋๋ค๋ฉด ์ ์ฉํด๋ณด์.
- ์ ์ฉํ ํ์ ์ฌ์ฉํด๋ณด๋ฉด ๋์ด์ฐ๊ธฐ ๊ฐ์๊ฑฐ ์์ด ๋ด๊ฐ ์ ๋ ฅํ ํ ์คํธ์ ๋ง๋ ์๋์์ฑ์ ๋ฐ๋ก ์ถ์ฒํด์ค๋ค ๐
- ์๋ฒ ์ปดํฌ๋ํธ์ ๋ํด ์์ง ๋ง๋ ํ ๋์์ด ์์ด Tailwind๋ฅผ ๋ค๋ค ๋ง์ด ์ฌ์ฉํ๋๋ฐ ๋ค๋ฅธ ๊ฐ๋ฐ์์๊ฒ ๋์์ด ๋์ผ๋ฉด ํ๋ค. ๐
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Webpack] React + Typescript + Webpack(v5) ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ๋ง๋ค๊ธฐ - 1 (0) | 2023.12.15 |
---|---|
[React] ์ฌ๊ท ์ปดํฌ๋ํธ (1) | 2023.10.15 |
[React] debounce (feat. lodash) (0) | 2023.01.24 |
[React]useState (0) | 2022.11.16 |
[React]useLocation (0) | 2022.11.02 |