Skip to main content
Back to Gallery

Lovable · Full Page

Lovable

The rare AI app-builder landing that looks crafted by a product team rather than generated by one — exactly the promise it sells. Blue + violet accent, signature rainbow gradient, Camera Plain. Prompt to full-stack app.

lovable.dev/Added
Lovable Full Page — desktop screenshot

Editorial disclaimer

Editorial noteThis entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm — do not reproduce brand identity, logo, product copy, or proprietary features.

Curator verdict

Why we catalogued it?

Lovable is the rare AI app-builder landing that looks like it was crafted by a product team rather than generated by one — which is precisely the promise it's selling. We catalogued it because it solves the hardest problem in the prompt-to-app category: convincing a skeptical builder that 'vibe coding' produces real craft, and it does that entirely through surface quality — a near-white canvas, a single editorial display family, and a shadow system so layered it makes flat cards feel physically lifted. If you are shipping a developer tool that needs to feel both approachable to no-coders and credible to engineers, this is the reference to keep open in the next tab.

Design decisions observed

  • A near-white canvas that reads as calm, not empty — Lovable resists the dark-mode default that every dev-tool reaches for, and the warmth of the off-white background does the de-intimidation work before a single word is read.
  • One editorial display family carries the entire voice — a single variable typeface ranges from quiet body copy to a confident 60px hero, so the page never needs a second font to feel expressive. Authority through commitment, not collection.
  • A signature rainbow gradient reserved for one moment — the multi-stop blue→pink→red→orange sweep appears as a thin accent stroke, never a fill. It's the brand's fingerprint precisely because it's rationed to under a few percent of the surface.
  • Elevation engineered like real glass — instead of a soft drop shadow, cards stack a layered inset border ladder (the 'surface' shadow tokens), giving every panel a crisp 1px-lit rim that feels manufactured rather than blurred.
  • Semantic color held to a disciplined four — a confident blue for action, a violet for the special/AI moments, a clear destructive red, and a positive green, each paired with a matching translucent tint. No decorative color ever leaks in.
  • Density tuned for two audiences at once — generous radii and breathing room keep it inviting for no-coders, while the precise 2px-resolution spacing and tabular controls reassure engineers that the craft goes all the way down.

What to study

  • How a light-first landing in a dark-first category becomes the differentiator — study the way the off-white canvas signals 'this is approachable' against a sea of black developer tools, then notice it never sacrifices contrast or seriousness to get there.
  • The inset-surface shadow ladder — Lovable's panels are lifted by a stacked sequence of 1px inset rim-lights plus barely-there drop layers, not a single blur. It's the most copyable thing here: study how a 'surface' shadow token scales from xxs to xl without ever looking heavy.
  • Gradient as rationed signature, not decoration — the rainbow sweep is the brand's most recognizable asset and it appears almost nowhere. Learn how scarcity turns a single gradient into an identity instead of noise.
  • A motion system that feels instant — almost every transition lands on one 150ms ease curve. Study how a near-uniform, fast, single-easing motion vocabulary makes an AI product feel responsive and trustworthy rather than flashy.

What to avoid

  • Don't reach for the rainbow gradient as a fill or a hero background thinking 'more is more' — Lovable's entire trick is restraint, and a full-bleed version of that sweep would tip the page from confident into a generic AI-startup template overnight.
  • Don't copy the layered inset-surface shadow stacks verbatim onto every element — they're tuned for a light canvas with specific rim colors. Pasted onto a dark or saturated background they invert into muddy halos. Adapt the technique, re-derive the rim colors.
  • Don't assume light-first means low-contrast — Lovable pairs its off-white canvas with a near-black #030303 foreground for a reason. Soften the text color to match the gentle background and you lose the engineering credibility the whole design is buying.

Taste notes

