Skip to content

버튼

Material Design 3 스펙에 맞춘 버튼 컴포넌트입니다. 일반 버튼(m3-btn), FAB(m3-fab), 아이콘 버튼(m3-icon-btn) 세 가지 유형을 제공합니다.

m3-btn (일반 버튼)

5가지 타입

소스 코드 보기
클래스설명
(기본)Filled - 강조 버튼, primary 배경
btn:elevatedElevated - 그림자가 있는 surface 배경
btn:tonalTonal - secondary-container 배경
btn:outlinedOutlined - 테두리만 있는 버튼
btn:textText - 배경 없이 텍스트만

크기 변형

소스 코드 보기
클래스별칭높이패딩폰트 크기
btn-size:xsbtn-size:12rem0 1rem0.75rem
btn-size:smbtn-size:22.5rem0 1.5rem0.875rem
btn-size:mdbtn-size:33rem0 1.75rem1rem
btn-size:lgbtn-size:43.5rem0 2rem1.125rem
btn-size:xlbtn-size:54rem0 2.5rem1.25rem

반응형 크기도 지원됩니다: sm:btn-size:md, md:btn-size:lg, lg:btn-size:xl 등.

모양 변형

소스 코드 보기

btn-shape:square를 사용하면 크기별로 적절한 border-radius가 적용됩니다.

색상 변형

소스 코드 보기

아이콘 버튼 (Leading / Trailing)

버튼 안에 아이콘을 배치할 때 사용합니다.

소스 코드 보기

비활성화

소스 코드 보기

Variable API

변수기본값설명
--btn-font-size0.875rem폰트 크기 (14sp)
--btn-font-weightvar(--font-weight-medium)폰트 굵기 (500)
--btn-line-height1.25rem줄 높이 (20sp)
--btn-letter-spacing0.00625rem자간 (0.1px)
--btn-height2.5rem버튼 높이 (40dp)
--btn-padding0 1.5rem내부 여백 (24dp)
--btn-gap0.5rem아이콘-라벨 간격 (8dp)
--btn-icon-size1.125rem아이콘 크기 (18dp)
--btn-accentvar(--color-primary)의미 색상. btn-color:*가 이 변수만 변경
--btn-on-accentvar(--color-on-primary)accent 위 글자 색상
--btn-colorvar(--btn-on-accent)텍스트 색상
--btn-background-colorvar(--btn-accent)배경 색상
--btn-background-imagenone배경 이미지
--btn-box-shadownone그림자
--btn-elevation-hovervar(--shadow-sm)호버 시 그림자
--btn-border-width0테두리 두께
--btn-border-colortransparent테두리 색상
--btn-border-stylesolid테두리 스타일
--btn-border-radiusvar(--radius-full)모서리 둥글기
--btn-outlinenone포커스 링
--btn-height-{xs,sm,md,lg,xl}2rem~4rem사이즈 단계별 높이. btn-size:* 옵션이 이 변수를 고른다 — 브랜드 단계는 여기서 바꾼다
--btn-padding-{xs…xl}단계별 좌우 여백
--btn-font-size-{xs…xl}단계별 글꼴 크기
--btn-outline-offset0포커스 링 오프셋
--btn-state-hover-opacity0.08호버 state layer 투명도
--btn-state-focus-opacity0.12포커스 state layer 투명도
--btn-state-pressed-opacity0.12눌림 state layer 투명도
--btn-state-layer-colorvar(--btn-on-accent)State layer 색상

m3-fab (Floating Action Button)

화면에 떠 있는 주요 액션 버튼입니다.

기본 사용법

소스 코드 보기

크기 변형

소스 코드 보기
클래스크기설명
fab:small40dp작은 FAB
(기본)56dp기본 FAB
fab:large96dp큰 FAB
fab:extendedauto확장 FAB (텍스트 포함)

색상 변형

소스 코드 보기
클래스배경아이콘 색상
(기본)surface-1primary
fab-color:primaryprimaryon-primary
fab-color:secondarysecondaryon-secondary
fab-color:tertiarytertiaryon-tertiary
fab-color:surfacesurfaceprimary

Variable API

변수기본값설명
--fab-size3.5remFAB 크기 (56dp)
--fab-padding1rem내부 여백 (16dp)
--fab-gap0.75rem아이콘-텍스트 간격 (12dp)
--fab-icon-size1.5rem아이콘 크기 (24dp)
--fab-backgroundvar(--color-surface-1)배경 색상
--fab-colorvar(--color-primary)아이콘/텍스트 색상
--fab-box-shadowvar(--shadow-lg)그림자 (level3)
--fab-elevation-hovervar(--shadow-xl)호버 시 그림자 (level4)
--fab-border-radius1rem모서리 둥글기 (16dp)
--fab-font-size0.875rem폰트 크기 (14sp)
--fab-font-weightvar(--font-weight-medium)폰트 굵기
--fab-line-height1.25rem줄 높이 (20sp)
--fab-letter-spacing0.00625rem자간

m3-icon-btn (아이콘 버튼)

아이콘만 포함된 버튼입니다. 48dp 터치 영역, 40dp 가시 영역을 가집니다.

기본 사용법

소스 코드 보기

크기 변형 (newtil 확장)

기본(md)만 M3 터치 영역 48px 을 지킵니다. xs·sm 은 보이는 크기가 곧 상자 크기라서 카드 액션·표 셀처럼 텍스트 버튼(btn-size:sm 32px) 옆에 나란히 놓을 때 씁니다.

소스 코드 보기
클래스보이는 크기터치 영역
icon-btn-size:xs28px28px
icon-btn-size:sm32px32px
icon-btn-size:md (기본)40px48px
icon-btn-size:lg48px48px

4가지 타입

소스 코드 보기
클래스설명
(기본)Standard - 투명 배경
icon-btn:filledFilled - primary 배경
icon-btn:tonalTonal - secondary-container 배경
icon-btn:outlinedOutlined - 테두리

토글 상태

아이콘 버튼의 선택/비선택 상태를 표현합니다.

소스 코드 보기

Variable API

변수기본값설명
--icon-btn-size2.5rem가시 크기 (40dp)
--icon-btn-touch-size3rem터치 영역 (48dp)
--icon-btn-icon-size1.5rem아이콘 크기 (24dp)
--icon-btn-backgroundtransparent배경
--icon-btn-colorvar(--color-text)아이콘 색상
--icon-btn-box-shadownone그림자
--icon-btn-border-width0테두리 두께
--icon-btn-border-colortransparent테두리 색상
--icon-btn-border-stylesolid테두리 스타일
--icon-btn-border-radiusvar(--radius-full)모서리 둥글기
--icon-btn-state-layer-colorvar(--color-text)State layer 색상
--icon-btn-state-hover-opacity0.08호버 투명도
--icon-btn-state-focus-opacity0.12포커스 투명도
--icon-btn-state-pressed-opacity0.12눌림 투명도