Kacey Wood

Work

Dice Design System

In 2024, I joined BetMGM to help build Dice, a multi-brand design system supporting Sports, Casino, and Player Experience across a shared global platform.

My work focused on building the foundations that would allow brands to maintain their own identities without requiring engineering to rebuild the same experiences. I led token architecture and component design, worked closely with engineering to align design and code, and helped teams adopt the system through education and ongoing support.

Together, we consolidated 350+ one-off implementations into a library of 32 global components, established Figma and Storybook parity, and created a shared foundation for how teams build. The work was recognized with the 2025 Zeroheight Best Collaboration Award.

  • Token architecture
  • Component design
  • Accessibility
  • Adoption
Company
BetMGM & Entain
Role
Senior Design Systems Designer
Timeline
2024–2026
Team
8 DS designers
10+ DS engineers
Dots rolling into a die and building the Dice wordmark

Background

One Codebase, 40+ Brands

BetMGM was founded in 2018 as a joint venture between MGM Resorts International and Entain, bringing together MGM’s entertainment expertise and Entain’s global gaming technology.

Behind the scenes, BetMGM operates on Entain’s shared technical platform, a monorepo supporting 40+ sports betting and gaming brands worldwide.

Each brand has its own design teams and product priorities, but they all rely on a centralized engineering organization to build and maintain the platform.

Monorepo current ways of working: all development teams share one codebase, then regions USA, UK, and Brazil and Canada, each with its own brand strategies

In theory, sharing a codebase should make building faster and more consistent. In practice, things weren’t quite that simple.

Brands needed flexibility to support their own markets and product experiences, but there was little alignment around what should remain consistent and what could be customized. Design teams worked independently, often solving the same problems without knowing another team had already built a solution.

Over time, that created four recurring challenges:

Inconsistent
No central source of truth for shared components and patterns.
Messy
New solutions were often built on top of existing workarounds.
Slow to build
Engineering spent time navigating and maintaining duplicate implementations.
Misaligned
What designers created didn’t always match what engineering could build.

Finding balance

Finding the balance between consistency and autonomy

Before building Dice, we met with designers and engineers across the organization to better understand their needs and where things were breaking down.

What became clear was that both groups needed something different.

Engineering needed a consistent foundation that could scale across brands without increasing maintenance. Designers needed enough flexibility to support their individual brand identities and product experiences.

The challenge wasn’t simply making everything consistent. It was figuring out what should be shared, what could be customized, and how both could work together.

How might we

Figure out what should be shared, what could be customized, and how both could work together?

That became the foundation for how we approached Dice.

Solution

Dice: one foundation, many identities

We built Dice as a shared design system flexible enough to support 40+ brand identities while maintaining the consistency needed to scale globally.

Rather than asking every brand to adopt the same visual language, we focused on creating a common foundation that could adapt to different brands without requiring separate component implementations.

The work extended beyond the library itself. It included the foundations, architecture, collaboration processes, and education needed to make the system something teams could actually use.

  1. 01

    Foundations

    We started by establishing the core foundations that components and product experiences would share.

    This included color, spacing, typography, grids, and elevation, creating a consistent starting point while allowing individual brands to express their own visual identities.

    These decisions gave designers a shared language and helped engineering work from a more predictable set of values.

    • Color

    • Spacing

    • Type

    • Grid

    • Elevation

  2. 02

    Semantic Architecture

    One of the most important decisions was separating a brand’s visual identity from the components themselves.

    I helped architect a three-tier token system, moving from reference values to semantic tokens and component-level tokens.

    Rather than hardcoding styling into individual components, we could define how a component should behave and allow each brand to determine how it should look.

    This meant the same component could support different colors, typography, and styling across brands without requiring engineering to build and maintain separate versions.

    The result was a foundation that supported brand differentiation without sacrificing consistency.

    1. Value #FF5A5A
    2. Reference ds.ref.palette.yellow-500
    3. Semantic ds.sys.color.caution
    4. Component ds.comp.alert-caution-background-color

    This is an error alert message

    ds.alert-caution-background-color
  3. 03

    Component Library

    With the foundations in place, we began consolidating existing patterns into a shared component library.

    I partnered closely with engineering to align component anatomy, properties, interaction patterns, and accessibility requirements before building them in Figma and Angular.

    A major priority was keeping Figma and Storybook aligned so designers were working with the same component capabilities available in code.

    This gave both teams a more reliable starting point, reduced ambiguity during handoff, and helped prevent the design-to-code drift that had existed previously.

    Instead of maintaining hundreds of variations of similar patterns, teams could build from a smaller set of flexible, production-ready components.

    Figma Buttons file, with anatomy, variants, and properties matching Storybook
    Figma
    Entain Storybook Button component, with the same variants and usage in code
    Storybook
  4. 04

    Governance

    Building a shared library was only part of the work. We also needed a way for it to continue evolving as more teams started using it.

    We established contribution workflows, component proposals, and QA reviews to help teams introduce new patterns without creating the same fragmentation we were trying to solve.

    The goal wasn’t to prevent teams from building something new. It was to make sure we understood when a solution should remain specific to one product and when it could benefit the broader system.

    This helped balance the need for innovation with the responsibility of maintaining a shared foundation.

    Contribution process from Discover through Design, Build, Doc, and Publish
  5. 05

    Education & Support

    Adoption wasn’t something we could solve by publishing a library and expecting teams to use it.

    We worked directly with product designers and engineers through workshops, education sessions, and ongoing support to help them understand how to use Dice in their day-to-day work.

    A big part of that was helping teams navigate the flexibility of the system, whether they needed an out-of-the-box component or a more customized experience built from shared foundations.

    These conversations also gave us a continuous feedback loop, helping us understand where the system worked well and where it needed to evolve.

    Presenting the Dice design system on stage Sprint planning at a table Education session on Slots in V2 Global Library, with other faces covered
  6. 06

    Documentation

    To make Dice easier to adopt and maintain, we created living documentation in Zeroheight that connected the work happening across design and engineering.

    Rather than treating documentation as something created after a component shipped, we made it part of the system itself.

    Designers and developers could reference component usage, token architecture, accessibility guidance, and contribution workflows in one place.

    This helped establish a shared understanding of how components should be designed, built, and maintained.

