Selected work

airCloud Select · Design system · B2B software

A shared design system for airCloud Select

Different teams, different patterns. I led the move to one shared system.

At a glance

System at a glance

airCloud Select was one of Hitachi Cooling & Heating’s B2B software products. It relied on an Adobe XD style guide rather than a shared working system that could evolve with the product.

When the team migrated from XD to Figma, I saw an opportunity to do more than recreate the existing files in a new tool. I proposed and led the initiative to build a reusable, token-based design system, from auditing and prioritising existing patterns through component architecture, stakeholder alignment and documentation.

  • 10+component families
  • 50+variants
  • 3cross-functional workshops
  • 3-tiertoken architecture
Role
Lead Product Designer
Responsibilities
Design system strategy · Component architecture · Stakeholder alignment · Documentation
Worked with
Product · Engineering · Brand · Marketing
Tools
Figma · Figma Variables

01 / The problem

A static style guide wasn't enough to support a growing product ecosystem

The issue wasn’t a lack of design guidance. It was that the guidance wasn’t connected to how products were being designed and built.

Handoff friction. Without shared component definitions and usage guidance, UI decisions often needed extra clarification between Design and Engineering.

Product drift. Similar components and patterns were evolving differently across products, making consistency harder to maintain over time.

Limited shared ownership. Design standards were largely maintained within Design, with limited involvement from the wider teams responsible for building and evolving the products.

As the product portfolio grew, these gaps increased repeated decision-making, made consistency harder to maintain, and created more work across Design and Engineering.

Screenshot of the Adobe XD style guide on a grey canvas, showing miscellaneous UI elements, circular buttons, buttons and button states, with several labels cut off or overlapping.
The static Adobe XD style guide put every component on one flat sheet. Component headings are cut off (“Designe…”, “Unit Sel…”, “Circ…”), and state labels such as “Dropdown activ…” and the Default and Hover button-state names overlap the examples they describe.
Side-by-side buttons. airCloud Pro uses a full-width primary and an outline-on-colour-fill secondary; airCloud Select uses a fit-width primary and an outline-on-white secondary.
Same pattern, different treatment: airCloud Pro (left) and airCloud Select (right) size and style their primary and secondary buttons differently.
Two navigation bars: airCloud Pro's web header with a red tab bar and sub-tabs, above airCloud Select's desktop title bar with window controls, a menu bar and an Export action.
Navigation had diverged too: airCloud Pro (top) uses a web-app tab bar with sub-tabs; airCloud Select (bottom) uses a desktop menu bar with window controls.

02 / The approach

Auditing first, prioritising with intent

I inherited airCloud Select from a previous contractor, along with an Adobe XD style guide that documented visual styles but offered little guidance on how components should be used. As the organisation migrated to Figma, I was designing new screens while auditing the existing product and rebuilding its reusable foundations in the new tool, alongside my other product responsibilities, with limited dedicated time and engineering capacity.

I reviewed airCloud Select and related products to see how common components and patterns were actually being used, which surfaced duplicated patterns, inconsistent states and gaps in guidance.

Rather than standardising everything I found, I scoped the first version around three criteria:

  • Frequency. Patterns that appeared repeatedly across screens and products.
  • Reuse. Patterns that could support multiple workflows, not just one.
  • Ambiguity. Patterns where inconsistent states or missing guidance created the most room for interpretation.

Across the two products, the audit examples below show four button treatments with no shared hierarchy, one naming inconsistency and one heading-style mismatch.

Four treatments of the same action pattern: Pro's Stop All / Set All, and three Select button groups (Cancel / Next, a six-button toolbar with no primary or secondary, and Cancel / Remove / Add with two solid buttons).
Duplicated patterns: one action pattern, four treatments, including a six-button airCloud Select toolbar with no primary or secondary hierarchy and two solid buttons side by side.
Three dropdown examples from the XD style guide: a default, one labelled 'Dropdown active mouse over' with the Room field filled red under the cursor, and one labelled 'Dropdown button hover' with its add button filled red.
Hover labels use different terminology—‘active mouse over’ for the dropdown field and ‘button hover’ for the add button—without a consistent naming convention.
Two list cards: airCloud Pro's onboarding card has a bold red uppercase heading; airCloud Select's notification card has a bold black title-case heading.
Inconsistent heading treatment: the same list-card structure has a bold red uppercase heading in airCloud Pro's onboarding checklist and a bold black title-case heading in airCloud Select's notification feed. The uses differ, but the primary heading is styled inconsistently.

03 / The system

From static styles to a system the team could use

The XD style guide relied on static values, so I introduced a simple three-layer token structure in Figma (primitive, semantic and component), giving the team one place to manage design decisions while keeping components flexible as the system evolved.

On top of that structure, I turned the audited patterns into reusable Figma components, covering common states, sizes and variations rather than just the default UI, along with usage guidance for when and how each component should be used. This moved the system beyond a visual library into something the team could use consistently in day-to-day product work.

  1. Primitive

    Raw, context-free values

    • color-blue-500
    • spacing-16
    • radius-8
    • type-size-14

    maps to

  2. Semantic

    Values mapped to a role or intent

    • action-primary
    • surface-default
    • text-primary

    maps to

  3. Component

    Applied to a specific UI element

    • button-primary-bg
    • card-padding
Top: redlined buttons in three sizes with horizontal padding of 39, 33 and 17. Bottom: a grid of primary buttons in large, medium and small, each shown default, hover, disabled and pressed.
One component example: button sizing and interaction states, with default, hover, disabled and pressed states for each of three sizes.

04 / Alignment

Turning a design initiative into shared ownership

Once the initial system was tangible enough to discuss, I used it as the basis for workshops with Product, Engineering, Brand and Marketing.

The design system could not scale if it remained owned only by Design. Across three workshops, I aligned the different functions on where consistency mattered, what needed to stay flexible, and how the system should evolve. These sessions helped turn the work into a shared initiative and build support for further investment and closer engineering involvement.

05 / Impact

Building a foundation the organisation kept investing in

  • A clearer shared foundation.

    The system gave designers a reusable reference for common patterns and reduced reliance on static guidelines.

  • Engineering-ready documentation.

    Components, states and sizing were specified down to the pixel, giving engineering a clear, detailed reference to build from.

  • Continued investment.

    The initial system helped build stakeholder support for further development, including a leadership commitment to additional engineering resourcing and a roadmap for the next phase.

Before handing over, I documented the system, aligned the team on priorities, and set a roadmap for Phase 2 and Phase 3: deeper engineering integration, wider adoption and clearer governance. Not everything was solved; shared ownership and decision rights still need to mature. But the foundation and stakeholder support were in place for the system to keep evolving without me.

  1. Now

    Delivered

    Core system

    • Documentation and usage guidance
    • Pixel-level specifications
  2. Next

    Roadmapped

    Engineering integration

    • Deeper engineering partnership
    • Wider adoption across teams
  3. Later

    Roadmapped

    Governance

    • Clear decision rights
    • Broader coverage

Reflection: what I’d change next time

  • Involve Engineering earlier, so design and code components evolve together from the start.
  • Define adoption measures earlier (component usage, system coverage) to track value beyond the initial rollout.
  • Establish clearer ownership and governance earlier, so future decisions depend less on individual designers.