버튼
Podo UI의 버튼 컴포넌트와 다양한 변형 사용법을 안내합니다
기본 사용법
HTML button 태그에 컬러 클래스를 추가하여 버튼을 만들 수 있습니다. 클래스명만으로 다양한 스타일의 버튼을 구현할 수 있습니다.
HTML
<button>기본 버튼</button>
<button class="primary">Primary 버튼</button>
<button class="danger">Danger 버튼</button>
<button disabled>비활성화 버튼</button>실제 예제:
버튼 변형
7가지 시맨틱 컬러로 다양한 목적의 버튼을 만들 수 있습니다:
Primary
주요 액션
Default
기본 버튼
Default Deep
진한 기본 버튼
Info
정보성 액션
Link
링크형 액션
Success
성공/완료 액션
Warning
경고 액션
Danger
위험/삭제 액션
HTML
<button class="primary">Primary</button>
<button>Default</button>
<button class="default-deep">Default Deep</button>
<button class="info">Info</button>
<button class="link">Link</button>
<button class="success">Success</button>
<button class="warning">Warning</button>
<button class="danger">Danger</button>버튼 스타일
각 컬러 변형마다 4가지 스타일(Solid, Fill, Border, Text)을 사용할 수 있습니다:
Solid
기본 스타일
<button class="primary">Primary</button>
<button>Default</button>
<button class="default-deep">Default Deep</button>
<button class="info">Info</button>
<button class="link">Link</button>
<button class="success">Success</button>
<button class="warning">Warning</button>
<button class="danger">Danger</button>Fill
연한 배경
<button class="primary fill">Primary</button>
<button class="fill">Default</button>
<button class="default-deep fill">Default Deep</button>
<button class="info fill">Info</button>
<button class="link fill">Link</button>
<button class="success fill">Success</button>
<button class="warning fill">Warning</button>
<button class="danger fill">Danger</button>Border
테두리만
<button class="primary border">Primary</button>
<button class="border">Default</button>
<button class="default-deep border">Default Deep</button>
<button class="info border">Info</button>
<button class="link border">Link</button>
<button class="success border">Success</button>
<button class="warning border">Warning</button>
<button class="danger border">Danger</button>Text
텍스트만
<button class="primary text">Primary</button>
<button class="text">Default</button>
<button class="default-deep text">Default Deep</button>
<button class="info text">Info</button>
<button class="link text">Link</button>
<button class="success text">Success</button>
<button class="warning text">Warning</button>
<button class="danger text">Danger</button>버튼 크기
CSS를 사용하여 버튼의 크기를 조절할 수 있습니다:
HTML
<button class="primary xxs">
xxs Button
</button>
<button class="primary xs">
xs Button
</button>
<button class="primary sm">
sm Button
</button>
<button class="primary md">
md Button
</button>
<button class="primary lg">
lg Button
</button>
실제 예제:
텍스트 정렬
버튼 내 텍스트의 정렬을 왼쪽, 가운데, 오른쪽으로 설정할 수 있습니다. 기본값은 가운데 정렬입니다:
HTML
<!-- 가운데 정렬 -->
<button class="primary">가운데 정렬</button>
<!-- 왼쪽 정렬 -->
<button class="primary text-left">왼쪽 정렬</button>
<!-- 오른쪽 정렬 -->
<button class="primary text-right">오른쪽 정렬</button>실제 예제:
아이콘과 함께 사용:
아이콘과 함께 사용
버튼 내부에 아이콘을 추가하여 더욱 직관적인 UI를 만들 수 있습니다:
HTML
<button class="primary">
<i class="icon-plus"></i>
새로 만들기
</button>
<button class="success">
<i class="icon-check"></i>
확인
</button>
<button class="danger">
<i class="icon-trash"></i>
삭제
</button>
<!-- Text style -->
<button class="primary text">
<i class="icon-plus"></i>
새로 만들기
</button>
<!-- Icon only -->
<button class="primary">
<i class="icon-search"></i>
</button>실제 예제:
비활성화 상태
disabled 속성을 추가하여 버튼을 비활성화할 수 있습니다:
HTML
<button class="primary" disabled>Disabled</button>
<button class="success" disabled>Disabled</button>
<button class="danger" disabled>Disabled</button>실제 예제:
버튼 그룹
여러 버튼을 그룹으로 묶어 사용할 수 있습니다:
HTML
<div style="display: flex; gap: 0.5rem;">
<button class="primary">저장</button>
<button class="default">취소</button>
</div>
<div style="display: flex; gap: 0.5rem;">
<button class="primary">
<i class="icon-arrow-left"></i>
이전
</button>
<button class="primary">
다음
<i class="icon-arrow-right"></i>
</button>
</div>실제 예제:
SCSS에서 사용하기
SCSS 모듈에서 버튼 스타일을 커스터마이징할 수 있습니다:
component.module.scss
@use 'podo-ui/mixin' as *;
.customButton {
display: flex;
align-items: center;
gap: s(2);
padding: s(3) s(5);
background: color(primary-base);
color: color(primary-reverse);
border: none;
border-radius: r(3);
cursor: pointer;
transition: all 0.3s;
&:hover {
background: color(primary-hover);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
&:active {
background: color(primary-pressed);
transform: translateY(0);
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none;
}
i {
font-size: 16px;
}
}
.iconOnlyButton {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
padding: 0;
background: color(primary-fill);
color: color(primary-base);
border: 1px solid color(primary-outline);
border-radius: r(2);
cursor: pointer;
transition: all 0.3s;
&:hover {
background: color(primary-base);
color: color(primary-reverse);
}
}전체 변형 쇼케이스
모든 컬러 변형과 스타일을 한눈에 확인하세요:
Primary주요 액션
Default기본 버튼
Default Deep진한 기본 버튼
Info정보성 액션
Link링크형 액션
Success성공/완료 액션
Warning경고 액션
Danger위험/삭제 액션