Every design system has a folder of exceptions. The button that was too big for the mobile nav, so someone built a smaller one. The card that needed a special shadow for a marketing page. The table with a custom empty state because the standard one did not fit.
Each one was reasonable at the time. Each one is a small loan against the system's future.
The metaphor of debt is precise here, and worth taking literally. A loan is cheap to take and expensive to carry. One exception is nothing. Fifty exceptions, each slightly different from the system, add up to something the system can no longer claim to describe.
The loan you didn't notice taking
The moment an exception is created, it feels free. The designer needed something specific, the system component did not quite fit, and building a one-off took an afternoon. No meeting, no approval, no backlog. The system did not even notice.
That is the nature of the loan. The cost is not paid at creation. It is paid later, in the form of a system that is slightly less true than it was yesterday.
The designer who built the one-off will not maintain it. Six months later, someone else finds it, assumes it is a system component, and copies it. Now there are two. This is how debt compounds without anyone deciding to take on more.
Why exceptions are so tempting
Exceptions win for the same reason the system loses: speed. The system component does not do what you need, and the path to changing the system is slow. It needs a proposal, a review, a migration. The one-off needs none of that.
So the local decision, the one that optimizes for this screen and this sprint, is always the one-off. The system optimizes for the long term; the exception optimizes for the current moment. Both are rational. The problem is that the current moment happens a hundred times.
How debt compounds
Debt compounds through a specific mechanism: loss of trust. The first few exceptions are invisible. But as they accumulate, the system stops being the reliable answer to "how should this look?"
When a designer cannot tell whether a button is a system component or an old exception, they stop checking. They copy whatever is closest, which is often an exception. Each copy is a new, slightly different variant. The system becomes one option among many instead of the source of truth.
This is the point of no return. You can still see the system in the components, but it no longer governs the product. And the exceptions, which started as the reasonable little choices, are now the standard.
The sign the system is failing
There is a simple diagnostic. Ask a designer to find the system component for a button, and watch how long they take and what they grab. If they hesitate, if they copy from a screen instead of from the system, if they say "there are a few versions," the system is losing.
Another sign is the ratio. Count the components that are genuinely shared versus the ones that exist only once. When the one-offs outnumber the shared ones, the system is a museum, not a tool.
Making debt visible
The first fix is not to stop creating exceptions. That is not realistic. The fix is to make them visible, because invisible debt is the only kind that compounds silently.
Keep an exceptions list. When someone creates a one-off, it goes on the list with a reason and an owner. A quarterly review looks at the list and asks the only question that matters: which of these should become system components, and which should be refactored away?
This is a lighter version of the governance a mature system needs, and it is the difference between running the system like a product and letting it run itself.
Repaying versus writing off
Not every exception is a mistake. Some are the system discovering a need it did not know it had. When a one-off shows up three times in different places, that is not debt. That is a signal that the system is missing a component.
Those exceptions should graduate. They should be promoted into the system, standardized, documented, and versioned. The rest, the ones that solved a problem that no longer exists, should be refactored out and deleted.
The discipline is to make both actions happen on a schedule, rather than letting the list grow forever. Debt you are actively paying down is still debt, but it is debt under control.
The takeaway
A one-off component is a loan with deferred interest. It is cheap the day you take it and expensive in the years after, and the interest is paid in a system that slowly stops being true. The answer is not to forbid exceptions. It is to make them visible, review them, and repay them on purpose.
The naming and structure that make a system repayable in the first place come from its foundations, which is why design tokens are a semantic layer, not a style guide.