DESIGN.md · Analysis

Codashop Indonesia

codashop.com · 14 Jul 2026 · 47 colors · OTT, NotoSans-Regular, sans-serif, Inter, NotoSans-Regular, sans-serif

Codashop Indonesia

A vibrant gaming top-up platform serving millions of Indonesian gamers with instant credit delivery across mobile legends, free fire, and entertainment apps. The design system balances high-energy brand personality with accessible, trustworthy commerce.

Colors

surface#0a0a0a
surface-dim#050505
surface-bright#1a1a1a
surface-container-lowest#0f0f0f
surface-container-low#141414
surface-container#1f1f1f
surface-container-high#2a2a2a
surface-container-highest#353535
on-surface#f7edfa
on-surface-variant#b6b3c7
inverse-surface#f7edfa
inverse-on-surface#1f1f1f
outline#8e8b9e
outline-variant#49464f
surface-tint#6242fc
primary#6242fc
on-primary#f7edfa
primary-container#7d5cff
on-primary-container#1a0d2e
inverse-primary#a89dff
secondary#efe955
on-secondary#3f3c0d
secondary-container#ffd8e7
on-secondary-container#1a1a00
tertiary#ff7f98
on-tertiary#ffffff
tertiary-container#ffc4d1
on-tertiary-container#3d0a1a
error#fd573e
on-error#ffffff
error-container#fdb33e
on-error-container#3d1a0a
primary-fixed#e8deff
primary-fixed-dim#d4c5ff
on-primary-fixed#2d1a4d
on-primary-fixed-variant#4d3a7d
secondary-fixed#fffacd
secondary-fixed-dim#e8e640
on-secondary-fixed#2d2a00
on-secondary-fixed-variant#5d5a1a
tertiary-fixed#ffd8e7
tertiary-fixed-dim#ffb3c4
on-tertiary-fixed#3d0a1a
on-tertiary-fixed-variant#7d3a4d
background#0a0a0a
on-background#f7edfa
surface-variant#49464f

Typography

display
fontFamily: OTT, NotoSans-Regular, sans-serif · fontSize: 60px · fontWeight: 700 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: OTT, NotoSans-Regular, sans-serif · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: OTT, NotoSans-Regular, sans-serif · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: 0.05em
title-lg
fontFamily: Inter, NotoSans-Regular, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Inter, NotoSans-Regular, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Inter, NotoSans-Regular, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Inter, NotoSans-Regular, sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter, NotoSans-Regular, sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

