Dominion Energy

Building Dominion Energy's first design system — foundations & scalability

Role

Lead designer

Team

1 Product Manager
4 Engineers

Deliverables

UI Guidelines
Component Library
Dark/Light Theme

Overview

The gap between design and development

When I first joined the team working with Dominion Energy, the focus was more on producing workflow solutions rather than fully refining designs. High-fidelity designs utilized old components from their legacy products, but had limited functionality and a fragmented foundation system. As the product grew, we needed a system to establish and elevate the UI of the past, current, and future designs.

I joined the project halfway when the team's current designer went on maternity leave. Early into the project, I saw the opportunity to advocate and drive the adoption of a design system.

Audit

Old verses new

I ran an audit by collecting and documenting existing components from their legacy libraries in Figma and Storybook. Using Google Sheets, I grouped components into categories: text styles, colors, icons, buttons, navigation, notifications, cards, lists, and other common UI categories, making it easier to remove unnecessary styles and merge similar components. With all of these changes happening, I worked with development collaboratively to build channels of communication across Jira and Slack to map outdated styles and components to new ones.

Visual Foundations

1. Color

Part of Constellation's visual foundation update was to incorporate interaction states like hover and system the color system seen frequently in tag and badge components. To do so required an expanded color palette in neutrals, brand, and accent colors. I pulled primary brand colors from Dominion's Energy brand guide and followed Tailwind's naming convention to easily switch between dark theme and light theme down the line.

2. Typography

There were numerous text styles from their legacy web and mobile products, so I reduced the text styles from 41 to 15 for simplicity and consistency. To maintain WCAG AA text-on-color contrast, I reduced letter spacing and line height in the header and paragraph sizes to maintain contextual scanning.

3. Spacing and layout

I used an 8pt grid system to accomodate compact components for a utilitarian platform like Pyxis. This allowed design to develop UI consistency regarding padding, radius, and margins. For speed and consumer needs, Pyxis is built for desktop only with minimal responsiveness until there is more data articulating the need for breakpoints.

Components

1. Tags and badges

Part of Constellation's visual foundation update was to incorporate interaction states like hover and systemize the color system seen frequently in tag and badge components. To do so required an expanded color palette in neutrals, brand, and accent colors. I pulled primary brand colors from Dominion's Energy brand guide and followed Tailwind's naming convention to easily switch between dark theme and light theme down the line.

2. Modals

The previous modal did not have inline scrolling or vertical max-height within the viewport. To mitigate this, I worked with the lead developer to build the modal in 3 parts: title, body, and footer to ensure inline scrolling should content exceed the viewport limit. The title and footer remained fixed and sits on top of the body content.

3. Tables

Working with the development team, we updated the table to accomodate fixed cell components including tags, checkboxes, text links, and buttons. Previous iteration of the table component was built with fragmented atomic components, limiting design and user capabilities. Tables are an integral component of Dominion Energy, housing system and data entries for business and internal consumers.

Future

The work continues

Moving from a fragmented component library to an async design system required time, culture building, and technical expertise. Before my contract was up, here are a few things that were discussed with engineering during this transition.

Present

Closing the gap

I worked with engineering to establish a dedicated Jira board and Slack channel to internally communicate with designer future component changes and surface UI guidelines via Jira tickets.

Future

Adopting color theming tokens

Color tokens have been defined in Figma variables, but require active collaboration with engineering to adopt a semantic naming system. This is a much later step once dark theme becomes prioritized.

Thoughts

What I learned

Creating a foundational design system required a lot of forethought and discussion with developers. In hindsight, this being my first design system project, I would spend more time auditing collaboratively and take a "Marie-Kondo" approach to tidy and discard unwanted styles and components. This would lead to a more long-term approach of establishing a component library, guidelines, then a coded system with semantics. Overall, this project was a great learning experience and imbued a love for detailed design systems.

melmc.yang@gmail.com

melmc.yang@gmail.com

melmc.yang@gmail.com