Gallagher

Category

Enterprise SaaS / Insurance

Project Disclaimer: Because this work is under NDA, I can't show live screens or real data here. What I can share is how the interface was structured and the UX thinking that got us there.

Case Study

  • Role: UI/UX Designer, Audit & Analysis..

  • Sector: Enterprise SaaS / Insurance.

Arthur J. Gallagher & Co. (Gallagher) is one of the world's largest insurance brokerage and risk management firms, operating across 130+ countries. The Gallagher Client Portal is a global-facing SaaS product that gives enterprise clients real-time visibility into their insurance policies, claims, compliance documents, and risk data — all in one place.

While Gallagher already operated a corporate design system for its internal tools and marketing surfaces, the Client Portal required its own purpose-built design system — one tuned specifically for data-dense enterprise SaaS, complex user roles, global accessibility compliance, and seamless integration with engineering pipelines.

I was brought in as Lead UI/UX Designer to own this end-to-end: from system architecture through component delivery, WCAG remediation..

1. The Problem

Why a separate Design System?

Gallagher's existing corporate design system was built for marketing and internal HR tools — not for complex, data-heavy SaaS applications. Using it directly in the Client Portal created significant friction:

  • Inconsistent component behavior across enterprise data tables, filters, and multi-step workflows.

  • No accessibility baseline — the portal scored 65% on automated WCAG audits, blocking enterprise clients in regulated industries

  • Design-to-development bottlenecks — no standardised tokens or component specs meant engineers rebuilt UI from scratch each sprint

  • No shared design language for the portal's unique needs: role-based dashboards, bulk data actions, complex form flows, real-time status displays

  • Team of 6 designers with no unified workflow — inconsistent Figma structure, duplicate components, and high rework rates

The goal: design a system from the ground up that the Client Portal team could own, scale, and hand off to engineering with zero ambiguity.

2. Design System Architecture

The system was structured in four layers — a deliberate architecture decision to ensure that changes at the foundation level propagated automatically through every component, and that engineers always consumed tokens rather than hard-coded values.

2.1. The Four-Layer Architecture

Layer

Name

What it contains

L1

Global Tokens

Primitive values — raw color palette (hex), typographic scale (rem), spacing units (4px base grid), elevation levels, border radii. These are never consumed directly by UI.

L2

Semantic Tokens

Purpose-mapped aliases — color. surface. primary, color. status. danger, spacing.component.md, elevation. card. These are what components consume.

L3

Component Library

50+ Figma components built from semantic tokens — buttons, inputs, tables, modals, cards, charts, and nav patterns. Each documented with usage rules and accessibility annotations.

L4

Page Templates

Pre-built dashboard, list-view, detail-view, form flow, and empty-state templates built from L3 components. New feature teams start from templates, not a blank canvas.

2.2. Key Architecture Decisions
  • 8px spacing grid — all spacing values multiples of 8px, enforced as tokens. Eliminated the "pixel nudging" that caused design-dev drift.

  • Semantic token naming — components never reference primitive hex values. Changing the brand accent updates every component in one token change.

  • Dark / light mode ready — semantic tokens map to both themes from day one; no component rework needed to add theming later.

  • Figma variables + code parity — token names in Figma match CSS custom properties consumed by engineering. No translation layer, no drift.

  • Role-aware component states — components built with admin, read-only, and edit states baked in, reflecting the portal's multi-role permission model.

3. Component Library

The component library was delivered in phases over the first 6 months. Every component shipped with: Figma source file with auto-layout, interaction variants, and all states (default, hover, focus, disabled, error); semantic token annotations; accessibility annotations (focus order, ARIA roles, contrast ratios); and a usage-guideline page with do/don't examples.

Category

Components Delivered

Foundation

Color tokens, Typography scale, Spacing system, Elevation/Shadow, Grid

Navigation

Top nav, Side nav, Breadcrumbs, Tabs, Pagination

Data Display

Data tables, KPI cards, Charts (line/bar/donut), Status badges, Tags

Forms

Input fields, Dropdowns, Date pickers, Multi-select, Toggles, File upload

Feedback

Toast notifications, Inline alerts, Modal dialogs, Empty states, Skeletons

Actions

Primary / Secondary / Ghost buttons, Icon buttons, FABs, Split buttons

Layout

Page shells, Sidebars, Section containers, Responsive grid

Utility

Tooltips, Popovers, Drawers, Loading spinners, Progress bars

Component governance

  • Contribution model: any designer could propose a new component via a defined RFC (Request for Component) process.

  • Review gate: all new components reviewed by me against accessibility, token compliance, and naming convention before merging.

  • Versioning: Figma library versioned using semantic versioning labels (v1.0, v1.1, v2.0). Breaking changes communicated to team via changelog doc.

  • Dev handoff: Figma Dev Mode + annotated component specs. Developers had all measurements, token names, and interaction notes without asking.

