Improving the Design system.

Dizno Design System

As the product evolved and the UI underwent major changes in v2, we decided to rebuild the design system properly — this time intentionally, structurally, and based on real usage patterns. The goal was to make shadcn truly ours.

Problem Statement

While shadcn gave us a solid base, we faced several limitations: 

  • Component size restrictions (heights, paddings, spacing)

  • Color token mismatches with our brand

  • Radius inconsistencies with our visual direction

  • Missing semantic tokens (success, warning)

  • Inability to use default components across all product scenarios

  • Lack of clear documentation on what exactly was modified

    Scaling up the product, these gaps became friction points — especially between design and development.

    The engineering team needed clarity on:

  • What exactly changed compared to default shadcn?

  • Where were we diverging intentionally?

  • What should remain aligned to avoid technical debt?

Goals

  • Align the system with Dizno’s updated visual language

  • Enable flexible component sizing for real product needs

  • Reduce design–dev ambiguity

  • Minimize unnecessary deviation from shadcn (avoid extra engineering burden)

  • Document every intentional change

My Role

  • Defined system direction

  • Rebuilt foundations (tokens, typography, radius)

  • Audited used components

  • Designed and structured new variants

  • Documented all deviations

  • Led technical alignment session

  • Finalized design–dev sync before implementation

Color Tokens

Instead of jumping directly into components, I rebuilt the foundations:

We replaced and refined core tokens to match Dizno’s identity.

Examples:

  • neutral-950 → black for background-dark

  • Red destructive palette shifted to rose spectrum

  • Chart colors replaced with brand-specific values

  • New semantic tokens added:

    • warning

    • success

    • with full light/dark foreground mappings

We also introduced proper token pairing for light/dark modes to maintain consistency.

Radius System

hadcn were reduced in some areas and standardized to match Dizno’s softer visual identity.

Example:

  • sm: 6 → 4

  • md: 8 → 6

  • Many components unified at 8px radius

This helped create visual consistency across inputs, buttons, popovers, and tabs.

Component Strategy

After foundations were locked, I audited all components used in real designs and documented deviations from shadcn.

Key Principles:

  • Keep structure intact
  • Adjust sizing to match product density
  • Reduce padding where needed
  • Introduce variants only when product demanded it
  • Avoid unnecessary engineering overhead

System Adjustments

ensity Optimization

Dizno required a more compact UI.
Examples across components:

  • Default height: 36 → 32
  • Small size: 32 → 24
  • Internal spacing: 8 → 2

Component padding often reduced by 50%

This significantly improved information density without harming readability.

New Variants

We introduced purposeful variants:

  • Toggle → New Secondary variant
  • Slider → “No Tracker” variant
  • Sonner → destructive / warning / success / info / loading
  • Tabs → New lg size (40px height)
  • Input / Select / InputGroup → sm & lg structured sizing system

 

These were introduced only when tied to real product use cases.

Visual Refinements

Examples:

  • Tabs active fill changed to background:accent
  • Switch radius standardized (container 8px, inner 6px)
  • Slider stroke thickness: 1 → 4 (stronger visual feedback)
  • Sonner received visual enhancement with blurred color circle per variant

All changes were documented comparatively:

shadcn vs Dizno

Documentation

All differences were documented in Notion, including:

  • Token comparison tables
  • Component-by-component deviation logs
  • Size changes
  • Padding adjustments
  • Variant additions
  • Visual modifications

 

This allowed the dev team to clearly understand:

  • What changed
  • Why it changed
  • What remained aligned

Handoff & Alignment

We held a dedicated session with:

  • Developer
  • Tech Lead

 

In that session:

  • I walked through foundations
  • Explained intentional divergences
  • Answered technical concerns
  • Got approval before implementation

 

The focus was alignment — not just handoff.

Impact

  • Unified visual language across v2
  • Clear design–dev parity
  • Reduced ambiguity in component behavior
  • Scalable token structure for future expansion
  • Improved density and usability
  • Better dark/light consistency
  • Structured documentation for onboarding

    Most importantly:
  • We moved from “customized UI kit”
  • to a product-aligned design system.