UI + UX Personalization And Preference established

Recently used

Provide a bounded, personal recently used list that records meaningful use events, orders targets by most recent use, identifies each target clearly, separates use history from views, favorites, pins, recommendations, and searches, and supports removal, clearing, privacy, sync, and stale-target recovery.

Decision first

Choose this pattern when the problem matches

Use when

  • Users repeatedly operate a broad set of tools, files, commands, apps, workspaces, or tasks.
  • The product can identify a meaningful use event and store a stable target reference.
  • Recent-use shortcuts reduce navigation or browsing effort without needing durable saved preference.
  • The surface can explain scope, privacy, removal, and stale-target behavior.

Avoid when

  • The product only knows what users viewed or searched, not what they actually used.
  • The target list is small enough that recent-use history adds noise.
  • Users need durable favorites, stable pins, named collections, saved views, or subscriptions instead of temporary history.
  • The surface is shared, public, signed out, or privacy-sensitive and cannot offer clear controls.
  • The team wants to promote recommended actions or popular tools rather than return the user's own recent use.

Problem it prevents

Users repeatedly return to tools, files, commands, apps, workspaces, or tasks they actually operated, but broad navigation, search, and favorites can force them to reconstruct recent working context from memory.

Pattern anatomy

What a strong implementation has to make clear

User need

The product has many tools, files, commands, apps, workspaces, forms, starter flows, reports, or task surfaces users may operate repeatedly.

Pattern promise

Provide a bounded, personal recently used list that records meaningful use events, orders targets by most recent use, identifies each target clearly, separates use history from views, favorites, pins, recommendations, and searches, and supports removal, clearing, privacy, sync, and stale-target recovery.

Required state

Empty or hidden state before any qualifying use event exists.

Recovery path

Recently used becomes a recommendation rail filled with targets the user never operated.

Access contract

Use a heading or labelled region that names the scope and target type, such as Recently used tools or Recently used files.

Quality bar

The difference between expert and weak execution

Strong implementation

Specific, visible, recoverable

  • A document editor Insert link flow shows Recently used cloud files with file type, folder, last-used time, and a Browse all files option.
  • A workspace launcher shows recently used tools with app name, workspace, last-used time, and a remove-from-recent-use action that leaves the tool installed.
  • A user reopens the Export invoices tool from Recently used after running it yesterday, sees it belongs to Finance, and removes an obsolete workspace shortcut without deleting anything.
  • A user on a managed shared laptop clears recently used files before handing off the device and sees that Favorites and pinned files remain unchanged.
Weak implementation

Vague, hidden, hard to recover from

  • A Recent list contains tools the user hovered over, suggested starters, favorite files, and pinned dashboards with no reason or ordering rule.
  • The product labels a list Recently used but fills it with promoted actions the user has never run.
  • A reporting app treats viewing a dashboard as using it, so the recently used tools list fills with dashboards the user only inspected.
  • An AI assistant auto-adds recommended actions to Recently used before the user runs them, making the history look like a recommendation rail.
UI guidance
  • Render a labelled Recently used area with target name, type, location or workspace, last-used time, use scope, availability, and a remove-from-recent-use control near each entry.
  • Make the qualifying use event clear through context and labels: recently used tools, commands, files, apps, workspaces, or tasks should not be visually mixed with items merely viewed, favorited, pinned, recommended, or searched.
UX guidance
  • Use recently used when users benefit from returning to the tools, files, commands, apps, workspaces, or tasks they actually operated, especially in products with many possible work surfaces.
  • Treat recent-use history as personal behavior data: cap it, expire it, let users remove or clear entries, expose device/account/workspace sync, and never turn it into a saved preference without deliberate user action.
Implementation contract

What the implementation must handle

States

  • Empty or hidden state before any qualifying use event exists.
  • Populated state with most-recent-first ordering and recognizable target identity.
  • Just-used state that moves the reused target to the top instead of duplicating it.
  • Remove-one and clear-all states that affect only recent-use history.

