안녕하세요 황대성입니다😊
이번 글에서는 styled-components와 styled-reset을 사용하여 Global Style 설정 방법을 알아보겠습니다.
사용 방법도 굉장히 쉽고, 한 번 설정해놓으면 효율적인 코드를 작성 할 수 있습니다.
여러분들도 한 번 사용해보셨으면 좋겠습니다.
제일 먼저 초기 세팅을 해줍시다.
- css 초기화를 위한 styled-reset 설치
- createGlobalStyle을 사용하기 위한 styled-components 설치
npm install styled-reset styled-components
//or
yarn add styled-reset styled-components
이제 실제로 사용해봅시다.
styled-components는 local로 동작하기 때문에 GlobalStyles.js 파일을 생성해서 Global Style을 관리합니다.
src/styles/GlobalStyle.js
import { createGlobalStyle } from 'styled-components';
import reset from 'styled-reset';
const GlobalStyle = createGlobalStyle`
${reset};
body{
padding: 0;
margin: 0;
font-family: 'Noto Sans KR', sans-serif;
};
button{
display: flex;
cursor: pointer;
outline: none;
border-radius: 3px;
};
input{
display: flex;
outline: none;
padding-left: 10px;
}
`;
export default GlobalStyle;
저는 위 코드를 다음과 같은 효과를 위해 작성했습니다.
- body: margin과 padding을 0으로 주기위해, font 설정을 하기위해
- button: button의 기본설정을 하기 위해서
- input: input의 기본설정을 하기 위해서
정말 사용하기 쉽죠?
이렇게 하면 button이나 input마다 작성해야 할 코드도 줄고,
렌더링되는 모든 폰트에 제가 설정한 폰트가 적용되기 때문에 중복되는 코드를 작성하지 않아도 됩니다.
이제 GlobayStyle 파일을 사용해봅시다.
src/App.js
import React from 'react';
import GlobalStyle from './styles/GlobalStyle';
import styled from 'styled-components';
import { Switch, Route, BrowserRouter } from 'react-router-dom';
import Home from './pages/Home';
import International from './pages/International';
import Multiple from './pages/Multiple';
import Header from './components/Header/Header';
const RootDiv = styled.div`
height: 100vh;
`;
const App = () => {
return(
<React.Fragment>
<GlobalStyle />
<RootDiv>
<BrowserRouter>
<Header />
<Switch>
<Route exact path = "/" component = {Home} />
<Route exact path = "/inSearch" component = {International} />
<Route exact path = "/mtSearch" component = {Multiple} />
</Switch>
</BrowserRouter>
</RootDiv>
</React.Fragment>
);
}
export default App;
사용 방법도 정말 간단합니다.
여러분의 App.js 혹은 index.js 등 라우터를 설정해주는 부분에서 GlobalStyle을 불러와 적용 시켜주시면 됩니다.
사용하기 정말 쉬우니까 여러분도 사용해보세요!
참고 문헌 및 사이트
React Js - Global CSS 설정 + styled reset
긴 글 읽어주셔서 감사합니다😀
'프론트엔드 > React' 카테고리의 다른 글
[React] Chrome에서 video tag autoplay 오류 해결 (1) | 2020.11.27 |
---|---|
[React] Map과 Filter를 사용하여 배열 다루기 (2) | 2020.07.24 |
[React] Redux DevTools 사용하기 (0) | 2020.07.23 |
[React] Redux + Saga, API호출 해보기 (0) | 2020.07.23 |