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>
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;
}}
`;
return <StyledDiv login={true}></StyledDiv>;
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>
</>
);
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>
);
}
const Container = () => {
return <h2>My name is Hello</h2>;
};
export default Container;
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;