Back to compare picker

Draft state vs Autosave form vs Inline edit vs Complete complex form

Use draft state when an object or content item has a recoverable unpublished version that must be resumed, compared, discarded, or published separately from the active version.

Learn the decision

Match the interaction to the person's task

Use draft state when an object or content item has a recoverable unpublished version that must be resumed, compared, discarded, or published separately from the active version.

Draft state

Use it when: Users need to pause and resume unfinished work across sessions, devices, or routes.

Make this state clear: Published or active state with an available draft.

Observe the result: A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.

Study the full pattern →

Autosave form

Use it when: Users spend meaningful time entering form content or application progress.

Make this state clear: Initial state that explains progress will be saved automatically.

Observe the result: A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable.

Study the full pattern →

Inline edit

Use it when: Users frequently update one visible value or one row property.

Make this state clear: Read state with displayed value and discoverable edit affordance.

Observe the result: A user clicks Edit owner, changes the value, sees Save become enabled, enters an invalid short value, fixes it beside the field, saves, and stays on the same row.

Study the full pattern →

Complete complex form

Use it when: A product configuration has many related fields across named sections.

Make this state clear: Initial draft state with named sections, required-field convention, grouped controls, and save unavailable or clearly pending validation.

Observe the result: A user jumps from Review back to Rules, changes a dependency, and sees Review marked stale until the affected sections pass validation again.

Study the full pattern →

Practice the judgment: Imagine this situation: A draft is labeled Saved, so users assume viewers can see it even though it remains unpublished. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Draft stateAutosave formInline editComplete complex form
UI or UX UI + UX - Unpublished object version lifecycleUI + UX - Background-saving form progressUI + UX - In-place value or row editingUI + UX - Sectioned enterprise configuration form
UI guidance Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions.Render a clear autosave message before users start, then keep a persistent status surface for Pending, Saving, Saved with timestamp, Failed, Retry, and unsafe-to-leave states.Render a read-state value with a visible edit affordance, then replace only that value, cell, or row with the appropriate input and adjacent Save and Cancel controls when edit mode starts.Render one coherent form surface with a clear title, section navigation or section headings, current section state, grouped controls, persistent labels, helper text, required indicators, error summary, field-level errors, review or summary state, and one save contract.
UX guidance Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version.Use autosave when losing progress would hurt and background persistence is safer than making users hunt for a distant Save button.Use inline edit when users need to make frequent, low-impact changes to one visible property while preserving surrounding list, table, or record context.Use a complete complex form when users must edit many related product settings together and need to inspect dependencies across sections before saving.
Good UI A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish.A long application step says the application is saved on every change, shows Saving after an edited title blurs, then shows Draft saved just now with a timestamp.A resource table shows an edit icon beside the owner cell; activating it turns that cell into a text field with Save and Cancel buttons while other cells remain read-only.A policy configuration form has Basics, Rules, Approvals, Notifications, and Review sections; Approvals shows an error because the threshold in Rules requires at least two approvers.
Bad UI A draft label is missing from the editor, so users publish or discard the wrong version.A green Saved toast appears after one field saves, while another changed field is still pending or failed.The edit affordance appears only on pointer hover and is unreachable by keyboard or touch.A long settings page saves invalid combinations because validation checks each field in isolation and ignores dependencies between threshold, approvers, and escalation owner.
Good UX A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable.A user clicks Edit owner, changes the value, sees Save become enabled, enters an invalid short value, fixes it beside the field, saves, and stays on the same row.A user jumps from Review back to Rules, changes a dependency, and sees Review marked stale until the affected sections pass validation again.
Bad UX A user discards a shared draft and unknowingly removes another editor's unpublished changes.A password or permission field autosaves immediately and takes effect before the user reviewed the consequence.A user edits a sorted table cell and the row immediately jumps to a different page before the saved value can be confirmed.A user clicks Save, sees three generic errors somewhere in the page, and must scan many controls to discover which section owns each problem.
Best fit Users need to pause and resume unfinished work across sessions, devices, or routes.Users spend meaningful time entering form content or application progress.Users frequently update one visible value or one row property.A product configuration has many related fields across named sections.
Avoid when The change is a small one-field edit that should be saved or canceled immediately.The form is short enough that a visible manual Save or Submit is clearer.The edit affects multiple dependent fields or needs a review step.The form is a short related set of fields that fits a simple single-page form.
Required state Published or active state with an available draft.Initial state that explains progress will be saved automatically.Read state with displayed value and discoverable edit affordance.Initial draft state with named sections, required-field convention, grouped controls, and save unavailable or clearly pending validation.
Accessibility burden Use headings and status regions so screen reader users know whether they are editing a draft or viewing the active version.Expose autosave status changes in a polite status region so assistive technology users hear Saving, Saved, and Failed states.Give edit, save, cancel, confirm, and dismiss controls accessible names, especially when icons are used.Use semantic headings, fieldsets, legends, and persistent labels so each section and field group has a programmatic name.
Common misuse Using Saved to mean both saved draft and published content.Showing Saved when only an older change was saved.Using inline edit for high-impact changes that need a review or confirmation step.Splitting tightly related settings across pages so dependencies are invisible during editing.

