Versioning (semantic versioning)
Versioning a design system using semver — MAJOR.MINOR.PATCH — gives product teams a predictable contract: patches are safe (1.0.0 → 1.0.1), minor releases add features without breaking existing usage (1.0.0 → 1.1.0), and major releases may break the component API (1.0.0 → 2.0.0).
Applied to a system, the trickiest part is what counts as a breaking change. A renamed prop is obvious; a tightened TypeScript type is borderline; a colour token nudge is technically not breaking but could surprise teams. Strong governance, changelogs, and codemods to migrate consumers are how mature systems handle the transitions — see our take in governance best practices.
Related: Design system governance · Contribution model · Component API · Design system maturity