9.4.4 props에 따른 조건부 스타일링
일반 CSS 클래스를 사용하여 조건부 스타일링을 해야 할 때는 className을 사용하여 조건부 스타일링을 해 왔는데요. styled-components에서는 조건부 스타일링을 간단하게 props로도 처리할 수 있습니다.
앞에서 작성한 Button 컴포넌트를 다시 한 번 확인해봅시다.
StyledComponent.js - Button
import styled, { css } from 'styled-components'; /* 단순 변수의 형태가 아니라 여러 줄의 스타일 구문을 조건부로 설정해야 하는 경우에는 css를 불러와야 합니다. */ const Button = styled.button` background: white; color: black; border-radius: 4px; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box; font-size: 1rem; font-weight: 600; /* & 문자를 사용하여 Sass처럼 자기 자신 선택 가능 */ &:hover { background: rgba(255, 255, 255, 0.9); } /* 다음 코드는 inverted 값이 true일 때 특정 스타일을 부여해 줍니다. */ ${props => props.inverted && css` background: none; border: 2px solid white; color: white; &:hover { background: white; color: black; } `}; & + button { margin-left: 1rem; } `;