The page feels like a well-pressed product surface — warm off-white paper, a single editorial typeface that knows exactly when to grow, and panels that sit on the canvas with a crisp manufactured rim rather than a soft photographic shadow. The thesis is reassurance: every craft signal is dialed up just far enough to convince an engineer that AI-built doesn't mean AI-sloppy, while the generous radii and gentle palette keep the door open for the non-technical builder. The famous rainbow gradient is the tell — it exists, you remember it, and yet it's almost never on screen. That's confidence: a brand secure enough to spend its signature once.

Lineage & references

  • Sits at the front of the 2024+ prompt-to-app cohort alongside v0 (Vercel), Bolt (StackBlitz), and Replit Agent — landings that all have to perform the same magic trick of making 'describe it and it builds itself' feel like craft rather than a gimmick, and Lovable does it with the most restrained visual hand of the group.
  • Inherits the post-Linear developer-tool design vocabulary — inset 1px surface rims, a single variable family, semantic-color discipline, and 150ms motion — but flips the canon's signature move by going light-first where Linear and its imitators go dark.
  • Part of the broader 'design-system-as-marketing' lineage that Stripe and Figma established — the landing page is itself a live demonstration of the token system (named surface shadows, semantic translucent tints, a granular radius scale) the product would generate, so the medium proves the message.

Design language brief

Paste-ready for your agent.

A typed design system transfer brief — philosophy, tokens, rules, techniques, and fitness checks. Your agent reads the whole language, not just the pixels.

Philosophy