Outcome

A foundation teams could build on

Dice gave design and engineering teams a more consistent way to build across brands without losing the flexibility each product needed.

We replaced fragmented, one-off implementations with a shared component architecture, reduced the effort required to maintain patterns across products, and established a common language between design and engineering.

Global components32
Built on a shared semantic token architecture.
One-off implementations350+
Consolidated into reusable patterns across Sports, Casino, and Player Experience.
Sports adoption90%
Dice became the foundation for the majority of Sports experiences.
Casino adoption80%
Expanded the system across Casino, with continued integration into Player Experience.
New features100%
Built using the design system.

Making bigger changes possible

Beyond the immediate improvements, Dice changed what teams could realistically take on.

With shared components and semantic tokens in place, major visual initiatives like dark mode and product-wide styling updates became much easier to introduce.

Instead of coordinating hundreds of individual component changes, teams could update the shared foundations and allow those changes to carry across the experience.

What previously required extensive manual effort could now be managed through the system.

Real-life use case

A small change that used to take two years

One of my favorite examples of Dice’s impact is a seemingly simple update to the pill navigation component.

  1. May 2021

    The business wanted to change the pill outline from gray to gold.

    It sounds like a tiny update, but multiple teams had built and maintained their own versions of the component. Before engineering could change the color, they needed to figure out which implementation belonged to which team.

    The change took nearly two years to roll out completely.

  2. Today with Dice

    With pills consolidated into the design system, the same styling update can be made in under a minute on the design-system side and propagated across implementations in the next release cycle.

It’s a small example, but I think it captures why the work mattered.

A design system doesn’t just make components consistent. It gives teams a way to make changes without solving the same problem over and over again.

Lessons learned

  1. 01

    Autonomy and alignment have to be defined before you build

    One of my biggest takeaways was that consistency and autonomy aren’t opposites. The challenge is defining where each belongs.

    If designers are told they have complete flexibility, but engineering needs alignment to ship, those expectations will eventually conflict.

    A design system can support those decisions, but it can’t make them for the organization. Teams need to agree on what’s shared and what’s flexible before the system can scale.

  2. 02

    A design system is a culture change, not a deliverable

    You can build a great component library, but if teams continue creating one-off solutions and working independently, you haven’t really solved the problem.

    The real shift happens when teams start thinking beyond their individual product needs and contribute to something shared.

    Building the system is one challenge. Changing how people work together is another.

  3. 03

    Understand what exists before building something new

    It’s easy to get caught up in what the perfect design system should look like.

    But working across a large organization taught me the importance of understanding what’s already been built, what teams actually need, and what can realistically ship.

    Start with the foundations that solve today’s problems, then give the system room to evolve.

    A lean component that teams can use is far more valuable than an overly complicated one that never ships.

some of the many amazing people behind Dice
A big group from the Dice team standing together outdoors at dusk Four teammates on a ferry, with the Statue of Liberty and the Manhattan skyline behind them The Dice team crowded together for a selfie on stone steps