Design System as Infrastructure
From a shared design language for 100+ markets to a governed, verifiable delivery model (and the moment the problem stopped being design consistency).
I did not join a finished design system and add a layer to it. I argued for the foundations, and I drove the stages that followed as the problem changed underneath the system.
TL;DR
I shaped Nissan's global web design system from its early Figma foundations onward. The first problem was making one design language usable across a 100+ market ecosystem. Years later the problem had moved: the design was conformant, and the implementations still diverged.
My role:I initiated or drove both of the system's major shifts: the library as the model that scaled a shared design language, and contract-mediated design intent as the answer to distributed implementation ambiguity.
How the system evolved
A shared design language
- 01 FOUNDATIONSFigma LibraryFoundations, components, variants, patterns and usage documentation
- 02 SCALEGlobal adoptionMarkets, agencies and delivery partners designing locally inside a shared system
Portable design intent
- 03 COMPATIBILITYSemantic abstractionConsistency without demanding one implementation technology
- 04 CONTRACTSExplicit design contractsIntent, behaviour, dependencies and validation criteria made explicit
- 05 AUTHORITYDesign authority separated from technologyA framework could execute the system, but could not be the system
Verified execution
- 06 VALIDATIONDeterministic verificationTestable expectations, with human judgement retained where they run out
- 07 EXECUTIONControlled AI-assisted deliveryGoverned intent in, bounded execution, validation, human decision
Each phase answered the problem the previous phase exposed. The system did not change direction; the nature of the constraint changed underneath it.
What I owned
I championed the Figma Library direction and drove its establishment: the foundations, the reusable components and the visual language, and how designers outside the central team would consume the system. I authored and shaped the documentation that made the system usable beyond the core team, and I reviewed market and agency work against the system as part of the central governance model that stood between design and delivery. Years later, when the dominant source of inconsistency had moved downstream, I framed the new problem and drove the contract-mediated response to it.
- Shape the foundations
- Enable distributed designers
- Govern the system
- Reframe the problem
- Define the contract model
- Make it verifiable
- Bound AI execution
Championed the library direction
Championed the Figma Library as the model that would scale a shared design language, then shaped its foundations, component language, variants and patterns.
Designed how the system would be adopted
Defined how designers outside the central team consumed the system, and authored the documentation and guidance that made adoption possible without the central team in the room.
Reframed the problem when scale moved it
Identified that the dominant source of inconsistency had moved from design to the design-to-engineering handoff, and that more review would not close it.
Defined the contract and validation model
Proposed explicit design contracts and semantic abstraction as portable design intent, drove the direction, and set what should be deterministically verifiable and where human judgement stays authoritative.
This was not a solo system. A central design-system team, product designers across markets, frontend engineers and delivery partners built on it, extended it and pushed back on it. What I claim is the framing, the direction and the operating model: recognising when the nature of the problem had changed, deciding what the system should become next, and getting design and engineering behind it.
Building a design language for teams I would never meet
The first version of this problem was a design problem, and it was solved with design work. A shared Figma library, built properly: foundations that held, a component set with a variant structure teams could reason about, states and interaction behaviour resolved rather than implied, responsive rules that survived real content, and accessibility expectations written into the component rather than bolted on at review.
The harder part was making that work outside the room it was made in. A designer in a market I had never worked with needed to know which component to reach for, when not to use it, how to compose it into a page, and what they were still free to decide locally. Documentation was not an operational task at the end of the design work; it was how the system reached people the central team could not sit with, and I wrote and co-wrote it for that purpose. The library made the design language reusable, the documentation made it learnable, and central review made it governable.
Nothing that came later was a correction of this. It was the right operating model for the problem at that stage, and it solved that problem.

The operating model this created
- 01 SYSTEMFigma LibraryFoundations, components, patterns and the documentation behind them
- 02 ACCESSDistributed designersDesigners and agencies across markets given access to the shared language
- 03 LOCAL WORKLocally relevant designMarket-specific experiences designed inside the system rather than around it
- 04 REVIEWCentral design governanceWork returning to the central design-system team for review against the system
- 05 HANDOFFApproved design intentConformant design passed on to distributed implementation teams
This worked. For several years it let distributed designers and agencies across the market ecosystem produce locally relevant work inside one shared language, with central review keeping that work conformant before it reached delivery.


