์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

Styled-component์˜ CSS Resetํ•˜๋Š” ๋ฐฉ๋ฒ•

React

by loeybho 2024. 5. 4. 15:30

๋ณธ๋ฌธ

๊ณต๋ถ€ ๊ณ„๊ธฐ ๐Ÿ“š

'์นด๊ณต์—ฌ์ง€๋„' ํ”„๋กœ์ ํŠธ์—์„œ Styled-component๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ๋‹น์‹œ ๊ธฐ๋ถ„ ์ข‹๊ฒŒ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ํ›„, ์•„์ดํฐ ์‚ฌํŒŒ๋ฆฌ๋กœ ํ™•์ธํ•˜๋Š”๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ํฐํŠธ ์ƒ‰์ƒ์ด ํ™”๋ฉด์— ๋–ด๋‹ค. ์•Œ๊ณ ๋ณด๋‹ˆ ํ”„๋กœ์ ํŠธ ์„ธํŒ… ์ดˆ๋ฐ˜์— CSS reset์„ ํ•˜์ง€ ์•Š์•„ ์ƒ๊ธด ๋ฌธ์ œ์˜€๋‹ค.

 

๊ฐœ๋… ๐Ÿ“ƒ

ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์ด๋ž€?

๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค HTML ์‹œ๋ฉ˜ํ‹ฑ ํƒœ๊ทธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค. ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์€ ์ดํ† ๋ก ๋‹ค์–‘ํ•œ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น ํŽ˜์ด์ง€๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ํ‘œ์‹œ๋˜๊ณ  ๊ธฐ๋Šฅํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํฌ๋กฌ, ํŒŒ์ด์–ดํญ์Šค, ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ์ด์šฉํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. 

 

CSS Reset์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ„ ์Šคํƒ€์ผ์˜ ์ผ๊ด€์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Styled-component์€ ๊ธฐ์กด์— ์žˆ๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด CSS Resetํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ™œ์šฉ ์˜ˆ์‹œ ๐Ÿช„

1. styled-reset ์„ค์น˜

npm i styled-reset

 

 

2. CSS Reset ์ ์šฉ

import * as React from 'react'
import { Reset } from 'styled-reset'

const App = () => (
  <React.Fragment>
    <Reset />
    <div>Hi, I'm an app!</div>
  </React.Fragment>
)

 

์ ์šฉ์„ ํ•˜๊ณ  ๋‚˜๋‹ˆ ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ €๋กœ ์„ค์ •๋œ ๋งˆ์ง„๊ณผ ํŒจ๋”ฉ์ด ์—†์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ aํƒœ๊ทธ์™€ ๋ฒ„ํŠผ ํƒœ๊ทธ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์–ด์žˆ๋‹ค.

 

styled-component๋Š” ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์—๊ฒŒ ์Šคํƒ€์ผ๋ง ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ธฐ ์œ„ํ•ด Local๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์— ์ผ๊ด€๋˜๊ฒŒ ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ์ ์šฉํ•˜๋ ค๋ฉด Global๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” createGlobalStyle์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

์ ์šฉ ์ฝ”๋“œ

import { BrowserRouter } from "react-router-dom";
import Footer from "@components/Footer";
import Header from "@components/Header";
import Home from "@pages/Home";
import { createGlobalStyle } from "styled-components";
import reset from "styled-reset";

const GlobalStyles = createGlobalStyle` 
    ${reset}
    a{
        text-decoration: none;
        color: inherit;
    }
    *{
        box-sizing: border-box;
    }
    button{
      all:unset;
    }
    body {
        font-family: 
    }
`;

function App() {
  return (
    <>
      <BrowserRouter>
        <GlobalStyles />
        <Header />
        <Home />
        <Footer />
      </BrowserRouter>
    </>
  );
}

export default App;

 

์ตœ์ข…์ ์œผ๋กœ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๋Š” ์œ„์™€ ๊ฐ™๋‹ค.

 

 

 

๋ฆฌ์…‹์ด ์™„๋ฃŒ๋œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ ์ž๋ฃŒ

https://www.npmjs.com/package/styled-reset

'React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Next.js๋ฅผ Vercel์— ๋ฐฐํฌํ•˜๊ธฐ  (0) 2024.05.31
Next.js ์ž…๋ฌธํ•˜๊ธฐ  (0) 2024.05.15
useCallback  (0) 2024.03.12
useMemo()  (0) 2024.03.12
useReducer()  (0) 2024.03.11

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