Interaction

  • A qualifying use event writes or updates a recent-use entry for the current user and declared scope.
  • Using the same target again updates recency and moves it to the top instead of creating duplicates.
  • Opening a recently used entry resumes or launches that exact target, command, app, file, workspace, or task if still available.
  • Removing an entry removes only the recent-use reference and leaves the target, favorite state, pin state, subscription state, and search history intact.

Accessibility

  • Use a heading or labelled region that names the scope and target type, such as Recently used tools or Recently used files.
  • Expose target name, type, location, status, and last-used time as text, not only icons or thumbnails.
  • Ensure remove and clear controls have names that mention recent-use history, such as Remove from recently used.
  • Announce use, remove, clear, stale-target, and unavailable-target changes through a stable status region.

Review

  • What exact action proves the user used this target instead of merely seeing or viewing it?
  • Can users tell whether the entry is a file, command, app, workspace, task, or tool before reopening it?
  • What scope controls where this recent-use history appears: device, account, workspace, browser, or managed profile?
  • Can users remove or clear the shortcut without deleting the target or changing pins and favorites?
Interactive lab

Inspect the states before you copy the pattern

Resume recently used tools and targets

Run tools, move reused targets to the top, remove and clear recent-use shortcuts, switch account/device scope, repair stale targets, and compare counted-views, mixed-saved, delete-confusion, no-scope, unlimited-history, recommendation-pollution, and dead-shortcut failures.

Recently used
Interactive demo is ready

Launch the live UI/UX lab when you want to inspect states, keyboard behavior, and common failure modes.

State To Inspect

Empty or hidden state before any qualifying use event exists.

Keyboard / Access

Tab reaches each recently used entry, primary launch action, remove control, scope controls, and clear-all action in a predictable order.

Avoid Generating

Counting views, hovers, previews, suggestions, ads, or recommendations as use.

Evidence trail

Source-backed claims behind this guidance

Android Developers Recents Screen

Google Android Developers - checked

Android documents recent accessed tasks users can resume or remove, with least-recently-used limits.

Full agent/debug reference

Problem Context

  • The product has many tools, files, commands, apps, workspaces, forms, starter flows, reports, or task surfaces users may operate repeatedly.
  • Use events are stronger than impressions or views because they indicate the user actually ran, selected, edited, inserted, launched, resumed, or completed work with the target.
  • Recent-use history can reveal sensitive work, internal projects, customer records, financial files, health contexts, or shared-device behavior.
  • Recently used targets can be renamed, moved, removed, restricted, archived, duplicated, superseded, synced across devices, or confused with favorites, pins, recommendations, and search history.

Selection Rules

  • Choose recently used when a meaningful use event should create a temporary return shortcut for the current user.
  • Use recently viewed when the list should record opened or inspected content, even if the user did not operate a tool or complete work with it.
  • Use favorites when users deliberately mark a preferred item for durable saved access.
  • Use pinned items when the item should remain in a stable prominent position or user-controlled order.
  • Use recommendations when the system proposes next actions based on model, rule, popularity, or context rather than the user's own last use events.
  • Use search history when the remembered object is a submitted query, not the target that was used after the query.
  • Record only meaningful use events such as launch, insert, run, edit, export, submit, resume, or select; avoid counting hover, preview, impression, suggestion display, or accidental focus.
  • Deduplicate by stable target ID, move reused targets to the top, cap visible count, and expire entries according to the task's memory window.
  • Expose account, device, workspace, and shared-device scope when recently used entries sync or could appear outside the immediate session.
  • Keep remove and clear actions explicitly scoped to recent-use history so users do not fear deleting the target or changing favorites, pins, or subscriptions.

Required States

  • Empty or hidden state before any qualifying use event exists.
  • Populated state with most-recent-first ordering and recognizable target identity.
  • Just-used state that moves the reused target to the top instead of duplicating it.
  • Remove-one and clear-all states that affect only recent-use history.
  • Device-scoped, account-synced, workspace-scoped, private-mode, and managed-device states when those scopes exist.
  • Unavailable, moved, renamed, archived, permission-lost, stale, and duplicate-name target states.
  • Mobile or narrow-screen state where target identity, scope, and remove controls remain reachable.