When scale moved the problem downstream
The Figma Library succeeded. Its success exposed the next constraint. Across a fragmented ecosystem of markets, agencies, delivery partners and technologies all moving at different speeds, designers knew how to use the system and review caught the work that drifted from it. The inconsistency that remained was appearing after design was approved.
With one delivery team or one agency, ambiguity in a specification is not a systemic problem, because someone can ask and someone can answer. Across 100+ markets using different teams, agencies and implementation environments, that conversation does not happen. Every ambiguity is resolved independently, differently, by people who never speak to each other.
Governance is what made this structural rather than incidental. Central review could confirm that a market's design conformed to the system. It could not remove the ambiguity a design file plus a document leaves behind, because behaviour, dependencies, runtime constraints and the definition of conformance were never in what got handed over. This, not AI, is why contracts became necessary.
The Figma Library successfully scaled the design language. The next problem was making design intent survive implementation.
The obvious response to inconsistent output is more review, more documentation and more meetings. That response scales linearly with the number of teams, which is another way of saying it does not scale. The system had to carry more of its own intent.
Scale and context
One system, and a delivery ecosystem it could not directly control
24
Components held to a common standard
100+
Market ecosystem, with regional requirements and regional adoption patterns
Distributed
Agencies, delivery partners and implementation teams, on different stacks and timelines
Scale and context only. These figures describe the environment the system had to work in, not an outcome the work produced.
Consistency without forcing one implementation path
A global organisation needs consistency. It does not follow that every market and delivery partner can migrate to the same implementation technology, on the same timeline, at an acceptable cost. Treating technological uniformity as the goal would have made the design system a blocker for exactly the markets that most needed it.
So I made the design decisions themselves the thing that travelled. Semantic tokens expressed which decision a value represented rather than the value alone, and explicit compatibility mappings let a market adopt the system on the stack it already had. The system stopped asking teams to build the same way and started telling them what had to be true of whatever they built.
Two routes to global consistency
One implementation path
Uniformity by technology
Consistency is enforced by the technology itself.
- Every market and partner migrates to one renderer and one framework
- Adoption is gated on migration timelines the design system does not control
- Markets that cannot migrate stay outside the system entirely
Portable design intent
Consistency by explicit intent
Consistency is enforced by the intent that travels, not by a shared runtime.
- Design decisions are expressed semantically rather than as one implementation
- A market can adopt the system on the stack it already has
- The system reaches implementations it could never have migrated
I took the second route. Global consistency does not require every team to build the system the same way. It requires the important design decisions to survive the handover.


From documentation to design contracts
Documentation had already solved a version of this problem once, by making the design language learnable outside the central team. It could not solve the second version, because it still asks every developer and delivery partner to reconstruct design intent from a design file plus written guidance. That works when the reader shares context with the author. Across a global delivery ecosystem, most readers do not, and the reconstruction is where implementations diverge.
I proposed explicit design contracts and drove that direction. A contract is the next step in the same lineage, not a replacement for design work: the same intent, expressed in a form that can be read, reviewed, implemented and tested without the author in the room. That is what makes design intent portable, able to leave the room it was made in and still arrive intact.
One decision inside this work mattered more than the rest. An earlier framework-based exploration had tested how far the system could move from guidance into executable implementation. It was useful: building the system as running code forced structure, behaviour, state logic and constraints to become explicit, and it showed what a specification actually has to contain.
A framework could execute the system, but it could not be the system.
Tying design authority to one framework would have made the system's reach a function of that framework's adoption. So I moved the source of authority up a level, into governed design intent that any renderer could satisfy. The implementation became a consumer of the system rather than its definition. This was a decision about where authority lives, not a preference between front-end technologies.
What has to reach implementation, and what carries it
- 01IntentWhat the component is for, and what it must not be used for.Partly visual
- 02Anatomy and variantsStructure, slots and the variant set a team is allowed to use.Visual
- 03StatesEvery state, including the ones a static frame rarely shows.Partly visual
- 04Semantic and token relationshipsWhich decision a value expresses, not the value itself.Contract
- 05BehaviourWhat happens over time, on interaction and at runtime.Contract
- 06Accessibility expectationsRoles, semantics, focus behaviour and assistive-technology outcomes.Contract
- 07DependenciesWhat the component requires to behave correctly in a host application.Contract
- 08Responsive constraintsThe rules behind the breakpoints, not only two rendered widths.Partly visual
- 09Validation criteriaHow anyone can tell whether an implementation actually conforms.Contract
A design file communicates appearance extremely well. The highlighted rows are the requirements it cannot reliably carry, and they are exactly where implementations diverged.

Making design intent verifiable
Contracts made expectations explicit, which immediately raised the next question: how does anyone know an implementation actually conforms? Answering that with review alone repeats the original limit. It asks a small central team to manually inspect the output of an ecosystem far larger than itself.
I defined which expectations should be deterministically checkable, and where that boundary sits. Eight questions stopped needing a reviewer.
- 01DOM structure. Does the implementation have the anatomy the contract describes?
- 02Attributes. Are the required properties and semantics actually present?
- 03Geometry. Do measurable spatial relationships hold at the sizes that matter?
- 04Interaction. Does the component respond as specified to real input?
- 05Runtime behaviour. Does it still behave correctly once it is running in a host page?
- 06Semantics. Is the meaning exposed to assistive technology the intended one?
- 07States. Is every declared state reachable and correct, not only the default?
- 08Dependencies. Is everything the component needs present and resolved?
Whether the result is the right design is not on that list, and should not be automated away. That is the whole move: implementation expectations became testable rather than purely interpretive, so governance could rest on inspectable evidence, and judgement stayed where judgement belongs.

AI as a controlled execution layer
None of the work above was done for AI. It was done because distributed implementation was losing design intent. When AI-assisted implementation became practical, the architecture turned out to have a second use. Giving an agent a design file does not give it design-system intent; it inherits the same reconstruction problem the implementation teams already had, running faster.
The goal was not to let AI design the experience. It was to make the system explicit enough that AI could implement the experience we had already defined.
So the sequence changed. Instead of design file, then interpretation, then implementation: governed design intent, bounded execution, deterministic validation, then a human decision. I framed the problem, designed the execution architecture, set the validation strategy and governance boundaries, and designed the evaluation that tested it. AI executes inside a governed design system. It does not replace design authority.
Where design authority sits
Direct design interpretation
Intent reconstructed
The agent reconstructs intent from predominantly visual evidence.
- Design source, then interpretation, then implementation
- Behaviour, semantics, states and dependencies are inferred during execution
- Nothing independent establishes whether the result conforms
Contract-mediated execution
Intent supplied
Generated output and model inference never become the source of truth.
- Governed intent, bounded execution, deterministic validation, then a human decision
- Contract, foundations, dependency closure and required assets travel with the task
- Expectations are declared before implementation, not reconstructed after it
The difference is not how the model is prompted. It is whether the system tells the executor what it must satisfy, and whether anything checks that it did.
Proving it, not asserting it
An architecture that sounds correct is not evidence. I designed a controlled benchmark to separate a repeatable execution model from a convincing demonstration: direct design interpretation against contract-mediated execution, two components, frozen conditions. Then I tested whether the same model survived a real component workflow, including the part where something goes wrong.
First-pass conformance under frozen benchmark conditions
22% to 89%4 / 18 to 16 / 18
First-pass conformance, Toggle
Direct design interpretation against contract-mediated execution, a difference of 66.7 percentage points.
56% to 94%10 / 18 to 17 / 18
First-pass conformance, Text Input
The same comparison on a second component, a difference of 38.9 percentage points.
Explicit design contracts and dependencies materially improved first-pass implementation conformance in both benchmarks, and the gains landed exactly where a visual source communicates poorly: runtime behaviour, semantics, states and dependencies. A secondary runtime-behaviour check moved from 0 / 3 under direct interpretation to 3 / 3. This was a controlled evaluation of an architecture hypothesis, not an AI demonstration: each condition ran three times against an equivalent task type and a frozen scaffold, scoring six predeclared normative cells per run, with no validator feedback and no correction loop before first-pass scoring.
From benchmark to a working delivery loop
A benchmark shows a direction. It does not show that a team could work this way. For a modal component, runtime validation exposed an incompatibility involving native dialog behaviour, backdrop handling and interaction outside the panel. The finding is the interesting part: the system caught it before acceptance rather than leaving it for a reviewer to notice. After analysis and correction, 16 of 16 validation areas passed on a clean revalidation run, and the final output went through human visual acceptance.
Execute
- 01 CONTRACTGoverned contractThe component definition the work must satisfy
- 02 EXECUTIONAI-assisted implementationAn implementation produced inside the declared constraints
- 03 VALIDATIONDeterministic validationBrowser and runtime checks against the contract
- 04 FINDINGFinding detectedAn incompatibility made visible rather than shipped
Resolve
- 05 DECISIONDesign decisionDecide whether the implementation or the contract is wrong
- 06 CORRECTIONCorrectionApply the governed correction
- 07 REVALIDATIONClean revalidationA fresh run, not a patched one
- 08 ACCEPTANCEHuman acceptanceThe final design decision stays with a person
The workflow detects non-conformance and routes uncertain cases to human review.
What became possible
FOR DESIGNERS
A system to design within, not around
Foundations, components, variants and documentation that let designers across markets produce locally relevant work inside one shared language, with central review available where it helped.
FOR DELIVERY
Less reconstruction, less ambiguity
Implementation expectations stated explicitly rather than inferred, so a delivery partner does not have to rebuild the designer's reasoning before writing code.
FOR THE ORGANISATION
Conformance answerable by a check
Structure, behaviour, semantics, states and dependencies that a test can answer, so governance rests on inspectable evidence rather than on how much one central team can personally review.
FOR WHAT COMES NEXT
A system a machine can execute against
An operating model where AI-assisted implementation is bounded by governed intent, verified deterministically and accepted by a person, demonstrated in controlled benchmarks and a practical delivery loop.
This operating model is now moving into active use. As part of an ongoing platform migration, markets are beginning to work with contract-based design intent in real delivery rather than only controlled validation.
The contract-mediated execution model reflects the system's evolving operating model and controlled implementation approach, not how every market ships today.
Confidentiality note
This case study is presented in accordance with professional confidentiality obligations. Internal project names, team names, tool names, proprietary schemas, token naming conventions, private documentation and implementation details are not disclosed, and no internal design files or dashboards appear here. Scale figures are used as context only. Benchmark and validation evidence is bounded to the components and conditions described. Further detail is available for discussion in an interview.