Draft state

UI or UX
UI + UX - Unpublished object version lifecycle
UI guidance
Label the current version explicitly as Draft, Unpublished changes, Published, Active, Locked, or Unavailable, and place that label near the object title, list row, editor header, and publish actions.
UX guidance
Use draft state when users need to pause work on an object, return later, and decide whether to publish, activate, discard, or keep editing an unpublished version.
Good UI
A knowledge article header says Draft saved today, shows the currently published title, and offers Resume draft, Compare with published, Discard draft, and Publish.
Bad UI
A draft label is missing from the editor, so users publish or discard the wrong version.
Good UX
A user opens a published article that has an unpublished version, chooses Resume draft, reviews a change summary, publishes, and sees the page become visible to viewers.
Bad UX
A user discards a shared draft and unknowingly removes another editor's unpublished changes.
Best fit
Users need to pause and resume unfinished work across sessions, devices, or routes.
Avoid when
The change is a small one-field edit that should be saved or canceled immediately.
Required state
Published or active state with an available draft.
Accessibility burden
Use headings and status regions so screen reader users know whether they are editing a draft or viewing the active version.
Common misuse
Using Saved to mean both saved draft and published content.

Autosave form

UI or UX
UI + UX - Background-saving form progress
UI guidance
Render a clear autosave message before users start, then keep a persistent status surface for Pending, Saving, Saved with timestamp, Failed, Retry, and unsafe-to-leave states.
UX guidance
Use autosave when losing progress would hurt and background persistence is safer than making users hunt for a distant Save button.
Good UI
A long application step says the application is saved on every change, shows Saving after an edited title blurs, then shows Draft saved just now with a timestamp.
Bad UI
A green Saved toast appears after one field saves, while another changed field is still pending or failed.
Good UX
A user writes a long answer, pauses, sees Saving, then sees Draft saved just now and can leave knowing the draft is recoverable.
Bad UX
A password or permission field autosaves immediately and takes effect before the user reviewed the consequence.
Best fit
Users spend meaningful time entering form content or application progress.
Avoid when
The form is short enough that a visible manual Save or Submit is clearer.
Required state
Initial state that explains progress will be saved automatically.
Accessibility burden
Expose autosave status changes in a polite status region so assistive technology users hear Saving, Saved, and Failed states.
Common misuse
Showing Saved when only an older change was saved.

Inline edit

