149
be installed in its entirety. This could be likened to browser
or software versions. When you update to a new version
of Google Chrome or your phone’s OS, for instance, you’re
updating the whole piece of software in one go.
If you were to version your design system in the same way, it
would mean everything within the design system would be
updated too.
For example, you may have updated your font styles, added a
new navigation component, or deprecated an old grid layout.
When a user of your design system chooses to upgrade, they
get all of those changes together. This still gives teams the
flexibility of when to update the system, but a more granular
approach can be helpful as your system scales.
Versioning individual modules means having a version number
for every component or group of styles within the design
system. So if you put your button component into one module
and your utility styles into another, they would each have
their own version number, such as
[email protected] and
[email protected].
You can still maintain a package that includes the entire set
of the modules and version that too. For example, primer-