styled flow

Styled-components는 컴포넌트 생성 후 props로 스타일을 좁힌다

styled 태그로 기본 모양을 만들고, props, as prop, 확장 컴포넌트로 의미와 상태에 맞는 UI 변형을 추가한다.

사용 흐름

styled props as extend

const BaseButton = styled.button`padding: 10px 20px;`

const PrimaryButton = styled(BaseButton)`background: blue;`

<BaseButton as="a" href="#">link</BaseButton>

변형 책임

props

상태 기반 스타일

primary, size, color 같은 값으로 한 컴포넌트의 시각 상태를 조절한다.

as prop

태그 의미 변경

버튼처럼 보이지만 링크로 렌더링해야 할 때 스타일은 유지하고 HTML 의미를 바꾼다.

extend

기본 스타일 재사용

BaseButton의 간격과 크기를 공유하고 색상, 테두리, 상태만 덧붙인다.

rule

팀 기준 고정

props 이름, 테마 토큰, 확장 가능한 기본 컴포넌트를 미리 정한다.

추천

상태별 UI가 많은 화면

버튼 상태, 카드 강조, 테마 전환처럼 스타일 분기가 코드 상태와 붙어 있을 때 적합하다.

확인

런타임 비용

정적인 화면만 있다면 CSS 모듈이 더 단순할 수 있으므로 의존성 비용을 비교한다.

정리

컴포넌트 단위 응집

구조와 스타일 의도가 한 파일에서 함께 읽히도록 작은 기본 컴포넌트부터 만든다.