Skip to content

Danger button

Reach for it only when the action cannot be undone.

Actions

Live preview

Source

<button type="button" class="dc-dbtn">계정 삭제</button>
.dc-dbtn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--dc-2);
  min-height: 44px; padding: 0 var(--dc-5);
  border: 1px solid var(--dc-danger); border-radius: var(--dc-r-sm);
  background: var(--dc-danger); 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), color var(--dc-fast);
}
.dc-dbtn:hover {
  background: color-mix(in srgb, var(--dc-danger) 86%, var(--dc-text));
  border-color: color-mix(in srgb, var(--dc-danger) 86%, var(--dc-text));
}
.dc-dbtn[disabled] {
  background: var(--dc-sunken); color: var(--dc-text-mute);
  border-color: var(--dc-line); cursor: not-allowed;
}
.dc-dbtn--outline { background: transparent; color: var(--dc-danger); }
.dc-dbtn--outline:hover { background: var(--dc-danger-soft); color: var(--dc-danger); border-color: var(--dc-danger); }
.dc-dbtn__icon { width: 18px; height: 18px; flex: none; }

How to use it

  • Only for what cannot be recovered: delete, cancel a plan, wipe
  • Name what disappears: 'Delete account', not just 'Delete'
  • Give it primary weight inside a confirm dialog; in lists, drop to the outline variant

Watch out for

  • Colour alone does not warn — to someone who cannot see red it is just a button
  • A red button on every row makes danger ordinary and nobody stops

Next