CONTRIBUTOR-DOCS / Project planning / Workstreams / 2nd-gen Component Migration
Beneath this doc
- Status
- Step By Step
- Analyze rendering and styling
- Washing machine: migrating an existing 1st-gen component to 2nd-gen
- Understand the 1st-gen component structure
- Create base class in 2nd-gen core
- Formalize Spectrum data model
- Add 2nd-gen SWC component
- Migrate rendering & styles from Spectrum CSS
- Add stories for 2nd-gen component
- Migration project planning (Epics and tickets)
The tactical process of building 2nd-gen components, using 1st-gen as a reference:
- Studying 1st-gen implementations to understand API, behavior, and edge cases
- Creating base classes in 2nd-gen Core (behavior and API)
- Building concrete 2nd-gen implementations in SWC (rendering and styles)
- Migrating styles from the Spectrum CSS repository
1st-gen and 2nd-gen are independent — there is no runtime dependency between them. We start from existing implementations and apply improvements incrementally. More dramatic rewrites should be informed by existing bugs, accessibility considerations, or feature disparity.
Because our 1st-gen components vary in complexity and quality — some have known issues (a11y and otherwise) that we believe will require substantial changes — we will add classes to 2nd-gen Core incrementally, based on component-specific roadmaps.