Skip to content
tezvyn:

Component Stability Index

MediumHow cards are made

A component stability index is a maturity signal that tells consumers how safe a design-system component is to use, from experimental to stable to deprecated, setting expectations about API churn and supporting confident adoption decisions.

Why it exists

A design system is never finished; new components arrive rough and stabilize over time. Without an explicit signal, consumers cannot tell a battle-tested Button from a one-week-old experimental DatePicker, so they either over-trust immature components and suffer breaking changes, or distrust everything and reinvent the wheel. A stability index exists to communicate maturity and expected churn so adoption decisions are informed.

The mental model

Think of it as a label on each component describing the strength of its API contract. Experimental means the API may change without notice; beta means it is largely settled but may shift; stable means breaking changes will follow a deprecation process and major-version discipline; deprecated means it is on a path to removal with a recommended replacement.

How it works

Maintainers assign a status to each component, surface it in documentation and often in the type system or runtime warnings, and define what each status promises about versioning. Promotion criteria, such as accessibility audits passed, test coverage, real-world usage, and design sign-off, gate movement from experimental to stable. The status feeds into release notes and migration guides.

When it matters

It matters most in large organizations where many teams depend on the library and need to make risk-aware bets. Product teams shipping critical flows lean on stable components, while early adopters can opt into experimental ones knowing the tradeoff. It also gives maintainers room to iterate publicly without breaking trust.

A concrete example

A new Combobox ships as experimental with a documented warning that its props may change. Several teams trial it and give feedback; after accessibility and test thresholds are met and the API settles, it is promoted to stable. From then on, any breaking change requires a deprecation period and a major version, so critical product teams can adopt it confidently.

Interview question

What is the primary purpose of labeling a design-system component as experimental rather than stable?

  • a.To indicate the component has more lines of code than stable ones
  • b.To mark that the component runs only in development builds
  • c.To signal the component is faster than its stable equivalents
  • d.To warn consumers that its API may change without the guarantees a stable component offersCorrect
Why?

The stability label communicates the strength of the API contract and expected churn; experimental means breaking changes can land without deprecation. It says nothing about code size, build environment, or performance.

Just read this? Test yourself on what you have been reading.

Put your scrolling time to good use

Learn one idea, try a quiz and save useful cards for revision. Tezvyn makes it easy to learn and stay current in your tech field, a few minutes at a time.

The iPhone app is on the way

We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.

Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.

Get it on Google PlayiPhone app coming soon

We are hiring for this. Open roles that interview on design-systems — each one lists the topics its interview covers.

See open roles