Introduction
The UI Kit is the most visible and tangible layer of a design system.
It is the layer that designers and developers interact with every day, which often creates the illusion that the UI Kit is the design system.
In reality, the UI Kit is a result of architectural decisions made at deeper levels: tokens, composition rules, allowable variability, and component responsibility.
The UI Kit should not be the place where decisions are made.
It should be the place where decisions are captured, verified, and reproduced.
UI Kit as a consequence, not a starting point
One of the most common mistakes is to start building a design system with components.
A typical scenario looks like this:
- a new screen appears
- a new component is created for it
- then another one appears, "almost the same"
- later, a variant is added "for a special case"
- then yet another, because the previous one "doesn’t quite fit"
As a result, the UI Kit grows not because the product becomes more complex,
but because there is no composition-focused and systemic thinking.
Components start reflecting the history of screens rather than the architecture of the interface.
A mature system works in reverse:
- first, parameters and constraints are defined
- then basic elements are established
- and only after that do components appear as compositions, not unique entities
Composition as a core tool for stability
Composition is the ability to build interfaces from a limited set of stable elements,
rather than creating new entities for every scenario.
A good question when designing:
Can this be built from existing elements without breaking their role?
A bad question:
What new component do we need for this screen?
A composition-focused approach allows you to:
- drastically reduce the number of components
- increase reusability
- simplify maintenance
- maintain consistency between design and code
It’s important to understand:
composition is about architecture, not convenience.
System hierarchy: from parameters to interfaces
In design systems, the atomic approach is useful not as terminology,
but as a hierarchy of responsibility.
Simplified, the system looks like this:
tokens → atoms → molecules → organisms → patterns → templates → pages
Templates and pages sit above the design system in the narrow sense.
They describe not elements and rules, but specific product scenarios and screens.
The design system must provide stable building blocks:
- tokens
- atoms
- molecules
- organisms
- patterns
Everything above depends on product context, business logic, and user flows.
Tokens as the parameter layer
Tokens are values, not interface elements.
They define:
- color roles
- sizes and spacing
- typography
- border radii
- elevation levels
- motion values
There is no interface at this level.
There are only agreements and constraints that the system must enforce.
Important:
Tokens do not “decorate” components, they limit design freedom.
Atoms as the foundation of all components
Regardless of abstraction level,
all components in a design system are essentially made of atoms.
Atoms are the smallest interface elements that:
- implement tokens
- provide basic behavior
- define states
- ensure accessibility
Examples of atoms:
- text with defined typography
- icons
- interactive shell (button base)
- input without business logic
- focus-ring
- hit-area
Critical rule for atoms: no external geometry
A properly designed atom must not have external geometry.
This means:
- no
margin - no positioning
- no assumptions about context
An atom:
- does not know where it is used
- does not control spacing between neighbors
- does not affect layout
All external geometry:
- is applied at the molecule level
- or managed by layout systems
This rule makes atoms:
- reusable
- predictable
- safe for composition
Atom as the single source of truth
If an atom is correctly defined, it:
- does not require local overrides
- behaves consistently in all contexts
- becomes the single "source of truth"
Any attempt to:
- override hover
- change focus
- add a unique state
above the atom is an architectural warning.
What molecules actually do
Molecules do not add behavior.
Their job is to:
- group atoms
- define their relative placement
- lock stable combinations
Examples:
- label + input + hint
- icon + text
- input + action
Molecules manage composition, not the essence of elements.
The role of organisms in the system
Organisms assemble molecules into more complex structures and manage layout.
They:
- do not change atoms
- do not duplicate states
- do not introduce unique logic
An organism is a scenario container, not a new interface element.
Mistake: logic and styles above atoms
One of the most dangerous practices is adding behavior at the molecule or organism level.
Typical examples:
- separate hover for a button inside a card
- special focus in a modal
- unique disabled state for a form
Each such decision:
- breaks composition
- duplicates logic
- makes the system fragile
If a scenario requires different behavior, the problem is in the atom, not the composition.
Allowable variability as an architectural decision
A key question for the UI Kit:
Where does a variant end and a new component begin?
This often appears in buttons:
- sizes
- visual styles
- icons
- states
System rule:
- if role and behavior remain, it’s a variant
- if role changes, it’s a new component or pattern
States as part of the contract
A component without states is a placeholder, not a system element.
The UI Kit must define:
- the full set of mandatory states
- visual and behavioral differences
- transition rules
If states are defined locally:
- hover may be missing
- focus may be ignored
- loading may be inconsistent
This undermines:
- accessibility
- predictability
- trust in the system
Patterns as a level above components
Not all solutions fit in a single component.
Patterns define:
- repeatable scenarios
- expected behavior
- allowable composition
Examples:
- validated form
- destructive actions
- confirmation dialogs
Patterns protect the system from chaotic decisions.
UI Kit and implementation in code
The UI Kit must be reproducible in code without interpretation.
This means:
- consistent terminology
- matching parameters
- matching states
When composition is correct:
- fewer components
- fewer changes
- the system scales
UI Kit as a limiting tool
The UI Kit is not an accelerator, but a constraint.
It is used to:
- prevent reinventing the same elements
- enforce agreements
- avoid creating exceptions
The less freedom within the UI Kit, the more stable the product.
Architectural maturity criterion
A simple system test:
- a new atom is needed → system evolves
- a new molecule is needed → system scales
- a unique component is needed → system degenerates
A mature system solves problems through composition, not by creating new entities.
Conclusion
The UI Kit is not a collection of components,
but a layer where architectural decisions become visible and verifiable.
If the design system relies on:
- tokens
- atoms without external geometry
- composition instead of duplication
- limited variability
the system remains compact, stable, and manageable.
Atoms are the essence of all components.
Molecules and organisms only reuse them and manage composition.
This approach allows creating fewer components
while achieving greater flexibility as the product grows.
Feb 16, 2026