Codashop Indonesia is a high-velocity gaming commerce platform serving millions of Indonesian gamers with instant digital top-ups. The design system embraces a "Vibrant-Maximalist" aesthetic: a deep purple-black canvas (surface: #0a0a0a, on-surface: #f7edfa) provides the stage for bold, saturated accent colors—electric purple (primary: #6242fc), neon yellow (secondary: #efe955), and hot pink (tertiary: #ff7f98)—that evoke the energy and excitement of gaming culture. The UI prioritizes speed and trust: instant visual feedback, clear hierarchy, and accessible contrast ratios (WCAG AA minimum 4.5:1 on body text) ensure users complete transactions with confidence.

The brand voice is energetic yet professional, speaking directly to gamers in their language: "Jutaan gamers menggunakan Codashop setiap bulannya" (Millions of gamers use Codashop every month). Tone is conversational, never corporate; vocabulary emphasizes speed ("instan", "langsung"), trust ("terpercaya"), and ease ("tanpa registrasi"). Example sentence in brand voice: "Top-up Mobile Legends sekarang—kredit masuk dalam hitungan detik, tanpa ribet."

Colors

The color system is built on a dark-first foundation optimized for gaming audiences and extended play sessions. Surface stack anchors at #0a0a0a (surface) with progressive lightening through surface-container (#1f1f1f) to surface-container-highest (#353535), creating subtle depth without eye strain. On-surface text is a cool lavender (#f7edfa, RGB 247, 237, 250) that maintains 7.2:1 contrast against the darkest surface and 5.1:1 against mid-containers—exceeding WCAG AAA standards.

Primary (#6242fc, a saturated violet-blue) is the signature accent used exclusively on CTAs, active states, and brand-critical interactions. It appears in three intensities: primary-container (#7d5cff) for hover states, primary-fixed (#e8deff) for disabled/secondary contexts, and inverse-primary (#a89dff) for su

Typography

The type system pairs OTT (a geometric, high-contrast display font) for headlines and Inter (a humanist sans-serif) for body and UI text, creating visual hierarchy through both family and weight rather than size alone. Display (60px, 700 weight, -0.04em tracking) and Headline-lg (40px, 600 weight, -0.02em tracking) use OTT to command attention on hero sections and modals; Headline-md (32px, 600 weight, 0.05em tracking) anchors section titles with slightly looser spacing to aid readability at smaller scales. Body-lg (18px, 400 weight, 28px line-height) and Body-md (16px, 400 weight, 24px line-height) use Inter for product descriptions and long-form content, with 1.5x line-height multiplier to accommodate Indonesian's character complexity and improve accessibility for dyslexic users. Label-m

Layout

The layout system uses a 12-column grid with a fixed max-width of 1280px, centered via margin: 0 auto on .section-container elements. Horizontal padding is 20px (gutter token) on mobile, scaling to 40px on tablets (768px+) and 64px on desktop (1024px+) via CSS media queries. Section separation uses 32px (lg spacing) for major content blocks (hero, product grid, footer) and 24px (md spacing) for subsections within cards. Container padding follows a 24px standard (md spacing) for cards and modals, with 12px (sm spacing) reserved for list items and compact components. The grid rhythm is 8px-based: all spacing values are multiples of 8px (4px, 12px, 20px, 24px, 32px, 40px, 64px), enabling predictable alignment and reducing cognitive load during design handoff. Whitespace is generous around CTA

Elevation & Depth

Depth is conveyed through a three-tier shadow system combined with subtle background color shifts. Level 1 (sm elevation: 0 1px 3px rgba(0, 0, 0, 0.5)) is applied to cards, list items, and input fields—a tight, close shadow suggesting proximity to the surface. Level 2 (md elevation: 0 4px 12px rgba(0, 0, 0, 0.6)) lifts modals, dropdowns, and hover states 4-8px above the base, creating clear separation. Level 3 (lg elevation: 0 16px 40px rgba(0, 0, 0, 0.8)) is reserved for full-screen overlays and critical modals, establishing maximum visual hierarchy. Primary buttons add a custom glow: box-sha

Shapes

The shape system follows a "Soft-Technical" philosophy: rounded corners are generous enough to feel approachable and modern, yet precise enough to maintain the brand's gaming-forward credibility. Buttons and primary CTAs use lg radius (1rem / 16px) for a friendly, clickable appearance; secondary buttons and input fields use DEFAULT radius (0.5rem / 8px) for a more utilitarian feel. Cards and elevated surfaces use xl radius (1.5rem / 24px) to soften their edges and suggest depth. Badges and status indicators use full radius (100px / border-radius: 9999px) to create pill-shaped containers that f

Components

Action Elements Buttons are the primary interaction pattern. button-primary uses primary (#6242fc) background with on-primary text (#f7edfa), 12px vertical / 24px horizontal padding, and lg radius (16px). On hover, background shifts to primary-container (#7d5cff) and shadow expands to 0 6px 16px rgba(98, 66, 252, 0.4), creating tactile feedback. On active/pressed, background darkens to #4d3a7d (a 30% darker shade of primary) with no shadow, simulating a "pressed" state. Transition timing is 200ms cubic-bezier(0.4, 0, 0.2, 1) (Material's standard easing). button-secondary uses transparent background with a 2px solid primary border and primary text; on hover, background becomes rgba(98, 66, 252, 0.1) (10% primary overlay) to indicate focus without overwhelming the layout.

Containers

Do's and Don'ts

**Do**

  • Do use primary (#6242fc) exclusively on CTAs and interactive elements; it's the brand's signature accent and should never appear as body text or background.
  • Do maintain minimum 4.5:1 contrast ratio between text and background per WCAG AA; test label-sm on promotional imagery with text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3).
  • Do apply 200ms cubic-bezier(0.4, 0, 0.2, 1) easing to all state transitions (hover, focus, active) for consistent, responsive feel.
  • Do use the full rounded scale (sm, DEFAULT, md, lg, xl, full) intentionally: buttons and inputs use lg/DEFAULT, cards use xl, badges use full.
  • Do leverage the 8px spacing grid (4px, 12px, 20px, 24px, 32px, 40px, 64px) for all padding, margins, and gaps to ensure predictable alignment.
  • Do pair OTT (display/headline) with Inter (body/label) to create clear visual hierarchy; never mix OTT for body text or Inter for display.

**Don't**

  • Don't use secondary (#efe955) or tertiary (#ff7f98) for body text or large text blocks; their high luminance causes eye strain and fails contrast requirements.
  • Don't apply shadows lighter than sm elevation (0 1px 3px rgba(0, 0, 0, 0.5)); the dark surface absorbs light and requires higher opacity to be visible.
  • Don't mix rounded radii arbitrarily; stick to the defined scale (sm, DEFAULT, md, lg, xl, full) to maintain visual consistency.
  • Don't use box-shadow: drop-shadow() filter; use box-shadow property exclusively for consistent rendering and performance.
  • Don't exceed 1280px container max-width; the layout system is optimized for this constraint and wider layouts break the visual rhythm.
  • Don't apply color transitions without easing; always use cubic-bezier(0.4, 0, 0.2, 1) or a named Material easing function to feel intentional.