IMVU: Redesign & Design System
"Bring clarity, relevance, and modern craft — one flow at a time."
"Bring clarity, relevance, and modern craft — one flow at a time."

Role
Director, Product Design
Timeline
1 year
Platform
iOS, Android, Web
Teams
3 Designers, Engineering
Product, Marketing
































OVERVIEW
Finding Opportunities
Finding Opportunities
IMVU’s core experience hadn’t evolved in over a decade despite a loyal community and strong UGC. Facing declining engagement and monetization, I led a redesign to modernize the platform, improve new user acquisition and retention, and streamline design delivery.
Problems
Dated design foundation
No defined principles
Design siloed by platform
Had UI Kits but no system
2 foundations defined
Eng owning UI edge cases
Goals
Modernize design language
Create principles
Design works cross-platform
1 UI kit to manage at least 85%
Define 6 foundations
Design owns UI edge cases
Problems
Dated design foundation
No defined principles
Design siloed by platform
Had UI Kits but no system
2 foundations defined
Eng owning UI edge cases
Goals
Modernize design language
Create principles
Design works cross-platform
1 UI kit to manage at least 85%
Define 6 foundations
Design owns UI edge cases
Problems
Dated design foundation
No defined principles
Design siloed by platform
Had UI Kits but no system
2 foundations defined
Eng owning UI edge cases
Goals
Modernize design language
Create principles
Design works cross-platform
1 UI kit to manage at least 85%
Define 6 foundations
Design owns UI edge cases
OVERVIEW
Finding Opportunities
IMVU’s core experience hadn’t evolved in over a decade despite a loyal community and strong UGC. Facing declining engagement and monetization, I led a redesign to modernize the platform, improve new user acquisition and retention, and streamline design delivery.
Problems
Dated design foundation
No defined principles
Design siloed by platform
Had UI Kits but no system
2 foundations defined
Eng owning UI edge cases
Goals
Modernize design language
Create principles
Design works cross-platform
1 UI kit to manage at least 85%
Define 6 foundations
Design owns UI edge cases

Planning in parallel
Input: Pitch parallel design system and features launch strategy
Decision: Move forward with pre-phase design system progress
Impact: Aligned with eng, product, and design on timelines



Empowering designers
Input: Design systems were never utilized or explored by teams
Decision: Grow designers to build components & foundations
Impact: Speed up progress, and onboarding for use in pods





Design ownership on UI tech
Input: Engineering provided input on design owning UI behavior
Decision: Mentor design to execute documentation, tokens, etc
Impact: Engineering had cohesive design guide across platforms


Exercise together with PODs
Input: Create foundations & 20+ components set in new features
Decision: Aligned engineering to scope & support across teams
Impact: Scope increased by 10% but did not delay release plans

Planning in parallel
Input: Pitch parallel design system and features launch strategy
Decision: Move forward with pre-phase design system progress
Impact: Aligned with eng, product, and design on timelines



Empowering designers
Input: Design systems were never utilized or explored by teams
Decision: Grow designers to build components & foundations
Impact: Speed up progress, and onboarding for use in pods





Design ownership on UI tech
Input: Engineering provided input on design owning UI behavior
Decision: Mentor design to execute documentation, tokens, etc
Impact: Engineering had cohesive design guide across platforms


Exercise together with PODs
Input: Create foundations & 20+ components set in new features
Decision: Aligned engineering to scope & support across teams
Impact: Scope increased by 10% but did not delay release plans

Planning in parallel
Input: Pitch parallel design system and features launch strategy
Decision: Move forward with pre-phase design system progress
Impact: Aligned with eng, product, and design on timelines



Empowering designers
Input: Design systems were never utilized or explored by teams
Decision: Grow designers to build components & foundations
Impact: Speed up progress, and onboarding for use in pods





Design ownership on UI tech
Input: Engineering provided input on design owning UI behavior
Decision: Mentor design to execute documentation, tokens, etc
Impact: Engineering had cohesive design guide across platforms


Exercise together with PODs
Input: Create foundations & 20+ components set in new features
Decision: Aligned engineering to scope & support across teams
Impact: Scope increased by 10% but did not delay release plans
ROLE
Creating Foundation
Creating Foundation
Balancing IC leadership and mentoring was challenging—especially with no budget and ongoing features. I built from the ground up, auditing UI artifacts and staying flexible to align with XFN partners before engineering handoff.
Balancing IC leadership and mentoring was challenging—especially with no budget and ongoing features. I built from the ground up, auditing UI artifacts and staying flexible to align with XFN partners before engineering handoff.
EXPLORATION & PLANNING
Impossible to Possible
Impossible to Possible
Started system foundations early, sharing proposals to guide direction. Aligned with engineering on phased releases to ship incrementally and build for reuse.
Mo 1
Mo 2
Mo 3
Mo 4
Mo 5
Mo 6
Mo 7
Mo 8
Discovery
Research
Requirements
Component needs
Start design
Initial Builds
QA & reviews
Tests
Dev QA
Start releases
Final releases
Further testing



FEATURES TRACK
Discovery
Draft:
• Foundations
• Components
• Documentation
Build foundations
Build components
Design<>Eng audits
Design reviews
QA & reviews
Iterations
Pivots
Build next phase components



DESIGN SYSTEM
Mo 1
Mo 2
Mo 3
Mo 4
Mo 5
Mo 6
Mo 7
Mo 8
Discovery
Research
Requirements
Component needs
Start design
Initial Builds
QA & reviews
Tests
Dev QA
Start releases
Final releases
Further testing



FEATURES TRACK
Discovery
Draft:
• Foundations
• Components
• Documentation
Build foundations
Build components
Design<>Eng audits
Design reviews
QA & reviews
Iterations
Pivots
Build next phase components



DESIGN SYSTEM
Mo 1
Mo 2
Mo 3
Mo 4
Mo 5
Mo 6
Mo 7
Mo 8
Discovery
Research
Requirements
Component needs
Start design
Initial Builds
QA & reviews
Tests
Dev QA
Start releases
Final releases
Further testing



FEATURES TRACK
Discovery
Draft:
• Foundations
• Components
• Documentation
Build foundations
Build components
Design<>Eng audits
Design reviews
QA & reviews
Iterations
Pivots
Build next phase components



DESIGN SYSTEM
DESIGN SYSTEM
Foundation for our
Product & Teams
Foundation for our
Product & Teams
Start a system with core components built for scale and reuse, set a foundation that supports modern UI needs and align with future product and engineering work.
PRINCIPLES
Quality, Growth, Intent
Quality, Growth, Intent
Set baselines to guide design toward scale, modernization, and craft. This served as a north star for all system decisions.
Set baselines to guide design toward scale, modernization, and craft. This served as a north star for all system decisions.

Mochim025
2h


11.4k

232
98
Components following for scale, quality, and delight, but also applied based on use case.
3 LIKES · 5 comments
Older components didn't follow rules, weren't built for scale, static, and didn't have reasoning for system treatment creating disconnect across the app.

2h
Mochim025


Mochim025
2h


11.4k

232
98
Components following for scale, quality, and delight, but also applied based on use case.
3 LIKES · 5 comments
Older components didn't follow rules, weren't built for scale, static, and didn't have reasoning for system treatment creating disconnect across the app.

2h
Mochim025


Mochim025
2h


11.4k

232
98
Components following for scale, quality, and delight, but also applied based on use case.
3 LIKES · 5 comments
Older components didn't follow rules, weren't built for scale, static, and didn't have reasoning for system treatment creating disconnect across the app.

2h
Mochim025


Mochim025
2h


11.4k

232
98
Components following for scale, quality, and delight, but also applied based on use case.
3 LIKES · 5 comments
Older components didn't follow rules, weren't built for scale, static, and didn't have reasoning for system treatment creating disconnect across the app.

2h
Mochim025

SPACING
Scaling for Structure
Scaling for Structure
Tokenized structure that permitted reuse across components, layouts, and grids to create consistency and variety.
Tokenized structure that permitted reuse across components, layouts, and grids to create consistency and variety.
space30
list.pad.lg
list.gap.lg
list.mar.large

NaviTheFairy
sent you a friend request
space30
list.pad.lg
list.gap.lg
list.mar.large

NaviTheFairy
sent you a friend request
space30
list.pad.lg
list.gap.lg
list.mar.large

NaviTheFairy
sent you a friend request
space30
list.pad.lg
list.gap.lg
list.mar.large

NaviTheFairy
sent you a friend request
COLOR
Systematize Colors
Systematize Colors
Color tokens link primitives to components, supporting a new brand look while keeping key colors for context. This unified theme also improved accessibility.
Colors were just created more for branding preference. There was no structure of variable/tokenization for use or accessibility. I set a gold for at least being AA minimally for our launch.
Color tokens link primitives to components, supporting a new brand look while keeping key colors for context. This unified theme also improved accessibility.
⭐️ PRIMITIVE
elevation200
#F2F2F2
⚙️ listItem - icon
listItem.default.icon.color
⚙️ listItem - text
listItem.default.text.color


Lolacola928
Add friend
Follow
Send message
Send Gift
Report
cancel
⭐️ PRIMITIVE
elevation200
#F2F2F2
⚙️ listItem - icon
listItem.default.icon.color
⚙️ listItem - text
listItem.default.text.color


Lolacola928
Add friend
Follow
Send message
Send Gift
Report
cancel
⭐️ PRIMITIVE
elevation200
#F2F2F2
⚙️ listItem - icon
listItem.default.icon.color
⚙️ listItem - text
listItem.default.text.color


Lolacola928
Add friend
Follow
Send message
Send Gift
Report
cancel
⭐️ PRIMITIVE
elevation200
#F2F2F2
⚙️ listItem - icon
listItem.default.icon.color
⚙️ listItem - text
listItem.default.text.color


Lolacola928
Add friend
Follow
Send message
Send Gift
Report
cancel
TYPOGRAPHY
Hierarchy that Adapts
Hierarchy that Adapts
We introduced a ratio scale to support heavy, customizable UGC content across all platforms.
We introduced a ratio scale to support heavy, customizable UGC content across all platforms.
Display 1
Display 2
Display 3
Heading 1
Heading 2
Heading 3
Paragraph 1
Paragraph 2
Paragraph 3
44
36
32
24
20
16
14
12
CTA 1
CTA 2
CTA 3
Label 1
Label 2
Label 3
Caption 1
Caption 2
16
16
14
18
14
12
10
12
10
Typescale: Major Second

Tops
Bottoms
Hair
Accessories
DNA
NFTS
Tops

Boho button up
1000

Glam blazer
1999

Academia
900

Academia
850
For You

PETS

CURLY HAIR

SPIDERMAN

WITCHES

STREET

#ECLECTIC

#LONG CURLS
New
Explore Creators


CreatorName
@creatorName


CreatorName
@creatorName


CreatorName
@creatorName
2.5K
shop
Search
9:41
Display 1
Display 2
Display 3
Heading 1
Heading 2
Heading 3
Paragraph 1
Paragraph 2
Paragraph 3
44
36
32
24
20
16
14
12
CTA 1
CTA 2
CTA 3
Label 1
Label 2
Label 3
Caption 1
Caption 2
16
16
14
18
14
12
10
12
10
Typescale: Major Second

Tops
Bottoms
Hair
Accessories
DNA
NFTS
Tops

Boho button up
1000

Glam blazer
1999

Academia
900

Academia
850
For You

PETS

CURLY HAIR

SPIDERMAN

WITCHES

STREET

#ECLECTIC

#LONG CURLS
New
Explore Creators


CreatorName
@creatorName


CreatorName
@creatorName


CreatorName
@creatorName
2.5K
shop
Search
9:41
Display 1
Display 2
Display 3
Heading 1
Heading 2
Heading 3
Paragraph 1
Paragraph 2
Paragraph 3
44
36
32
24
20
16
14
12
CTA 1
CTA 2
CTA 3
Label 1
Label 2
Label 3
Caption 1
Caption 2
16
16
14
18
14
12
10
12
10
Typescale: Major Second

Tops
Bottoms
Hair
Accessories
DNA
NFTS
Tops

Boho button up
1000

Glam blazer
1999

Academia
900

Academia
850
For You

PETS

CURLY HAIR

SPIDERMAN

WITCHES

STREET

#ECLECTIC

#LONG CURLS
New
Explore Creators


CreatorName
@creatorName


CreatorName
@creatorName


CreatorName
@creatorName
2.5K
shop
Search
9:41
Display 1
Display 2
Display 3
Heading 1
Heading 2
Heading 3
Paragraph 1
Paragraph 2
Paragraph 3
44
36
32
24
20
16
14
12
CTA 1
CTA 2
CTA 3
Label 1
Label 2
Label 3
Caption 1
Caption 2
16
16
14
18
14
12
10
12
10
Typescale: Major Second

Tops
Bottoms
Hair
Accessories
DNA
NFTS
Tops

Boho button up
1000

Glam blazer
1999

Academia
900

Academia
850
For You

PETS

CURLY HAIR

SPIDERMAN

WITCHES

STREET

#ECLECTIC

#LONG CURLS
New
Explore Creators


CreatorName
@creatorName


CreatorName
@creatorName


CreatorName
@creatorName
2.5K
shop
Search
9:41
COMPONENTS
Modularity for Teams
Modularity for Teams
Components were documented and tokenized, with clear guidelines on interactions and edge cases to ensure easy reuse and updates.
Components were documented and tokenized, with clear guidelines on interactions and edge cases to ensure easy reuse and updates.
chatMsg
Build Ready
Primarily used for sent and received messages in Chat Rooms, DMs, and Chat Windows.
Composition
bubble
Chat Bubble
profileDisc.sm

Variants
chatMsg.sent
Message sent
chatMsg.sent.whisper
Whisper sent
chatMsg.receive

Received
chatMsg.receive.whisper

Whisper received
Guides
Text Fitting
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacus nisl, scelerisque non ultricies.
max-width: 90vw
max-height: 65vh
text-wrap: 90% width of chatBubble
Animation
motion.chatMsg.in
trigger: msgRecieve, msgSend
animation: .4s ease-in; /*motion.chatMsg.duration, motion.chatMsg.easing
translateY: -.3125rem; /*motion.chatMsg.translateY
opacity: 1;
anim.chatMsg.Out
animation: .4s ease-in;
translateY: -.3125rem;
opacity: 0;
/* startAnimation.event(exceedMsgCap) */

Custom mode
An empty frame that you can put anything inside of
Instructions:
Double Click this component, unlink the instance, and go to "Screen Content" in your assets panel.

Say something...
Send
Holiday Potluck
9:41
chatMsg
Build Ready
Primarily used for sent and received messages in Chat Rooms, DMs, and Chat Windows.
Composition
bubble
Chat Bubble
profileDisc.sm

Variants
chatMsg.sent
Message sent
chatMsg.sent.whisper
Whisper sent
chatMsg.receive

Received
chatMsg.receive.whisper

Whisper received
Guides
Text Fitting
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacus nisl, scelerisque non ultricies.
max-width: 90vw
max-height: 65vh
text-wrap: 90% width of chatBubble
Animation
motion.chatMsg.in
trigger: msgRecieve, msgSend
animation: .4s ease-in; /*motion.chatMsg.duration, motion.chatMsg.easing
translateY: -.3125rem; /*motion.chatMsg.translateY
opacity: 1;
anim.chatMsg.Out
animation: .4s ease-in;
translateY: -.3125rem;
opacity: 0;
/* startAnimation.event(exceedMsgCap) */

Custom mode
An empty frame that you can put anything inside of
Instructions:
Double Click this component, unlink the instance, and go to "Screen Content" in your assets panel.

Say something...
Send
Holiday Potluck
9:41
chatMsg
Build Ready
Primarily used for sent and received messages in Chat Rooms, DMs, and Chat Windows.
Composition
bubble
Chat Bubble
profileDisc.sm

Variants
chatMsg.sent
Message sent
chatMsg.sent.whisper
Whisper sent
chatMsg.receive

Received
chatMsg.receive.whisper

Whisper received
Guides
Text Fitting
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacus nisl, scelerisque non ultricies.
max-width: 90vw
max-height: 65vh
text-wrap: 90% width of chatBubble
Animation
motion.chatMsg.in
trigger: msgRecieve, msgSend
animation: .4s ease-in; /*motion.chatMsg.duration, motion.chatMsg.easing
translateY: -.3125rem; /*motion.chatMsg.translateY
opacity: 1;
anim.chatMsg.Out
animation: .4s ease-in;
translateY: -.3125rem;
opacity: 0;
/* startAnimation.event(exceedMsgCap) */

Custom mode
An empty frame that you can put anything inside of
Instructions:
Double Click this component, unlink the instance, and go to "Screen Content" in your assets panel.

Say something...
Send
Holiday Potluck
9:41
chatMsg
Build Ready
Primarily used for sent and received messages in Chat Rooms, DMs, and Chat Windows.
Composition
bubble
Chat Bubble
profileDisc.sm

Variants
chatMsg.sent
Message sent
chatMsg.sent.whisper
Whisper sent
chatMsg.receive

Received
chatMsg.receive.whisper

Whisper received
Guides
Text Fitting
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacus nisl, scelerisque non ultricies.
max-width: 90vw
max-height: 65vh
text-wrap: 90% width of chatBubble
Animation
motion.chatMsg.in
trigger: msgRecieve, msgSend
animation: .4s ease-in; /*motion.chatMsg.duration, motion.chatMsg.easing
translateY: -.3125rem; /*motion.chatMsg.translateY
opacity: 1;
anim.chatMsg.Out
animation: .4s ease-in;
translateY: -.3125rem;
opacity: 0;
/* startAnimation.event(exceedMsgCap) */

Custom mode
An empty frame that you can put anything inside of
Instructions:
Double Click this component, unlink the instance, and go to "Screen Content" in your assets panel.

Say something...
Send
Holiday Potluck
9:41
ACCESSIBILITY
Accessibility
Accessibility
We aimed for at least AA standards—and AAA when possible—on text, color, and images. Regular audits and updates helped us stay ahead in managing accessibility.
We aimed for at least AA standards—and AAA when possible—on text, color, and images. Regular audits and updates helped us stay ahead in managing accessibility.












OUTCOME
Design to Spark Initiative
Design to Spark Initiative
By Q1 2024, our core design library was live across platforms, supported by documentation, tokens, and updated Figma workflows. The design team also prepared briefs for future redesigns of key features beyond the year’s plan.
By Q1 2024, our core design library was live across platforms, supported by documentation, tokens, and updated Figma workflows. The design team also prepared briefs for future redesigns of key features beyond the year’s plan.


Before


After


Before


After


Before


After
Hashtags
First feature fully powered by the new design system, adopted across teams. Supported redesign of Chat Discovery, Profiles, and People Search, driving deeper engagement. Led to a new feature spec for interest-based hashtag selection.
Hashtags
First feature fully powered by the new design system, adopted across teams. Supported redesign of Chat Discovery, Profiles, and People Search, driving deeper engagement. Led to a new feature spec for interest-based hashtag selection.


Before


After


Before


After


Before


After
Shop
Improved the marketplace to balance showcasing featured content, personalizing by interests, and keeping focus on creators.
Shop
Improved the marketplace to balance showcasing featured content, personalizing by interests, and keeping focus on creators.


Before


After


Before


After


Before


After
Chat Discovery
Boosted engagement in rooms and chat activity, especially for first-time users (55% retention if joined on Day 1). Enhanced discoverability with curated and personalized experiences, paving the way for hashtag integration.
Chat Discovery
Boosted engagement in rooms and chat activity, especially for first-time users (55% retention if joined on Day 1). Enhanced discoverability with curated and personalized experiences, paving the way for hashtag integration.


Before


After


Before


After


Before


After
Dashboard (in-progress)
Reorganized navigation to surface core experiences and new features, reducing buried content, to improve funnel and engagement for monetization and discovery.


Before


After


Before


After


Before


After
Chat Rooms (In progress)
Prioritized content visibility while keeping key interaction tools accessible, preventing users from blocking the 3D social experience.
Chat Rooms (In progress)
Prioritized content visibility while keeping key interaction tools accessible, preventing users from blocking the 3D social experience.


Before


After


Before


After


Before


After
Feed (in progress)
Applying the design system to address legacy code, preparing the Feed to better support social engagement and retention as a core feature and enable users to do more with less action.
Feed (in progress)
Applying the design system to address legacy code, preparing the Feed to better support social engagement and retention as a core feature and enable users to do more with less action.


Before


After


Before


After


Before


After
Inventory (in progress)
Organized content for easier access and better chunking as inventory grows. Renamed to “Closet” for a more inclusive, audience-friendly feel.
Inventory (in progress)
Organized content for easier access and better chunking as inventory grows. Renamed to “Closet” for a more inclusive, audience-friendly feel.


Before


After


Before


After


Before


After
Messages (in progress)
Improved the activity center and inbox by organizing notifications and focusing on seamless two-way communication, making it easier for users to manage messages.
Messages (in progress)
Improved the activity center and inbox by organizing notifications and focusing on seamless two-way communication, making it easier for users to manage messages.
RESULTS
Higher Quality & Quantity
Created a new design language embraced by our community and reduced eng overhead. This required an initial scope increase but didn’t delay releases.
70%
Faster Design
velocity during wireframe to high fidelity and prototypes
25%
less front-end
required to complete UI and in progress feature work
98%
Sentiment
score from internal teams working with new system
10%
more effort
in some feature work due to more investment up front
LEARNINGS
Investment for the Future
Investment for the Future
Redesigning an aging app while keeping feature velocity taught me to lead with vision and pragmatism. A key shift was helping stakeholders see design as a parallel system-building effort.
Redesigning an aging app while keeping feature velocity taught me to lead with vision and pragmatism. A key shift was helping stakeholders see design as a parallel system-building effort.
Taking hands-on initiative had impact
Jumping ahead to create direction and showcase how foundations and components can work helped get feedback and alignment much earlier than waiting.
Understanding engineering infrastructure
Learning engineerings challenges across iOS, Android, and web enabled decisions around design without risk of hitting blockers.
Fostering growth and learning for designers
It was rewarding to see designers thinking beyond quick fixes and leaning into scalable systems—avoiding short-term builds that often lead to overhead and quality issues
Provide investment opp with proof
Showcasing how design systems can speed up feature releases, reduce QA, and enable faster design was key to alignment with all teams.