DESIGN.md · Analysis

CryptoKitties: Arcade

arcade.ecdao.org · 16 Jun 2026 · 47 colors · VT323, monospace, Inter, sans-serif

CryptoKitties: Arcade

A playful, retro-inspired educational platform teaching Cadence smart contract development through pixel-art game mechanics and collectible NFT characters.

Colors

surface#ffffff
surface-dim#f5f5f5
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f0f0f0
surface-container#eeeeee
surface-container-high#e5e7eb
surface-container-highest#d1d5db
on-surface#0a0a0a
on-surface-variant#374151
inverse-surface#171717
inverse-on-surface#ffffff
outline#6b7280
outline-variant#d1d5db
surface-tint#171717
primary#171717
on-primary#ffffff
primary-container#2d2d2d
on-primary-container#f5f5f5
inverse-primary#ffffff
secondary#22c55e
on-secondary#ffffff
secondary-container#86efac
on-secondary-container#15803d
tertiary#ec4899
on-tertiary#ffffff
tertiary-container#fbcfe8
on-tertiary-container#831843
error#dc2626
on-error#ffffff
error-container#fee2e2
on-error-container#7f1d1d
primary-fixed#2d2d2d
primary-fixed-dim#1a1a1a
on-primary-fixed#ffffff
on-primary-fixed-variant#f0f0f0
secondary-fixed#22c55e
secondary-fixed-dim#16a34a
on-secondary-fixed#ffffff
on-secondary-fixed-variant#f0fdf4
tertiary-fixed#ec4899
tertiary-fixed-dim#be185d
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#fce7f3
background#ffffff
on-background#0a0a0a
surface-variant#e5e7eb

Typography

display
fontFamily: VT323, monospace · fontSize: 72px · fontWeight: 400 · lineHeight: 80px · letterSpacing: -0.02em
headline-lg
fontFamily: VT323, monospace · fontSize: 48px · fontWeight: 400 · lineHeight: 56px · letterSpacing: -0.01em
headline-md
fontFamily: VT323, monospace · fontSize: 32px · fontWeight: 400 · lineHeight: 40px · letterSpacing: 0em
title-lg
fontFamily: Inter, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0.01em
body-lg
fontFamily: Inter, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Inter, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: VT323, monospace · fontSize: 16px · fontWeight: 500 · lineHeight: 20px · letterSpacing: 0.02em
label-sm
fontFamily: Inter, sans-serif · fontSize: 12px · fontWeight: 600 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

