DESIGN.md · Analysis

ojonah

ojonah.io · 12 Sept 2026 · 47 colors · Roboto

ojonah

A Web3 creative platform for minting NFTs from user-generated content, blending dark atmospheric design with vibrant accent colors to create an immersive, playful digital experience.

Colors

surface#15162c
surface-dim#0f1020
surface-bright#1a1b35
surface-container-lowest#0a0b18
surface-container-low#0f1020
surface-container#15162c
surface-container-high#1f2139
surface-container-highest#282c34
on-surface#ffffff
on-surface-variant#bae8ff
inverse-surface#f5f5f5
inverse-on-surface#15162c
outline#435793
outline-variant#6c757d
surface-tint#435793
primary#f1376f
on-primary#ffffff
primary-container#f1376f
on-primary-container#ffffff
inverse-primary#f1376f
secondary#435793
on-secondary#ffffff
secondary-container#5a6fa8
on-secondary-container#ffffff
tertiary#bae8ff
on-tertiary#15162c
tertiary-container#bae8ff
on-tertiary-container#15162c
error#ff6b6b
on-error#ffffff
error-container#ff6b6b
on-error-container#ffffff
primary-fixed#f1376f
primary-fixed-dim#d91e5f
on-primary-fixed#ffffff
on-primary-fixed-variant#ffffff
secondary-fixed#435793
secondary-fixed-dim#2f3d6b
on-secondary-fixed#ffffff
on-secondary-fixed-variant#ffffff
tertiary-fixed#bae8ff
tertiary-fixed-dim#7fc9f5
on-tertiary-fixed#15162c
on-tertiary-fixed-variant#15162c
background#15162c
on-background#ffffff
surface-variant#282c34

Typography

display
fontFamily: Roboto · fontSize: 80px · fontWeight: 800 · lineHeight: 88px · letterSpacing: -0.04em
headline-lg
fontFamily: Roboto · fontSize: 40px · fontWeight: 700 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Roboto · fontSize: 28px · fontWeight: 700 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Roboto · fontSize: 24px · fontWeight: 700 · lineHeight: 32px
body-lg
fontFamily: Roboto · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Roboto · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Roboto · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Roboto · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

ojonah is a Web3 creative platform that democratizes NFT minting by enabling users to transform their own content into blockchain-native assets. The design language embraces 'Dark Maximalism with Neon Accents'—a contemporary aesthetic that pairs deep, atmospheric navy-to-charcoal gradients (#15162c to #282c34) with vibrant, high-saturation accent colors (#f1376f magenta, #435793 periwinkle) to create visual tension and energy. The UI evokes a sense of playful rebellion and digital sophistication, inviting users into a space where creativity meets decentralization. The emotional response is one of empowerment: users feel they are entering a premium, exclusive creative studio rather than a utilitarian tool.

The brand voice is casual, irreverent, and confident—never corporate or overly technical. Vocabulary patterns favor directness and wit: 'Make a meme and mint the NFT' and 'Trash or treasure, your choice' exemplify the tone. The platform speaks to creators as peers, using imperative, action-oriented language that assumes agency and humor. Example sentence in brand voice: 'Your chaos deserves to live forever on-chain.'

Colors

The color system is built on a high-contrast, dark-first foundation that prioritizes legibility and visual drama. Surface colors range from #15162c (primary surface) through #282c34 (container-highest), creating a subtle depth hierarchy without sacrificing the immersive dark aesthetic. The primary accent is #f1376f (vibrant magenta), used exclusively for call-to-action buttons, active navigation states, and brand-critical interactive elements—this color commands attention and signals interactivity with 87% saturation and 58% lightness, making it unmistakable even against the dark background. Secondary accent #435793 (periwinkle) serves as the navigation text color and outline, providing a cooler counterpoint that suggests trust and technical sophistication. Tertiary #bae8ff (light cyan) is

Typography

The type system uses Roboto as the primary typeface, chosen for its geometric clarity and Web3-native familiarity. The hierarchy spans from display (80px, 800 weight) for hero headlines down to label-sm (12px, 500 weight) for supporting text and metadata. Display and headline-lg use tight letter-spacing (-0.04em and -0.02em respectively) to create visual compression and energy, while body text maintains standard spacing (0em) for readability. The system enforces a 4px baseline grid: all font sizes and line heights are multiples of 4 (80px, 40px, 28px, 24px, 18px, 16px, 14px, 12px), ensuring consistent vertical rhythm across the interface. When small labels (12–14px) appear over busy glass-morphism backgrounds, apply text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) to maintain legibility. Font wei

