docs: add consumer migration guides for S2 components#6169
docs: add consumer migration guides for S2 components#6169cdransf merged 21 commits intoswc-1668/poc-componentsfrom
Conversation
|
📚 Branch Preview Links🔍 First Generation Visual Regression Test ResultsWhen a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs:
Deployed to Azure Blob Storage: If the changes are expected, update the |
461b6f8 to
d4220ba
Compare
|
This is looking really good! Could we somehow add a "template" / or instructions to the migration guide, so all future components use this format too? |
|
This is looking really good! Could we somehow add a "template" / or instructions to the migration guide, so all future components use this format too? |
74024f7 to
f7b8252
Compare
45cca69 to
40e15d1
Compare
Added a skill and consumer docs for that here 40e15d1 ✨ |
1202c75 to
8dff857
Compare
ccd3f17 to
68f80d5
Compare
rise-erpelding
left a comment
There was a problem hiding this comment.
This is wonderful! I don't have a whole lot that I think needs to change, but several questions about things that we might have missed in POC work so far.
| | CSS custom properties | `--mod-badge-*` | `--swc-badge-*` | | ||
| | Slots | `default` (label), `icon` | `default` (label), `icon` — unchanged | | ||
|
|
||
| --- |
There was a problem hiding this comment.
I came over here to say that maybe we should mention that the default variant for badge has been changed to "neutral"...
But that seems a bit misleading because that's not the variant that I see if I remove the variant attribute. (It's also in conflict with the variant that gets set in the base class).
Wondering if we should make a few changes to make the default to neutral actually work?
There was a problem hiding this comment.
For this one:
- Changed the default in
Badge.base.tstoneutral - Removed the redundant
@propertydeclaration inBadge.tsand then cleaned up the imports - Added a
Default variantrow in themigration.mdand a### Default variantsection with before/after examples
At runtime the subclass override won (which is why our test passed as well), but removing the attribute would set the property to null rather than the default and you'd get a mismatch. ✨
249610b to
df883d4
Compare
b86942e to
b35b50a
Compare
5ceef34 to
446a0bc
Compare
rise-erpelding
left a comment
There was a problem hiding this comment.
Nothing blocking for me!
I left a comment about how do reason about which mods to include and which not, I'd love to hear others share their thoughts as we determine what a good consumer guide looks like.
b35b50a to
122f981
Compare
* docs(badge): update rendering-and-styling migration analysis Clarify that fixed positioning is documented in design system guidance and note new S2 badge variants (notification, indicator) tracked in SWC-1831. * feat(badge): add no-label CSS class when label slot is empty Add `swc-Badge--no-label` class via classMap when the default slot has no text content, enabling CSS targeting of icon-only badges. * fix(badge): updates padding block tokens and icon-only gap * feat(badge): support for swc-icon internal * feat(badge): icon only accessibility examples * fix(badge): size types passing into swc-icon * docs(badge): adds todo for missing variants * fix(badge): dynamically passes size to slotted icon * test(badge): anatomy test checks for children elements previously, we were checking for text content when the badge icon slot was just accepting strings. Now the anatomy story is using the swc-icon internal component, so it never has text content (it's got HTML). the badge test now checks for children.length instead. * fix(badge): disabled text control for icon-slot * fix(badge): a11y roles for icon only badges * fix(badge): inline padding - adds new --swc-badge-padding-inline-start custom prop to control the inline padding start of a badge. it changes when there's an icon + label vs. just the text label - also fixes the gap property so that we just redefine the custom prop for the badge gap instead * docs(badge): add todo for icon only badge size story * docs(rules): update docs on template vs custom html rendering * docs: badge examples updated * fix(badge): correct fallbacks for sized badge padding Without this fallback, the start padding on a badge without an icon would always resolve to the 75-scale token regardless of size, because --swc-badge-padding-inline-start was never set in the size override blocks. Adding --swc-badge-padding-inline as an intermediate fallback means size overrides propagate to both sides automatically, while the :has() rules can still override --swc-badge-padding-inline-start for the icon case. * revert(badge): medium stays default size; neutral is default variant * test(badge): update new default assertions * docs(badge): adds @todo to default sizing discrepancy comment * fix(badge): reduce selector specificity and refactor private padding tokens * fix(badge): padding block properties corrected * docs: correct updated css style guides with badge examples * docs: fix typo * docs(badge): use different badge variants per design docs * docs(badge): adds tickets to todo comments
…track in forced colors
….mdx Co-authored-by: rise-erpelding <54716846+rise-erpelding@users.noreply.github.com>
3f7fcc2 to
c591740
Compare
* feat(badge): ensure visual s2 fidelity (#6114) * docs(badge): update rendering-and-styling migration analysis Clarify that fixed positioning is documented in design system guidance and note new S2 badge variants (notification, indicator) tracked in SWC-1831. * feat(badge): add no-label CSS class when label slot is empty Add `swc-Badge--no-label` class via classMap when the default slot has no text content, enabling CSS targeting of icon-only badges. * fix(badge): updates padding block tokens and icon-only gap * feat(badge): support for swc-icon internal * feat(badge): icon only accessibility examples * fix(badge): size types passing into swc-icon * docs(badge): adds todo for missing variants * fix(badge): dynamically passes size to slotted icon * test(badge): anatomy test checks for children elements previously, we were checking for text content when the badge icon slot was just accepting strings. Now the anatomy story is using the swc-icon internal component, so it never has text content (it's got HTML). the badge test now checks for children.length instead. * fix(badge): disabled text control for icon-slot * fix(badge): a11y roles for icon only badges * fix(badge): inline padding - adds new --swc-badge-padding-inline-start custom prop to control the inline padding start of a badge. it changes when there's an icon + label vs. just the text label - also fixes the gap property so that we just redefine the custom prop for the badge gap instead * docs(badge): add todo for icon only badge size story * docs(rules): update docs on template vs custom html rendering * docs: badge examples updated * fix(badge): correct fallbacks for sized badge padding Without this fallback, the start padding on a badge without an icon would always resolve to the 75-scale token regardless of size, because --swc-badge-padding-inline-start was never set in the size override blocks. Adding --swc-badge-padding-inline as an intermediate fallback means size overrides propagate to both sides automatically, while the :has() rules can still override --swc-badge-padding-inline-start for the icon case. * revert(badge): medium stays default size; neutral is default variant * test(badge): update new default assertions * docs(badge): adds @todo to default sizing discrepancy comment * fix(badge): reduce selector specificity and refactor private padding tokens * fix(badge): padding block properties corrected * docs: correct updated css style guides with badge examples * docs: fix typo * docs(badge): use different badge variants per design docs * docs(badge): adds tickets to todo comments * docs: add consumer migration guides for 7 S2 components * docs: additional migration refinements * docs: migration css info refinement * docs: a11y updates for migration docs * chore(migration-guides): add ai skill and contributor docs for migrations * chore(migration-guides): add @cssprop to doc blocks * chore(migration-guides): address pr feedback * chore(migration-guides): fix badge tests * chore(migration-guides): refactor using migration skill * fix(migration-docs): remove deprecated files * fix(migration-docs): remove deprecated ai skill reference * fix(migration-docs): address pr feedback * chore(storybook): update preview nav for new accessibility analysis docs * fix(migration-docs): update progress circle docs * fix(migration-docs): address missing properties to badge table * fix(migration-docs): revert application of Canvas to progress circle track in forced colors * fix(migration-docs): consistently rename status light properties * Update 2nd-gen/packages/swc/components/badge/consumer-migration-guide.mdx Co-authored-by: rise-erpelding <54716846+rise-erpelding@users.noreply.github.com> * fix(migration-docs): badge fallbacks and consistency * chore(migration-docs): add missing mods --------- Co-authored-by: Marissa Huysentruyt <69602589+marissahuysentruyt@users.noreply.github.com> Co-authored-by: rise-erpelding <54716846+rise-erpelding@users.noreply.github.com>
Description
Adds migration.md files for 7 components in 2nd-gen/packages/swc/components/, following the pattern established
by the avatar migration guide:
and prose container
Each guide includes: installation steps, quick reference table, per-change before/after examples, new features,
and accessibility notes. Follows the same per-component structure proposed in draft #6145.
Motivation and context
Application developers migrating from 1st-gen to 2nd-gen need practical, consumer-focused guidance that goes
beyond internal implementation analysis. These docs cover the day-to-day upgrade path: what to search for, what
to change, and how to validate the result.
Related issue(s)
Author's checklist
Practices
Reviewer's checklist
Manual review test cases
a. Open any migration.md in 2nd-gen/packages/swc/components/[component]/
b. Follow the "Update your code" steps using a real sp-[component] usage as input
c. Expect the before/after examples to produce a working swc-[component] with no regressions
a. Review the icon and status-light guides specifically — these have the most significant removals (name/src
on icon, disabled/accent on status-light)
b. Confirm the guidance is actionable and the "After" examples are valid 2nd-gen markup