-
Notifications
You must be signed in to change notification settings - Fork 195
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
base: spectrum-two
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: b1b6909 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
🚀 Deployed on https://pr-3412--spectrum-css.netlify.app |
File metricsSummaryTotal size: 1.73 MB* Table reports on changes to a package's main file. Other changes can be found in the collapsed Details section below.
Detailscoachmark
* Results are not gzipped or minified. * An ASCII character in UTF-8 is 8 bits or 1 byte. |
There was a problem hiding this 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.
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?
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 |
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));
...
} |
cdb180d
to
27d01df
Compare
e9b9444
to
28878d9
Compare
28878d9
to
63bbe7a
Compare
fcc97e9
to
db908ca
Compare
There was a problem hiding this 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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd recommend documenting how images are displayed and the new fixed height class, by
- adding a story for the Fixed height / 4:3 image, that includes the class name in the story description.
- adding some description to the default image story to mention that the image has a minimum height but can grow to any height based on its dimensions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Marking this as unresolved as I don't see this in the stories/documentation yet. It's important to document because of the addition of a variant and for clarity around how the image sizing works. What I was suggesting was:
- "With media" Docs story: include info in the description about how the image is sized/displayed here (image has a minimum height but can grow to any height based on its dimensions)
- "With media, fixed image height" add a Docs story that shows and explains this and mentions the added class in the description
2c5d15c
to
4715dab
Compare
fc916f1
to
9d7f088
Compare
45aaa69
to
441d81e
Compare
f3dea08
to
9519ce5
Compare
9519ce5
to
7630128
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a first pass and mainly focused on the stories and template files.
❓ Do you know why the coach indicator has a class name with --undefined
in it? Is it a size? I'm unsure if it's coming from coach mark or popover (I think it's popover?) so maybe that's something I can address in the popover PR. It's like this on main
as well, so this is just a curiosity.
❓ What would you think about renaming the WithMedia
story to actual be Without media
? Just based on Figma, it seems like the coach mark has a cover image by default. If that's true (and I would have to check, I don't actually know- that's just a guess based on the dev mode component), the default story and the with media story are the same right now. We'd also have to fix the sentence-casing of the story name and put that documentation elsewhere:
❓ Maybe we need to expedite those new keyboard command components. There's a few older cards for them (css-230 and css-231), so maybe we just need a coachmark follow up for when those are done? Would not having those block this currently? Just thinking out loud on this one...
I'll do a second pass for tokens & CSS tomorrow!
hasPagination, | ||
() => html` | ||
<div class="spectrum-CoachMark-step"> | ||
<bdo dir="ltr">${currentStep} of ${totalStepCount}</bdo> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
whoooa I've never seen a <bdo>
tag! Add it to my list of things to look up!
So this doesn't respond to RTL then? Do you know why that is? I only found this bit in the documentation, and I suppose I was expecting it to work like our actual pagination component (where it flips for RTL languages). In that screenshot it looks like to me the pagination for the coachmark flipped. What do you think? Maybe this is a question for design?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo
The
<bdo>
HTML element overrides the current directionality of text, so that the text within is rendered in a different direction.
Huh. I think keeping to what the pagination component does makes the most sense. This is the same pattern in a different component so I'd be inclined to go with what we're doing in the component dedicated to this behavior. But that's a very good question. 😅
category: "Content", | ||
}, | ||
control: { type: "file", accept: ".svg,.png,.jpg,.jpeg,.webc" }, | ||
}, | ||
}, | ||
args: { | ||
rootClass: "spectrum-CoachMark", | ||
hasActionMenu: true, | ||
hasPagination: true, | ||
hasImage: false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was messing around in Figma and noticed that maybe some of these args have changed for the default coach mark now? The "default variant" doesn't have the action menu and does have the cover image. Should those args here be updated?
hasActionMenu: false,
hasImage: true
And then we'd have to update the default args for the CoachContainer
template too I think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@marissahuysentruyt @jawinn I updated the stories in this commit 0008d0. If we run with...
hasActionMenu: false,
hasImage: true
...as default args, I've shuffled around the leading example to adhere to that state, the second in that block to show the action menu on and the media off. The 2nd block now shows the media variations added in the S2 migration.
}, | ||
}; | ||
|
||
export const Default = CoachMarkGroup.bind({}); | ||
Default.tags = ["!autodocs"]; | ||
Default.args = {}; | ||
Default.args = { | ||
image: "example-card-landscape.png", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did we want to show the landscape image with the Standard
story that's on the docs page as well? This Default
isn't the only on the docs page, so right now, all the images are the portrait ones, and they get cut off because of the defined story height.
Standard.args = { image: "example-card-landscape.png", };
I think regardless, with the updates to the coachmark spacing, we should increase the story heights (maybe to 450ish?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated the height(s) in 0008d0 while adjusting other aspects of the story(ies). ✨
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Marking this as unresolved as I don't see this in the stories/documentation yet. It's important to document because of the addition of a variant and for clarity around how the image sizing works. What I was suggesting was:
- "With media" Docs story: include info in the description about how the image is sized/displayed here (image has a minimum height but can grow to any height based on its dimensions)
- "With media, fixed image height" add a Docs story that shows and explains this and mentions the added class in the description
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm still looking for the keyboard shortcut feature that is part of the S2 design spec. Were you planning to add that (markup, new CSS, stories)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I totally missed that! Will be digging into it shortly (and may have some questions on how best to approach it).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now that spectrum-two
has the .test.js
files for Chromatic, it'd be a good idea to make sure everything that we want covered by VRTs is added there. Things that come to mind are the fixed height media, and the regular media with a landscape image that is affected by its minimum height.
…efaults; update example heights; update default image
0008d0a
to
b1b6909
Compare
Description
CSS-1024
S2 coachmark migration
This migrates the
coachmark
component to S2. Custom properties have been remapped per the design spec.Additions
Adds
--spectrum-coachmark-media-fixed-height
for fixed4:3
image variant and an accompanying--mod-coachmark-media-fixed-height
mod. This variation has been added to thecoachmark
component story as a boolean control labeled asImage fixed height
. The class is conditionally added within thehasImage
block and, as such, will only impact rendering whenhasImage
is alsotrue
.Validation steps
coachmark
component and verify no regressions have occurred.Note: the new
font-family
tokens set the font toAdobe Clean
butAdobe Clean
is not loading on the branch created from thespectrum-two
base branch.Regression testing
Validate:
To-do list