ํด๋น ๋ธ๋ก๊ทธ์ css๋ฅผ ์ด๊ธฐํ ํด์ผํ๋ ์ด์ ์ ๋ํด์๋ CSS ์์ ์์ ๊ผญ ๊ฑฐ์ณ์ผํ๋ ํ์ ๊ณผ์ ์์ ๋ค๋ค๋ค.
์ด์ ์ค๋์ React Styled-Components์์๋ CSS-Reset์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์.
Our Goals
์ต์ข ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ๊ตฌ์ฑํ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์๊ธฐ๋ margin๊ณผ padding์ ์ํด ์๊ฒจ๋ ์ฌ๊ธฐ ๋นจ๊ฐ ๊ฐ๊ฒฉ๋ค์ ์์จ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ํ๋๋ค.
- styled-components ์ค์นํ๊ธฐ
- styled-reset ํจํค์ง ์ค์นํ๊ธฐ
- ๊ธฐ๋ณธ์ ์ธ ์ปดํฌ๋ํธ ์์ฑํ๊ธฐ
- GlobalStyles.js ์์ฑํ๊ธฐ
- App.js์ GlobalStyles import ํ๊ธฐ
styled-components ์ค์นํ๊ธฐ
์ฌ์ค ์ด ๊ฒ์์ ํตํด ๋ธ๋ก๊ทธ๋ก ๋ค์ด์จ ์ฌ๋์ ๊ฑฐ์ ์ค๋น๊ฐ ๋์๊ฒ ์ง๋ง, ํน์ ๋ชจ๋ฅผ ๋ ์๋ฅผ ์ํด ์ค๋ช ํ๊ฒ ๋ค.
styled-components๊ฐ ์์ด์ผ css-reset์ ์ํํ ์ ์์ผ๋ฏ๋ก styled-components ํจํค์ง๋ฅผ ์ค์นํ์.
styled-reset ํจํค์ง ์ค์นํ๊ธฐ
์ด์ styled-components์ css reset๋ฅผ ์ํด styled-reset ํจํค์ง๋ฅผ ์ค์นํ์
๋ณด์.
export const App = () => {
return (
<>
<RootContainer>
<TextField>Box1</TextField>
<TextField>Box2</TextField>
</RootContainer>
</>
);
}
const RootContainer = styled.div`
display: flex;
flex-direction: row;
`;
const TextField = styled.span`
display: flex;
width: 150px;
height: 150px;
background-color: wheat;
justify-content: center;
align-items: center;
`;
export default App;
GlobalStyles.js ์์ฑํ๊ธฐ
styled-components๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์๊ฒ ์คํ์ผ๋ง์ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ์ํด Local๋ก ๋์ํ๋๋ฐ, ์ฐ๋ฆฌ๋ ๋ชจ๋ HTML Elements, Components์ ๋์ผํ๊ฒ ์ด๊ธฐํ ์์
์ด ์ ์ฉ๋์ด์ผ ํ๋ฏ๋ก Global์ค์ ์ ํ ์ ์๋ GlobalStyles.js
๋ผ๋ ํ์ผ์ ์์ฑํ ๊ฒ์ด๋ค.
์ด ๋ถ๋ถ์ด ์๋ง ๊ฐ์ฅ ์ค์ํ ํต์ฌ์ด์ง ์์๊น ์ถ๋ค
import { createGlobalStyle } from "styled-components";
import reset from "styled-reset"; // style-reset ํจํค์ง
const GlobalStyles = createGlobalStyle`
${reset}
a{
text-decoration: none;
color: inherit;
}
*{
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-size: 14px;
background-color: rgba(20, 20, 20, 1);
color: white;
padding-top: 50px;
}
`;
export default GlobalStyles;
์ฌ๊ธฐ์ createGlobalStyle
์ styled-componenst์์ ๊ฐ์ ธ์ค๊ฒ ๋๋๋ฐ, ์๊น ์์์ ๋ง ํ๋ Local์ค์ ์ Global์ค์ ์ผ๋ก ์ ์ฉํ ์ ์๊ฒ ํ๋ ์์์ด๋ค.
App.js์ GlobalStyles import ํ๊ธฐ
import GlobalStyles from "./GlobalStyles";
export const App = () => {
return (
<>
<GlobalStyles />
<RootContainer>
<TextField>Box1</TextField>
<TextField>Box2</TextField>
</RootContainer>
</>
);
}
const RootContainer = styled.div`
display: flex;
flex-direction: row;
`;
const TextField = styled.span`
display: flex;
width: 150px;
height: 150px;
background-color: wheat;
justify-content: center;
align-items: center;
`;
export default App;
๊ทธ๋ผ ๋ชจ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๊ณ ์ฐ๋ฆฌ๊ฐ ์์ํ ๋๋ก CSS-Reset์ React Styled-Components์์ ๋์ํ๊ฒ ํ ์ ์๋ค.
๋๊ธ