{"slug":"quick-add","meta":{"title":"Quick Add","slug":"quick-add","kind":"pattern","summary":"Create a record from one field, in the place the record belongs, without leaving the screen or opening a form.","problem":"Adding one item costs a full context switch — click New, wait for a page, fill a form, save, come back, find your place. So people batch things up in their head or on paper, and half of them never get entered.","family":["capture"],"data_shape":["collection"],"principles":["friction","minimize-distance","consistency"],"interaction":["editing","direct-manipulation"],"density":"low","complexity":"low","status":"stable","visibility":"public","use_when":["The record can meaningfully exist with one field — usually a name or a title.","People add items while looking at the list they belong to.","Adding happens often, and often several at once."],"avoid_when":["The record needs several fields to be valid or safe.","Creation triggers something external, where a stray Enter would be costly.","Adding is rare and deliberate, where a full form is the appropriate ceremony."],"alternatives":[{"slug":"minimal-form","when":"Two or three fields are genuinely needed, so a small form is honest."},{"slug":"spreadsheet-import","when":"People are adding dozens or hundreds at a time from somewhere else."}],"ask_leo":"Add a quick-add row to this list.\n\n- Put a single input at the point in the list where the new item will appear —\n  the bottom of the list, or the top of the column — not in a separate panel.\n- Enter creates the item and leaves the field focused and empty, ready for the\n  next one. Adding five things in a row must not require re-clicking.\n- Escape leaves the field and clears it without creating anything.\n- Create optimistically: the row appears immediately. If the save fails, mark\n  that row with the error and keep the text.\n- Inherit context from where the person is. An item added inside a group\n  belongs to that group; do not ask again for something the position already\n  says.\n- Offer a way to open the full form for the occasional item that needs more —\n  a small link beside the field, never the default path.\n- Never lose typed text. If someone types and clicks away, keep it as a draft\n  rather than discarding it.\n","related":[{"title":"Minimal Form","url":"/patterns/minimal-form","summary":"The same instinct at form scale — ask for what is needed to exist, and no more."},{"title":"Optimistic Update","url":"/patterns/optimistic-update","summary":"What makes quick add feel instant, and the failure path it owes you."}]},"body":"## Anatomy\n\n```\n  Phase 2 — Framing\n  ┌────────────────────────────────────────┐\n  │ ✓ Stud partitions, level 3             │\n  │ ✓ Fire-rated board to risers           │\n  │ ✓ Door frames                          │\n  │ + Add a task…                    (form)│ ← in place, context inherited\n  └────────────────────────────────────────┘\n      ↑ Enter creates and stays focused\n```\n\nFour rules, and the second is the one that makes it a different pattern from a\nsmall form:\n\n1. **In place.** The field sits where the record will appear, so the position\n   answers questions the form would have asked.\n2. **Enter creates and stays.** The field clears and keeps focus, so five items\n   is five lines of typing.\n3. **Escape cancels cleanly.**\n4. **An escape hatch to the full form**, for the one in twenty that needs more.\n\n## Why it works\n\nIt removes the *context switch*, which is most of the cost of adding something.\nA form is not slow because of typing; it is slow because you leave what you were\ndoing, and then have to get back.\n\nThe staying-focused behaviour is what turns it from a convenience into a\ncapture tool. When adding the second item costs nothing, people enter things as\nthey think of them rather than batching — and things that get batched get\nforgotten.\n\nInheriting context is the quiet part. An item typed into the Framing group is a\nFraming task; nothing has to ask which group, because the person already said it\nby where they typed.\n\n## Getting it wrong\n\n- **A field that loses focus after each add**, which makes the second item as\n  expensive as the first and defeats the pattern.\n- **Discarding typed text on blur.** Someone types half a task, gets\n  interrupted, clicks away, and it is gone.\n- **A quick add that opens a modal.** That is a form with a smaller button.\n- **Silent failure**, where the row appears and then vanishes with no message —\n  see [optimistic update](/patterns/optimistic-update).\n- **No escape hatch**, so the occasional richer item forces a trip elsewhere\n  anyway.\n- **Quick add on something with consequences.** A stray Enter should never send,\n  charge or notify anyone.\n\n## Exemplars\n\n**Linear's issue creation from the board** puts the field in the column, so the\nstatus is set by where you typed and never asked.\n\n**Todoist and Things** built their whole capture model on this: one field, Enter,\nstill focused. The result is that people actually record tasks at the moment\nthey occur rather than later.\n\n**Google Calendar's click-a-slot** is the same idea in two dimensions — the time\nis set by where you clicked, and the only thing left to type is the title.\n\nThe extractable rule: **quick add is a capture tool, not a shortened form.**\nIf adding the second item is not almost free, the pattern has not been built.\n"}