본문 바로가기
명함 만들기 캐릭터 모음 16가지 디자인 · PNG / SVG / PDF

버튼

누르면 무슨 일이 일어나는지 글자만 보고 알 수 있어야 하는 조각.

버튼 · 액션

실제 미리보기

출처

<button type="button" class="dc-btn">주문하기</button>
.dc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--dc-2);
  min-height: 44px; padding: 0 var(--dc-5);
  border: 1px solid transparent; border-radius: var(--dc-r-sm);
  background: var(--dc-brand); color: var(--dc-text-on);
  font-family: var(--dc-font); font-size: 15px; font-weight: 600; line-height: 1;
  white-space: nowrap;
  transition: background var(--dc-fast), transform var(--dc-fast);
}
.dc-btn:hover,
.dc-btn.is-hover { background: var(--dc-brand-hi); }
.dc-btn:active,
.dc-btn.is-active { background: var(--dc-brand-hi); transform: translateY(1px); }
.dc-btn[disabled] {
  background: var(--dc-sunken); color: var(--dc-text-mute);
  border-color: var(--dc-line); cursor: not-allowed;
}
.dc-btn[aria-busy="true"] { cursor: progress; }
/* 처리 중에는 눌린 듯 반응하지 않는다 — 한 번 더 눌러도 되는 것처럼 보인다 */
.dc-btn[aria-disabled="true"]:hover,
.dc-btn[aria-disabled="true"]:active { background: var(--dc-brand); transform: none; }
.dc-btn--sm { min-height: 36px; padding: 0 var(--dc-4); font-size: 14px; }
.dc-btn--lg { min-height: 52px; padding: 0 var(--dc-6); font-size: 17px; border-radius: var(--dc-r-md); }
.dc-btn__spinner {
  width: 16px; height: 16px; flex: none; border-radius: var(--dc-r-full);
  border: 2px solid color-mix(in srgb, var(--dc-text-on) 30%, transparent);
  border-top-color: var(--dc-text-on);
  animation: dc-btn-spin .7s linear infinite;
}
@keyframes dc-btn-spin { to { transform: rotate(360deg); } }

이렇게 씁니다

  • 한 화면의 주 버튼은 하나만 둔다 — 둘이면 무엇을 눌러야 할지 고민이 생긴다
  • 글자는 '확인'이 아니라 '주문하기'처럼 무엇이 일어나는지로 쓴다
  • 시간이 걸리는 일은 처리 중 상태로 바꿔 두 번 눌리는 것을 막는다

주의할 점

  • 손으로 누르는 화면에서는 44px 아래로 내리지 않는다 — 작게 변형은 마우스를 쓰는 밀집 도구줄에만 쓴다
  • 비활성으로 막아 두고 이유를 적지 않으면 사용자는 갇힌 채로 남는다

다음에 볼 것