duply
GenieStudio homepage design, full-page screenshot

GenieStudio

A light, playful AI-design-tool landing surface built on a white-to-sky-tint canvas, floating cloud and 3D sticker illustrations, and a near-black pill CTA. The system reads as friendly, airy SaaS — Aeonik display headlines set large with tight tracking, Geist body copy, generous rounded geometry (16–32px cards, pill nav), and soft blue-tinted shadows that make hero artifacts feel like they float. Brand voltage comes from the pastel-and-sky illustration set and the single dark Sign-up button rather than from saturated UI color.

---
version: alpha
name: GenieStudio-design-analysis
description: "A light, playful AI-design-tool landing surface built on a white-to-sky-tint canvas, floating cloud and 3D sticker illustrations, and a near-black pill CTA. The system reads as friendly, airy SaaS — Aeonik display headlines set large with tight tracking, Geist body copy, generous rounded geometry (16–32px cards, pill nav), and soft blue-tinted shadows that make hero artifacts feel like they float. Brand voltage comes from the pastel-and-sky illustration set and the single dark Sign-up button rather than from saturated UI color."

colors:
  primary: "#181d27"
  ink: "#0a0d12"
  body: "#535862"
  muted: "#93979f"
  canvas: "#ffffff"
  on-primary: "#ffffff"
  surface-soft: "#f9fafb"
  surface-alt: "#f6f7f8"
  surface-cool: "#fafdff"
  surface-faint: "#fcfcfd"
  surface-blue-tint: "#f0f8ff"
  surface-violet-tint: "#f9f5ff"
  surface-lilac: "#f1e6ff"
  hairline: "#eef0f1"
  accent-blue: "#0099ff"
  accent-sky: "#4fbeff"
  accent-blue-soft: "#cce7ff"
  accent-purple: "#9552e0"
  accent-violet: "#bb80ff"
  accent-orange: "#f26110"
  accent-amber: "#bb9915"

typography:
  display-xl:
    fontFamily: "Aeonik, Inter, sans-serif"
    fontSize: 72px
    fontWeight: 500
    lineHeight: 1.111
    letterSpacing: -0.02em
  display-lg:
    fontFamily: "Aeonik, Inter, sans-serif"
    fontSize: 48px
    fontWeight: 500
    lineHeight: 1.167
    letterSpacing: normal
  body:
    fontFamily: "Geist, sans-serif"
    fontSize: 18px
    fontWeight: 500
    lineHeight: 1.333
    letterSpacing: -0.01em
  button:
    fontFamily: "Geist, sans-serif"
    fontSize: 14px
    fontWeight: 600
    lineHeight: 1.143
    letterSpacing: -0.01em

rounded:
  xs: 4px
  sm: 8px
  md: 16px
  lg: 24px
  xl: 32px
  pill: 90px

spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  ml: 20px
  lg: 24px
  xl: 32px
  xxl: 40px
  huge: 48px
  section: 56px

components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.button}"
    rounded: "{rounded.md}"
    padding: 8px 16px
  top-nav:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.muted}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 8px 16px
  nav-link:
    backgroundColor: transparent
    textColor: "{colors.muted}"
    typography: "{typography.button}"
  hero-band:
    backgroundColor: "{colors.surface-blue-tint}"
    textColor: "{colors.ink}"
    typography: "{typography.display-xl}"
    padding: 56px
  card:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    rounded: "{rounded.xs}"
  product-mockup-card:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    rounded: "{rounded.xl}"
    padding: 24px
  swatch-circle:
    backgroundColor: "{colors.surface-blue-tint}"
    textColor: "{colors.ink}"
    rounded: "{rounded.pill}"
---

## Overview

GenieStudio's landing surface is a light, playful AI-design-tool interface — a white canvas (`{colors.canvas}`#ffffff) that fades into soft blue and violet tints (`{colors.surface-blue-tint}`#f0f8ff, `{colors.surface-violet-tint}`#f9f5ff) behind floating cloud illustrations and 3D-sticker artifacts (a genie lamp, paint palette, envelope, waving cloud mascot). The tone is friendly, airy, and confident — a single near-black pill CTA (`{colors.primary}`#181d27) anchors the composition against an otherwise pastel scene.

Type voice splits into two families: **Aeonik** (the display face — used for the big hero headline at weight 500 with tight -0.02em tracking) and **Geist** (Vercel's open-source UI face — used for body copy and buttons). The hero headline is set very large (`{typography.display-xl}` — 72px) with an inline sticker icon breaking the line, giving the page a toy-like editorial rhythm rather than a dense product grid.

Brand voltage comes from the **illustration set** — sky-blue clouds, a smiling cloud mascot, pastel stars and sparkles — plus the tinted-canvas gradients, not from saturated UI chrome. The measured accent palette (blue `{colors.accent-blue}`, purple `{colors.accent-purple}`, orange `{colors.accent-orange}`, amber `{colors.accent-amber}`) lives almost entirely inside those sticker illustrations and the product-mockup screenshot, never on primary UI.

**Key Characteristics:**
- White/tinted canvas with one dark pill CTA (`{colors.primary}`#181d27), `{rounded.md}` (16px), Geist 600 label. It is the only high-contrast interactive element on the page.
- Aeonik display headline at 72px / weight 500 / -0.02em tracking. Aeonik is a commercial typeface — an open-source substitute is documented in Typography.
- Floating cloud + 3D-sticker illustrations layered over blue-to-violet tinted gradients. The illustration set carries all the chromatic energy.
- Soft blue-cast drop shadow (`rgba(4, 69, 144, 0.08) 0px 14px 20px 4px`) makes the product-mockup card and floating artifacts feel weightless.
- Pill-shaped top nav container (`{rounded.pill}` — 90px) floating on the tinted hero band.
- Rounded geometry throughout: `{rounded.md}` (16px) for buttons, `{rounded.xl}` (32px) for the product-mockup card — the two most-measured radii.
- Muted, low-contrast supporting text (`{colors.body}`#535862 for paragraphs, `{colors.muted}`#93979f for nav links) keeps the scene quiet around the loud illustrations.

## Colors

### Brand & Action
- **Primary** (`{colors.primary}`#181d27): The single dark action color — the "Sign up" pill CTA background. Near-black with a blue-slate cast.
- **Ink** (`{colors.ink}`#0a0d12): Headline text — maximum contrast against canvas.

### Accent (illustration set)
These saturated hues were measured almost exclusively inside the 3D-sticker and mascot illustrations and the product-mockup screenshot — not on functional UI.
- **Accent Blue** (`{colors.accent-blue}`#0099ff) and **Accent Sky** (`{colors.accent-sky}`#4fbeff): The cloud mascot and sky illustrations. The dominant brand hue.
- **Accent Blue Soft** (`{colors.accent-blue-soft}`#cce7ff): Pale blue used in cloud fills and tint edges.
- **Accent Purple** (`{colors.accent-purple}`#9552e0) and **Accent Violet** (`{colors.accent-violet}`#bb80ff): The paint-palette / brand-color sticker moments.
- **Accent Orange** (`{colors.accent-orange}`#f26110): The paper-plane / palette highlights.
- **Accent Amber** (`{colors.accent-amber}`#bb9915): A small warm accent in the sticker set.

### Surface
- **Canvas** (`{colors.canvas}`#ffffff): The default page floor and card fill.
- **Surface Soft** (`{colors.surface-soft}`#f9fafb), **Surface Alt** (`{colors.surface-alt}`#f6f7f8), **Surface Cool** (`{colors.surface-cool}`#fafdff), **Surface Faint** (`{colors.surface-faint}`#fcfcfd): Near-white section and panel tints used for the barely-there gradient transitions.
- **Surface Blue Tint** (`{colors.surface-blue-tint}`#f0f8ff): The hero-band sky wash behind the headline.
- **Surface Violet Tint** (`{colors.surface-violet-tint}`#f9f5ff) and **Surface Lilac** (`{colors.surface-lilac}`#f1e6ff): The lower-page violet gradient behind the product mockup.
- **Hairline** (`{colors.hairline}`#eef0f1): The faint 1px divider / border tone on light surfaces.

### Text
- **Ink** (`{colors.ink}`#0a0d12): Headlines.
- **Body** (`{colors.body}`#535862): Running paragraph text ("Get visuals true to your brand identity.").
- **Muted** (`{colors.muted}`#93979f): Nav links ("How it works", "Pricing") — the lowest-contrast text role.
- **On Primary** (`{colors.on-primary}`#ffffff): Label text on the dark CTA.

## Typography

### Font Family
The system runs **Aeonik** for display headlines and **Geist** for body + UI. Aeonik is a commercial geometric grotesque used at weight 500 with tight negative tracking; Geist is Vercel's open-source neo-grotesque used at weight 500–600 for paragraphs and buttons.

The split is functional:
- Aeonik (display, weight 500, -0.02em to normal tracking) — the hero headline and section heads.
- Geist (body + UI, weight 500–600, -0.01em tracking) — paragraphs, nav links, button labels.

### Hierarchy

| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| `{typography.display-xl}` | 72px | 500 | 1.111 | -0.02em | Hero headline ("Designs don't have to start from scratch") — measured as h2, Aeonik |
| `{typography.display-lg}` | 48px | 500 | 1.167 | normal | h1 and h3 section heads (both measured at 48px) — Aeonik |
| `{typography.body}` | 18px | 500 | 1.333 | -0.01em | Sub-headline and running body copy — Geist |
| `{typography.button}` | 14px | 600 | 1.143 | -0.01em | Button labels and nav links — Geist |

Note: the measured document uses the larger 72px size on the `h2` element (the visible hero headline) while `h1` and `h3` both measure 48px — an unusual inversion captured faithfully from the analysis rather than corrected.

### Principles
Aeonik at weight 500 with -0.02em tracking is the brand's editorial voice — used only for large headlines. Geist handles everything supporting. Keep body copy quiet and muted (`{colors.body}`) so the illustrations carry the visual energy.

### Note on Font Substitutes
**Aeonik is a commercial typeface** (Cotype foundry) and cannot be shipped as an open web font. Substitute with **Inter** at weight 500 with -0.02em letter-spacing, or **Space Grotesk** at weight 500 for a closer geometric-grotesque character; both preserve the weight + tight-tracking signature. **Geist** is open-source (SIL OFL, Vercel) and can be used directly — fall back to `Inter, sans-serif` if unavailable.

## Layout

### Spacing System
- **Base unit:** 4px.
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.ml}` 20px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 40px · `{spacing.huge}` 48px · `{spacing.section}` 56px.
- **Most-used steps:** 40px (`{spacing.xxl}`, highest frequency), 24px (`{spacing.lg}`), and 12px (`{spacing.sm}`) — the dominant rhythm for gaps and section padding.
- **Button padding:** 8px × 16px (`{spacing.xs}` × `{spacing.md}`) — measured on the primary CTA.

### Grid & Container
- **Hero:** Single centered column — headline, sub-line, and CTA stacked and center-aligned, with illustration stickers scattered in the surrounding margins.
- **Product mockup:** A single large isometric app-screenshot card centered in the lower violet band.
- **Swatch row:** A horizontal row of 5 pastel color circles ("Start with style. Not a blank canvas.").

### Whitespace Philosophy
The page is deliberately airy — long vertical gaps between the hero and the product mockup let the floating illustrations breathe. Content is sparse and centered; whitespace and illustration placement do the compositional work rather than dense grids.

## Elevation & Depth

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow | Canvas sections, hero text |
| Floating card | `rgba(4, 69, 144, 0.08) 0px 14px 20px 4px` | The product-mockup card and floating artifacts — a soft blue-cast shadow giving weightless lift |
| Button ring | `rgba(10,13,18,0.8) 0px 1px 2px 0px, rgb(10,13,18) 0px 0px 0px 1px` | The dark CTA's subtle 1px dark ring + drop |
| Faint chip | `rgb(244,245,246) 0px 1px 1px 0px` | Very subtle raise on small light chips |
| Inset highlight | `rgb(128,187,255) 0px 4px 2px 0px inset` | A blue inset glow on an interactive/hero element |

The elevation philosophy is **soft and blue-tinted** — shadows carry a slight blue cast (`rgba(4, 69, 144, 0.08)`) rather than neutral gray, reinforcing the sky/cloud theme and making artifacts feel like they float above the tinted canvas.

### Decorative Depth
- The 3D-sticker illustrations (genie lamp, palette, envelope, cloud mascot) carry their own rendered highlights and shadows as artwork — not system tokens.
- Tinted-canvas gradients (blue → violet down the page) create atmospheric depth without hard edges.

## Shapes

### Border Radius Scale

| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 4px | Small chips and the base `card` element (measured radius 0–4px range) |
| `{rounded.sm}` | 8px | Small inner elements, list rows |
| `{rounded.md}` | 16px | Primary CTA button, medium panels (most-used mid radius) |
| `{rounded.lg}` | 24px | Larger panels |
| `{rounded.xl}` | 32px | The product-mockup card and large surfaces (highest-frequency large radius) |
| `{rounded.pill}` | 90px | The floating pill nav container and fully-rounded chips/swatch circles |

### Geometry Notes
The measured `card` component reports radius 0px with no shadow — a raw/reset container. The visible rounded surfaces (product mockup, nav pill) use the larger 16–32px and 90px radii. Pastel swatch circles are fully rounded (`{rounded.pill}`).

## Components

### Navigation

**`top-nav`** — A floating pill-shaped nav bar over the tinted hero band. Background `{colors.canvas}`, rounded `{rounded.pill}` (90px), padding 8px × 16px. Carries the "Genie" wordmark + diamond logo at left, `{component.nav-link}` items ("How it works", "Pricing") center-left in `{colors.muted}`, and a `{component.button-primary}` "Sign up" pill at right.

**`nav-link`** — Inline nav item, transparent background, `{colors.muted}` (#93979f) text, `{typography.button}`. The low-contrast tone keeps navigation quiet.

### Buttons

**`button-primary`** — The signature (and only) CTA. Background `{colors.primary}` (#181d27), text `{colors.on-primary}` (#ffffff), typography `{typography.button}` (Geist 14px / 600), rounded `{rounded.md}` (16px), padding 8px × 16px. Appears twice: compact in the nav and larger/centered in the hero. Carries a subtle dark ring shadow (see Elevation).

### Cards & Containers

**`hero-band`** — Centered hero on the blue-tinted wash. Background `{colors.surface-blue-tint}` (#f0f8ff), headline in `{typography.display-xl}`, sub-line in `{typography.body}`, and a centered `{component.button-primary}`. Sticker illustrations float in the margins. Vertical padding around `{spacing.section}` (56px).

**`card`** — The measured base container: background `{colors.canvas}`, rounded `{rounded.xs}` (0–4px measured), no shadow. A raw reset container that visible surfaces build on.

**`product-mockup-card`** — The large isometric app screenshot in the lower violet band. Background `{colors.canvas}`, rounded `{rounded.xl}` (32px), padding `{spacing.lg}` (24px), lifted by the soft blue-cast floating shadow. Shows the actual Genie editor UI (sidebar, canvas, panels) at scale — the product shown as content.

**`swatch-circle`** — Pastel color circles in the "Start with style" row. Fully rounded (`{rounded.pill}`). The five fills read as a pastel set (peach, blue, green, lilac, yellow) — exact per-swatch hex values were not individually measured (see Known Gaps); the token defaults to `{colors.surface-blue-tint}`.

## Do's and Don'ts

### Do
- Reserve `{colors.primary}` (#181d27) for the "Sign up" CTA. It is the only dark, high-contrast element — keep it scarce and singular.
- Set the hero headline in Aeonik (or Inter/Space Grotesk substitute) at large size with -0.02em tracking. The tight tracking is part of the voice.
- Let illustrations and tinted gradients carry the color energy — keep functional UI near-monochrome.
- Use the soft blue-cast shadow (`rgba(4, 69, 144, 0.08)`) on floating artifacts and the product mockup to preserve the weightless feel.
- Keep supporting text muted (`{colors.body}`, `{colors.muted}`) so it recedes behind the illustrations.
- Use `{rounded.xl}` (32px) for large surfaces and `{rounded.pill}` for the nav container — generous rounding is the geometry signature.

### Don't
- Don't apply the saturated accent hues (`{colors.accent-blue}`, `{colors.accent-purple}`, `{colors.accent-orange}`) to buttons or functional chrome — they belong to the illustration set.
- Don't add a second high-contrast dark button. One dark CTA per view.
- Don't use hard neutral shadows — the system's shadows carry a deliberate blue cast.
- Don't set body copy in Aeonik or headlines in Geist. Keep the two families in their lanes.
- Don't tighten the airy vertical spacing — the long gaps between hero and mockup are intentional.

## Responsive Behavior

The site was captured at desktop and a tall full-page render; explicit breakpoints were not measured. Observed structure implies:

| Name | Width | Key Changes (inferred) |
|---|---|---|
| Mobile | < 768px | Hero headline scales down from 72px; nav pill likely collapses; single-column stack maintained |
| Tablet | 768–1024px | Centered single-column layout holds; illustration density reduces |
| Desktop | > 1024px | Full floating-sticker scene around the centered hero; product mockup at full isometric scale |

### Touch Targets
- `{component.button-primary}` uses 8px × 16px padding on a 14px label — the hero instance is larger; verify a ≥44px effective tap height on mobile.

### Collapsing Strategy
- Centered single-column hero naturally reflows on narrow viewports.
- Decorative sticker illustrations should be reduced or hidden on mobile to avoid crowding the headline.

*(Responsive values above are inferred, not measured — see Known Gaps.)*

## Iteration Guide

1. Focus on ONE component at a time. Reference its YAML key directly (`{component.button-primary}`, `{component.product-mockup-card}`).
2. Variants of an existing component (`-active`, `-disabled`) live as separate entries in `components:`.
3. Use `{token.refs}` everywhere — never inline hex.
4. Never document hover. Default and Active/Pressed states only.
5. Keep the accent hues in illustrations; keep UI near-monochrome with the one dark CTA.
6. Headlines stay Aeonik (or substitute) weight 500 with tight tracking; body stays Geist. The pairing does not blur.
7. When adding surfaces, prefer the near-white tints (`{colors.surface-soft}``{colors.surface-violet-tint}`) and generous rounding over new colors.

## Known Gaps

- **Aeonik is a commercial typeface** and cannot be shipped as-is; the analysis did not flag it in `fonts_licensed`, but it is treated as licensed and a substitute (Inter / Space Grotesk) is documented in Typography.
- The measured typography shows `h2` (72px) larger than `h1` (48px) — captured faithfully; confirm intended semantic hierarchy before implementing.
- The five pastel swatch-circle fills ("Start with style" row) were not individually color-sampled; only the illustration/tint accents were measured. Exact per-swatch hex values are a gap.
- Only `button-primary` and a raw `card` were captured as components; secondary buttons, inputs, footer, and form states were not measured (the page is illustration-heavy with sparse UI).
- Active/pressed, focus, and disabled states for the CTA were not extracted.
- Breakpoints, touch-target sizing, and collapsing behavior are inferred from two static captures, not measured.
- Animation/transition timings (floating stickers, mascot, gradient shifts) are not in scope.
- The product-mockup card shows the actual Genie editor UI as artwork; its internal spec is out of scope.

<!-- Documented by Duply · real-world design systems as ready-to-use DESIGN.md for AI coding agents · https://duply.ai/geniestudio/design-md -->

Color Palette

Accent

Neutrals

Typography

display-xl72px · 500 · 1.111
The quick brown fox jumps
display-lg48px · 500 · 1.167
The quick brown fox jumps
body18px · 500 · 1.333
The quick brown fox jumps
button14px · 600 · 1.143
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
ml20px
lg24px
xl32px
xxl40px
huge48px
section56px

Border Radius

NameValuePreview
xs4px
sm8px
md16px
lg24px
xl32px
pill90px

FAQ

What colors does GenieStudio use?
GenieStudio's core palette includes #181d27, #0a0d12, #535862, #93979f, #ffffff. The full color set with usage roles (canvas, ink, surfaces, accent, semantic) is documented in the GenieStudio DESIGN.md.
What font does GenieStudio use?
GenieStudio's primary typeface is Aeonik. The complete type scale (sizes, weights, line-height and letter-spacing per role), with an open substitute where the original is licensed, is documented in the DESIGN.md.
What is the GenieStudio design system?
A light, playful AI-design-tool landing surface built on a white-to-sky-tint canvas, floating cloud and 3D sticker illustrations, and a near-black pill CTA. The system reads as friendly, airy SaaS — Aeonik display headlines set large with tight tracking, Geist body copy, generous rounded geometry

Get this as a working kit

GenieStudio Launch Kit + DESIGN.md
$299$225
One-time payment
  • A complete production-stack template, styled like GenieStudio, fully built and wired.
  • One-time payment and the codebase is yours. No platform fees, no subscription.

Open it with Claude Code, Cursor, or any coding agent and build in plain language, then ship a complete web app.

  • Your private DESIGN.md
  • Marketing pages, blog, SEO & legal
  • Email capture, newsletter & contact
  • Accept payments (Stripe)
  • Analytics (GA4 + PostHog)
  • One-click deploy
  • Auth, login & roles
  • A full app dashboard, when you grow

More like this