기본 Button 구조
Button 컴포넌트의 기본 스타일과 구조입니다.
기본 Button 스타일에는 모든 버튼에 공통으로 적용될 스타일만 정의합니다.
요약 설명핵심 UI 컴포넌트는 디자인 시스템의 기본 빌딩 블록입니다.
SCSS는 "스타일을 늘리는 도구"가 아니라 경우의 수를 구조로 정리하는 도구입니다.
Modifier 기반 구조를 사용하면 컴포넌트의 다양한 변형을 체계적으로 관리할 수 있습니다.이 페이지에서는 Button, Card, Badge/Tag, Divider 컴포넌트를 Modifier 패턴으로 구성하는 방법을 상세히 알아봅니다.
Modifier 패턴은 BEM 방법론의 한 부분으로, 기본 컴포넌트에 변형을 추가하는 방식입니다.
--primary, --sm 같은 Modifier를 사용하면 컴포넌트의 다양한 상태와 크기를 체계적으로 관리할 수 있습니다.
상태 스타일은 구조로 관리되므로, 새로운 변형을 추가하거나 기존 스타일을 수정할 때 예측 가능하고 안전합니다.
Button은 가장 기본적이면서도 다양한 변형이 필요한 컴포넌트입니다.
type(primary, secondary),
size(sm, md, lg),
state(disabled, loading) 등 여러 차원에서 변형이 필요합니다.
Button 컴포넌트의 기본 스타일과 구조입니다.
기본 Button 스타일에는 모든 버튼에 공통으로 적용될 스타일만 정의합니다.
버튼의 타입에 따라 다른 색상을 적용합니다.
각 타입은 독립적으로 정의되므로, 새로운 타입을 추가하거나 기존 타입을 수정할 때 다른 타입에 영향을 주지 않습니다.
버튼의 크기를 조절하는 Modifier입니다.
Size Modifier는 Type Modifier와 독립적으로 동작하므로, button--primary--lg처럼 조합하여 사용할 수 있습니다.
버튼의 상태를 나타내는 Modifier입니다.
Disabled 상태는 다른 Modifier와 함께 사용되어도 정상적으로 작동합니다.
정의한 Button 컴포넌트를 HTML에서 사용하는 방법입니다.
※ 코드펜에서는 SCSS 파셜을 사용할 수 없으므로, 이 예시는 사용되는 토큰만을 하나의 SCSS 파일에 모아 작성한 예제입니다.
코드펜에서는 @use를 사용할 수 없으므로, 모든 토큰과 컴포넌트 스타일을 하나의 SCSS 파일에 작성합니다.
각 Type별로 Size (Large, Medium, Small)와 Disabled 상태를 순서대로 보여줍니다.
Card는 콘텐츠를 그룹화하여 표시하는 컨테이너 컴포넌트입니다.
일관된 스타일과 적절한 여백, 그림자 효과를 통해 콘텐츠를 명확하게 구분합니다.
Card 컴포넌트의 기본 스타일입니다.
Card는 Header, Body, Footer로 구성되며, 각 영역은 선택적으로 사용할 수 있습니다.
Card의 변형을 만드는 Modifier입니다.
※ 코드펜에서는 SCSS 파셜을 사용할 수 없으므로, 이 예시는 사용되는 토큰만을 하나의 SCSS 파일에 모아 작성한 예제입니다.
Badge와 Tag는 작은 라벨이나 상태를 표시하는 컴포넌트입니다.
색상과 크기로 다양한 의미를 전달할 수 있습니다.
Badge는 작은 원형 또는 둥근 모서리의 라벨입니다.
Tag는 Badge보다 더 넓은 형태의 라벨입니다.
※ 코드펜에서는 SCSS 파셜을 사용할 수 없으므로, 이 예시는 사용되는 토큰만을 하나의 SCSS 파일에 모아 작성한 예제입니다.
Divider는 콘텐츠를 시각적으로 구분하는 구분선입니다.
수평선, 수직선, 텍스트가 포함된 구분선 등 다양한 형태로 사용됩니다.
정의한 컴포넌트들을 조합하여 더 복잡한 UI를 만드는 방법입니다.
컴포넌트는 독립적으로 동작하면서도 함께 사용될 수 있어야 합니다.
각 컴포넌트는 독립적으로 동작하므로, 조합해도 스타일 충돌이 발생하지 않습니다.
※ 코드펜에서는 SCSS 파셜을 사용할 수 없으므로, 이 예시는 사용되는 토큰만을 하나의 SCSS 파일에 모아 작성한 예제입니다.
핵심 UI 컴포넌트 구성에 대해 알아본 내용을 정리합니다.
다음 페이지에서는 폼과 인터랙티브 컴포넌트를 구성하는 방법을 알아봅니다.