상태 기반 스타일
primary, size, color 같은 값으로 한 컴포넌트의 시각 상태를 조절한다.
styled 태그로 기본 모양을 만들고, props, as prop, 확장 컴포넌트로 의미와 상태에 맞는 UI 변형을 추가한다.
const BaseButton = styled.button`padding: 10px 20px;`
const PrimaryButton = styled(BaseButton)`background: blue;`
<BaseButton as="a" href="#">link</BaseButton>
primary, size, color 같은 값으로 한 컴포넌트의 시각 상태를 조절한다.
버튼처럼 보이지만 링크로 렌더링해야 할 때 스타일은 유지하고 HTML 의미를 바꾼다.
BaseButton의 간격과 크기를 공유하고 색상, 테두리, 상태만 덧붙인다.
props 이름, 테마 토큰, 확장 가능한 기본 컴포넌트를 미리 정한다.
버튼 상태, 카드 강조, 테마 전환처럼 스타일 분기가 코드 상태와 붙어 있을 때 적합하다.
정적인 화면만 있다면 CSS 모듈이 더 단순할 수 있으므로 의존성 비용을 비교한다.
구조와 스타일 의도가 한 파일에서 함께 읽히도록 작은 기본 컴포넌트부터 만든다.