Skip to content

Improve the first-run wizard: softer backdrop, dismiss outside, onboarding checklist & motion polish - #2207

Open
karlitschek wants to merge 3 commits into
masterfrom
fix/softer-wizard-backdrop
Open

Improve the first-run wizard: softer backdrop, dismiss outside, onboarding checklist & motion polish#2207
karlitschek wants to merge 3 commits into
masterfrom
fix/softer-wizard-backdrop

Conversation

@karlitschek

@karlitschek karlitschek commented Aug 22, 2026

Copy link
Copy Markdown
Member

A set of UX improvements to the first-run wizard, built up over several iterations.

Softer backdrop

On desktop the wizard uses NcModal's dark backdrop (:dark="!isMobile"), which the current @nextcloud/vue renders as modal-mask--opaque at ~92% black — dimming the whole page quite heavily. Eased to ~75% so the modal still lifts off the page without darkening everything behind it.

Dismiss by clicking outside

The wizard was opened with noClose, which blocks every close path (NcModal's close() returns early when noClose is set). Dropping it and enabling closeOnClickOutside lets the wizard be dismissed by clicking the backdrop — plus the standard close button and Escape. All paths go through the existing close() handler, so dismissing still records "do not show again".

Live onboarding checklist (replaces the static "devices" page)

The device step becomes a personal getting-started checklist:

  • Add a profile picture, set a full name, add an email — these tick off live from the user's real account state, with a progress bar and a friendly greeting.
  • Install the desktop app, get the mobile app, connect calendar & contacts — action steps to finish setup.
  • Platform-aware: the client matching the visitor's device is highlighted and marked "recommended for your device". The mobile row links to both the App Store and Google Play, and all action buttons share a uniform width.
  • Steps the user can't act on (e.g. avatar/name locked by the backend) are hidden.

BeforeTemplateRenderedListener provides the onboarding initial state (display name; whether avatar/name/email are set; whether the user may change avatar/name).

Always show the full wizard

Dropped the returning-user "changelog only" shortcut, so opening About & What's new shows the complete wizard rather than just a couple of pages.

Motion polish

  • Spring-eased page transitions in the slideshow.
  • Staggered reveal of the key-aspects cards, plus hover micro-interactions.
  • An animated appear/disappear for the modal itself: it springs up and sharpens from a soft blur into focus while the backdrop pulls focus; on close it drifts away slowly and smoothly.
  • All motion is disabled under prefers-reduced-motion.

Source only — the compiled assets need a /compile. Verified on a dev instance across all of the above.

@karlitschek
karlitschek force-pushed the fix/softer-wizard-backdrop branch 3 times, most recently from 763379a to 1c9807f Compare August 22, 2026 16:38
NcModal's opaque backdrop (used on desktop via `dark`) is ~92% black, which dims
the whole page quite heavily behind the first-run wizard. Ease it to ~75% so the
modal still lifts off the page without darkening everything behind it.

Targets `.modal-mask--opaque` (the current NcModal class) with `.modal-mask--dark`
kept for older versions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@karlitschek
karlitschek force-pushed the fix/softer-wizard-backdrop branch from 1c9807f to c3132f3 Compare August 22, 2026 16:40
@karlitschek

Copy link
Copy Markdown
Member Author

@jancborchardt

The wizard was opened with `noClose`, which blocks every close path (NcModal's
close() returns early when noClose is set). Drop it and enable
`closeOnClickOutside` so the wizard can be dismissed by clicking the backdrop —
as well as via the standard close button and Escape. All paths route through the
existing close handler, so dismissing still records "do not show again".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@karlitschek karlitschek changed the title fix: soften the first-run wizard backdrop Improve the first-run wizard: softer backdrop + dismiss by clicking outside Aug 22, 2026
Build on the backdrop/close-outside tweaks with a round of UX improvements that
make the first-run wizard more useful and more pleasant to move through.

Live onboarding checklist (replaces the static "devices" page)
- New GetStarted page turns the device step into a personal checklist: add a
  profile picture, set a full name, add an email, install the desktop app, get
  the mobile app, connect calendar & contacts. Profile items tick off live from
  the user's real state, with a progress bar and a friendly greeting.
- The step is platform-aware: the client matching the visitor's device is
  highlighted and marked "recommended for your device"; the mobile row links to
  both the App Store and Google Play, all action buttons a uniform width.
- BeforeTemplateRenderedListener provides the onboarding initial state
  (display name, whether avatar/name/email are set, and whether the user may
  change avatar/name so we can hide steps they can't act on).

Always show the full wizard
- Drop the returning-user "changelog only" shortcut so opening "About & What's
  new" shows the complete wizard, not just a couple of pages.

Motion polish
- Spring-eased page transitions in the slideshow.
- Staggered reveal of the key-aspects cards plus hover micro-interactions.
- An animated appear/disappear for the modal itself: it springs up and sharpens
  from a soft blur into focus while the backdrop pulls focus, then drifts away
  slowly and smoothly. All motion is disabled under prefers-reduced-motion.

Source only; compiled assets need a /compile.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@karlitschek karlitschek changed the title Improve the first-run wizard: softer backdrop + dismiss by clicking outside Improve the first-run wizard: softer backdrop, dismiss outside, onboarding checklist & motion polish Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant