Skip to content

Domain only flow: Make it more consistent #102613

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 18 commits into from
Apr 22, 2025

Conversation

zaguiini
Copy link
Contributor

Supersedes #102021.

Proposed Changes

The benchmark for consistency here is /start/onboarding-pm as /setup/onboarding uses StepContainerV2, which has different definitions of page margins and headings. Eventually, all flows will be migrated to StepContainerV2, but while that doesn't happen, let's compare against other flows in /start.

This PR restores the "minor tweaks" from the original work, except the tooltip icon alignment considering the tooltip icon should be gone (W9xI27S6Swvw5Ku21EbZvn-fi-9588_14139).

You should also notice that the "Explainer image", which also doesn't exist in Figma, is now gone.

image

This PR fixes a bug where the premium domain badge was showing on the same line as the domain and price. And it also centers the price compared to the select button.

Before After
Screenshot 2025-04-14 alle 9 11 07 PM Screenshot 2025-04-14 alle 9 06 43 PM

Finally, I've also aligned the secondary content boundaries with the primary content as they were misaligned on intermediary screen sizes.

Before After
Screenshot 2025-04-14 alle 9 05 21 PM Screenshot 2025-04-14 alle 9 06 33 PM

Other screenshots (both flows should look identical)

Onboarding PM Domain Only
Screenshot 2025-04-14 alle 9 04 56 PM Screenshot 2025-04-14 alle 9 04 46 PM
Onboarding PM Domain Only
Screenshot 2025-04-14 alle 9 04 36 PM Screenshot 2025-04-14 alle 9 04 30 PM

Testing Instructions

The easiest way I could find to test this is to keep both /start/onboarding-pm/domains and /start/domain/domain-only flow tabs open and switch between them while changing the browser's window width, ensuring both look identical.

@zaguiini zaguiini requested review from oskosk and a team April 15, 2025 00:16
@zaguiini zaguiini self-assigned this Apr 15, 2025
@matticbot matticbot added the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Apr 15, 2025
Copy link

github-actions bot commented Apr 15, 2025

@matticbot
Copy link
Contributor

matticbot commented Apr 15, 2025

Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:

Sections (~872 bytes added 📈 [gzipped])

name                        parsed_size           gzip_size
async-step-unified-domains      +2421 B  (+0.1%)     +846 B  (+0.2%)
domains                          -772 B  (-0.0%)     -249 B  (-0.0%)
reader                           +350 B  (+0.0%)      +26 B  (+0.0%)
patterns                         +350 B  (+0.0%)      +26 B  (+0.0%)

Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to.

Async-loaded Components (~910 bytes added 📈 [gzipped])

name                                                                         parsed_size           gzip_size
async-load-signup-steps-domains                                                  +2622 B  (+0.2%)     +884 B  (+0.3%)
async-load-comment-block-editor                                                   +350 B  (+0.0%)      +26 B  (+0.0%)
async-load-automattic-global-styles-src-components-global-styles-variations       +350 B  (+0.0%)      +26 B  (+0.0%)

React components that are loaded lazily, when a certain part of UI is displayed for the first time.

Legend

What is parsed and gzip size?

Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory.
Gzip Size: Compressed size of the JS and CSS files. This much data needs to be downloaded over network.

Generated by performance advisor bot at iscalypsofastyet.com.

@zaguiini zaguiini requested a review from a team April 15, 2025 16:16
@ramynasr
Copy link
Contributor

ramynasr commented Apr 15, 2025

@zaguiini, thanks for looking into that.

The main issue was that domain name suggestions were being wrapped in the onboarding flow. With this PR, I see this is now broken in both the onboarding and the domain-only flows.

Before this PR

image

With this PR

image

@ramynasr
Copy link
Contributor

Other differences that I noticed between both flows:

  • The recommended and best-alternative suggestions show a blue Select button in onboarding but not in domain-only.
  • When a domain is already in the cart, the Select button reads In Cart in the onboarded flow and Selected in the domain-only flow.

I'm not sure if the plan was to sync all UI elements or fix specific bugs. So, maybe those are not within the scope of this change.

@zaguiini
Copy link
Contributor Author

zaguiini commented Apr 17, 2025

Interesting @ramynasr. The PR that I've reverted does not fix that problem. I'm trying to fix it, but I'm not sure what should happen for really long domain names:

image

cc @nuriapenya

I'm not sure if the plan was to sync all UI elements or fix specific bugs. So, maybe those are not within the scope of this change.

The same goes for that. The original PR didn't change it, and both issues you reported are caused by the fact that onboarding-pm is a single-domain flow, while in domain-only you can select multiple domains. I'm not sure we should change that, especially in this PR.

@zaguiini zaguiini force-pushed the domain-only-consistency-with-onboarding-pm branch from cd71f0c to e149c82 Compare April 17, 2025 19:33
@m1r0
Copy link
Member

m1r0 commented Apr 18, 2025

Overall, it looks great! It's a nice improvement. I have just a few minor nitpicks:

  • The domain name looks off-center when there's no badge.

image

  • The horizontal line that divides the items is inconsistently spaced. This issue seems to be present in the other view, so it may not be related to this PR.
image

@ramynasr
Copy link
Contributor

ramynasr commented Apr 18, 2025

Interesting @ramynasr. The PR that I've reverted does not fix that problem. I'm trying to fix it, but I'm not sure what should happen for really long domain names:

@zaguiini I'm assuming that's because you are testing the PR that was reverted, but not the follow-up PR ( #102308 ) that wasn't.

What I can see is that the main difference between the domain-only flow and the onboarding flow (before this PR) is the max-width, which makes it a bit harder for the domains to break as I am showing in the screenshots above.

Is there a specific reason to limit the max-width of the domain suggestions list if the screen/viewport width allows it?

The example you are showing in your screenshot is very unlikely. For example, a search string like mymemorablemoments is closer to a real-life one that should not break the UI. It currently breaks the onboarding flow, not the domain-only flow (in production).

image

Here is a suggestion:

  • Shortening Free for the first year with annual paid plans to Free first year with annual plans.
  • Moving Free first year with annual plans to the same line as the price, still aligned right, so it won't be under the domain name and distract the user.
  • This would allow the domain name to use all the space available to the Select button, which should cover most cases.
  • For the unfortunate case of a long string close to the maximum allowed (63 characters), we should truncate it with an ellipsis, displaying the beginning and end of the domain with an ellipsis in the middle (e.g., veryverlong...wdqndl.blog) and allow the whole string to be shown on hover (in a tooltip)

How does that sound?

@zaguiini zaguiini force-pushed the domain-only-consistency-with-onboarding-pm branch 2 times, most recently from b1c162b to 8adbfc9 Compare April 21, 2025 19:45
@zaguiini
Copy link
Contributor Author

Sure @ramynasr, this is how it looks right now:

image

"Long domain name" means 24 characters and above. Here's the logic.

And thanks, @m1r0. Great catch. Here's what they look like now:

image

Copy link
Member

@m1r0 m1r0 left a comment

Choose a reason for hiding this comment

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

Looks great! Thanks for the updates, Luis. 🙌

I have no more feedback, but let's wait for the final approval from @ramynasr.

Copy link
Contributor

@ramynasr ramynasr left a comment

Choose a reason for hiding this comment

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

Thanks for making those changes! LGTM. Just left a suggestion about method naming.

@zaguiini zaguiini force-pushed the domain-only-consistency-with-onboarding-pm branch from 8adbfc9 to 41eccde Compare April 22, 2025 16:24
@matticbot
Copy link
Contributor

This PR modifies the release build for the following Calypso Apps:

For info about this notification, see here: PCYsg-OT6-p2

  • notifications
  • wpcom-block-editor

To test WordPress.com changes, run install-plugin.sh $pluginSlug domain-only-consistency-with-onboarding-pm on your sandbox.

@zaguiini zaguiini force-pushed the domain-only-consistency-with-onboarding-pm branch from 41eccde to aef8660 Compare April 22, 2025 16:43
@zaguiini zaguiini merged commit d82dfc4 into trunk Apr 22, 2025
13 checks passed
@zaguiini zaguiini deleted the domain-only-consistency-with-onboarding-pm branch April 22, 2025 17:10
@github-actions github-actions bot removed the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Apr 22, 2025
zaguiini added a commit that referenced this pull request Apr 22, 2025
zaguiini added a commit that referenced this pull request Apr 22, 2025
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.

4 participants