top of page

Design System for
Enterprize Application

Enterprise design system for legal firm

Key highlights of this project

“Design Systems is not just about components, but about

strategy, governance, scalability, and cross-functional alignment”

ss.png

Overview

Role & Duration

Aderant is a global leader specializing in business management software solutions for law firms and other professional services organizations.

 

Key Features:

Practice Management: Streamlining daily operations, managing cases and matters, time and expense tracking, billing and e-billing, and integrating outside counsel guidelines (OCGs) to improve efficiency and profit.

 

Financial Management:

Handling global accounting, financial reporting, and compliance, including trust accounting.

 

Business Intelligence:

Providing tools and dashboards to analyze financial performance, identify areas for improvement, and make informed business decisions.Other Solutions: Offering modules for client management (CRM), knowledge management, timekeeping, compliance, docketing, calendaring, and legal case management. 

  • Principal Designer / UX Lead, led creation and rollout of a scalable, component-driven design system that could work across multiple product lines and tech stacks.

  • Defined architecture, taxonomy, naming conventions

  • Built the contribution model and governance framework

  • Drove adoption across design, dev, QA, and PM teams

  • Partnered with frontend leads to sync Figma with code (Storybook/Angular/React)

Duration
11 Months

Team Size
10+ 

Team

UX Designer, Product Manager, Fullstack Developer, Backend Developer, QA, Scrum Master, Engineering Architect

Client

aderant-logo-new.webp

Project Summary

Problem Statement

“How might we unify the UX language across products and accelerate development while improving accessibility, usability, and brand coherence?”

Success Criteria

Built Design System for:​

  • Product Type: Multi-tenant enterprise platform

  • Design Team: 10+ distributed designers

  • Engineering Teams: 100+ product teams,

  • Tech Stacks: 3

Pain Points

  • Fragmented visual language and inconsistent UI patterns

  • Delays in dev–design handoff

  • Accessibility issues (e.g., inconsistent ARIA usage)

  • Designers creating redundant components in silos

Challenges

  • Customised requirements for individual products

  • Multiple technology stacks for development

  • Geographically divided design and engineering team working in silos

  • Attrition in design and engineering teams

  • Unavailability of a single source (guidelines) of truth for using the design assets

  • Inconsistency in implementation due to manual component creation by the engineering team

Outcome

Vision & Goals

Vision & Strategy

Design Systems at Scale

  • Drive efficiency: Reduce design & dev time by   reusing components.

  • Ensure consistency: Unified look, feel, and interaction across products.

  • Build accessibility in from the start  leads to compliance & inclusivity.
     

Enabling Multi-Product Platforms & Teams

  • A shared foundation that scales across products, geographies, and channels.

  • Empowers cross-functional teams (design, dev, product) to speak the same language.

  • Reduces duplication, enabling faster onboarding for new teams.
     

Alignment with Business Priorities

  • Faster time-to-market  leads to accelerated product releases.

  • Brand cohesion leads to stronger customer trust and recognition.

  • Operational savings leads to less rework, fewer defects, lower maintenance cost.

Goals of Design System

  • Consistency:
    Ensure a unified visual and interaction language across products.

  • Efficiency:
    Speed up design and development by reducing redundant work.

  • Scalability:
    Make it easier to expand products and features without reinventing components.

  • Accessibility & Inclusivity:
    Build accessibility into the foundation of design and code.

  • Collaboration:
    Create a shared language between design, development, and product.

  • Quality:
    Improve product reliability and reduce UI/UX bugs.

  • Brand Alignment:
    Ensure the digital experience reflects the company’s brand identity.

Approach

1. Audit & Analysis

  • Inventory of all components (across products)

  • Identified top-used patterns and redundancies

  • Benchmarked accessibility and brand compliance

 

2. Foundation & Structure

  • Defined tokens: colors, typography, spacing, elevation

  • Created modular components (buttons, inputs, tables, modals)

  • Built pattern libraries: page templates, form flows, dashboards

