styled components ๋ javascript์์ css๋ฅผ ์ฌ์ฉ ํ ์ ์๋๋ก ๋์์ฃผ๋ ์คํ์ผ๋ง ํ๋ ์์ํฌ์ ๋๋ค.
์ฌ์ฉํ๋ ์ด์ โ
- component ๋จ์ ์คํ์ผ๋ง
- ๊ธฐ์กด์ className์ ์ฌ์ฉํ์ง ์๋ ๊ฒ๊ณผ ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ ์ฉํ์ฌ ์คํ์ผ ์ฝ๋๋ฅผ ๋ชฐ์ ๋ฃ์ ์ ์์ผ๋ฉฐ ๊ณตํต ์ฝ๋๋ฅผ ์ค์ด๊ณ React์ ์ปดํฌ๋ํธ ํํ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
โ ์ค์น
// styled-components ์ค์นํ๊ธฐ
$ npm install --save styled-components
// yarn์ ์ฌ์ฉํ๋ค๋ฉด
$ yarn add styled-components
โ ์ฌ์ฉ ์์
const StyledDiv = styled.div`
background-color: black;
width: 100px;
height: 100px;
`;
return <StyledDiv></StyledDiv>
โ .js
import styled from "styled-components";
...
const CustomDiv = styled.div`
...
`;
โ ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง
const StyledDiv = styled.div`
background-color: black;
width: 100px;
height: 100px;
${({ login }) => {
return login ? `display: none` : null;
}}
`;
//๋๋
const StyledDiv = styled.div`
background-color: black;
width: 100px;
height: 100px;
${({ login }) => {
return login ? `display: none` : null;
}}
`;
return <StyledDiv login={true}></StyledDiv>;
- Component์ props๋ฅผ ์ ๋ฌ๋ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅ ํฉ๋๋ค.
- ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์์ javascript๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ํ์์ด๋ฉฐ,
๋ด๋ถ์์ ์ ์ธ๋ ํจ์๋ props๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์คํ ๋ฉ๋๋ค.
โ ํ์ฅ ์คํ์ผ๋ง
const Container = styled.div`
max-width: 600px;
width: 100%;
height: 100px;
`;
const BlackContainer = styled(Container)`
background-color: black;
`;
const RedContainer = styled(Container)`
background-color: red;
`;
return (
<>
<BlackContainer />
<RedContainer />
</>
);
โ ์ค์ฒฉ ์ค์ฝํ
const StyledDiv = styled.div`
background-color: black;
width: 100px;
height: 100px;
p {
color: white;
}
`;
return (
<>
<StyledDiv>
<p>Title</p>
</StyledDiv>
<p>content</p>
</>
);
โ ์ฐ์ต
App.js
import "./styles.css";
import styled from "styled-components";
import Container from "./Container";
import Button from "./Button";
const ContainerStyle = styled.div`
margin: 20px;
padding: 20px;
background-color: #bdc3c7;
`;
const Custom = styled.h6`
color: red;
`;
export default function App() {
return (
<ContainerStyle>
<h2>hello</h2>
<Custom>
<Container />
</Custom>
<Button />
</ContainerStyle>
);
}
โ Container.js
const Container = () => {
return <h2>My name is Hello</h2>;
};
export default Container;
โ Button.js
import styled from "styled-components";
const ButtonStyle = styled.button`
border: 2px solid palevioletred;
border-radius: 3px;
`;
const Button = () => {
return (
<ButtonStyle>
<button>normal</button>
</ButtonStyle>
);
};
export default Button;
โ ์ฐธ๊ณ
'๐ Front-End > React.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Redux Toolkit (0) | 2022.10.25 |
---|---|
React - SVG ํ์ผ ์ฌ์ฉ๋ฒ (0) | 2022.10.25 |
ํ๋ก์ ํธ ๋ฐฐํฌ ์ค๋น ๋ฐ ๋น๋ (0) | 2022.10.25 |
React - img (0) | 2022.10.25 |
React - Router ์์ฉ (0) | 2022.10.24 |