Skip to content

Agentic UI: Site-creation onboarding redesign — umbrella (do not merge)#3797

Draft
shaunandrews wants to merge 24 commits into
trunkfrom
workbench/site-creation
Draft

Agentic UI: Site-creation onboarding redesign — umbrella (do not merge)#3797
shaunandrews wants to merge 24 commits into
trunkfrom
workbench/site-creation

Conversation

@shaunandrews

@shaunandrews shaunandrews commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Important

Do not merge. Do not review code here. This PR exists so the complete experience can be checked out and tested from a single branch. All review and merging happens on the split PRs below — fixes land there, never here.

The plan

This redesign ships as ten small PRs in three waves. Each wave is based on trunk once the wave before it has merged; until then, later waves are drafts based on an integration branch so their diffs stay focused.

Wave 1 — independent, ready for review now

PR What it does
#3787 Move sync environment and mshots helpers to tools/common
#3788 Fetch every page of syncable sites and mark already-connected ones
#3789 Share the curated blueprint list via tools/common
#3790 Onboarding UI primitives: dot grid, illustrations, footer, busy overlay
#3791 Site-creation plumbing: name collision lookup, version data, deeplink handoffs

Wave 2 — the flows (drafts on site-creation-foundation until wave 1 merges)

PR What it does
#3792 Redesign the onboarding shell and create-site form
#3793 Redesign the blueprint gallery and seed site names from blueprints
#3794 Rework import onboarding into a configure-only step
#3795 Add the Connect a site onboarding flow

Wave 3 — the capstone (draft on site-creation-flows until wave 2 merges)

PR What it does
#3796 Redesign onboarding home and reuse the classic onboarding pages in desks

Lifecycle

  1. Wave 1 merges → wave-2 drafts are retargeted to trunk, rebased, and marked ready.
  2. Wave 2 merges → same for Redesign onboarding home and reuse the classic onboarding pages in desks #3796.
  3. Redesign onboarding home and reuse the classic onboarding pages in desks #3796 merges → this PR is closed and the branch deleted.

How AI was used in this PR

The feature was designed and built by Shaun on this exploration branch with Claude Code assistance; the split into the PRs above was prepared with Claude Code. Each split branch was typechecked independently.

Testing the whole experience

  • Check out workbench/site-creation and run npm start.
  • Make sure your using the Agentic UI (enabled via a feature flag)
  • Add a new site: exercise all three cards — create (plain and from a blueprint), connect a WordPress.com/Pressable site, and import from a backup dropped on the home card.
  • Verify both light and dark mode.

Screenshots

image image image image image

shaunandrews and others added 24 commits June 10, 2026 12:35
The File > Add Site menu item (Cmd+N) and wp-studio://add-site blueprint
deeplinks fired IPC events that only the legacy renderer listened for,
so both were dead in the new UI. Subscribe to them through the connector
and route into the onboarding flow, handing deep-linked blueprints to
the configure step via a pending-blueprint slot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Brings the redesigned Add Site look to the ui-classic onboarding flow:
animated illustrations on the flow-picker cards, the interactive dot-grid
backdrop, frosted-glass card treatment with brand hover states, and
centered heading copy matching the desktop renderer. The import card is
now a live drop target that jumps straight to the configure step, and the
backup filename helpers are shared instead of duplicated per UI.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ector

The create-site form accepted any string as a WordPress version. Fetch
installable versions from the wordpress.org version-check API (same shared
helper the desktop renderer uses) and render a select ordered latest >
nightly/beta > stable. Falls back to the free-text input when the fetch
fails so site creation never blocks offline, and drops blueprint-seeded
versions that aren't installable, matching the desktop renderer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…flow