​​

3. Governance & Contribution

  • Built a component request and approval process

  • Defined versioning and deprecation guidelines

  • Established core team + satellite contributors per product line

 

4. Adoption & Evangelism

  • Workshops with design + dev teams

  • Created onboarding guides, Figma kits, and developer docs

  • Paired with engineering to ensure component parity

Requirement Gathering

CSD (Certainties, Suppositions, Doubts)

During the requirement gathering phase, we aligned the team on objectives, commitments, resources, and risks.

We then used the CSD (Certainties, Suppositions, Doubts) Matrix to enhance planning and decision-making, leading to the confirmation of the following points:​

  • Leveraging MUI as a base to create Design system

  • Documenting the design system in Supernova

  • Demonstrate the components' functionality in Storybook

  • Aderant’s brand identity in DS

  • Documenting each component with its use cases

  • Using Atomic Design methodology

Automic Design System

Aderant’s Design system is based on Brad Frost’s Design approach popularly known as “Atomic Design Mehtodology”.

Atoms:

Basic building blocks


Molecules:

Combination of atoms


Organisms:

Complex molecules made of molecules


Templates:

Layout & Structure


Pages:

Specific instances of templates

3.png
4.png

Process

Setup

Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.
We then duplicated the file to serve as the primary design system file for Aderant, while keeping the original as a backup for future reference.

To access the source MUI components and library, the paid version of Figma MUI v5.16.0 was purchased and imported into Aderant’s environment.

6.png

Establish Foundations & Design Principles

After understanding the product vision, we reviewed the brand guidelines and UI principles to grasp the company's core values. Based on this, we defined the typography, colors, grids, spacing, and elevations.
 

Brand Guidelines

To define typography, we reviewed the existing product components to understand fonts, weights, and properties like line height and letter spacing. Based on this, we created a type scale to suit Aderant's products.

7.png

Colours

We reviewed the brand colors and decided to keep the semantic and neutral colors consistent across all products, while adapting the product-specific brand colors to maintain unique identities.

8.png

We then defined color palettes, ensured accessibility compliance, and defined color tokens for consistency.

Grid & Breakpoints, Spacing and Elevations 

9.png

Define Design Tokens

Design tokens are used to store resuable values and are key to keeping our designs consistent, scalable, and efficient.
For Aderant, we’ve organized tokens into different categories: primitive tokens (like colors), semantic tokens (representing meanings like "primary-hover color"), and component tokens (specific to elements like buttons or chips). We also have tokens for other design properties like grids, shapes, elevation, and spacing, making it easier to apply and update design values across the system.

We also have tokens for other design properties like grids, shapes, elevation, and spacing, making it easier to apply and update design values across the system.

10.png

Property Tokens

We created property tokens for typography, then used these tokens to build the typography variables.

Finally, we applied these tokens to define the text styles used throughout the file.

11.png

Define Iconography

Iconography provides instant visual communication in design. Aderant was previously using the Fontastic icon library, but we reorganized its icons into categories and added five different states (filled, outlined, rounded, two-toned, and sharp) based on MUI standards.​

However, Fontastic had limitations with these variations, so after careful review, we updated the library to use Material Icons, with just two variants: filled and outlined. Additionally, we created an icon component that can be used across the file for scalable icons and inverted state.

12.png

Creating & Updating Existing MUI Components

The components are grouped into categories like Inputs, Data Display, Feedback, Surfaces, MUI X, Layout, Pre-built, and Navigation.

The 'Parking Lot' category includes MUI components that aren't needed in Aderant right now but may be used later.

13.png

Component Customization Process

14.png
15.png
16.png

Documentation & Guidelines

Each component has its own documentation, which includes examples, details about the component and its properties, customization tips, and any specific usage guidelines.

17.png

Testing & Validating Each Component

