Lovable

Lovable's website radiates warmth through restraint.

Back to all styles

A live page in this style is not built yet — the CSS variables and the prompt below are enough to reproduce it.

At a glance

8tokens
7type steps
0radius steps
8pxspacing base

Lovable, in one page

Lovable's website radiates warmth through restraint. The entire page sits on a creamy, parchment-toned background (#f7f4ed) that immediately separates it from the cold-white conventions of most developer tool sites. This isn't minimalism for minimalism's sake — it's a deliberate choice to feel approachable, almost analog, like a well-crafted notebook. The near-black text (#1c1c1c) against this warm cream creates a contrast ratio that's easy on the eyes while maintaining sharp readability.

The custom Camera Plain Variable typeface is the system's secret weapon. Unlike geometric sans-serifs that signal "tech company," Camera Plain has a humanist warmth — slightly rounded terminals, organic curves, and a comfortable reading rhythm. At display sizes (48px–60px), weight 600 with aggressive negative letter-spacing (-0.9px to -1.5px) compresses headlines into confident, editorial statements. The font uses ui-sans-serif, system-ui as fallbacks, acknowledging that the custom typeface carries the brand personality.

What makes Lovable's visual system distinctive is its opacity-driven depth model. Rather than using a traditional gray scale, the system modulates #1c1c1c at varying opacities (0.03, 0.04, 0.4, 0.82–0.83) to create a unified tonal range. Every shade of gray on the page is technically the same hue — just more or less transparent. This creates a visual coherence that's nearly impossible to achieve with arbitrary hex values. The border system follows suit: 1px solid #eceae4 for light divisions and 1px solid rgba(28, 28, 28, 0.4) for stronger interactive boundaries.

Key Characteristics:

Do's and don'ts

Do

  • Use the warm cream background (#f7f4ed) as the page foundation — it's the brand's signature warmth
  • Use Camera Plain Variable at display sizes with negative letter-spacing (-0.9px to -1.5px)
  • Derive all grays from #1c1c1c at varying opacity levels for tonal unity
  • Use the inset shadow technique on dark buttons for tactile depth
  • Use #eceae4 borders instead of shadows for card containment
  • Keep the weight system narrow: 400 for body/UI, 600 for headings
  • Use full-pill radius (9999px) only for action pills and icon buttons
  • Apply opacity 0.8 on active states for responsive tactile feedback

Don't

  • Don't use pure white (#ffffff) as a page background — the cream is intentional
  • Don't use heavy box-shadows for cards — borders are the containment mechanism
  • Don't introduce saturated accent colors — the palette is intentionally warm-neutral
  • Don't use weight 700 (bold) — 600 is the maximum weight in the system
  • Don't apply 9999px radius on rectangular buttons — pills are for icon/action toggles
  • Don't use sharp focus outlines — the system uses soft shadow-based focus indicators
  • Don't mix border styles — #eceae4 for passive, rgba(28,28,28,0.4) for interactive
  • Don't increase letter-spacing on headings — Camera Plain is designed to run tight at scale

Copy this into your AI builder

Paste it as-is. Every value below was measured from the original site, not guessed.

Assembled from the measured tokens — the source document has no prompt block.

Build a page in the Lovable design language. Follow the measured tokens below — do not substitute your own palette.

Colors:
- Cream: #f7f4ed
- Charcoal: #1c1c1c
- Off-White: #fcfbf8
- Charcoal 100%: #1c1c1c
- Muted Gray: #5f5f5d
- Light Cream: #eceae4
- Cream Surface: #f7f4ed
- Ring Blue: #3b82f6

Type:
- families: Camera Plain Variable, Feature, Sub-sections, Introductions
- scale: 14, 16, 18, 20, 36, 48, 60
- weights: 400, 600

Shape:
- elevation: Focus state uses `rgba(0,0,0,0.1) 0px 4px 12px` shadow for soft, warm emphasis | Primary Dark (Inset Shadow) | Focus: `rgba(0,0,0,0.1) 0px 4px 12px` shadow

Spacing: 8, 128

Rules:
- Use the warm cream background (`#f7f4ed`) as the page foundation — it's the brand's signature warmth
- Use Camera Plain Variable at display sizes with negative letter-spacing (-0.9px to -1.5px)
- Derive all grays from `#1c1c1c` at varying opacity levels for tonal unity
- Use the inset shadow technique on dark buttons for tactile depth
- Use `#eceae4` borders instead of shadows for card containment
- Keep the weight system narrow: 400 for body/UI, 600 for headings

Avoid:
- Don't use pure white (`#ffffff`) as a page background — the cream is intentional
- Don't use heavy box-shadows for cards — borders are the containment mechanism
- Don't introduce saturated accent colors — the palette is intentionally warm-neutral
- Don't use weight 700 (bold) — 600 is the maximum weight in the system
- Don't apply 9999px radius on rectangular buttons — pills are for icon/action toggles
- Don't use sharp focus outlines — the system uses soft shadow-based focus indicators

Keep every value literal. If a token is given, use that exact value.

The specification

Colour paletteRead the full spec

Primary

  • Cream (#f7f4ed): Page background, card surfaces, button surfaces. The foundation — warm, paper-like, human.
  • Charcoal (#1c1c1c): Primary text, headings, dark button backgrounds. Not pure black — organic warmth.
  • Off-White (#fcfbf8): Button text on dark backgrounds, subtle highlight. Barely distinguishable from pure white.

Neutral Scale (Opacity-Based)

  • Charcoal 100% (#1c1c1c): Primary text, headings, dark surfaces.
  • Charcoal 83% (rgba(28,28,28,0.83)): Strong secondary text.
  • Charcoal 82% (rgba(28,28,28,0.82)): Body copy.
  • Muted Gray (#5f5f5d): Secondary text, descriptions, captions.
  • Charcoal 40% (rgba(28,28,28,0.4)): Interactive borders, button outlines.
  • Charcoal 4% (rgba(28,28,28,0.04)): Subtle hover backgrounds, micro-tints.
  • Charcoal 3% (rgba(28,28,28,0.03)): Barely-visible overlays, background depth.

Surface & Border

  • Light Cream (#eceae4): Card borders, dividers, image outlines. The warm divider line.
  • Cream Surface (#f7f4ed): Card backgrounds, section fills — same as page background for seamless integration.

Interactive

  • Ring Blue (#3b82f6 at 50% opacity): --tw-ring-color, Tailwind focus ring.
  • Focus Shadow (rgba(0,0,0,0.1) 0px 4px 12px): Focus and active state shadow — soft, warm, diffused.

Inset Shadows

  • Button Inset (rgba(255,255,255,0.2) 0px 0.5px 0px 0px inset, rgba(0,0,0,0.2) 0px 0px 0px 0.5px inset, rgba(0,0,0,0.05) 0px 1px 2px 0px): The signature multi-layer inset shadow on dark buttons.
Type scaleRead the full spec

Font Family

  • Primary: Camera Plain Variable, with fallbacks: ui-sans-serif, system-ui
  • Weight range: 400 (body/reading), 480 (special display), 600 (headings/emphasis)
  • Feature: Variable font with continuous weight axis — allows fine-tuned intermediary weights like 480.

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Display HeroCamera Plain Variable60px (3.75rem)6001.00–1.10 (tight)-1.5pxMaximum impact, editorial
Display AltCamera Plain Variable60px (3.75rem)4801.00 (tight)normalLighter hero variant
Section HeadingCamera Plain Variable48px (3.00rem)6001.00 (tight)-1.2pxFeature section titles
Sub-headingCamera Plain Variable36px (2.25rem)6001.10 (tight)-0.9pxSub-sections
Card TitleCamera Plain Variable20px (1.25rem)4001.25 (tight)normalCard headings
Body LargeCamera Plain Variable18px (1.13rem)4001.38normalIntroductions
BodyCamera Plain Variable16px (1.00rem)4001.50normalStandard reading text
ButtonCamera Plain Variable16px (1.00rem)4001.50normalButton labels
Button SmallCamera Plain Variable14px (0.88rem)4001.50normalCompact buttons
LinkCamera Plain Variable16px (1.00rem)4001.50normalUnderline decoration
Link SmallCamera Plain Variable14px (0.88rem)4001.50normalFooter links
CaptionCamera Plain Variable14px (0.88rem)4001.50normalMetadata, small text

Principles

  • Warm humanist voice: Camera Plain Variable gives Lovable its approachable personality. The slightly rounded terminals and organic curves contrast with the sharp geometric sans-serifs used by most developer tools.
  • Variable weight as design tool: The font supports continuous weight values (e.g., 480), enabling nuanced hierarchy beyond standard weight stops. Weight 480 at 60px creates a display style that feels lighter than semibold but stronger than regular.
  • Compression at scale: Headlines use negative letter-spacing (-0.9px to -1.5px) for editorial impact. Body text stays at normal tracking for comfortable reading.
  • Two weights, clear roles: 400 (body/UI/links/buttons) and 600 (headings/emphasis). The narrow weight range creates hierarchy through size and spacing, not weight variation.
Components and layoutRead the full spec

Buttons

Primary Dark (Inset Shadow)

  • Background: #1c1c1c
  • Text: #fcfbf8
  • Padding: 8px 16px
  • Radius: 6px
  • Shadow: rgba(0,0,0,0) 0px 0px 0px 0px, rgba(0,0,0,0) 0px 0px 0px 0px, rgba(255,255,255,0.2) 0px 0.5px 0px 0px inset, rgba(0,0,0,0.2) 0px 0px 0px 0.5px inset, rgba(0,0,0,0.05) 0px 1px 2px 0px
  • Active: opacity 0.8
  • Focus: rgba(0,0,0,0.1) 0px 4px 12px shadow
  • Use: Primary CTA ("Start Building", "Get Started")

Ghost / Outline

  • Background: transparent
  • Text: #1c1c1c
  • Padding: 8px 16px
  • Radius: 6px
  • Border: 1px solid rgba(28,28,28,0.4)
  • Active: opacity 0.8
  • Focus: rgba(0,0,0,0.1) 0px 4px 12px shadow
  • Use: Secondary actions ("Log In", "Documentation")

Cream Surface

  • Background: #f7f4ed
  • Text: #1c1c1c
  • Padding: 8px 16px
  • Radius: 6px
  • No border
  • Active: opacity 0.8
  • Use: Tertiary actions, toolbar buttons

Pill / Icon Button

  • Background: #f7f4ed
  • Text: #1c1c1c
  • Radius: 9999px (full pill)
  • Shadow: same inset pattern as primary dark
  • Opacity: 0.5 (default), 0.8 (active)
  • Use: Additional actions, plan mode toggle, voice recording

Cards & Containers

  • Background: #f7f4ed (matches page)
  • Border: 1px solid #eceae4
  • Radius: 12px (standard), 16px (featured), 8px (compact)
  • No box-shadow by default — borders define boundaries
  • Image cards: 1px solid #eceae4 with 12px radius

Inputs & Forms

  • Background: #f7f4ed
  • Text: #1c1c1c
  • Border: 1px solid #eceae4
  • Radius: 6px
  • Focus: ring blue (rgba(59,130,246,0.5)) outline
  • Placeholder: #5f5f5d

Navigation

  • Clean horizontal nav on cream background, fixed
  • Logo/wordmark left-aligned (128.75 x 22px)
  • Links: Camera Plain 14–16px weight 400, #1c1c1c text
  • CTA: dark button with inset shadow, 6px radius
  • Mobile: hamburger menu with 6px radius button
  • Subtle border or no border on scroll

Links

  • Color: #1c1c1c
  • Decoration: underline (default)
  • Hover: primary accent (via CSS variable hsl(var(--primary)))
  • No color change on hover — decoration carries the interactive signal

Image Treatment

  • Showcase/portfolio images with 1px solid #eceae4 border
  • Consistent 12px border radius on all image containers
  • Soft gradient backgrounds behind hero content (warm multi-color wash)
  • Gallery-style presentation for template/project showcases

Distinctive Components

AI Chat Input

  • Large prompt input area with soft borders
  • Suggestion pills with #eceae4 borders
  • Voice recording / plan mode toggle buttons as pill shapes (9999px)
  • Warm, inviting input area — not clinical

Template Gallery

  • Card grid showing project templates
  • Each card: image + title, 1px solid #eceae4 border, 12px radius
  • Hover: subtle shadow or border darkening
  • Category labels as text links

Stats Bar

  • Large metrics: "0M+" pattern in 48px+ weight 600
  • Descriptive text below in muted gray
  • Horizontal layout with generous spacing
Responsive behaviourRead the full spec

Breakpoints

NameWidthKey Changes
Mobile Small<600pxTight single column, reduced padding
Mobile600–640pxStandard mobile layout
Tablet Small640–700px2-column grids begin
Tablet700–768pxCard grids expand
Desktop Small768–1024pxMulti-column layouts
Desktop1024–1280pxFull feature layout
Large Desktop1280–1536pxMaximum content width, generous margins

Touch Targets

  • Buttons: 8px 16px padding (comfortable touch)
  • Navigation: adequate spacing between items
  • Pill buttons: 9999px radius creates large tap-friendly targets
  • Menu toggle: 6px radius button with adequate sizing

Collapsing Strategy

  • Hero: 60px → 48px → 36px headline scaling with proportional letter-spacing
  • Navigation: horizontal links → hamburger menu at 768px
  • Feature cards: 3-column → 2-column → single column stacked
  • Template gallery: grid → stacked vertical cards
  • Stats bar: horizontal → stacked vertical
  • Footer: multi-column → stacked single column
  • Section spacing: 128px+ → 64px on mobile

Image Behavior

  • Template screenshots maintain 1px solid #eceae4 border at all sizes
  • 12px border radius preserved across breakpoints
  • Gallery images responsive with consistent aspect ratios
  • Hero gradient softens/simplifies on mobile

Drop-in CSS variables

The same values as a theme block. Add the class to <body> and the site repaints.

body.theme-lovable {--page-bg: #fcfbf8;
  --page-bg-gradient: none;
  --text-color: #1c1c1c;
  --heading-color: #1c1c1c;
  --link-color: #146af4;
  --link-hover-color: #0a54cb;
  --border-color: #d4d3d0;
  --card-bg: #fcfbf8;
  --card-shadow: 0 1px 2px rgba(28,28,28,0.06);
  --card-hover-shadow: 0 6px 18px rgba(28,28,28,0.12);
  --header-bg: #1c1c1c;
  --header-text-color: #ffffff;
  --header-shadow: none;
  --footer-bg: #fcfbf8;
  --footer-text-color: #6a6a69;
  --button-bg: #3b82f6;
  --button-text-color: #000000;
  --button-hover-bg: #0b63f3;
  --button-border: none;
  --button-border-radius: 8px;
  --button-secondary-bg: #efeeeb;
  --button-secondary-text-color: #1c1c1c;
  --button-secondary-hover-bg: #e1e0de;
  --button-secondary-border: 1px solid #d4d3d0;
  --prompt-bg: #f1f0ed;
  --prompt-text-color: #1c1c1c;
  --base-font: var(--font-sans);
  --heading-font: var(--font-sans);
  --card-border-radius: 8px;
}

Download theme.css

Visually close to

Measured with a deterministic colour + geometry comparison across 958 styles. Not a hand-picked list.

Where this came from

Source document
volt/design-md/lovable/DESIGN.md · 16.9 KB
Repository
VoltAgent/awesome-design-md
Licence
MIT

Source text is reproduced under its original licence. Tokens, similarity scores and page structure are ours.