Skip to content
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

feat(coachmark): S2 migration #3412

Open
wants to merge 1 commit into
base: spectrum-two
Choose a base branch
from

Conversation

cdransf
Copy link
Member

@cdransf cdransf commented Nov 21, 2024

Description

CSS-1024

S2 coachmark migration

This migrates the coachmark component to S2. Custom properties have been remapped per the design spec.

Before After
--spectrum-heading-sans-serif-font-weight --spectrum-title-sans-serif-font-weight
--spectrum-coach-mark-title-size --spectrum-coach-mark-title-font-size
--spectrum-heading-line-height --spectrum-title-line-height
--spectrum-coach-mark-body-size --spectrum-coach-mark-body-font-size
--spectrum-body-sans-serif-font-style --spectrum-body-serif-font-style
--spectrum-coach-mark-pagination-body-size --spectrum-coach-mark-pagination-body-font-size

Additions

Adds --spectrum-coachmark-media-fixed-height for fixed 4:3 image variant and an accompanying --mod-coachmark-media-fixed-height mod. This variation has been added to the coachmark component story as a boolean control labeled as Image fixed height. The class is conditionally added within the hasImage block and, as such, will only impact rendering when hasImage is also true.


Validation steps

  1. Open the URL for the PR.
  2. Navigate to the coachmark component and verify no regressions have occurred.

Note: the new font-family tokens set the font to Adobe Clean but Adobe Clean is not loading on the branch created from the spectrum-two base branch.

Regression testing

Validate:

  1. The documentation pages for at least two other components are still loading, including:
  • The pages render correctly, are accessible, and are responsive.
  1. If components have been modified, VRTs have been run on this branch:
  • VRTs have been run and looked at.
  • Any VRT changes have been accepted (by reviewer and/or PR author), or there are no changes.

To-do list

  • I have read the contribution guidelines.
  • I have updated relevant storybook stories and templates.
  • I have tested these changes in Windows High Contrast mode.
  • If my change impacts other components, I have tested to make sure they don't break.
  • If my change impacts documentation, I have updated the documentation accordingly.
  • ✨ This pull request is ready to merge. ✨

@cdransf cdransf added size-2 S ~6-18hrs; not hard or time consuming, one or two work days to complete. skip_vrt Add to a PR to skip running VRT (but still pass the action) ready-for-review labels Nov 21, 2024
@cdransf cdransf self-assigned this Nov 21, 2024
Copy link

changeset-bot bot commented Nov 21, 2024

🦋 Changeset detected

Latest commit: 8874538

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@spectrum-css/colorwheel Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Nov 21, 2024

🚀 Deployed on https://pr-3412--spectrum-css.netlify.app

Copy link
Contributor

github-actions bot commented Nov 21, 2024

File metrics

Summary

Total size: 1.66 MB*
Total change (Δ): 🔴 ⬆ 1.39 KB (0.08%)

Table reports on changes to a package's main file.

Package Size Minified Gzipped Δ
colorwheel 6.07 KB - - 🔴 ⬆ 1.39 KB

colorwheel

Filename Head Minified Gzipped Compared to base
index.css 6.07 KB - - 🔴 ⬆ 1.39 KB
metadata.json 2.11 KB - - 🔴 ⬆ 0.20 KB
* Size is the sum of all main files for packages in the library.
* An ASCII character in UTF-8 is 8 bits or 1 byte.

Copy link
Collaborator

@jawinn jawinn left a comment

Choose a reason for hiding this comment

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

I'm seeing a few things on the design not represented yet.

Line-height changes
I see body and pagination in the S2 specs marked as using line-height-200. I don't see the CSS using this token.
Screenshot 2024-11-22 at 10 55 57 AM

Keyboard shortcut
I don't see this new feature represented yet in our Docs examples or styles or controls. Does design need to define tokens for these keyboard shortcut elements on the specs?
Screenshot 2024-11-22 at 11 22 12 AM
Screenshot 2024-11-22 at 11 20 35 AM
Screenshot 2024-11-22 at 11 20 18 AM

4:3 and 16:19 image
The design shows an example of images at both of these aspect ratios, that we should demonstrate in our docs and maybe have a control for. I'm not exactly sure how this ties in with the sizing of the image and tokens.

