docs/design/kanban-dialogs/index.html
Click a trigger to preview.
Trade-off: Safest to ship — zero new components, zero new patterns. Fails the GPT-OSS review on three points: no multi-line summary, validation triggers a SECOND dialog instead of inline, no bulk affordance.
Click a trigger to preview.
Trade-off: Best baseline, but Pro suggested either a disabled-button or an inline error — GPT-OSS caught that both are needed (button disabled AND error visible) for screen-reader users. Bottom-sheet on mobile is the right move but still has keyboard edge cases.
Click a trigger to preview.
Why this is the recommendation: Single contextual icon (not four) keeps the title readable. Confirm button stays enabled until textarea has content; the inline error appears on submit-attempted-empty AND on blur if still empty. Cancel button stays clickable during the PATCH (only the confirm shows the spinner) so users can abort slow networks. Bulk-many shows an expandable list with per-task summary fields.
Click a trigger to preview.
Trade-off: Radical speedup for routine moves, but breaks the required-summary flow (you can't optimistically "complete" a task that's missing required schema data). Best used as a complement to B-refined — undo toast for the safe moves, modal for done/blocked/archive.
| Capability | A | B | B-refined | C |
|---|---|---|---|---|
| Centered modal (Radix) | ✓ | ✓ | ✓ | ✗ |
| Multi-line summary | ✗ | ✓ | ✓ | ✗ |
| Single contextual icon | ✗ | 4 | ✓ | ✗ |
| Inline validation (no second dialog) | ✗ | ~ | ✓ | ✗ |
| Disabled button + persistent error | ✗ | ~ | ✓ | ✗ |
| Cancellable spinner during PATCH | ✗ | ✗ | ✓ | ✓ |
| Bulk-many expandable list | ✗ | ✗ | ✓ | ✗ |
| Auto-focus textarea + mobile scroll | ✗ | ~ | ✓ | ✗ |
| Toast on success | ✗ | ✗ | ✗ | ✓ |
| Toast on error | ✗ | ✗ | opt. | ✓ |
| Survives the required-summary flow | ✗ | ✓ | ✓ | ✗ |