버튼.gif

본 컴포넌트는 단일 파일 구조 내에서 **"서버 컴포넌트의 안정성"**과 **"클라이언트의 상호작용"**이라는 두 가지 역할을 유연하게 수행하도록 설계되다. 하나의 인터페이스로 프로젝트 전반에서 일관된 버튼 사용자 경험을 제공을 목표로한다.

✅ 컴포넌트 구조

파일명 유형 주요 역할
button.tsx Client 실제 <button />을 렌더링하며 스타일, 로딩 상태, 인터랙션을 통합 관리하는 공통 컴포넌트

✅ ButtonProps (공통 속성)

모든 표준 HTML button 속성을 지원하며, 아래의 커스텀 속성을 추가로 가진다.

Props 타입 설명
variant primary secondary
size lg md
isLoading boolean 로딩 상태를 표시하며, 활성화 시 클릭이 차단된다.
leftIcon React.ReactNode 텍스트 왼쪽에 배치될 아이콘 요소.
rightIcon React.ReactNode 텍스트 오른쪽에 배치될 아이콘 요소.

⚠️ 주의: 폼(Form) 제출용으로 사용 시 반드시 type="submit"으로 명시해야 한다.


✅ 디자인 가이드 (Variants & Sizes)

1. Variants

2. Sizes