DESIGN.md · Analysis

Leonardo.ai

leonardo.ai · 17 Jul 2026 · 47 colors · UfficioDisplay, CanvaSans

Leonardo.ai

Creator-first generative AI platform for images, art, and video. Bold, immersive visual identity centered on vibrant purple accents and high-contrast dark surfaces.

Colors

surface#000000
surface-dim#0a0a0a
surface-bright#1a1a1a
surface-container-lowest#030303
surface-container-low#121212
surface-container#1a1a1a
surface-container-high#252525
surface-container-highest#353535
on-surface#ededed
on-surface-variant#999999
inverse-surface#ededed
inverse-on-surface#000000
outline#666666
outline-variant#444444
surface-tint#6e60ee
primary#6e60ee
on-primary#ffffff
primary-container#5a4fd6
on-primary-container#ededed
inverse-primary#8a7dff
secondary#03e65b
on-secondary#000000
secondary-container#02b847
on-secondary-container#ffffff
tertiary#33d0ff
on-tertiary#000000
tertiary-container#0099cc
on-tertiary-container#ffffff
error#ff5d4b
on-error#ffffff
error-container#d25fff
on-error-container#000000
primary-fixed#8a7dff
primary-fixed-dim#6e60ee
on-primary-fixed#1a1a1a
on-primary-fixed-variant#5a4fd6
secondary-fixed#03e65b
secondary-fixed-dim#02b847
on-secondary-fixed#000000
on-secondary-fixed-variant#009933
tertiary-fixed#33d0ff
tertiary-fixed-dim#0099cc
on-tertiary-fixed#000000
on-tertiary-fixed-variant#0077aa
background#000000
on-background#ededed
surface-variant#353535

Typography

display
fontFamily: UfficioDisplay · fontSize: 120px · fontWeight: 900 · lineHeight: 108px · letterSpacing: -0.02em
headline-lg
fontFamily: UfficioDisplay · fontSize: 56px · fontWeight: 800 · lineHeight: 64px · letterSpacing: -0.015em
headline-md
fontFamily: UfficioDisplay · fontSize: 40px · fontWeight: 800 · lineHeight: 48px · letterSpacing: -0.01em
title-lg
fontFamily: CanvaSans · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: 0.01em
body-lg
fontFamily: CanvaSans · fontSize: 18px · fontWeight: 500 · lineHeight: 28px · letterSpacing: 0.025em
body-md
fontFamily: CanvaSans · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0.01em
label-md
fontFamily: CanvaSans · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: CanvaSans · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