4. Accessibility Audit & Remediation (WCAG 2.1)

4.1. The Starting Point: 65%

Before the design system work began, I ran a full WCAG 2.1 Level AA audit on the existing Client Portal using a combination of automated scanning (Axe Dev Tools, WAVE) and manual keyboard and screen-reader testing (NVDA + JAWS). The portal scored 65% — failing primarily on color contrast, focus management, and missing semantic labels.

4.2. WCAG Remediation Table

Criterion

Before

Status

After

Status

Color Contrast (text)

3.8:1

Fails AA

7.2:1

Passes AAA

Color Contrast (UI)

1.9:1

Fails AA

4.6:1

Passes AA

Focus Indicators

Absent

Fails

Visible ring

Passes AA

Screen-reader Labels

~40% coverage

Partial

100% aria-labels

Passes AA

Keyboard Navigation

Broken tab order

Fails

Logical tab flow

Passes AA

Error Messaging

Generic text only

Partial

Inline + role=alert

Passes AA

Skip Links

None

Fails

Implemented

Passes AA

Touch Target Size

24px avg

Fails AA

44 px min

Passes AA


4.3. How We Reached 92% in 3 Months
  • Month 1 — Audit & triage: Categorised all failures by severity (critical / major / minor) and assigned to component owners. Fixed all critical contrast failures first.

  • Month 2 — System-level fixes: Rebuilt colour tokens from scratch using APCA contrast algorithm. All semantic colour tokens verified against AA thresholds before entering the system.

  • Month 2–3 — Component rebuild: Buttons, inputs, modals and nav patterns rebuilt with correct focus rings (3px offset, 2px solid), logical tab order, and full ARIA labelling.

  • Month 3 — Re-audit & gap close: Re-ran full automated + manual audit. Remaining 8% represents complex third-party chart components pending vendor update.

  • Ongoing: Every new component requires accessibility sign-off before entering the library. WCAG checklist built into component RFC template.

My Design Approach

Stage 1 — Discover & Audit

Audited the existing portal for component inconsistencies, design-dev drift, and accessibility failures. Conducted stakeholder interviews with 4 PMs, 6 engineers, and 3 enterprise client representatives to map real usage patterns and pain points in the current portal experience.

Stage 2 — Define the System Scope

Ran a 3-day collaborative scoping workshop with the design team and engineering leads to agree on system boundaries, component priority, naming conventions, and the contribution model. This prevented scope creep and got engineering buy-in before a single component was drawn.

Stage 3 — Token Architecture First

Built the entire token hierarchy before touching components. This forced clarity on decisions that would otherwise be made inconsistently at the component level — brand colours, spacing rhythm, elevation model, type scale. All tokens were peer-reviewed with 2 senior engineers before being formalised.

Stage 4 — Component Build (Phased)

Components delivered in 3 phases: foundation → data display → complex interactions. Each phase had a 2-week QA period with the engineering team before the next phase began. This prevented the "big bang" launch risk where dozens of untested components land in production simultaneously.

Stage 5 — Accessibility Integration

Accessibility was not a retrofit — it was integrated into the component build process. Every component had an accessibility checklist in Figma before it was handed off. I personally reviewed the first 12 components end-to-end with screen-reader testing, then trained the team to run their own checks.

Stage 6 — Adoption & Governance

Ran a 2-hour system onboarding session with the full design team and key engineering stakeholders. Created a Notion-based documentation hub with usage guides, do/don't examples, token reference, and a changelog. Set up a weekly "DS office hours" slot for questions and contribution proposals.



4. Team Leadership & Mentorship Structure

Leading a team of 6 designers through a design system transition required more than just building components — it required building capability. Most of the team had never worked on a formal design system before. My mentorship approach was structured around making the system intuitive enough that designers wanted to use it, and rigorous enough that engineers could trust it.

Initiative

Description

Design Crits (Weekly)

1:1 feedback on in-progress work against DS standards and WCAG criteria

Component Ownership

Each designer owned 1–2 component categories; reviewed PRs before Figma handoff

WCAG Study Sessions

Bi-weekly accessibility workshops using real audit failures as teaching material

Token Documentation Sprints

Paired sessions to write usage guidelines and do-not-do annotations

Engineering Syncs

Rotational attendance at dev standups to build cross-functional vocabulary

Growth Plans

Quarterly goals per designer tied to DS quality, delivery speed, and accessibility scores

Team outcomes
  • Delivery speed improved 20% within the first quarter post-system launch

  • Feedback and revision cycles reduced by 30% through clearer component specs and usage guidelines

  • All 6 designers now independently contribute and review components against the DS standards

  • 2 designers now lead their own accessibility reviews end-to-end without escalating to me

  • Team NPS (internal) increased significantly after removing the ambiguity of "what component should I use?"