UI or UX
UI + UX - In-place value or row editing
UI guidance
Render a read-state value with a visible edit affordance, then replace only that value, cell, or row with the appropriate input and adjacent Save and Cancel controls when edit mode starts.
UX guidance
Use inline edit when users need to make frequent, low-impact changes to one visible property while preserving surrounding list, table, or record context.
Good UI
A resource table shows an edit icon beside the owner cell; activating it turns that cell into a text field with Save and Cancel buttons while other cells remain read-only.
Bad UI
The edit affordance appears only on pointer hover and is unreachable by keyboard or touch.
Good UX
A user clicks Edit owner, changes the value, sees Save become enabled, enters an invalid short value, fixes it beside the field, saves, and stays on the same row.
Bad UX
A user edits a sorted table cell and the row immediately jumps to a different page before the saved value can be confirmed.
Best fit
Users frequently update one visible value or one row property.
Avoid when
The edit affects multiple dependent fields or needs a review step.
Required state
Read state with displayed value and discoverable edit affordance.
Accessibility burden
Give edit, save, cancel, confirm, and dismiss controls accessible names, especially when icons are used.
Common misuse
Using inline edit for high-impact changes that need a review or confirmation step.

Complete complex form

UI or UX
UI + UX - Sectioned enterprise configuration form
UI guidance
Render one coherent form surface with a clear title, section navigation or section headings, current section state, grouped controls, persistent labels, helper text, required indicators, error summary, field-level errors, review or summary state, and one save contract.
UX guidance
Use a complete complex form when users must edit many related product settings together and need to inspect dependencies across sections before saving.
Good UI
A policy configuration form has Basics, Rules, Approvals, Notifications, and Review sections; Approvals shows an error because the threshold in Rules requires at least two approvers.
Bad UI
A long settings page saves invalid combinations because validation checks each field in isolation and ignores dependencies between threshold, approvers, and escalation owner.
Good UX
A user jumps from Review back to Rules, changes a dependency, and sees Review marked stale until the affected sections pass validation again.
Bad UX
A user clicks Save, sees three generic errors somewhere in the page, and must scan many controls to discover which section owns each problem.
Best fit
A product configuration has many related fields across named sections.
Avoid when
The form is a short related set of fields that fits a simple single-page form.
Required state
Initial draft state with named sections, required-field convention, grouped controls, and save unavailable or clearly pending validation.
Accessibility burden
Use semantic headings, fieldsets, legends, and persistent labels so each section and field group has a programmatic name.
Common misuse
Splitting tightly related settings across pages so dependencies are invisible during editing.
Decision rules
  • Prefer draft state when the main UX problem is lifecycle visibility: an unpublished or inactive version exists alongside a published, active, or previously saved version.
  • Prefer autosave form when the main UX problem is background persistence while users fill fields, with pending, saving, saved, failed, retry, and leave-warning states.
  • Prefer inline edit when one displayed value enters a local edit mode with explicit Save and Cancel, and no separate object-level draft needs to persist across sessions.
  • Prefer complete complex form when many related settings need section status, cross-section validation, and review before one save, even if the form also preserves a temporary draft.
  • A draft-state UI must label whether users are viewing published content, their own draft, shared unpublished changes, another user's draft, or a locked active record.
  • When a user opens an active item that has a draft, offer Resume and Discard only after stating when the draft was saved and which object it belongs to.
  • Keep Publish, Activate, Submit, or Send separate from Save draft; draft persistence must not imply public visibility, external effect, or final submission.
  • Discarding a draft must explain the scope of loss, especially when unpublished changes are shared or include edits by other collaborators.
  • Draft lists and filters should distinguish own draft, shared unpublished changes, locked by another user, unchanged active item, and missing/deleted draft states when those states exist.
  • Use a comparison or change summary before publishing if users may not remember how the draft differs from the active version.
  • Do not reuse a generic dirty-state prompt for draft state when the draft survives navigation, appears in lists, or can be resumed later.
  • If a deep link or bookmark points to a draft that no longer exists, show a recoverable unavailable-draft state rather than a blank editor.
Inspect live examples
Failure modes
  • A draft is labeled Saved, so users assume viewers can see it even though it remains unpublished.
  • Opening a published item silently loads an old draft and hides the active version.
  • Discard deletes shared unpublished changes without warning that other contributors' edits are included.
  • Publish and Save draft are visually identical, so users accidentally expose unfinished content.
  • A draft remains in a list after it was published or deleted, leading to a dead editor link.
  • A conflict or lock from another user's draft is hidden until the user has already overwritten work.

Saved items