Leonardo.ai is a creator-first generative AI platform that transforms visual production at scale. The design system embodies "Neon Brutalism"—a collision of high-contrast dark surfaces (#000000 background, #030303 container-lowest) with electric, saturated accent colors (primary purple #6e60ee, secondary neon-green #03e65b, tertiary cyan #33d0ff). The aesthetic evokes a digital studio where creators command powerful tools without friction. The UI personality is confident, direct, and unapologetically bold: every interaction feels intentional, every color choice purposeful. Voice: energetic yet precise, never flowery. Example: "Generate 50 variations in 3 minutes. No limits, no waiting."

Colors

The color system prioritizes contrast and energy. Primary (#6e60ee) is the signature accent—used on all CTAs, focus states, and brand moments. It commands attention against the pure-black surface (#000000) with a luminosity ratio of 8.2:1, ensuring accessibility while maintaining visual drama. Secondary green (#03e65b) signals success, generation completion, and positive actions; tertiary cyan (#33d0ff) highlights secondary CTAs and interactive states. The surface stack is deliberately minimal: surface (#000000), surface-container-low (#121212), surface-container (#1a1a1a), surface-container-high (#252525), and surface-container-highest (#353535) create subtle depth without compromising the bold aesthetic. On-surface text is fixed at #ededed (a warm off-white, not pure #ffffff) to reduce e

Typography

The type system pairs two custom fonts: UfficioDisplay (weights 800–900) for headlines and display text, and CanvaSans (weights 400–600) for body and UI text. Display (120px, 900 weight, -0.02em tracking) is reserved for hero statements and brand moments; it commands the full viewport width with 108px line-height, creating a rhythm that feels expansive. Headline-lg (56px, 800 weight) and headline-md (40px, 800 weight) scale down for section headers, maintaining the bold, geometric character. Body text (16–18px, 400–500 weight) uses CanvaSans with 0.01–0.025em tracking to ensure legibility on dark backgrounds; line-height is set to 1.5× font-size (24px for 16px text) to prevent crowding. Labels (12–14px, 500–600 weight) use 0.05em tracking for UI elements and buttons, adding visual separati

Layout

The layout operates on a 12-column grid with a max-width of 1280px, centered with symmetric gutters of 24px on desktop and 12px on mobile. Sections are separated using lg spacing (40px) for major breaks and md spacing (24px) for subsections, creating a clear visual hierarchy. The container-max-width of 1280px ensures content never stretches beyond comfortable reading width on ultra-wide displays. White-space is aggressive: the hero section uses 64px (xl spacing) above and below the headline, and 40px (lg spacing) between the headline and CTAs. Cards and containers use md spacing (24px) for internal padding, with sm spacing (12px) between nested elements. The grid is fluid on mobile (single column, 12px gutter) and expands to 2–3 columns on tablet (24px gutter) and 3–4 columns on desktop (2

Elevation & Depth

Depth is conveyed through subtle shadows and layering, not through color gradients or transparency. Level 1 (Base): the pure-black background (#000000) with no shadow. Level 2 (Standard Card): box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), applied to cards, modals, and floating elements; background is surface-container (#1a1a1a) with a 1px border at outline-variant (#444444). Level 3 (Elevated/Modals): box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25), applied to full-screen modals, dropdowns, and top-layer overlays; background is surface-container-high (#252525) with a 1px border at outline (#666666).

Shapes

The shape philosophy is "Geometric Precision with Approachability"—sharp corners on display text and large containers, soft rounded corners on interactive elements. Buttons use full radius (9999px) for a pill shape, creating a friendly, clickable affordance; padding is 12px 24px with a minimum height of 48px. Cards and containers use lg radius (1rem / 16px) for a balanced, modern look that avoids harsh corners without feeling overly soft. Input fields use DEFAULT radius (0.5rem / 8px) for a subtle, refined appearance. Badges and small UI elements use full radius (9999px) to emphasize their com

Components

Action Elements Buttons are the primary interaction pattern. Button-primary uses background {colors.primary} (#6e60ee), text {colors.on-primary} (#ffffff), rounded full (9999px), padding 12px 24px, height 48px, and label-md typography (14px, 600 weight). On hover, background shifts to {colors.primary-container} (#5a4fd6) with a 200ms transition. Button-secondary is transparent with a 1px border at {colors.outline} (#666666), text {colors.on-surface} (#ededed), and the same rounded/padding/height. On hover, background becomes {colors.surface-container-high} (#252525) and text shifts to {colors.primary} (#6e60ee). Button-ghost uses rgba(255, 255, 255, 0.05) background, no border, and on hover shifts to rgba(255, 255, 255, 0.1) with a 150ms ease-out transition. All buttons use font-weight

Do's and Don'ts

**Do**

  • Do use primary purple (#6e60ee) on all primary CTAs, focus states, and brand-critical moments—it's the signature accent that defines Leonardo's visual identity.
  • Do maintain high contrast: ensure on-surface text (#ededed) is always placed on surface backgrounds (#000000–#353535) for a minimum 8:1 contrast ratio.
  • Do apply full-radius (9999px) to all buttons and badges to create a consistent, inviting interaction pattern across the platform.
  • Do use md spacing (24px) as the default padding inside cards and containers; use lg spacing (40px) for section separation to create visual breathing room.
  • Do apply 200ms cubic-bezier(0.4, 0, 0.2, 1) transitions to all hover and focus state changes for a snappy, responsive feel.
  • Do use UfficioDisplay (800–900 weight) for headlines and display text to maintain the bold, geometric brand character.

**Don't**

  • Don't use pure white (#ffffff) for body text; always use on-surface (#ededed) to reduce eye strain on dark backgrounds and maintain the warm, refined aesthetic.
  • Don't apply shadows larger than 0 16px 40px rgba(0, 0, 0, 0.25)—deeper shadows break the high-contrast, neon-brutalist aesthetic.
  • Don't mix border-radius values on buttons: always use full (9999px) for consistency; avoid DEFAULT or md radius on CTAs.
  • Don't place text directly on busy backgrounds without a text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) to ensure legibility.
  • Don't use secondary colors (green #03e65b, cyan #33d0ff) as primary CTAs—reserve them for success states, secondary actions, and highlights.
  • Don't exceed container-max-width of 1280px; content should never stretch beyond this to maintain comfortable reading width and visual hierarchy.