Light-first product craft at 2px spatial resolution. The canvas is a warm near-white (#fafafa body, #fcfbf8 surface) carrying a near-black #030303 foreground at full contrast; a single editorial variable family (Camera Plain Variable) ranges from 14px UI to a 60px hero with a graduated 400/480/600 weight ladder, while Roboto Mono Variable handles code. Elevation is delivered through layered inset 'surface' rim-light shadows — a 1px white inner border plus translucent slate rings — not soft drop shadows. Semantic color is held to four disciplined roles (accent blue #1f55f1, special violet #8e48ff, destructive #e12429, positive #338500), each with a matching ~16% translucent tint. The signature is a multi-stop rainbow gradient rationed to a thin accent stroke. Reassurance over spectacle, craft over flash.

Main prompt

Use this capture as a design language transfer brief for my project. Adopt the palette (light-first warm off-white canvas #fafafa/#fcfbf8 + near-black #030303 foreground + a disciplined four-role semantic set: accent blue #1f55f1, special violet #8e48ff, destructive #e12429, positive #338500, each paired with a ~16% translucent tint), the typographic rhythm (a single editorial variable family with a 400/480/600 weight ladder, mono for code only), the 2px-base spacing scale, border-first elevation via layered inset 'surface' rim-light shadows (1px white inner edge + translucent slate ring, never a soft blur), the cubic-bezier(0.4, 0, 0.2, 1) / 150ms primary motion curve, and a rainbow signature gradient rationed to under a few percent of the surface — across every page and component I ship. Treat this as my project's constitution: any new component should pass as if crafted in the same studio. Apply the language, not the source brand's specific copy or identity. When I ask you to build a page or component, enforce these rules by default and call out any decision that deviates.

Overview

Layout
Flow
Content width
Bounded
Framing
Layered
Grid strength
Soft

Color philosophy

Light-first warm canvas — #fafafa primary background and #fcfbf8 surface paired with a near-black #030303 foreground doing the dominant reading work (#030303 measured at 656 surface occurrences). Secondary text descends through warm grays: #2e2e2d → #636363 → #9b9b9b for progressive de-emphasis. Semantic color is rationed to four roles — accent blue #1f55f1, special/AI violet #8e48ff, destructive #e12429, positive #338500 — each shipped with a matching ~16% translucent tint (e.g. #1f55f129) for fills. The brand signature is a multi-stop 90deg rainbow gradient (blue→pink→red→orange) used only as a thin accent stroke.

Mode strategylight-first
  • Near-black #030303 text on a warm #fafafa/#fcfbf8 canvas — the dominant reading layer (#030303 measured at 656 occurrences), full ~19:1 contrast for engineering credibility
  • Warm gray descender #2e2e2d / #636363 / #9b9b9b for secondary copy, captions, metadata, and de-emphasized labels
  • Accent blue #1f55f1 reserved for primary action and links; its ~16% translucent tint #1f55f129 for soft hover fills and focus glows
  • Special violet #8e48ff for AI/generative moments; destructive #e12429 for danger; positive #338500 for success — each with a matching translucent tint, never decorative
  • Rainbow signature gradient (blue→pink→red→orange) appears only as a thin accent stroke or border highlight — under ~3% of total surface area, never a fill or hero background
  • Hairline borders carry structure at single-digit alpha (#cecece66 / #c9c9c966 tier) — the page is delimited by 1px rims, not by heavy color blocks

Gradients (paste-ready)

linear-gradient(90deg, rgb(28, 28, 28) 0px, rgb(28, 28, 28) 33.33%, rgb(130, 188, 255) 40%, rgb(36, 131, 255) 45%, rgb(255, 102, 244) 50%, rgb(255, 48, 41) 55%, rgb(254, 123, 2) 60%, rgba(0, 0, 0, 0) 66.67%, rgba(0, 0, 0, 0))
linear-gradient(to bottom, transparent, #0000000a)
linear-gradient(to bottom, #00000005, transparent)

Typography rules

  • Primary family: Camera Plain Variable (self-hosted, preloaded from /fonts/CameraPlainVariable-c48bd243.woff2, font-display: block). Monospace: Roboto Mono Variable (font-display: swap) for code, tabular numerics, and kbd.
  • Weight ladder: 400 (reading body + UI) / 480 (medium emphasis, small labels, display-4) / 600 (headings + hero). The 480 mid-step is the signature — do not flatten it to 500.
  • Display scale: 60px hero at weight 600 with line-height 66px and -1.5px tracking; 48px heading at line-height 48px; 36px heading at weight 600 with line-height 39.6px and -0.9px tracking. Negative tracking only on 36px+ display sizes.
  • Body: 16px / line-height 24px / weight 400 / letter-spacing normal. Secondary UI text 14-15px at line-height 21-24px. No negative tracking below 36px — body and UI sit at normal spacing.
  • Headings carry tight unitless-feeling line-heights (1.0–1.1 at 48–60px); body and UI relax to 1.5 (24px on 16px) for readability on the light canvas.
  • Tabular numerals on aligned columns via `font-variant-numeric: tabular-nums`; Roboto Mono Variable handles inline code and kbd automatically.
  • Single editorial display family only — no second sans for 'softening'. The expressive range lives in the weight ladder, not in a font collection. Italic (Camera Plain Variable Regular Italic) reserved for quoted editorial content.

Spacing rules

  • 2px base unit. Scale: 2 / 4 / 6 / 8 / 10 / 12 / 16 / 20 / 24 / 32 / 40 / 48 px — the 6px and 12px steps dominate (measured 124 and 54 occurrences) so favor them for default gaps and gutters.
  • Container max-widths: 576 (sm / narrow content) / 768 (md / prose) / 1536 (lg / full sections) px. Bounded layout — content never runs edge-to-edge text.
  • Flex/grid gutters draw from 4 / 6 / 8 / 16 px for component-level spacing; 80px and 144px for major section separation (measured large-gap rails).
  • Card padding: 20-24px on desktop, 12-16px on mobile — always pick from the scale, no magic numbers.
  • Section vertical rhythm relies on the 40 / 48 px steps plus the large 80 / 144 px rails for breathing room between major page regions — the generous whitespace is what keeps the light canvas calm.

Design tokens

Palette, type, and space — all agent-readable.

9 colors · hex / rgb / hsl / oklch

Save PNG
  • foregroundfg-primary
    48%
    • HEX#030303
    • RGBrgb(3, 3, 3)
    • HSLhsl(0, 0%, 1%)
    • OKLCHoklch(9.69% 0.0000 89.76)
  • neutral
    47%
    • HEX#ECEAE4
    • RGBrgb(236, 234, 228)
    • HSLhsl(45, 17%, 91%)
    • OKLCHoklch(93.69% 0.0083 91.49)
  • background
    3%
    • HEX#FCFBF8
    • RGBrgb(252, 251, 248)
    • HSLhsl(45, 40%, 98%)
    • OKLCHoklch(98.80% 0.0041 91.45)
  • foreground
    1%
    • HEX#1C1C1C
    • RGBrgb(28, 28, 28)
    • HSLhsl(0, 0%, 11%)
    • OKLCHoklch(22.64% 0.0000 89.76)
  • foreground
    1%
    • HEX#5F5F5D
    • RGBrgb(95, 95, 93)
    • HSLhsl(60, 1%, 37%)
    • OKLCHoklch(48.48% 0.0031 106.52)
  • accent
    0%
    • HEX#FF0105
    • RGBrgb(255, 1, 5)
    • HSLhsl(359, 100%, 50%)
    • OKLCHoklch(62.83% 0.2573 28.99)
  • backgroundfg-inverse
    0%
    • HEX#FAFAFA
    • RGBrgb(250, 250, 250)
    • HSLhsl(0, 0%, 98%)
    • OKLCHoklch(98.51% 0.0000 89.76)
  • accent
    0%
    • HEX#4B73FF
    • RGBrgb(75, 115, 255)
    • HSLhsl(227, 100%, 65%)
    • OKLCHoklch(60.61% 0.2127 267.53)
  • accent
    0%
    • HEX#FF66F4
    • RGBrgb(255, 102, 244)
    • HSLhsl(304, 100%, 70%)
    • OKLCHoklch(75.12% 0.2426 330.61)

Inspector

Tab through the captured artifacts.

Six observable layers — page structure, fonts, breakpoints, z-index, gradients, motion — kept paste-ready alongside the tokens above.

Page structure

Semantic hierarchy at a glance.

Depth-first walk of meaningful sections — header, navigation, main regions, articles, footer. 8 nodes captured; depth capped at 6 for readability.

  • body
  • ├─ a
  • ├─ div
  • │ └─ div
  • │ └─ div
  • │ └─ div
  • │ └─ Main
  • └─ Section

Accessibility

WCAG contrast matrix.

62 combinations · 26 pass AA · 14 pass AAA · APCA Lc shown alongside WCAG 2.1 ratio for draft WCAG 3 awareness.

PreviewfgbgRatioNormalLargeAPCA LcContext
Aa
#030303#FCFBF819.93AAAAAA+104foreground on background
Aa
#FCFBF8#03030319.93AAAAAA-105background on foreground
Aa
#030303#FAFAFA19.76AAAAAA+103foreground on background
Aa
#FAFAFA#03030319.76AAAAAA-105background on foreground
Aa
#030303#ECEAE417.14AAAAAA+94foreground on neutral
Aa
#ECEAE4#03030317.14AAAAAA-94neutral on foreground
Aa
#FCFBF8#1C1C1C16.47AAAAAA-104background on foreground
Aa
#1C1C1C#FCFBF816.47AAAAAA+102foreground on background
Aa
#1C1C1C#FAFAFA16.33AAAAAA+101foreground on background
Aa
#FAFAFA#1C1C1C16.33AAAAAA-103background on foreground

Image strategy

Asset loading & format policy.

Observable image posture — total count, lazy-loading ratio, and format mix. Hero image is measured above the fold.

Total10Lazy loaded90%webp9png1
Page type
  • Full Page
Industry
  • ai
  • developer-tools
Theme
  • light
Added
  • 2026-06-24

Editorial credit

Featured Sponsor slot — your brand here

Dedicated logo placement — no rotation, on every export.

Become a sponsor

COMPARE THIS WITH

See also

Adjacent patterns worth studying.

AI2 Design counts anonymous traffic always — no cookies, no identifiers, no fingerprinting. For optional session insights (PostHog, EU region) — page funnel, performance — turn on opt-in analytics below. Cookie policy.