Undo and inline feedback

Prefer undo to confirms, and report status where it happens.

From apple-design, §16 Design foundations.

Delete: confirm vs. undo

Delete three files per side, then get one back.

Confirm every deleteBad

    0 dialogs

    if (confirm()) remove(file)
    Delete, then UndoGood

      remove(file); toast("Undo")

      Validate inline, not on submit

      Type ana@gmial.com and a short password, then submit.

      Errors after submitBad

      onsubmit → errors[]
      Inline, as you typeGood

      • 8 or more characters
      • At least one number

      onblur → check(); oninput → recheck()

      Four kinds of upload feedback

      Add the video twice, then the archive.

      Spinner, then surpriseBad

        No files yet.

        spinner → "Error 507"
        Four kinds, inlineGood
        Storage6.0 of 10 GB

          No files yet.

          status · done · warn · error

          Why it matters, pros and cons

          Why it matters

          Confirms turn into reflex. Feedback next to its cause is read in time to act.

          Pros

          • One step per action, not two.
          • Recovers real slips after the fact.
          • Warnings before a limit, not after.

          Cons

          • Undo needs soft-delete on the backend.
          • Sent email and payments still need a confirm.
          • Toasts expire; keep a second path back.

          Delete file?