The gallery now matches the redesigned desktop experience: an Empty Site
card with a Playground live preview, the curated featured trio with
display names and pinned ordering, an Explore section with search across
titles, excerpts, and categories, and Live Preview pills overlaid on card
images. The curation rules (featured slugs, renames, excerpt overrides,
order) move into @studio/common so the two UIs share one source of truth.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ports the desktop renderer's pull-remote creation path: a fourth flow-
picker card (disabled offline) leads to a new /onboarding/connect route
with a WordPress.com sign-in view and a picker over syncable sites. On
connect, Studio creates the local site without starting its server,
persists the connection, kicks off a pull, and lands on the site view
where the existing sync-activity indicator shows progress. The connector
gains a skipStart create option (mapping to the main process' noStart)
and a signup variant of authenticate.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All four creation flows now announce '<name> site added.' to screen
readers on success, matching the desktop renderer. Site names seeded from
blueprints and backup filenames run through the shared find-available-name
helper so a colliding name gets an incremented suffix instead of a path
error the user has to resolve by hand.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ual review

The classic UI's compact-density rule squashes every SVG to 16px icon
size, collapsing the onboarding illustrations and the Empty Site glyph;
add a data-keep-size escape hatch that defers back to the SVG's own
width/height attributes. The onboarding layout also clipped the top of
content taller than the viewport (the full blueprint gallery) because it
centered with flex justify; switch to auto block margins inside a
scrollable container so short pages stay centered and tall ones scroll.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ions, connect grid

Four fixes from design review of the onboarding flow:

- Actions now dock in a fixed bottom bar with a progressive-blur scrim
  (the desktop renderer's stepper treatment) instead of sitting inline in
  each form; sub-screens get a consistent Back button there too.
- Content is properly centered in the viewport on every screen — a
  regression from the earlier overflow fix, which had moved centering to
  the wrong flex axis. Form pages now render as a centered narrow column
  with centered headings.
- Route and step changes animate via the View Transitions API (fade and
  rise), restoring the stepped feel of the desktop renderer's Navigator.
- Connect a site is a responsive grid of cards with live screenshot
  thumbnails, WP.com/Pressable and Staging badges, and search — matching
  the desktop site picker — instead of a plain text list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rm fixes, full connect list

- The flow picker is back to three options: Build a new site now leads to
  the gallery (retitled 'Build a new site'), where Empty site hands off to
  the create form — blueprints are a choice within building, not a
  top-level path. The standalone blueprint card and its illustration are
  gone, and the create form backs into the gallery.
- The create form's local-path field and inline errors used hardcoded
  light colors; they now follow the themed --wp-components vars like their
  sibling inputs. Input prefix icons (the email envelope) inherit the
  foreground instead of defaulting to black, and unchecked checkboxes use
  the themed input background instead of glowing white in dark mode.
- Connect a site lists every site on the account — non-syncable ones stay
  visible but disabled with a status label (Needs upgrade, Already
  connected, Unsupported...) instead of being silently filtered out, which
  made the list look mysteriously short.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The connect screen now matches the desktop renderer's picker: syncable
sites lead, followed by explained groups — Already connected, Enable
hosting features first (with an Enable link to wordpress.com hosting
features), Upgrade your plan to sync (with an Upgrade plan link and the
site's current plan badge), and Not available for sync. Thumbnails carry
WP.com/Pressable and Production/Staging environment chips, and the header
gains the Refresh list and Supported sites helper links.

The list itself was a fraction of the account: the shared
fetchSyncableSites hit the unpaginated v1.2 /me/sites endpoint, which
silently returns a subset (7 of 70 sites on a real account). It now
drains the paginated v1.3 endpoint with the same parameters the desktop
renderer's site picker uses, which also benefits the CLI's push/pull
site lookups.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds breathing room above the heading, fits all four starter cards
(Empty site + the curated trio) on a single row — folding to a 2x2 grid
on narrow windows — and collapses Explore more blueprints behind an
accordion toggle, closed by default with the search field appearing on
expand. With the long tail tucked away, the whole screen fits in one
viewport. Grid pages get a little more width (820 to 960) to keep the
four-up cards comfortable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dion

The Live Preview pill becomes a compact eye-icon button with a 'View a
preview in your browser' tooltip, matching how previews read elsewhere.
Upload your own moves inside the Explore more blueprints accordion since
it belongs to the blueprints section, and the accordion now animates
open and closed (a 0fr-to-1fr grid-row slide with a fade; content stays
mounted and inert while collapsed so both directions animate).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Below 900px the three option cards stack vertically and each switches to
a horizontal layout — illustration on the left, text on the right —
instead of squeezing three columns.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The site-creation flow fills the window with no title bar, leaving
nothing to drag the window by. Invisible strips along the top, left, and
bottom edges now act as the drag region — a phantom title bar without the
chrome. A full-background drag region would have been simpler but the
window manager consumes mouse events over drag areas, which froze the
interactive dot grid; the strips keep the background alive for it. The
right edge stays free for the scroll bar, and interactive elements
overlapping a strip (the close button) remain clickable via the global
no-drag rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ports the desktop renderer's remaining count-based behaviors: a single-
site account gets a 'Connect your site' heading with one comfortable
pre-selected card and the helper links beneath it (no search header); an
empty account gets a prompt to create a new WordPress.com site, opening
the same wordpress.com flow as the desktop Create button; and the grid
uses auto-fit so a handful of sites renders larger cards instead of
empty columns. Search already only appeared past five sites.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The mouse's back/forward side buttons now drive router history across
the classic UI — Electron doesn't translate them into navigation the way
browsers do. The Enable/Upgrade overlays on the Connect picker get a
proper scrim (40% black, no blur, so the site underneath stays
recognizable) to keep the buttons legible over light and busy
thumbnails. And the picker gains a 'full' width variant (capped at
1360px) plus a higher column minimum on large windows, so thumbnails
grow with the viewport instead of just adding columns.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@shaunandrews shaunandrews changed the title Site-creation onboarding redesign — umbrella (do not merge) Agentic UI: Site-creation onboarding redesign — umbrella (do not merge) Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant