ANJALI BHATIHomeWorkAbout
Resume
Deepvue

Building a scalable design system for a trading platform

RoleSole Product Designer
DurationPhased evolution
PlatformMobile, tablet and web
ScopeDesign systems, visual foundations, component architecture, variants, interaction states, developer handoff
A watchlist screen with its component property panels on either side
01 · OVERVIEW

Creating a shared foundation for Deepvue's trading products

Deepvue is a stock research and trading platform for US markets, offering real-time market scanners, advanced screeners, charts, and customizable watchlists.

I worked as the sole product designer, building the mobile design system from scratch and aligning the existing web experience with the new visual foundations.

My contribution
01

Shared foundations

Color, typography and spacing used across the products.

02

Reusable components

Built with properties, variants and interaction states.

03

Light and dark mode

Supported through semantic tokens rather than separate libraries.

04

Trading-specific components

Patterns for displaying complex market information.

05

Responsive behaviour

Defined for mobile and tablet.

06

Organisation and documentation

Components and their states, for design and engineering.

At a glance
150+
Component variants

A growing library that supported new feature work.

3×
Faster prototypes

Variants and properties made configurations quicker to assemble.

60%
Faster to development

Less repeated clarification between design and engineering.

02 · THE CHALLENGE

Inconsistent components were slowing down product development

Deepvue's interfaces had accumulated different visual patterns across features and platforms. Components varied in their typography, spacing, colors, and behavior.

As new features were introduced, these inconsistencies became harder to manage.

Four problems I identified
01

Outdated Components

Legacy patterns made the interface feel fragmented and hard to scale.

02

Duplicate Screen Work

Every screen had to be redesigned separately for light and dark mode.

03

Inconsistent Visual Standards

Colors, typography, and spacing varied across features and platforms.

04

High Design and Dev Friction

Developers needed frequent clarification, leading to delays and rework.

THE DESIGN CHALLENGE

Build one system that keeps Deepvue consistent, cuts the repeat work, and makes new trading features quicker to design and ship.

03 · FINDING A DIRECTION

Identifying the patterns worth standardizing

I began by looking at the components and interaction patterns used across Deepvue's trading interfaces.

The product included general interface elements such as buttons, inputs, and navigation, alongside more specialized components for displaying stock information and real-time market data. These had different requirements, so I organized the library into categories based on their purpose.

Component categories
01

Foundations

Color, typography, spacing, and shared visual rules.

02

UI primitives

Buttons, inputs, controls, and other commonly used interface elements.

03

Data display

Components for presenting stock information, charts, and related data.

04

Navigation

Patterns used to move between screens, features, and workflows.

05

Trading-specific modules

Components for market breadth, movers, thematics, and other financial data.

04 · DESIGN STRATEGY

A shared foundation with flexible components

I organized the system into two layers: common design foundations, and reusable components built on top of them.

Color and typography tokens handled the styling. Variants and properties handled the different contexts and states a component had to cover.

What the system needed to support
Consistent visual foundations
Light and dark from one library
Configurable properties
Defined interaction states
Responsive mobile and tablet
Real-time trading patterns
05 · KEY DECISIONS

Three decisions shaped the system.

Decision 01

Using semantic tokens for light and dark modes

Deepvue supported light and dark interfaces, but designing both themes separately created duplication: a change to a color or a component treatment meant updating it in two places.

I introduced semantic color tokens, so components reference a color by its role rather than a fixed value.

The components in light mode
Light
The same components in dark mode
Dark
Why this approach

One component now serves both themes, and a change to a token reaches every screen that uses it. The same approach carried over to typography and the other shared foundations.

THE DECISION

One set of components, two themes, with the token deciding how each one is painted.

Decision 02

Building components for customization

The same element had to appear in different configurations depending on the screen. Making a separate component for each one would have grown the library and made updates harder.

I built components with configurable properties: visibility toggles, content slots, state controls, nested variants, and responsive behavior.

A watchlist screen with the navigation bar and symbol row property panels beside it
One screen, and the properties behind the components on it.
Designing interaction states

I defined default, selected, error, and loading states in the library, so component behavior was easy to reference during design and development.

Folder select variants and column rows in selected, checked and draggable states
The same component across its variants and states.
Why this approach

Scenarios could be prototyped without rebuilding the same UI, and every variation stayed attached to one component, so later changes only had to happen once.

THE DECISION

Variations stayed attached to one component, so a change in the system reached every screen using it.

Decision 03

Creating reusable patterns for real-time market data

Deepvue's trading features showed stock details, market breadth, movers, and thematics. These modules carry dense information and still had to stay readable and consistent.

I built reusable modules for the data-display patterns that kept recurring, covering instrument details and market data alongside the specialized trading modules.

Market breadth, symbol cards, theme tracker, top movers and an earnings table
Market breadth, theme tracker, top movers, symbol cards and earnings.
Establishing consistent visual patterns

Each module follows the shared typography, spacing and color foundations while carrying its own information structure, so a new trading feature can be assembled from patterns that already exist.

The trading modules placed alongside a stock detail screen
The same modules, used across different screens.
THE DECISION

New trading features could be assembled from patterns that already existed.

06 · FINAL EXPERIENCE

A reusable system for Deepvue's trading interfaces

The completed system brought together the shared foundations, the configurable components, and the trading-specific modules.

The library grouped into trading data, homepage, alerts and watchlist components
The library, grouped by where the components are used.
Cross-platform consistency

The same components carry across mobile and tablet, with matching alignment work on web.

The watchlist on a phone
Mobile
The watchlist and stock detail side by side on a tablet
Tablet
One screen, traced back to the library
A watchlist screen with each component region marked out
Every region of the screen comes from a component in the library.
07 · OUTCOMES

Improving design speed and consistency

60%
Faster to development

Reusable components, documented states, and shared foundations reduced the need for repeated clarification and design adjustments.

3×
Faster prototypes

Variants and component properties made it easier to assemble and test different interface configurations.

150+
Component variants

The library supported new feature development through a growing collection of reusable interface elements.

What the system enabled
01Shared styling across themes
02Faster prototyping
03More consistent interactions
04Reusable trading patterns
05Clearer references for engineering
08 · REFLECTION

Designing components that could grow with the product

Working on the Deepvue design system as the sole designer showed me how much a strong system can shape the pace and quality of a product. Rebuilding components from scratch pushed me to think beyond individual screens and focus on patterns that could grow with the product.

Designing patterns beyond individual screens
Balancing clarity, accessibility, and performance
Knowing when not to over-systematize
Iterating systems in parallel with product

Designing for real-time data across two platforms also helped me better understand how important clarity, trust, and usability are in fintech, especially when users are making sense of dense information.

Next case study
Deepvue

Making AI responses actionable in a trading platform.

View case study