After customizing a component, showcase it to the client for review, add comments if needed, and then update the "Components Completion Process Checklist" with the status set to "Done." This checklist tracks the progress of each component’s customization, with different stages that are updated as work progresses.
Each component has its own checklist on its respective page, ensuring clear tracking of the entire process.

18.png
19.png

Tracking the Progress & Changes

While customizing each section, there are instances where we need to revise certain components multiple times due to changing requirements or use cases. To make these changes easier to track and identify which sections are frequently updated, we created a "Component’s Toolbox" as a progress tracker.

20.png

Creating Pre-builts components

Once all components customization is completed, the next step is to create pre-built components/templates.

These can be either created by:

  • Customizing existing components.

  • customising & combining existing components to create a template.

21.png
22.png

Publishing Design System

After the design system was approved for use in products, we set up version control with weekly publishing, using semantic versioning for better maintenance. Each release highlighted the major changes made in the design system.

We publish updates every Monday, and clients have already been notified about this on a separate Slack channel. Additionally, a few auto-saved versions of components were published separately from the regular library updates. This was done to immediately reflect changes made to certain components that the client needed to use right away.

23.png

Handoff Documentation

For the handoff part, we created several artifacts which would help clients in educating the team about design system, updating & maintaining the design system.

  • Change Log

  • Design Best Practices

  • Video Documentation for complex components

  • Step-by-step guide to create/update video documentation

24.png

Results

As the client starts using the new Design System, we've seen some early results that show its impact on workflows, consistency, and collaboration.
These initial outcomes can later be turned into measurable metrics to track the system's long-term effectiveness. Here are the key outcomes:

Higher adoption among teams to ensure consistency across products
Increased UI consistencies
Faster time to market with reusable components
System component usage >> customised components usage
Scalable components to fit different products’ requirements
Reduced training costs with clear documentation
Better collaboration between various teams
Quality control with fewer design inconsistencies
Easy maintenance with centralised update across products

26.png
27.png
28.png

Outcome/Impact

Governance, Versioning, and Communication

Version Control

Use semantic versioning (e.g., v2.1.0) so teams know if it’s a patch, enhancement, or breaking change.

 

Change Management Process

  • Propose → Review → Approve → Document → Release.

  • Involve design + dev + product stakeholders to avoid surprises.

​

Deprecation Strategy

  • Mark old components as deprecated before removal.

  • Give teams migration guides and timelines.
     

​

Testing Across Products

Automated regression testing + visual snapshots (e.g., Percy, Chromatic) to detect unexpected changes.

​

Communication

Release notes, changelogs, and design system office hours to align cross-functional teams.

Design for Flexibility and Donsistency

Define Core + Extensible Properties

Core (fixed): accessibility, spacing rules, typography scale, color contrast.

Extensible (flexible): variants, states, theming, layout options.

​

Use Variants & Tokens

Example: a Button with size (sm, md, lg), type (primary, secondary, ghost), and state (default, hover, disabled).

Controlled flexibility avoids chaos while meeting diverse needs.​

​Guardrails, not Hard Walls:

Provide guidelines for when and how to extend.

Allow controlled overrides through tokens or utilities.

​

Real-World Testing

Test components in multiple product contexts before finalizing.

Challenges

  • Acknowledging WCAG & Color accessibility guidelines.

  • Getting actual user Data/feedback

  • Browser compatibility with components

  • Visualisation of stand alone components

Future Roadmap

  • If time permits, include a short forward-looking slide:

  • Integration with AI-guided UI suggestions

  • Self-service pattern request workflows

  • Accessibility automation

Other Wins

  • Components integrated into CI/CD pipelines

  • Enabled faster onboarding of new designers and developers

  • Set foundation for theming and future white-label support

Reflections/Lessons

  • Early buy-in from engineering leadership was critical

  • Documentation and ongoing support made adoption sustainable

  • Flexibility (design principles > rigid templates) helped teams adapt the system without resistance

  • Learned to treat the system like a product—with roadmap, backlog, feedback loop

More Projects

bottom of page