Prepare one release.
Resolve the visible gaps, apply the required identity and support delivery.
A confidential multi-brand platform had drifted across design, code and theme layers. I audited the shipped system, defined what could vary, and rebuilt the contract that connected Figma to production.
I joined to prepare one branded variant for delivery. The white-label mobile banking platform served multiple bank brands from one codebase. Putting the design source beside the shipped interface exposed something larger: states, tokens and responsibilities had diverged across the system. The inconsistent UI was a symptom of a missing design-code contract.
Resolve the visible gaps, apply the required identity and support delivery.
The design source, shipped behavior and theme rules described different systems.
Ship the release while rebuilding a source of truth that the next variant could reuse.
A cosmetic patch would have shipped the same ambiguity into the next release.
The design source was useful, but resolving conflicts required production evidence. I traced the implemented system through application routes, shared components, theme files, hardcoded values and platform constraints.
Start with shipped states and actual behavior.
Follow each state back to components, themes and source values.
Put implementation evidence beside design intent.
Assign every difference to a clear ownership layer.
I created one classification model so design, engineering and quality assurance could make the same call from the same evidence.
| Signal | Decision |
|---|---|
| Valid variation | Keep it local to the active theme. |
| Implementation drift | Replace it intentionally in the shared layer. |
| Reusable pattern | Promote it only after validation. |
| Risk or conflict | Stop and decide with engineering. |
A brand theme may carry identity. It may not silently rewrite component anatomy, behavior, accessibility or implementation contracts. Making that boundary explicit stopped local changes from becoming hidden forks.
One time-sensitive state looked like a UX defect. Implementation evidence showed that it protected a non-negotiable product constraint. I kept the safeguard and redesigned the guidance, validation and recovery around it. The experience became clearer without pretending the constraint had disappeared.
Keeping the safeguard was the product decision.Visual tokens respond to the active theme. Content order, states and interaction rules remain fixed.
Change the brand, not the contract. The demonstration changes only identity tokens.
Brand A active.
Illustrative values only. The boundary and decision logic reflect the delivered work.
The system had to survive implementation. I organized decisions from stable foundations through semantic roles and component states, then mapped them into the code vocabulary used by engineering.
Primitive color, type, spacing and shape values.
Roles based on meaning rather than a specific identity.
Anatomy, states, interaction rules and accessibility expectations.
Identity values connected to the names consumed in code.
action / primary / default
--action-primary
The result was a shared operating model that connected decisions, reusable rules and implementation evidence.
I owned the design-side audit, decision model, source structure, component contracts, theme boundary and handoff. The implementation details were reviewed with engineering before delivery.
Senior product design · Design systems
I can walk through the system model, decision boundaries and engineering handoff in more depth.
kontakt@maciejmroz.pl