Skip to content
Preptima
hardDesignScenarioMidSeniorStaff

How much customisation should a shared component expose before it stops being a design system?

Design system component customization should expose sanctioned variants, slots for content and a visible escape hatch, not arbitrary styling on every part. Once any product can restyle a shared component freely, consistency becomes unenforceable.

4 min readUpdated 2026-08-15

Answer

Short answer

A shared design system component should expose only variations the design language supports, such as size, intent and state. Use slots or composition for content differences, keep one visible escape hatch for exceptions, and promote repeated overrides into sanctioned variants only when the pattern proves reusable.

Use design systems as the constraint on customisation: a component can offer variation, but it should not let each team recreate the brand, accessibility model, or interaction contract. Good design systems work makes the allowed choices explicit so local flexibility does not become a second component library.

Was this answer helpful?

Likely follow-ups

  • A team needs a button with a spinner inside it. Do you add a loading prop or let them compose one?
  • How would you measure whether your escape hatch is being used for legitimate cases or as a bypass?
  • What is the argument for shipping unstyled primitives plus a theme rather than finished components?
  • When two products need genuinely different visual languages, what belongs in the shared layer at all?

Related questions