<?xml version="1.0" encoding="utf-8"?>

Every design system begins with understanding what already exists. Before defining tokens, patterns, or rules, teams need a realistic view of the interface they are trying to systematize. An interface inventory provides that foundation. It gathers the real building blocks of the product in one place, including visuals like buttons, fields, icons, color uses, layouts, and also interactions such as hover, focus, error, and disabled states. This helps teams study how the interface behaves, not only how it looks.

This step reveals the true condition of the product. Over time, especially in larger organizations with multiple teams, products accumulate variations that stay unnoticed until they are placed side by side. An inventory exposes inconsistencies, highlights outdated or duplicated patterns, and helps teams separate intentional decisions from accidental drift.

By treating the interface as a system instead of a collection of isolated screens, the inventory becomes the starting point for building a unified design language. It gives teams shared evidence, a clearer scope, and a stable base for defining the first version of the design system. It also prevents teams from designing components or styles that do not reflect real usage. Without this step, many decisions would rely on assumptions instead of facts.

Exercise #1

Understanding the interface inventory

Understanding the interface inventory

An interface inventory is a complete overview of the UI elements actually used across a product. It includes buttons, text styles, form fields, icons, and other components that appear throughout the interface. Traditionally, teams created this inventory by collecting screenshots of screens and components to see how the product is built today, not how it is assumed to be built.

Seeing these elements side by side reveals how many variations exist. Small differences in color, spacing, structure, or behavior become visible only when everything is grouped in one place. This helps teams spot patterns that need cleanup or consolidation, as well as outdated or duplicated components.

In modern products, an interface inventory goes beyond screenshots. It is built by reviewing rendered UI, design libraries such as Figma styles and variables, and existing code. This approach captures both design intent and real implementation, giving teams a shared and factual starting point before defining tokens, components, or system rules.[1]

Pro Tip: When mapping UI elements, focus on distinct variations rather than every instance. This keeps the inventory manageable and more useful.

Exercise #2

Why the inventory is the first step

A design system needs a reliable understanding of the current interface before anything new is created. An interface inventory provides this understanding by showing real examples of every UI element in use. It replaces assumptions with evidence and prevents system decisions from being based on incomplete or outdated knowledge.

When teams review the full set of existing elements, the underlying foundations become visible. Colors, spacing, typography, and states appear as they are actually used, not as they were intended. This makes inconsistencies and overlapping patterns easy to spot and clarifies where shared standards and tokens are needed. As a result, the inventory naturally becomes the starting point for defining system foundations.

This visibility also helps align stakeholders. Seeing the same evidence makes it easier to explain why changes are needed and builds support for improving consistency.

Starting with an inventory ensures that future system structures are grounded in reality. It becomes the reference point for defining tokens, naming conventions, removing outdated patterns, and shaping the first version of the design system. Without it, teams risk creating rules that do not reflect how the product truly works.

Pro Tip: When presenting the inventory, highlight patterns rather than individual screens. This helps others see the scale of the inconsistencies more clearly.

Exercise #3

Where inconsistencies come from

Interfaces often grow through many separate updates. Over time, teams introduce new components, adjust old ones, or create quick solutions for specific features. These choices may seem small in the moment, but they accumulate. When viewed together in an inventory, they reveal multiple versions of similar elements, each slightly different in size, color, behavior, or shape.

A major source of these inconsistencies is cross-platform work. Web, iOS, and Android interfaces often evolve in parallel, sometimes handled by different teams. Platform rules, tooling, and delivery timelines vary, which can lead to diverging patterns even when the intent is shared. Without a unified view, these differences stay hidden inside each platform.

Some inconsistencies also come from older parts of the product that were never revisited, while others appear when new contributors join or teams move quickly between project phases. The inventory makes all of this visible by pulling elements from all platforms into one place. It shows which patterns have drifted apart and which styles no longer align with newer work.

Understanding where these inconsistencies come from explains why the product can feel uneven and highlights what needs to be unified before building reusable components and shared foundations.[2]

Exercise #4

Collecting UI screenshots

Collecting UI screenshots

Gathering screenshots is a practical starting point for building an interface inventory. This step focuses on capturing distinct UI elements across the product, such as headings, fields, buttons, tabs, icons, and other repeated components. The goal is not to document every screen, but to collect each unique visual treatment so variations can be compared.

Screenshots are then placed into a simple template or workspace where they can be grouped and labeled. Viewing these elements together makes duplicated components, inconsistent styling, and small visual differences easier to spot. Because the evidence is visual, these issues become simpler to discuss and align on.

This step can be supported by tools and plugins that help extract interface elements directly from design files. For example, some Figma plugins can surface duplicate components, styles, or variables automatically, reducing manual work and making gaps more visible.

Once screenshots and supporting data are collected, teams can move into deeper analysis. At this stage, the inventory is ready to be categorized, cleaned up, and used to decide which patterns should form the foundations of the design system.

Exercise #5

Inspecting code to reveal patterns

Inspecting code to reveal patterns

Inspecting the code behind UI elements helps teams understand how components are structured and named. In some products, the stylesheet or component architecture already follows a certain logic, such as separating elements, components, and modules. Examining these files shows how the interface has been built over time and where naming or styling may be inconsistent.

Code inspection also helps identify duplicated or outdated definitions. For example, a single color might appear under many different variable names or be defined in multiple locations. These findings show where cleanup is needed before building a design system. When teams connect screenshots to the code that styles them, the inventory becomes more accurate and easier to maintain.

Pro Tip: When inspecting code, look for repeated patterns in class names or variables. These repetitions can help reveal how components were meant to function originally.

Exercise #6

Organizing components into categories

Organizing components into categories

Once UI elements are collected, grouping them into categories makes the inventory easier to understand. Categories can reflect natural groups such as buttons, fields, icons, or text styles. They can also follow the structure used in the codebase, which often divides elements into building blocks, components, modules, and layouts. Sorting items this way helps teams see connections and understand how these pieces relate to one another.

Clear categories make repeated patterns and inconsistencies easier to spot. When elements are organized side by side, visual differences stand out quickly, and duplicate components become obvious. This structure also sets the base for deciding which items will become part of the future design system and which ones need to be removed or merged.

Good categorization supports collaboration across teams. Designers and developers can discuss elements more easily when everything is labeled and logically grouped.

Pro Tip: Keep category names simple and aligned with the code or naming teams already use. This reduces confusion later when the design system begins to form.

Exercise #7

Documenting colors, type, icons, and patterns

Documenting interface elements begins by collecting each item in a format that can be viewed and compared easily. For colors, this means listing every color variable or definition found in the codebase and placing them into a visual layout. This approach helps teams see the full range in one place and connect each color to its source file or variable name. It also makes it clear when different files contain overlapping or outdated values.

Typography can be documented by inspecting text elements in the interface and capturing each style used. This may require checking markup or selectors to identify font sizes, weights, and naming conventions. Each distinct style is then placed in the inventory with its corresponding information so that it can be referenced alongside other patterns.

Icons are documented by gathering the actual icon assets or the icon font files used by the product. Listing each icon in a single view makes it easier to search, compare, or reuse them. Patterns such as buttons, fields, or form layouts can also be added by capturing their classes, structure, or component files. This method creates a consistent record that teams can revisit when shaping the design system.

Exercise #8

Spotting intentional vs accidental variations

As teams review the collected elements, they often find differences that were never planned. Some variations arise from quick fixes, older designs, or different contributors. Others were introduced intentionally to support specific interactions or layouts. The inventory helps distinguish between these two types because all versions are visible in one place.

Accidental variations become obvious when similar components do not follow the same structure or styling. These gaps point to areas where the design system needs clear rules to prevent further drift.

Intentional variations, such as different button sizes used for primary actions versus dense layouts, reveal patterns that should be supported as official variants.

Making this distinction ensures the system removes confusing inconsistencies without eliminating differences that serve a real purpose.

Exercise #9

Identifying elements that require revision

As the inventory becomes more complete, teams can add notes directly to each element. These notes point out outdated patterns, missing styles, duplicated colors, or code references that require cleanup. Writing comments on the inventory pages helps document what was discovered during collection and shows which issues need follow-up. This step makes the inventory easier to use later because every observation stays attached to the element it concerns.

Annotations also help others understand why certain elements appear the way they do. When teams record file names, classes, or specific concerns, the inventory becomes more informative for both designers and developers. These notes act as a light form of documentation that supports future work without requiring a separate document.

Pro Tip: Keep notes brief and factual. Clear annotations reduce confusion when the team returns to the inventory during system planning.

Complete lesson quiz to progress toward your course certificate