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
Comment thread src/views/App.vue
Comment on lines +89 to +102
/**
* Soften the backdrop. NcModal's opaque/dark backdrop is ~92% black, which dims
* the whole page quite heavily behind the wizard; ease it to a gentler tint that
* still lifts the modal off the page. (`--opaque` is the current class; `--dark`
* is kept for older NcModal versions.)
*/
.first-run-wizard.modal-mask--opaque,
.first-run-wizard.modal-mask--dark {
background-color: rgba(0, 0, 0, 0.75) !important;
// Frosted backdrop. The blur radius itself is animated on enter/leave (below)
// for a "focus pull" — the page behind gradually softens as the wizard arrives.
backdrop-filter: blur(5px) saturate(1.08);
-webkit-backdrop-filter: blur(5px) saturate(1.08);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this belongs to nextcloud-vue and should not be adjusted in apps.
If there is a need for a soft variant (only possible if modal has neither actions nor a title) then this should be a prop of NcModal in nextcloud-vue.

@susnux

susnux commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

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.

This was explicitly changed because we got many complains about useless slides for every major update by community and design agreed.
It makes no sense to everytime show the "welcome new user to Nextcloud" but instead just show the "whats new since the last version"

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.

2 participants