# HoldToConfirm

> Irreversible actions, with accessible fallbacks.

Source: https://lopifi.com/components/hold-to-confirm
Part of: Lopifi — US GAAP books on autopilot, reviewed by a CPA (https://lopifi.com)

---

- **Family:** System & states — ---
- **Status:** Implemented
- **Spec:** https://lopifi.com/docs/catalog/08-system-states

## Install

```bash
npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/hold-to-confirm
```

## Specification

`clip-path: inset()` fill, 1500ms `linear` press, 200ms `--ease-out` release, `scale(0.97)` on the button. Slow where the user is deciding, fast where the system is responding.

**Accessible alternatives are mandatory**: `Space` to hold with `aria-live` progress at 0/50/100%, `Escape` to abort, and a typed-confirmation fallback. Gating a financial action behind a motor-skill requirement is an accessibility failure, so hold-to-confirm is never the only path.

## Rules this component obeys

Money is minor units, never floats. `null` is not `0` and neither is redacted. Negatives render in accounting parentheses with the parenthesis column reserved on both sides. Debit and credit are two columns. Per-currency decimal places. Polarity is explicit — up is not always good. Every figure states its period, entity, currency, basis and as-of.
