Skip to content

FISYCO

Public beta

Change class

A change class says how much a design change can affect code that already uses a component: breaking, additive or cosmetic.

All terms

The class answers one question for the people who own the code: can this change leave existing code with no design to match? FISYCO gives a class to every changed Figma component on each sync of the Figma components file. A component changed for several reasons takes the most serious class.

The three classes

Breaking and additive mirror major and minor versions in Semantic Versioning: one can break existing callers, the other only adds. Cosmetic has no exact counterpart: a SemVer patch release is for backward-compatible bug fixes.

What each class means for code

Breaking means code that already uses the component can stop matching it. For example (illustrative), a screen passes size="xs" to a button. Once the xs value disappears from Figma, that screen has no design left to match.

Additive and cosmetic changes don't strand existing code. Either can still leave a divergence: a new value the code doesn't have yet, or styling the code hasn't caught up with. Each row in FISYCO's Differences list carries a severity: breaking, additive or cosmetic.

What is not a change

Moving a component on the canvas is not a change. Editing a text label is not a design change either. Switching the variant of a nested instance does count, because the instance is stored with the variant it uses.

Where the class shows up

In FISYCO, the class appears in the design system Journal, breaking changes first, and next to each design change in a component's History (how changes are classified). The Breaking design change notification fires only for breaking changes, so a channel subscribed to it stays quiet the rest of the time.