Work 01

Sonic

Role

Designer & Developer

Role

Designer & Developer

Read time

10 mins read

Read time

10 mins read

Timeline

Feb-March 2025

Timeline

Feb-March 2025

App

Netrin enhance

App

Netrin enhance

Role

Designer & Developer

Read time

10 mins read

Timeline

Feb-March 2025

App

Netrin enhance

Highlights

The Story

“We rebuilt the bricks and walls of a house while people were still living in it.”

The Problem

The Problem

“The house was built with random bricks and walls”

“The house was built with random bricks and walls”

Context

PainPoints

Constraints

No Tokens

There were no semantic colors, no proper typography structure, buttons and app bars were inconsistent or missing.

No Tokens

The gap between design and code was wide, with Figma showing one reality and Flutter showing another.

Weak Foundation

Our design system lacked the foundations needed for consistency and scalability.

Context

PainPoints

Constraints

No Tokens

There were no semantic colors, no proper typography structure, buttons and app bars were inconsistent or missing.

No Tokens

The gap between design and code was wide, with Figma showing one reality and Flutter showing another.

Weak Foundation

Our design system lacked the foundations needed for consistency and scalability.

Context

PainPoints

Constraints

No Tokens

There were no semantic colors, no proper typography structure, buttons and app bars were inconsistent or missing.

No Tokens

The gap between design and code was wide, with Figma showing one reality and Flutter showing another.

Weak Foundation

Our design system lacked the foundations needed for consistency and scalability.

The Solution

The Solution

“We created consistent bricks, then built new walls with them and replaced the old walls too”

“We created consistent bricks, then built new walls with them and replaced the old walls too”

Foundation Tokens

Created new foundation tokens - Colors, Typography & Spacing.

Foundation Tokens

Created new foundation tokens - Colors, Typography & Spacing.

Foundation Tokens

Created new foundation tokens - Colors, Typography & Spacing.

Core Components

Created new core components - Buttons, Appbars, etc

Core Components

Created new core components - Buttons, Appbars, etc

Core Components

Created new core components - Buttons, Appbars, etc

Sync

Maintained sync across Figma and Code at every step.

Sync

Maintained sync across Figma and Code at every step.

Sync

Maintained sync across Figma and Code at every step.

Design Process

Design Process

“New bricks and walls, but the home had to stay recognizable.”

“New bricks and walls, but the home had to stay recognizable.”

Consistency

We had to be very conscious while designing, since without proper guardrails the new tokens would not align with the existing app, which was built on the older, broken design system.

Consistency

We had to be very conscious while designing, since without proper guardrails the new tokens would not align with the existing app, which was built on the older, broken design system.

Consistency

We had to be very conscious while designing, since without proper guardrails the new tokens would not align with the existing app, which was built on the older, broken design system.

Colors

Colors

Typography

Typography

Spacing & Dividers

Spacing & Dividers

Icons

Icons

Buttons

Buttons

Appbar

Appbar

Yeah.
All the designs you just saw?
I developed them in code as well.

Development

Development

“We created consistent bricks, then built new walls with them and replaced the old walls too”

“We created consistent bricks, then built new walls with them and replaced the old walls too”

Reducing Duplication

Old typography styles were scattered and inconsistent, so I replaced them with new tokens. This had to be done precisely: if a new style didn’t match an old one, it could cause style breaks or misaligned layouts.

Reducing Duplication

Old typography styles were scattered and inconsistent, so I replaced them with new tokens. This had to be done precisely: if a new style didn’t match an old one, it could cause style breaks or misaligned layouts.

Reducing Duplication

Old typography styles were scattered and inconsistent, so I replaced them with new tokens. This had to be done precisely: if a new style didn’t match an old one, it could cause style breaks or misaligned layouts.

Component Migration

With tokens stabilized, migration began. Nearly 500 files were updated as each legacy element—typography, buttons, app bars—was replaced with the new components. Every change was carefully verified to avoid visual glitches or inconsistencies.

Component Migration

With tokens stabilized, migration began. Nearly 500 files were updated as each legacy element—typography, buttons, app bars—was replaced with the new components. Every change was carefully verified to avoid visual glitches or inconsistencies.

Component Migration

With tokens stabilized, migration began. Nearly 500 files were updated as each legacy element—typography, buttons, app bars—was replaced with the new components. Every change was carefully verified to avoid visual glitches or inconsistencies.

Testing and Stabiltity

With tokens stabilized, migration began. Nearly 500 files were updated as each legacy element—typography, buttons, app bars—was replaced with the new components. Every change was carefully verified to avoid visual glitches or inconsistencies.

Testing and Stabiltity

With tokens stabilized, migration began. Nearly 500 files were updated as each legacy element—typography, buttons, app bars—was replaced with the new components. Every change was carefully verified to avoid visual glitches or inconsistencies.

Testing and Stabiltity

With tokens stabilized, migration began. Nearly 500 files were updated as each legacy element—typography, buttons, app bars—was replaced with the new components. Every change was carefully verified to avoid visual glitches or inconsistencies.

“Even the parts you can’t see should look good.”

“Even the parts you can’t see should look good.”

I followed that principle in code. For every token and component, I built dedicated previews.

The entire design system in code is as polished as it is in Figma.

Each token has a dedicated preview with its specifications clearly defined.

Token previews also include their properties and usage examples.

Reflection

Reflection

“We finished the house, but also learned 100 ways of how not to build one.”

“We finished the house, but also learned 100 ways of how not to build one.”

Manual Migration

Migration was slow and manual. With Gen-AI tools like Cursor or Claude, it could have been cut down to 10% of the time.

Manual Migration

Migration was slow and manual. With Gen-AI tools like Cursor or Claude, it could have been cut down to 10% of the time.

Manual Migration

Migration was slow and manual. With Gen-AI tools like Cursor or Claude, it could have been cut down to 10% of the time.

Impact of Typography

Typography changes had the biggest impact—almost 80%. I should have prioritized it earlier.

Impact of Typography

Typography changes had the biggest impact—almost 80%. I should have prioritized it earlier.

Impact of Typography

Typography changes had the biggest impact—almost 80%. I should have prioritized it earlier.

Value of Previews

Previews should have been structured sooner. Setting them up late added avoidable effort.

Value of Previews

Previews should have been structured sooner. Setting them up late added avoidable effort.

Value of Previews

Previews should have been structured sooner. Setting them up late added avoidable effort.