feat(Stepper): theme targets for the step label and description - #5728
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR Analysis Report📚 Storybook PreviewView Storybook for this PR 🧪 Sandbox PreviewView Sandbox for this PR Modified ComponentsStepper (@astryxdesign/core) · View in Storybook
Bundle Size Summary
Accessibility AuditStatus: 1 accessibility violation(s) found — 1 serious. Stepper - 1 issue(s)
Visual Regression12 added · 0 removed. View the report A repository maintainer can accept these exact frames: Generated by PR Enrichment workflow | Storybook | Sandbox | View full report |
|
Pushed a conformance follow-up ( The targets are correctly component-owned. INV5 asks whether a shared primitive renders the part. Stepper imports no Measured in Chromium, built Storybook,
The negative control is the load-bearing row: with What the follow-up adds
Gates, all on the merged tree: |
|
It is already closed by #5885, which adds a curated D2 target over So the theme targets in this PR introduce no RTL regression, and I have not duplicated the target here — it would collide with #5885. This check goes green once that lands. ( |
|
Closed the RTL coverage gap here rather than waiting on #5885 — that PR is still under review, so this check would stay red until it lands. Stepper returned N/A on every dimension, which the audit counts as unmeasured. Steps run along the inline axis, so first and last must swap under RTL; a curated D2 target measures that: Probe verified, not assumed: pointing This is the same target #5885 proposes in its bulk sweep — whichever lands second should drop it. Happy to remove it here instead if you would rather it went in with that PR. |
cixzhang
left a comment
There was a problem hiding this comment.
Thanks for adding the text targets and the real consumer proof. Two things need fixing before this lands:
- A theme author cannot write a disabled-label rule through
step-label: it omits component-owneddisabled. The current target contract requires that state on its owning target. Please reflect and document it, with a focused theme test. - Builders browsing Toast docs would get a new
LogicalPlacementexample that this Stepper-only PR never motivates. Please move or drop it.
It also needs a merge with main for the RTL registry conflict.
[Reviewed by Robohands]
cixzhang
left a comment
There was a problem hiding this comment.
Thanks, the merged head clears the unrelated conflicts and Toast-doc issue. The label target still omits disabled, even though disabled styling is owned by the label itself. Please reflect and document disabled on step-label, with a focused theme test.
[Reviewed by Robohands]
b1a22c8 to
42bc832
Compare
|
Addressed the final
The focused test holds both halves:
Negative control: removed only the new I also rewrote the PR as one commit on current Full preflight on the exact pushed tree:
The Astryx CLI now reports: |
42bc832 to
45ed0d9
Compare
45ed0d9 to
70956c1
Compare
70956c1 to
ba90779
Compare
…lectors A Step label and description declare their own typography and color, so a theme cannot reach them through the step target by inheritance. Add direct targets to the painted spans in both indicator positions. Both targets reflect progress and status. The label also reflects disabled because it owns disabled text paint; the description deliberately does not. Amend the current Stepper contract with only this text-part ownership decision while preserving the merged Connector contract and DEC-1. Focused tests cover target placement, selector state, both layouts, and the generated defineTheme selector.
ba90779 to
d6b7b02
Compare
|
/approve-spec |
cixzhang
left a comment
There was a problem hiding this comment.
The requested disabled state, unrelated-doc cleanup, main refresh, and spec deduplication are complete at this exact head. Approved.



Why
A Step label and description declare their own typography and color, so themes cannot reach them through the existing
steptarget by inheritance. Stable targets replace brittle structural selectors on the existing painted spans.#5495 has now merged the current Stepper contract, Connector anatomy,
--step-connector-gap, and DEC-1. This PR is rebased on that authority and no longer carries a competing full Stepper record.What
step-labelandstep-descriptionin both indicator positions.progressandstatus;step-labelalone reflectsdisabled, because only the label owns disabled text paint.The spec is 218 → 245 lines (+27 net). The existing record already exceeded the soft 200-line target; shrinking it further would rewrite settled #5495 authority rather than make this amendment smaller.
Dependency
#5953 separately owns two pre-existing generated
readonlyselectors from #5805. After it lands, this PR needs one final main rebase and probe regeneration; its generated diff will remain Stepper-only while the standard probe check becomes clean.Compatibility
Additive. Existing label and description spans gain stable classes and state attributes. No element, prop, export, default style, or Connector behavior changes.
Validation
@astryxdesign/coretypecheck and build passedcheck:knowledge,check:repo, andgit diff --checkpassedrgb(5, 56, 29), Labelrgb(58, 3, 37), Descriptionrgb(9, 19, 52); removing the two text target classes restored their own component colors rather than inheriting Stepdisabledonly on Label andstatuson both text targetsmain