CryptoKitties: Arcade is a retro-futuristic, play-to-learn platform that teaches Cadence 1.0 smart contract development through pixel-art game mechanics and collectible NFT characters. The brand embodies "Arcade Nostalgia Meets Web3 Education"—a deliberate fusion of 1980s arcade aesthetics with modern blockchain pedagogy. The UI evokes the tactile, high-contrast clarity of arcade cabinets: bold monospace typography (VT323), sharp 2px borders in pure black (#171717), and a high-energy color palette featuring vibrant character-themed backgrounds (mint green, hot pink, electric purple, fire yellow). The emotional response is playful yet focused: users feel invited into a game, not a classroom, lowering cognitive friction for learning complex concepts.

The brand voice is irreverent, encouraging, and technically precise. Vocabulary patterns favor imperative action verbs ("PLAY NOW", "CONNECT", "LEARN") and avoid corporate jargon entirely. The tone treats developers as peers in a shared adventure, never condescending. Example sentence in brand voice: "Your Vegetation Kitty just mastered resource management—time to level up to Medieval Kitty and tackle composability."

Colors

The color system is built on a **High-Contrast Arcade Foundation**: a pure white (#ffffff) canvas with pure black (#171717) as the primary accent, creating maximum legibility and visual pop reminiscent of arcade screen phosphor. This monochromatic core is punctuated by three vibrant secondary colors tied to character archetypes: Vegetation Kitty uses mint green (#22c55e, secondary), Medieval Kitty uses hot pink (#ec4899, tertiary), and Fire Kitty uses golden yellow (part of the character illustration, not a token). The error state is a bold red (#dc2626) for destructive actions.

**Color Usage Rules:** Primary (#171717) is reserved exclusively for CTAs, borders, text hierarchy, and interactive focus states—it commands attention on every screen. On-primary (#ffffff) ensures maximum contrast

Typography

The type system pairs two distinct font families to create visual hierarchy and emotional resonance. **VT323 (monospace, 400 weight)** is the hero typeface, used exclusively for display (72px), headlines (48px–32px), and button labels (16px–31px). VT323's pixel-perfect letterforms evoke arcade cabinet marquees and CRT monitors, creating instant nostalgia and technical credibility. **Inter (sans-serif, 400–600 weight)** handles all body copy, labels, and secondary information at 18px–12px, providing legibility and modern polish. The contrast between these two families—retro-monospace for headlines, contemporary sans for prose—reinforces the brand's dual identity: nostalgic yet forward-thinking.

Type hierarchy is enforced through size and weight, never color alone. Display text (72px, VT323

Layout

The layout system uses a **12-column fluid grid** with a max-width of 1400px, centered on the viewport. The hero section employs a 4-column grid for character cards (Vegetation, Medieval, Sailor, Fire Kitties) with a 3-column span for the headline and CTA, creating an asymmetrical but balanced composition. Spacing follows a strict 8px unit system: section separation uses lg spacing (40px) vertically, gutter spacing (24px) horizontally between card columns, and md spacing (24px) for padding inside containers. The header bar sits at the top with 24px horizontal gutter and 8px vertical padding, anchored with position: sticky and z-index: 50. The main content area has 1% margin on all sides (from the outer black border), creating a framed, arcade-cabinet effect. Container padding is consistent

Elevation & Depth

Depth is achieved through **Physical Border Emphasis and Subtle Shadows**, not through layered blur or glassmorphism. The primary depth signal is the 2px solid border in primary black (#171717), applied to all interactive and container elements (buttons, cards, input fields, header). This border creates a tactile, raised appearance reminiscent of arcade cabinet buttons and bezels. Secondary depth is conveyed through box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) on cards and modals, a soft shadow that lifts elements 3–4px off the page without obscuring content. On hover, cards elevate further with

Shapes

The shape philosophy is **Arcade Sharpness with Minimal Softness**: all corners are either sharp (0px radius) or subtly rounded at 4px (0.25rem) to 8px (0.5rem), never exceeding 1rem (16px). This constraint mirrors the physical geometry of arcade cabinet buttons and screen bezels, which are beveled but not organic. Buttons use rounded: sm (4px) for a slight visual softness that prevents a harsh, utilitarian feel while maintaining the arcade aesthetic. Cards and containers use rounded: sm (4px) on the outer edge, with 2px borders in primary black creating a frame-within-frame effect. Input fiel

Components

Action Elements **Button-Primary** is the dominant CTA, rendered with backgroundColor: {colors.primary} (#171717), textColor: {colors.on-primary} (#ffffff), typography: {typography.label-md} (VT323, 16px, 500 weight), padding: 32px 64px, and a 2px solid border in primary black. On hover, the button transitions to backgroundColor: {colors.primary-fixed-dim} (#1a1a1a) with transform: translateY(-0.1rem) and boxShadow: 0 3px 8px rgba(0, 0, 0, 0.15), all over 400ms cubic-bezier(0.16, 1, 0.3, 1). The large padding (32px vertical, 64px horizontal) makes the button feel substantial and arcade-like, inviting a click. **Button-Secondary** uses transparent background with textColor: {colors.primary}, a 2px border, and 8px vertical padding, appearing as an outline variant for lower-priority actio

Do's and Don'ts

**Do**

  • Do use VT323 monospace for all headlines, button labels, and hero text—it's the brand's visual signature and instantly communicates the arcade aesthetic.
  • Do maintain 2px solid borders in primary black (#171717) on all interactive elements (buttons, cards, inputs) to reinforce the arcade cabinet tactility.
  • Do apply generous spacing (lg: 40px between sections, md: 24px for gutters) to prevent visual clutter and let character cards and missions breathe.
  • Do use the secondary color (#22c55e, mint green) exclusively for success states, achievement badges, and progress indicators—never for primary CTAs.
  • Do pair hover states with both a shadow upgrade (0 3px 8px → 0 8px 24px) and a subtle transform (translateY(-0.1rem) or scale(1.05)) to create tactile, physical feedback.
  • Do use Inter sans-serif for all body copy, secondary labels, and small text to maintain legibility and modern polish against the retro headline font.

**Don't**

  • Don't use rounded corners larger than 1rem (16px)—the arcade aesthetic demands sharp or subtly beveled edges, never organic curves.
  • Don't apply color alone to convey hierarchy; always pair color changes with size, weight, or border changes (e.g., don't make secondary text pink; make it smaller and lighter).
  • Don't use blur filters, transparency gradients, or glassmorphism effects—all depth must be achieved through borders, shadows, and CSS transforms.
  • Don't exceed 2px border width on any element; the arcade aesthetic is about precision, not heaviness.
  • Don't use the secondary color (#22c55e) or tertiary color (#ec4899) for primary CTAs or body text—reserve them for badges, secondary actions, and character-specific UI.
  • Don't apply shadows larger than 0 8px 24px rgba(0, 0, 0, 0.12); the arcade cabinet is a high-contrast, flat-lit environment, not a soft, diffuse one.