마크다운으로 복사링크 공유

아이콘 버튼

닫기·더보기처럼 아이콘 하나만 있는 가벼운 버튼이에요. 폰에서는 누르는 칸이 44px로 커져요.

모바일PCPleos · 개발 중IconBtn관련 버튼 · 칩

고르기#

  • 이 이름은 버튼(Button)에 합쳤어요. 모양은 그대로이고, 새로 쓸 때는 정본을 써요.

버튼 문서 보기 →

사용 예제#

할 일마다 실물과 코드예요. 편집을 누르면 코드를 고쳐 바로 볼 수 있어요.

닫기 버튼 두기#

글자가 없으니 이름(label)을 꼭 줘요.

머리 줄에 나란히 두기#

상세 머리처럼 여러 개를 붙여 놓아요.

켜진 색 입히기#

관심처럼 켜진 상태는 글자색만 덮어써요.

못 누르게 하기#

해부도#

  1. 1

    컨테이너

    누르는 칸이에요. PC 32px, 폰 44px 정사각형이에요.

  2. 2

    아이콘

    16px 선 아이콘 하나예요.

속성#

State#

올리면 면이 생기고, 못 누르면 40%로 흐려요.

Size#

PC는 32px, 폰(767px 이하)은 44px이에요. 아이콘은 16px 그대로예요.

인터페이스#

타입에서 자동으로 뽑은 표예요.

IconBtn#

속성기본값타입설명
onClick-() => void누르면 불러요.
title-string마우스를 올리면 뜨는 설명이에요. label이 없으면 이름으로도 써요.
label-string화면 읽기 프로그램이 읽는 이름(aria-label)이에요.
disabled-boolean못 누르게 하고 40%로 흐려요.
className주의-string배치용 클래스예요. 모양(색·크기)은 덮어쓰지 않아요.
children*-ReactNode안에 그릴 내용이에요.

* 필수예요. 표는 타입에서 자동으로 뽑았어요.

스펙#

상태 · 슬롯마다 실제로 그려지는 값이에요.

IconBtn#

base

상태슬롯속성값
enabledroot크기32px
모서리radius-lg
글자색dim
전환 대상색·눌림 크기
enabled · 폰(767px 이하)root크기44px
hoverroot배경색hover
글자색ink
pressedroot크기 배율(기본)0.975 · 버튼 공통 규칙
disabledroot포인터받지 않음
투명도40%

값은 컴포넌트 코드에서 뽑았고, 토큰 이름을 누르면 파운데이션으로 가요. 토큰이 없는 값만 숫자로 적었어요.

접근성#

역할과 속성#

요소역할 · 속성
IconBtnbutton(type="button")
labelaria-label(없으면 title)
disableddisabled 속성

키보드#

키동작
Tab다음 버튼으로 옮겨요
Enter · Space눌러요

화면 읽기 프로그램#

  • 글자가 없어 label이 곧 이름이에요. 빠지면 "버튼"으로만 읽혀요.

초점#

  • 폰(767px 이하)에서는 누르는 칸이 44px로 커져요. 아이콘 크기는 그대로예요.

가이드라인#

이렇게 써요#

쓰는 규칙#

이렇게 써요

  • label(aria-label)을 반드시 줘요.
  • 아이콘은 lucide 16px(size-4)을 써요.

이렇게 하지 않아요

  • 중요한 주 동작을 아이콘 버튼만으로 두지 않아요.

문구#

  • label은 일어날 일을 적어요("관심 단지에서 빼기").
  • 켜짐·꺼짐에 따라 label도 바꿔요.

플랫폼별 차이#

플랫폼별 차이
플랫폼차이
모바일

PC와 같은 모양이에요. 글자 역할만 폰 크기로 바뀌어요.

PC

마우스가 있는 기기에서만 hover가 켜지고, 키보드 초점 링이 보여요.

Pleos개발 중

차량 앱의 IconAction(공개 저장소)로 따로 구현했어요.

원형 아이콘 버튼 - 누르는 칸 80dp, 아이콘 40dp.

누르는 칸 80dp · 아이콘 40dp