Wait on popover to finalize?
This component is heavily reliant on popover, which has its S2 migration in progress and has been discussing and updating some items related to coachmark (#3365). So it may be worth waiting on that to merge before final review of its design.

components/coachmark/index.css Outdated Show resolved Hide resolved
components/coachmark/index.css Outdated Show resolved Hide resolved
@cdransf cdransf added the blocks Anything where Spectrum-CSS is blocking someone else label Nov 22, 2024
@cdransf
Copy link
Member Author

cdransf commented Nov 22, 2024

I'm seeing a few things on the design not represented yet.

Line-height changes I see body and pagination in the S2 specs marked as using line-height-200. I don't see the CSS using this token. Screenshot 2024-11-22 at 10 55 57 AM

Keyboard shortcut I don't see this new feature represented yet in our Docs examples or styles or controls. Does design need to define tokens for these keyboard shortcut elements on the specs? Screenshot 2024-11-22 at 11 22 12 AM Screenshot 2024-11-22 at 11 20 35 AM Screenshot 2024-11-22 at 11 20 18 AM

4:3 and 16:19 image The design shows an example of images at both of these aspect ratios, that we should demonstrate in our docs and maybe have a control for. I'm not exactly sure how this ties in with the sizing of the image and tokens.

Wait on popover to finalize? This component is heavily reliant on popover, which has its S2 migration in progress and has been discussing and updating some items related to coachmark (#3365). So it may be worth waiting on that to merge before final review of its design.

Awesome catches! I updated the line-height and font tokens. I marked this blocked pending the popover work and started a thread about the image implementation (one token includes -minimum- which seems odd semantically.

@cdransf cdransf added blocked See description and comments for what is blocking this issue and removed blocks Anything where Spectrum-CSS is blocking someone else labels Nov 25, 2024
@cdransf
Copy link
Member Author

cdransf commented Nov 27, 2024

I'm seeing a few things on the design not represented yet.
Line-height changes I see body and pagination in the S2 specs marked as using line-height-200. I don't see the CSS using this token. Screenshot 2024-11-22 at 10 55 57 AM
Keyboard shortcut I don't see this new feature represented yet in our Docs examples or styles or controls. Does design need to define tokens for these keyboard shortcut elements on the specs? Screenshot 2024-11-22 at 11 22 12 AM Screenshot 2024-11-22 at 11 20 35 AM Screenshot 2024-11-22 at 11 20 18 AM
4:3 and 16:19 image The design shows an example of images at both of these aspect ratios, that we should demonstrate in our docs and maybe have a control for. I'm not exactly sure how this ties in with the sizing of the image and tokens.
Wait on popover to finalize? This component is heavily reliant on popover, which has its S2 migration in progress and has been discussing and updating some items related to coachmark (#3365). So it may be worth waiting on that to merge before final review of its design.

Awesome catches! I updated the line-height and font tokens. I marked this blocked pending the popover work and started a thread about the image implementation (one token includes -minimum- which seems odd semantically.

Spoke with design and it sounds like the minimum token is the minimum dimension for the coach mark image and 4:3 is not a strict max. This is the current state:

.spectrum-CoachMark-image-wrapper {
  block-size: var(--mod-coachmark-media-height, var(--spectrum-coachmark-media-height));
  min-block-size: var(--mod-coachmark-media-min-height, var(--spectrum-coachmark-media-min-height));
...
}

@cdransf cdransf requested a review from jawinn December 3, 2024 00:01
@castastrophe castastrophe force-pushed the spectrum-two branch 3 times, most recently from cdb180d to 27d01df Compare December 4, 2024 14:54
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch 2 times, most recently from e9b9444 to 28878d9 Compare December 10, 2024 15:18
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from 28878d9 to 63bbe7a Compare December 17, 2024 14:24
@cdransf cdransf removed the blocked See description and comments for what is blocking this issue label Dec 17, 2024
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from fcc97e9 to db908ca Compare December 18, 2024 22:53
Copy link
Collaborator

@jawinn jawinn left a comment

Choose a reason for hiding this comment

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

The line-height looks good, and thanks for finding out the intentions on the 4:3 and 16:9 examples (where 4:3 is now a variant class).

It looks like the use of the heights needs a little adjustments.
And the newly added keyboard shortcut feature needs to be built and documented.

The stories on the "Docs" page appear cut off, but that appears to be more popover related? That is possibly something that was already fixed in main as I don't see that issue there.

components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
components/coachmark/index.css Outdated Show resolved Hide resolved
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch 2 times, most recently from 2c5d15c to 4715dab Compare December 19, 2024 23:00
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch 3 times, most recently from 8a04f82 to 61ab826 Compare January 21, 2025 21:49
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from 61ab826 to 3cd5f4d Compare January 22, 2025 17:57
Copy link
Collaborator

@marissahuysentruyt marissahuysentruyt left a comment

Choose a reason for hiding this comment

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

This is looking pretty nice after the rebase! I had a very long thought, and wasn't quite sure where to put it, so I apologize- it's going here 😆


I hope I'm not backtracking on old comments, but I'm second-guessing our Default story on the docs page currently (technically Standard).

I don't find it very clear what the actual default coach mark is. According to Figma, their default component is something like hasImage: true, hasActionMenu: false, imageIsFixedHeight: false, hasPagination: true, (and you put all of those in the default args). I think it would be clearer to maybe put the no-action-menu-no-image in a separate story all by itself. Then Standard and this new "No media, no action menu" story are just bound to Template().

Just quickly, some more story ideas I had for the docs page:

export const Standard = Template.bind({}); (showcases just the default coachmark, and we'd add documentation that the default coach mark has an image and doesn't have an action menu).
Screenshot 2025-01-23 at 1 23 56 PM

export const StandardNoMedia = Template.bind({});
StandardNoMedia.storyName = "Default, no media";
StandardNoMedia.args = {
	hasImage: false,
};
Screenshot 2025-01-23 at 1 24 03 PM

Based on the code comment, the CoachmarkMenuStatesTemplate should show the closed action menu and the open action menu. I would have probably kept that CoachmarkMenuStatesTemplate basically as it was (but fix up the headings for open/closed, and a missing isOpen: false), but then another story could be:

export const WithActionMenu = CoachmarkMenuStatesTemplate.bind({});
WithActionMenu.storyName = "With action menu";
WithActionMenu.args = {
	hasActionMenu: true,
};
Screenshot 2025-01-23 at 1 24 10 PM

I get what we're trying to do with these variants & stories, and just trying to show all the possible options. We could also add some additional documentation at the top of the page to clarify "all coach marks can have any combination of action menu, media, and keyboard shortcut options." Steplist does this with a callout to "all steplists can be static or interactive." Then it covers everything in a centralized place.

I definitely like Josh's comments about just adding more stories- I think it clarifies the options for users, and just separates all of the information a little better to make it easier to digest.

.changeset/nice-cows-shout.md Outdated Show resolved Hide resolved
Comment on lines 11 to 17
| --spectrum-heading-sans-serif-font-weight | --spectrum-title-sans-serif-font-weight |
| --spectrum-coach-mark-title-size | --spectrum-coach-mark-title-font-size |
| --spectrum-heading-line-height | --spectrum-title-line-height |
| --spectrum-coach-mark-body-size | --spectrum-coach-mark-body-font-size |
| --spectrum-body-sans-serif-font-style | --spectrum-body-serif-font-style |
| --spectrum-coach-mark-pagination-body-size | --spectrum-coach-mark-pagination-body-font-size |
Copy link
Collaborator

Choose a reason for hiding this comment

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

Were there any other custom properties or tokens we should call out? Particularly regarding the keyboard shortcut stuff?

I was looking through the metadata changes and wondered if any of those (which seemed like, maybe a lot 🤷‍♀️ ) should be mentioned in the changelog.

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated it with a component-specific subset from metadata — let me know what you think. 😄

components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
components/coachmark/stories/template.js Outdated Show resolved Hide resolved
components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
},
};

export const Default = CoachMarkGroup.bind({});
Default.tags = ["!autodocs"];
Default.args = {};
Default.args = {
image: "example-card-landscape.png",
Copy link
Collaborator

Choose a reason for hiding this comment

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

@cdransf I think this image: "example-card-landscape.png", is adding an extra, unexpected control. Deleting it doesn't appear to make a difference to the component, but removes that unexpected control from the table.

Screenshot 2025-01-23 at 1 54 31 PM

components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
components/coachmark/stories/coachmark.stories.js Outdated Show resolved Hide resolved
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch 9 times, most recently from 4700b66 to 797d62a Compare January 30, 2025 20:31
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch 4 times, most recently from 41edc5f to 29f4d75 Compare February 4, 2025 14:27
@castastrophe castastrophe force-pushed the spectrum-two branch 2 times, most recently from 56c6806 to 793571c Compare February 5, 2025 17:33
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from 29f4d75 to abbc929 Compare February 5, 2025 19:30
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from abbc929 to 03dc527 Compare February 7, 2025 00:50
@castastrophe castastrophe force-pushed the spectrum-two branch 2 times, most recently from db2a5dd to f34473b Compare February 7, 2025 17:35
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from 03dc527 to cb92b6b Compare February 7, 2025 17:50
- chore(colorwheel): update property name
- chore(colorwheel): wip inset borders
- chore(colorwheel): fix lint violations
- chore(colorwheel): move mod declarations
- chore(colorwheel): drop unused property + update metadata
- chore(colorwheel): remove underlying border node + class
- chore(colorwheel): remove unused property
- fix(colorwheel): add missing mod
- fix(colorwheel): comments for updated before spacing/positioning
- fix(colorwheel): adopt proper token for border opacity
- fix(colorwheel): remove inset border on disabled state
- fix(colorwheel): remove global token reference
- chore(colorwheel): highlight removed/added mods
- chore(colorwheel): update copyright year
- chore(colorwheel): add color loupe to default story
- fix(colorwheel): correct WHC disabled background color value
- chore(colorwheel): update test heading
- fix(colorwheel): typos
- chore(colorwheel): update token usage
- chore(colorwheel): add without loupe test
- chore(colorwheel): restore WHC styles
- chore(colorwheel): move isWithColorLoupe property
- fix(colorwheel): whc disabled background
@cdransf cdransf force-pushed the cdransf/s2-migration-coachmark branch from cb92b6b to 8874538 Compare February 7, 2025 20:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked See description and comments for what is blocking this issue ready-for-review size-3 M ~18-30hrs; moderate effort or complexity, several work days needed. skip_vrt Add to a PR to skip running VRT (but still pass the action)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants