파괴적 행동 문구

Destructive Action Copy

삭제·해지·탈퇴처럼 되돌릴 수 없는 행동은 "정말요?" 대신 무엇을 잃는지 구체적으로 경고해야 합니다.

다른 이름: Danger action copy
···
html
<div class="stage">
  <div class="pane bad"><span class="mark">✕</span><span class="label">Before</span>
    <div class="dlg"><p class="dtitle" id="bt"></p><div class="drow"><button class="btn ghost">-</button><button class="btn danger">-</button></div></div>
    <p class="why" id="bw"></p></div>
  <div class="pane good"><span class="mark">✓</span><span class="label">After</span>
    <div class="dlg"><p class="dtitle" id="gt"></p><p class="dloss" id="gl"></p><div class="drow"><button class="btn ghost">-</button><button class="btn danger" id="gb"></button></div></div>
    <p class="why" id="gw"></p></div>
</div>
css
.stage{width:94%;height:88%;display:flex;gap:4%}
.pane{position:relative;flex:1;border-radius:14px;border:1px solid var(--line);background:var(--surface);padding:26px 12px 10px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:7px;overflow:hidden}
.mark{position:absolute;top:10px;right:12px;font:800 16px/1 system-ui;color:var(--accent-2)}
.good .mark{color:var(--accent-3)}
.label{position:absolute;top:10px;left:12px;font:700 10px/1 monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.dlg{width:96%;border-radius:11px;border:1px solid var(--line);background:var(--bg);padding:9px;display:flex;flex-direction:column;gap:5px}
.dtitle{margin:0;font:700 clamp(9px,2.4vmin,11.5px)/1.3 -apple-system,sans-serif;color:var(--fg)}
.dloss{margin:0;font:500 clamp(8px,2.1vmin,10px)/1.3 -apple-system,sans-serif;color:var(--accent-2)}
.drow{display:flex;gap:5px;justify-content:flex-end;margin-top:1px}
.btn{padding:4px 9px;border-radius:6px;font:700 9px/1 -apple-system,sans-serif;border:0}
.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
.danger{background:var(--accent-2);color:#fff}
.why{margin:0;font:500 10px/1.25 -apple-system,sans-serif;color:var(--muted);text-align:center}
js
const bt = document.getElementById('bt'), bw = document.getElementById('bw');
const gt = document.getElementById('gt'), gl = document.getElementById('gl'), gb = document.getElementById('gb'), gw = document.getElementById('gw');
const L = {
  ko: { bt: '정말 삭제하시겠습니까?', bw: '매번 같은 문구, 위험도가 안 느껴짐', gt: '계정을 삭제할까요?', gl: '사진 128장과 결제 내역이 모두 사라져요', gb: '계정 삭제하기', gw: '이번엔 무엇이 사라지는지 명시' },
  en: { bt: 'Are you sure?', bw: 'same generic line every time', gt: 'Delete your account?', gl: '128 photos and your billing history will be gone', gb: 'Delete account', gw: 'states exactly what is lost this time' },
};
let lang = 'ko';
function paint() {
  const t = L[lang];
  bt.textContent = t.bt; bw.textContent = t.bw;
  gt.textContent = t.gt; gl.textContent = t.gl; gb.textContent = t.gb; gw.textContent = t.gw;
}
paint();
setInterval(() => { lang = lang === 'ko' ? 'en' : 'ko'; paint(); }, 2800);

삭제 버튼 문구는 "확인 다이얼로그 문구"보다 한 단계 더 신중해야 합니다 — 여기선 실수가 되돌릴 수 없기 때문입니다. "정말 삭제하시겠습니까?"를 습관적으로 너무 많이 쓰면, 정작 진짜 위험한 순간에도 사용자가 무시하고 누르게 됩니다.

효과적인 패턴은 버튼 라벨에 대상을 명시하고("계정 삭제하기"), 본문에 정확한 손실을 나열하며("사진 128장, 결제 내역이 모두 사라져요"), 위험도가 아주 높으면 이름을 직접 입력해야 눌리는 버튼까지 씁니다. 색상도 빨강 계열로 시각적 신호를 함께 줍니다.

데모의 ✕는 매번 같은 "정말요?"만 반복하지만, ✓는 이번엔 무엇이 사라지는지 정확히 말합니다.

언제 쓰나

계정 탈퇴, 결제 수단 삭제, 영구 삭제처럼 되돌릴 수 없는 동작에만 이 수준의 경고를 쓰세요. 남용하면 경고 피로만 남습니다.