[소플의 처음 만난 리액트] 15장 실습문제
이 포스트는 React의 styled-components를 사용하여 버튼과 블록을 스타일링하는 방법을 소개한다. styled-components는 CSS 문법을 그대로 사용하면서 스타일링된 컴포넌트를 생성할 수 있는 오픈소스 라이브러리다. 이를 통해 동적으로 스타일을 변경할 수 있고, 컴포넌트 개념을 활용하여 리액트에서 사용하기 용이합니다.
Jan 03, 2024
SampleBtn.jsx
import React from "react";
import styled from "styled-components";
const Button = styled.button`
color: ${props => props.dark ? "white" : "dark"};
background: ${props => props.dark ? "black" : "white"};
border: 1px solid black;
`;
const RoundedButton = styled(Button)`
border-radius: 16px;
`;
function SampleBtn(props){
return(
<div>
<Button>Normal</Button>
<Button dark>Dark</Button>
<RoundedButton dark>Rounded</RoundedButton>
</div>
)
}
export default SampleBtn;
핵심 키워드
- React의 styled-components에서는 조건이나 동적으로 변하는 값, 즉 props를 이용해서 스타일을 지정할 수 있다.
Blocks.jsx
import React from "react";
import styled from "styled-components";
// styled-components를 사용하여 스타일링해 보기
const Wrapper = styled.div`
padding: 1rem;
display: flex;
flex-direction: column;
align-items: baseline;
justify-content: flex-start;
background-color: lightgrey;
`;
const Block = styled.div`
// 그때그때 변화해야 하는 부분은 props를 이용해서 바꿈
padding: ${(props) => props.padding};
border: 1px solid black;
border-radius: 1rem;
background-color: ${(props) => props.backgroundColor};
color: white;
font-size: 2rem;
font-weight: bold;
text-align: center;
`;
const blockItems = [
{
label: "1",
padding: "1rem",
backgroundColor: "red",
},
{
label: "2",
padding: "3rem",
backgroundColor: "green",
},
{
label: "3",
padding: "2rem",
backgroundColor: "blue",
},
];
function Blocks(props) {
return (
<Wrapper>
{blockItems.map((blockItems) => {
return (
<Block
padding={blockItems.padding}
backgroundColor={blockItems.backgroundColor}
>
{blockItems.label}
</Block>
);
})}
</Wrapper>
);
}
export default Blocks;
핵심 키워드
- styled-components란 CSS 문법을 그대로 사용하면서 결과물을 스타일링된 컴포넌트 형태로 만들어 주는 오픈소스 라이브러리다.
- 컴포넌트 개념을 사용하기 때문에 리액트로 활용하기 좋다.
- 태그드 템플릿 리터럴을 사용하여 구성 요소의 스타일을 지정한다.
결론!
해당 문제를 풀면서 styled-components의 사용법을 익힐 수 있었다.
Share article