Button Group
버튼 그룹은 서로 밀접하게 관련된 버튼들을 일정한 간격으로 묶어 보여줘요.
설치
pnpm dlx shadcn@latest add https://rebar.conmarket-landing.workers.dev/r/steel/button-group.json아래 코드를 components/ui/button-group.tsx 에 복사해요. 그룹 안에는 Button 을 넣어요.
Examples
Default
버튼 사이를 4px(space.050) 간격으로 묶고 role="group" 을 붙여요. label 로 그룹 이름을 알려줘요.
With primary action
그룹의 핵심 액션은 primary 로 강조할 수 있어요. 모달이나 집중된 작업에서는 그룹을 오른쪽에 정렬하고 primary 를 끝에 둬요.
Toolbar with title
화면에 보이는 제목이 있으면 그 요소의 id 를 titleId 로 넘겨 aria-labelledby 로 연결해요. 아이콘 버튼도 함께 묶을 수 있어요.
Compact
표나 툴바처럼 좁은 곳에서는 안쪽 버튼을 모두 spacing="compact" 로 맞춰요.
Usage guidelines
버튼 그룹은 자주 쓰고 서로 관계가 깊은 액션을 한데 모을 때 써요. 이슈 상세 화면 상단의 액션 모음이나 문서 편집 화면의 도구 모음처럼 페이지 위쪽에 자주 놓이고, 폼과 모달 다이얼로그에서도 많이 써요.
Do· 한 가지 변형으로
그룹 안 버튼은 같은 spacing·같은 계열 appearance 로 맞추고, 핵심 액션 하나만 primary 로 둬요.
Don't· 섞어 쓰기
default·subtle·warning 을 뒤섞거나 크기를 다르게 하면 무엇이 같은 묶음인지 흐려져요.
- 쓰임과 중요도에 따라 버튼을 묶고 순서를 정해요.
- 라벨은 누르면 무슨 일이 생기는지 알 수 있게 짧고 분명하게 써요.
- 정렬 규칙은 Button 의 가이드를 따라요. primary 는 그룹이 정렬된 쪽 끝에 둬요.
Accessibility
label(aria-label) 또는titleId(aria-labelledby) 중 하나를 꼭 지정해요. 스크린 리더가 "이슈 액션, 그룹" 처럼 묶음의 이름을 먼저 읽어 줘요.- 그룹 자체는 포커스를 받지 않아요. 안쪽 버튼을
Tab으로 하나씩 이동해요. - 비활성 버튼은 가능한 피하고, 비활성 버튼에 툴팁을 달지 않아요.
Props
Prop
Type