Layout

The page layout uses a fluid 12-column grid that collapses to single-column on mobile (< 768px) and expands to full-width on desktop (up to 1280px container max-width). The hero section occupies the full viewport height (min-h-screen), centering content both horizontally and vertically using flexbox (justify-center, items-center). Section separation uses lg spacing (40px) for major breaks and md spacing (24px) for subsections, creating a breathing rhythm that prevents visual fatigue. The header is sticky (position: sticky, top: 0, z-index: 50) with a semi-transparent backdrop (rgba(21, 22, 44, 0.95)) and blur effect (backdrop-filter: blur(8px)), allowing content to scroll beneath while maintaining navigation accessibility. Cards and interactive containers use md padding (24px) internally,

Elevation & Depth

Depth in this system is conveyed through layered glass-morphism and subtle shadow elevation rather than traditional drop shadows. Level 1 (Base) is the animated gradient background (from-[#282c34] to-[#15162c]), which provides the visual foundation and energy. Level 2 (Standard Card) uses backdrop-filter: blur(8px), background: rgba(255, 255, 255, 0.1), and a 1px border at rgba(255, 255, 255, 0.15)—this creates a frosted-glass effect that sits subtly above the background. Level 3 (Elevated/Hover) increases the backdrop blur to blur(12px) and the background opacity to rgba(255, 255, 255, 0.2),

Shapes

The shape philosophy is 'Soft-Technical Minimalism'—rounded corners are used strategically to soften the geometric precision of the interface without introducing organic or playful curves. Buttons and primary interactive elements use rounded-lg (1rem / 16px), creating a subtle softness that feels approachable yet professional. Cards and glass containers use rounded-xl (0.75rem / 12px), slightly more pronounced to define them as distinct surfaces. Input fields and smaller components use rounded-md (0.75rem / 12px) or rounded-DEFAULT (0.5rem / 8px), maintaining visual consistency while reducing

Components

Action Elements Buttons are the primary interaction mechanism and use two distinct styles. Primary buttons (button-primary) have backgroundColor: {colors.primary} (#f1376f), textColor: white, rounded-lg (16px), padding: 16px 24px, and height: 48px (touch-target minimum). On hover (button-primary-hover), the background shifts to {colors.primary-fixed-dim} (#d91e5f) with a 200ms ease-in-out transition, signaling state change without animation jank. Secondary buttons (button-secondary) use transparent background with a 1px border at {colors.secondary} (#435793), maintaining the same padding and height for consistency. On hover, secondary buttons fill with {colors.surface-container-high} (#1f2139) to indicate interactivity. Navigation links (nav-link) use {colors.secondary} text with label

Do's and Don'ts

**Do**

  • Do use {colors.primary} (#f1376f) exclusively for primary CTAs, active states, and brand-critical moments—never dilute its impact by using it for secondary UI.
  • Do maintain the glass-morphism aesthetic on all card surfaces with backdrop-filter: blur(8px) minimum and rgba(255, 255, 255, 0.1) background to preserve the immersive dark atmosphere.
  • Do apply 200ms ease-in-out transitions on all interactive state changes (hover, focus, active) to create smooth, responsive feedback without animation jank.
  • Do enforce the 4px baseline grid for all typography sizes and line heights (80px, 40px, 28px, 24px, 18px, 16px, 14px, 12px) to maintain vertical rhythm across the interface.
  • Do use Roboto as the single typeface family across all UI text—never mix typefaces or introduce serif fonts, which would break the geometric, technical aesthetic.

**Don't**

  • Don't use {colors.primary} (#f1376f) for body text, disabled states, or background fills—reserve it for interactive elements only to maintain visual hierarchy and prevent color fatigue.
  • Don't apply shadows deeper than 0 3px 8px rgba(0, 0, 0, 0.15) or use hard drop-shadows; the glass-morphism aesthetic relies on blur and transparency, not darkness.
  • Don't exceed 2 levels of nesting in the color hierarchy (surface → container → highest); more than 3 distinct background colors creates visual confusion in the dark theme.
  • Don't use rounded corners smaller than 0.5rem (8px) on interactive elements—this breaks the soft-technical aesthetic and makes small buttons feel cramped and inaccessible.
  • Don't animate opacity or transform properties for longer than 300ms; the platform should feel responsive and snappy, not sluggish or over-designed.