chore(progress-bar): create migration plan for progress bar#6390
chore(progress-bar): create migration plan for progress bar#6390miwha-adobe wants to merge 3 commits into
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 |
| | `value` | `number` | `0` | `value` | **Confirmed.** Renamed from 1st-gen `progress`. Clamped to `[minValue, maxValue]`. Drives `aria-valuenow` and the bar fill. Inherited from the mixin. | | ||
| | `minValue` | `number` | `0` | `min-value` | **Confirmed.** Reflected. Bottom of the range. Inherited from the mixin. | | ||
| | `maxValue` | `number` | `100` | `max-value` | **Confirmed.** Reflected. Top of the range. Inherited from the mixin. | | ||
| | `indeterminate` | `boolean` | `false` | `indeterminate` | **Confirmed.** **Progress-bar-only** — declared on `ProgressBarBase`, not the mixin. Reflected. Suppresses value attributes and runs the animation. | |
There was a problem hiding this comment.
I dont know if this is the place but i feel like we might want to consider a pending or indeterminate component that super simple and comes as a circle or a bar. Progress circle has extremely similar API and i wonder if we can do a comparison and see if there might be a shared class here?
5t3ph
left a comment
There was a problem hiding this comment.
Looks good, just one note for the styling phase.
| | `determinate` | Width `= fillPercent%`, `min-inline-size` floor | Shown | `valuemin/max/now/text` present | | ||
| | `indeterminate` | Sliding loop animation; `min-inline-size` reset 0 | Hidden | All four omitted | | ||
|
|
||
| The indeterminate animation specifics (keyframes, duration, easing, reduced-motion fallback) are tracked as **Q2** — they are the one visual item not inherited from the Meter-validated surface. |
There was a problem hiding this comment.
In the styling phase, you can inspect React's implementation to grab the values here. Note that they currently do not change anything for prefers-reduced-motion but we will want to account for that (TBD, we can chat in that phase).
docs(progress-bar): add 2nd-gen migration plan (Phase 1)
Description
Adds the Phase 1 migration plan for the
<sp-progress-bar>→<swc-progress-bar>2nd-gen migration atCONTRIBUTOR-DOCS/03_project-planning/03_components/progress-bar/migration-plan.md.This is a planning deliverable only — no component code is created or changed. The plan documents:
progress,indeterminate,label,side-label,static-color,size, deprecatedover-background).<swc-progress-bar>is the second consumer of the existingLinearProgressMixin(2nd-gen/packages/core/mixins/linear-progress-mixin.ts) and the sharedlinear-progress-base.css, both of which the Meter migration deliberately pre-built. Both shared artifacts are consumed unchanged (closed to feature additions).progress→value,minValue/maxValue,side-label→label-position, removal of the deprecatedover-background,--mod-*→--swc-linear-progress-*,role="progressbar"moved off the host onto the shadow wrapper, determinate-vs-indeterminate ARIA rules, and thelabel-slot +accessibleLabelnaming model.static-color="black",descriptionslot,value-label,formatOptions.<sp-progress-circle>in the<sp-progress-bar>warning; Q2 — the indeterminate animation is the only visual not inherited from the Meter-validated surface and will be lifted figma.The principal API difference from the migrated Meter: progress bar has no
variantproperty (single accent fill).Motivation and context
Progress bar is the next component in the 2nd-gen migration workstream. Phase 1 produces a reviewed plan before any implementation begins, so breaking changes, naming, and the shared-base strategy can be challenged in review rather than during testing. Because progress bar reuses the linear-progress mixin and shared CSS that Meter already shipped, the plan also confirms those artifacts stay closed to feature additions.
Related issue(s)
Screenshots (if appropriate)
N/A — documentation only.
Author's checklist
I have added automated tests to cover my changes.N/A — documentation-only change.I have included a well-written changeset if my change needs to be published.N/A — internal contributor docs, not a published package.Reviewer's checklist
patch,minor, ormajorfeaturesManual review test cases
Migration plan is internally consistent and technically accurate
CONTRIBUTOR-DOCS/03_project-planning/03_components/progress-bar/migration-plan.mdLinearProgressMixin/linear-progress-base.csswith no planned changes to those files, and the API to omit avariantpropertyRelative links and references resolve
Referencessection and inline linksDevice review
Accessibility testing checklist
Documentation-only change — there is no shipped component or UI to operate in this PR. The plan itself defines the accessibility requirements (role placement, determinate/indeterminate ARIA, naming model) that will be implemented and manually tested in Phases 4–6 of the migration.
Keyboard (required — document steps below) — N/A for this PR. The plan specifies progress bar is non-focusable (no
tabindex, keyboard skips it); keyboard testing will be performed when the component is implemented (Phase 6).Screen reader (required — document steps below) — N/A for this PR. The plan specifies the screen-reader contract to verify at implementation time:
role="progressbar"on the shadow wrapper; determinate exposesaria-valuemin/max/now/text; indeterminate omits all four; name from thelabelslot (aria-labelledby) oraccessible-label(aria-label).