Interaction Contract

  • A qualifying use event writes or updates a recent-use entry for the current user and declared scope.
  • Using the same target again updates recency and moves it to the top instead of creating duplicates.
  • Opening a recently used entry resumes or launches that exact target, command, app, file, workspace, or task if still available.
  • Removing an entry removes only the recent-use reference and leaves the target, favorite state, pin state, subscription state, and search history intact.
  • Clearing recently used entries empties the visible recent-use history for the declared scope and does not clear recently viewed, favorites, pinned items, saved views, or saved searches.
  • Unavailable or permission-lost entries remain explainable with remove, request-access, browse-again, or replace paths.
  • The component is omitted or privacy-protected when recent-use history is disabled, private, signed out, or unsafe to show on shared screens.

Implementation Checklist

  • Define the exact use events that write history for each target type, such as launched tool, inserted file, submitted command, opened app task, edited document, or selected workspace.
  • Store stable target ID, target type, display name, location, scope, last-used time, use source, availability, and permissions rather than copied labels alone.
  • Deduplicate entries by target ID, update the last-used timestamp, enforce visible count and lifetime limits, and handle least-recently-used removal when limits are reached.
  • Label the list by scope, such as Recently used in this workspace, Recently used on this device, or Recently used in your account.
  • Provide remove-one, clear-all, pause or disable history, and browse-all alternatives when the list is empty, stale, or privacy-sensitive.
  • Refresh target metadata before rendering or navigating and mark moved, deleted, archived, renamed, or restricted targets clearly.
  • Test keyboard operation, mobile wrapping, long names, duplicate names, clear scope, sync across devices, shared-device exposure, failed recency writes, and stale-target repair.

Common Generated-UI Mistakes

  • Counting views, hovers, previews, suggestions, ads, or recommendations as use.
  • Mixing recently used with recently viewed, favorites, pinned items, search history, saved views, subscriptions, or recommendations in one ambiguous list.
  • Letting remove or clear delete the underlying file, app, command, workspace, or task.
  • Showing sensitive recent-use history on shared, public, signed-out, or screen-shared surfaces without controls.
  • Keeping an unlimited history until the list becomes an activity log rather than a return shortcut.
  • Leaving stale recently used entries as dead links.

Critique Questions

  • What exact action proves the user used this target instead of merely seeing or viewing it?
  • Can users tell whether the entry is a file, command, app, workspace, task, or tool before reopening it?
  • What scope controls where this recent-use history appears: device, account, workspace, browser, or managed profile?
  • Can users remove or clear the shortcut without deleting the target or changing pins and favorites?
  • How long should a recent-use shortcut remain useful before it expires?
  • What recovery appears when the recently used target has moved, changed permission, or become unavailable?
Accessibility
  • Use a heading or labelled region that names the scope and target type, such as Recently used tools or Recently used files.
  • Expose target name, type, location, status, and last-used time as text, not only icons or thumbnails.
  • Ensure remove and clear controls have names that mention recent-use history, such as Remove from recently used.
  • Announce use, remove, clear, stale-target, and unavailable-target changes through a stable status region.
  • Keep visual order, DOM order, and screen-reader order aligned after a reused item moves to the top.
  • Do not rely on color alone to distinguish unavailable, synced, private, or managed recent-use entries.
Keyboard Behavior
  • Tab reaches each recently used entry, primary launch action, remove control, scope controls, and clear-all action in a predictable order.
  • Enter or Space launches a focused entry when it is implemented as a button; links keep normal Enter behavior.
  • Remove-one keeps focus on the next entry or the empty-state message and announces that only history was removed.
  • Clear-all asks for confirmation when the scope is broad or synced, then returns focus to the empty state.
  • If a used entry moves to the top after activation, focus follows the resumed target or returns to the updated entry when navigation is not performed.
  • Horizontal rails provide keyboard-operable scroll controls and do not trap focus.
Variants
  • Recently used files
  • Recently used tools
  • Recently used commands
  • Recently used apps
  • Recently used workspaces
  • Recent tasks
  • Recent starters
  • Recent exports
  • Account-synced recent use
  • Device-local recent use

Verification

Last verified: