Hi, I'm Dhika.

Hi, I'm Dhika.

Hi, I'm Dhika.

Hi, I'm Dhika.

I’m a UI designer and design-system architect from Purwokerto, Indonesia.

I spend my time on design systems, UI, accessibility, and building things that help real people.

/The process/

A structured approach to building systems

Products grow, teams change, and UI debt compounds. A design-system turns that chaos into a single, living source of truth—so designers ship faster, engineers reuse instead of rebuild, stakeholders see consistent brand quality, and accessibility best-practice comes “out of the box.” In short: speed, consistency, scalability, and shared understanding.

/001/

/Product Audit

Audit the Product

Map inconsistencies, UI debt, and team pain points.

Deliverables: UI inventory, issue list, priority map.

/002/

/Foundations

Define the Visual Language

Create core tokens and visual foundations.

Deliverables: colors, typography, spacing, guidelines, naming rules.

/003/

/Core Components

Build the Component Library

Translate the visual language into scalable, reusable components.

Deliverables: component set, variants, usage rules, accessibility notes.

/004/

/Documentation

Rollout, Educate, and Evolve

Launch the system into real workflows, collect feedback, and maintain it.

Deliverables: documentation, onboarding materials, migration plan.

/Stories.

"Working with Dhika was amazing. He's extremely fast, responsive, and communicative. There were certain areas in the project where I wasn't sure what direction to take, and he used his best judgement based on the context to deliver a great final design system my team could use."

/Kristin Au

Product designer

"Working with Dhika was amazing. He's extremely fast, responsive, and communicative. There were certain areas in the project where I wasn't sure what direction to take, and he used his best judgement based on the context to deliver a great final design system my team could use."

/Kristin Au

Product designer

"Working with Dhika was amazing. He's extremely fast, responsive, and communicative. There were certain areas in the project where I wasn't sure what direction to take, and he used his best judgement based on the context to deliver a great final design system my team could use."

/Kristin Au

Product designer

"Working with Dhika was amazing. He's extremely fast, responsive, and communicative. There were certain areas in the project where I wasn't sure what direction to take, and he used his best judgement based on the context to deliver a great final design system my team could use."

/Kristin Au

Product designer

Abstract flowing waves in grayscale creating a smooth, undulating pattern with light and shadow gradients
Abstract flowing waves in grayscale creating a smooth, undulating pattern with light and shadow gradients
Abstract flowing waves in grayscale creating a smooth, undulating pattern with light and shadow gradients

/FAQ.

/Why create a brand-new design system instead of adopting Material, Carbon, or another public library?
icon

Our product’s brand voice, interaction patterns, and technical stack have unique requirements that off-the-shelf systems couldn’t meet without heavy overrides. Starting from first principles let us define tokens, components, and governance that fit the team’s exact workflow and scale cleanly as the product evolves.

/How do Figma Variables make the UI responsive?
icon

Each token and component is tied to a variable mode for Desktop, Laptop, Tablet, and Mobile. Switch the mode once, and every instance across the file redraws itself—sizes, paddings, and typographic scales included—so designers don’t duplicate artboards or manually resize elements.

/What’s the role of Airtable in token naming?
icon

Airtable is our single source of truth. Formula columns auto-generate token names from category and breakpoint fields, guaranteeing a consistent convention. Designers pull those names straight into Figma Variables, eliminating typos and one-off labels.

/How do we keep the Figma library lightweight and organised?
icon

Components are split into two layers: a universal file for atomic elements (Button, Avatar, Input) and separate domain-specific files for larger patterns (Card, Carousel, Data-Viz). This separation reduces file size, speeds up loading, and lets designers focus on the right abstraction without wading through unrelated variants.

/Can the design system support brand themes or dark mode?
icon

Yes. We separate primitive colour tokens (raw hues) from semantic tokens (roles like text/default or state/error). Swapping a theme simply remaps primitive values—no component refactor needed. Variable modes in Figma then apply the new palette across every breakpoint automatically.

/What’s the process for adding or changing a component?
icon

Submit a proposal in the design-system backlog describing the use-case, states, and accessibility needs. The core team reviews it in weekly triage, aligns on naming and token usage, and then pairs with the requester to design, build, and document the new component before it enters the shared library.

/Why create a brand-new design system instead of adopting Material, Carbon, or another public library?
icon

Our product’s brand voice, interaction patterns, and technical stack have unique requirements that off-the-shelf systems couldn’t meet without heavy overrides. Starting from first principles let us define tokens, components, and governance that fit the team’s exact workflow and scale cleanly as the product evolves.

/How do Figma Variables make the UI responsive?
icon

Each token and component is tied to a variable mode for Desktop, Laptop, Tablet, and Mobile. Switch the mode once, and every instance across the file redraws itself—sizes, paddings, and typographic scales included—so designers don’t duplicate artboards or manually resize elements.

/What’s the role of Airtable in token naming?
icon

Airtable is our single source of truth. Formula columns auto-generate token names from category and breakpoint fields, guaranteeing a consistent convention. Designers pull those names straight into Figma Variables, eliminating typos and one-off labels.

/How do we keep the Figma library lightweight and organised?
icon

Components are split into two layers: a universal file for atomic elements (Button, Avatar, Input) and separate domain-specific files for larger patterns (Card, Carousel, Data-Viz). This separation reduces file size, speeds up loading, and lets designers focus on the right abstraction without wading through unrelated variants.

/Can the design system support brand themes or dark mode?
icon

Yes. We separate primitive colour tokens (raw hues) from semantic tokens (roles like text/default or state/error). Swapping a theme simply remaps primitive values—no component refactor needed. Variable modes in Figma then apply the new palette across every breakpoint automatically.

/What’s the process for adding or changing a component?
icon

Submit a proposal in the design-system backlog describing the use-case, states, and accessibility needs. The core team reviews it in weekly triage, aligns on naming and token usage, and then pairs with the requester to design, build, and document the new component before it enters the shared library.

/Why create a brand-new design system instead of adopting Material, Carbon, or another public library?
icon

Our product’s brand voice, interaction patterns, and technical stack have unique requirements that off-the-shelf systems couldn’t meet without heavy overrides. Starting from first principles let us define tokens, components, and governance that fit the team’s exact workflow and scale cleanly as the product evolves.

/How do Figma Variables make the UI responsive?
icon

Each token and component is tied to a variable mode for Desktop, Laptop, Tablet, and Mobile. Switch the mode once, and every instance across the file redraws itself—sizes, paddings, and typographic scales included—so designers don’t duplicate artboards or manually resize elements.

/What’s the role of Airtable in token naming?
icon

Airtable is our single source of truth. Formula columns auto-generate token names from category and breakpoint fields, guaranteeing a consistent convention. Designers pull those names straight into Figma Variables, eliminating typos and one-off labels.

/How do we keep the Figma library lightweight and organised?
icon

Components are split into two layers: a universal file for atomic elements (Button, Avatar, Input) and separate domain-specific files for larger patterns (Card, Carousel, Data-Viz). This separation reduces file size, speeds up loading, and lets designers focus on the right abstraction without wading through unrelated variants.

/Can the design system support brand themes or dark mode?
icon

Yes. We separate primitive colour tokens (raw hues) from semantic tokens (roles like text/default or state/error). Swapping a theme simply remaps primitive values—no component refactor needed. Variable modes in Figma then apply the new palette across every breakpoint automatically.

/What’s the process for adding or changing a component?
icon

Submit a proposal in the design-system backlog describing the use-case, states, and accessibility needs. The core team reviews it in weekly triage, aligns on naming and token usage, and then pairs with the requester to design, build, and document the new component before it enters the shared library.

/Why create a brand-new design system instead of adopting Material, Carbon, or another public library?
icon

Our product’s brand voice, interaction patterns, and technical stack have unique requirements that off-the-shelf systems couldn’t meet without heavy overrides. Starting from first principles let us define tokens, components, and governance that fit the team’s exact workflow and scale cleanly as the product evolves.

/How do Figma Variables make the UI responsive?
icon

Each token and component is tied to a variable mode for Desktop, Laptop, Tablet, and Mobile. Switch the mode once, and every instance across the file redraws itself—sizes, paddings, and typographic scales included—so designers don’t duplicate artboards or manually resize elements.

/What’s the role of Airtable in token naming?
icon

Airtable is our single source of truth. Formula columns auto-generate token names from category and breakpoint fields, guaranteeing a consistent convention. Designers pull those names straight into Figma Variables, eliminating typos and one-off labels.

/How do we keep the Figma library lightweight and organised?
icon

Components are split into two layers: a universal file for atomic elements (Button, Avatar, Input) and separate domain-specific files for larger patterns (Card, Carousel, Data-Viz). This separation reduces file size, speeds up loading, and lets designers focus on the right abstraction without wading through unrelated variants.

/Can the design system support brand themes or dark mode?
icon

Yes. We separate primitive colour tokens (raw hues) from semantic tokens (roles like text/default or state/error). Swapping a theme simply remaps primitive values—no component refactor needed. Variable modes in Figma then apply the new palette across every breakpoint automatically.

/What’s the process for adding or changing a component?
icon

Submit a proposal in the design-system backlog describing the use-case, states, and accessibility needs. The core team reviews it in weekly triage, aligns on naming and token usage, and then pairs with the requester to design, build, and document the new component before it enters the shared library.