duply

Base44

A high-contrast, AI-app-builder interface built on pure black and white with a single electric lime-green accent. The system reads as confident developer-tool minimalism — near-monochrome canvas, generous negative space, and a chartreuse signal color (#ade900) reserved for primary actions and brand moments. Black is the dominant ink and a frequent full-bleed surface; lime is the only chromatic voltage in an otherwise grayscale world.

---
version: alpha
name: Base44-design-analysis
description: A high-contrast, AI-app-builder interface built on pure black and white with a single electric lime-green accent. The system reads as confident developer-tool minimalism — near-monochrome canvas, generous negative space, and a chartreuse signal color (#ade900) reserved for primary actions and brand moments. Black is the dominant ink and a frequent full-bleed surface; lime is the only chromatic voltage in an otherwise grayscale world.

colors:
  ink: "#000000"
  ink-soft: "#0f0f0f"
  canvas: "#ffffff"
  surface-soft: "#f2f3f5"
  surface-strong: "#e6e6e6"
  hairline: "#eaeaea"
  muted: "#71767e"
  muted-soft: "#c0c2ce"
  brand: "#ade900"
  brand-soft: "#e0fe92"
  brand-pale: "#ebffb1"
  on-brand: "#000000"
  on-dark: "#ffffff"

typography:
  display-xl:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 64px
    fontWeight: 600
    lineHeight: 1.05
    letterSpacing: -2px
  display-lg:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 48px
    fontWeight: 600
    lineHeight: 1.1
    letterSpacing: -1.5px
  display-md:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 36px
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: -1px
  title-md:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 18px
    fontWeight: 600
    lineHeight: 1.4
    letterSpacing: 0
  title-sm:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 16px
    fontWeight: 600
    lineHeight: 1.4
    letterSpacing: 0
  body-md:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0
  body-sm:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0
  caption:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1.4
    letterSpacing: 0
  button:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 14px
    fontWeight: 600
    lineHeight: 1
    letterSpacing: 0
  nav-link:
    fontFamily: "Inter, -apple-system, BlinkMacSystemFont, sans-serif"
    fontSize: 14px
    fontWeight: 500
    lineHeight: 1.4
    letterSpacing: 0

rounded:
  xs: 4px
  sm: 6px
  md: 8px
  lg: 12px
  xl: 16px
  pill: 9999px
  full: 9999px

spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 24px
  xl: 32px
  xxl: 48px
  section: 96px

components:
  button-primary:
    backgroundColor: "{colors.brand}"
    textColor: "{colors.on-brand}"
    typography: "{typography.button}"
    rounded: "{rounded.md}"
    padding: 12px 20px
    height: 40px
  button-secondary:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.md}"
    padding: 12px 20px
    height: 40px
  button-dark:
    backgroundColor: "{colors.ink}"
    textColor: "{colors.on-dark}"
    typography: "{typography.button}"
    rounded: "{rounded.md}"
    padding: 12px 20px
    height: 40px
  button-text-link:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
  top-nav:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.nav-link}"
    height: 64px
  hero-band:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.display-xl}"
    padding: 96px
  hero-band-dark:
    backgroundColor: "{colors.ink}"
    textColor: "{colors.on-dark}"
    typography: "{typography.display-xl}"
    padding: 96px
  feature-card:
    backgroundColor: "{colors.surface-soft}"
    textColor: "{colors.ink}"
    typography: "{typography.title-md}"
    rounded: "{rounded.lg}"
    padding: 32px
  feature-card-dark:
    backgroundColor: "{colors.ink-soft}"
    textColor: "{colors.on-dark}"
    typography: "{typography.title-md}"
    rounded: "{rounded.lg}"
    padding: 32px
  text-input:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.body-md}"
    rounded: "{rounded.md}"
    padding: 10px 14px
    height: 40px
  badge-pill:
    backgroundColor: "{colors.brand-pale}"
    textColor: "{colors.ink}"
    typography: "{typography.caption}"
    rounded: "{rounded.pill}"
    padding: 4px 12px
  footer:
    backgroundColor: "{colors.ink}"
    textColor: "{colors.muted-soft}"
    typography: "{typography.body-sm}"
    padding: 64px
---

## Overview

Base44's marketing surface is high-contrast developer-tool minimalism — a near-monochrome world of pure black (`{colors.ink}`#000000, the single most-measured color at 78% frequency) and white (`{colors.canvas}`#ffffff) with one electric lime-green accent (`{colors.brand}`#ade900) carrying all the brand voltage. The grayscale ramp does the structural work; the lime does the signaling work.

Black dominates the system in two ways at once: as the primary ink for type on white bands, and as a full-bleed dark surface for hero and feature sections. White is the alternating canvas. Between them sit a tight grayscale ramp — `{colors.surface-soft}` (#f2f3f5), `{colors.surface-strong}` (#e6e6e6), `{colors.hairline}` (#eaeaea), and the muted text tones `{colors.muted}` (#71767e) and `{colors.muted-soft}` (#c0c2ce). The lime appears in three intensities — `{colors.brand}` (#ade900) for actions, `{colors.brand-soft}` (#e0fe92) and `{colors.brand-pale}` (#ebffb1) for soft fills and badges.

The brand reads as a confident AI app-builder: minimal chrome, generous whitespace, and a single chromatic signal that never gets diluted. Lime green on black is the signature pairing — the accent at maximum saturation against the darkest surface.

**Key Characteristics:**
- Pure black-and-white foundation. `{colors.ink}` (#000000) is both the primary text color and a recurring full-bleed surface; `{colors.canvas}` (#ffffff) is the alternating canvas.
- A single lime-green accent (`{colors.brand}`#ade900) reserved for primary CTAs and brand moments. The accent is scarce and high-voltage — it is the only chromatic color in the system.
- A three-step lime ramp — `{colors.brand}`, `{colors.brand-soft}` (#e0fe92), `{colors.brand-pale}` (#ebffb1) — for action, soft fill, and badge-pale respectively.
- A tight neutral ramp: `{colors.surface-soft}` (#f2f3f5), `{colors.surface-strong}` (#e6e6e6), `{colors.hairline}` (#eaeaea), `{colors.muted}` (#71767e), `{colors.muted-soft}` (#c0c2ce).
- Alternating light/dark band rhythm — white sections and black sections trade off down the page; lime CTAs read against both.
- Typography, spacing, radius, and component specs were NOT captured by the analyzer; all such values below are **derived** baselines documented for completeness — see Known Gaps.

## Colors

### Brand & Accent
- **Brand** (`{colors.brand}`#ade900): The single accent. Electric lime-green, used on primary CTAs and brand-signal moments. This is the only saturated color in the system, and it appears against both white and black surfaces.
- **Brand Soft** (`{colors.brand-soft}`#e0fe92): A lighter lime used for soft fills, highlight backgrounds, and secondary brand accents.
- **Brand Pale** (`{colors.brand-pale}`#ebffb1): The palest lime, used for badge pills and very-soft tint backgrounds.

### Surface
- **Canvas** (`{colors.canvas}`#ffffff): The default light page floor.
- **Ink** (`{colors.ink}`#000000): The primary text color AND a recurring full-bleed dark surface for hero/feature bands. The most frequent measured color in the system.
- **Ink Soft** (`{colors.ink-soft}`#0f0f0f): A near-black used for nested cards or elevated panels inside dark bands.
- **Surface Soft** (`{colors.surface-soft}`#f2f3f5): The lightest gray fill — feature cards, soft section dividers.
- **Surface Strong** (`{colors.surface-strong}`#e6e6e6): A heavier gray fill / divider tone, second-most-frequent color in the system.
- **Hairline** (`{colors.hairline}`#eaeaea): The 1px border tone on light surfaces.

### Text
- **Ink** (`{colors.ink}`#000000): All primary headlines and body text on light surfaces.
- **Muted** (`{colors.muted}`#71767e): Secondary text — sub-headings, captions, supporting copy.
- **Muted Soft** (`{colors.muted-soft}`#c0c2ce): Tertiary text — fine print, footer link rows on dark surfaces.
- **On Dark** (`{colors.on-dark}`#ffffff): Text on black bands and the footer.
- **On Brand** (`{colors.on-brand}`#000000): Text on lime CTA buttons — black ink on lime for maximum contrast.

### Semantic
No dedicated success / warning / error tokens were measured. See Known Gaps.

## Typography

### Font Family
The analyzer captured **no typography data** — no font family, sizes, weights, or line heights were extracted. The roles below are **derived** baselines using **Inter** as a neutral, widely-available sans-serif substitute that matches the geometric-minimalist register typical of developer-tool brands. The fallback stack walks `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`. The actual face used on base44.com should be confirmed against the live site before production use.

### Hierarchy

| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| `{typography.display-xl}` | 64px | 600 | 1.05 | -2px | Hero h1 — derived |
| `{typography.display-lg}` | 48px | 600 | 1.1 | -1.5px | Section heads — derived |
| `{typography.display-md}` | 36px | 600 | 1.15 | -1px | Sub-section heads, card titles — derived |
| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Feature card titles — derived |
| `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | Small card titles, list labels — derived |
| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default running text — derived |
| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body, fine print — derived |
| `{typography.caption}` | 13px | 500 | 1.4 | 0 | Badge labels, captions — derived |
| `{typography.button}` | 14px | 600 | 1.0 | 0 | Button labels — derived |
| `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu items — derived |

### Principles
Because no real type measurements exist, treat this scale as a starting placeholder, not ground truth. The core principle that IS observable from screenshots: high-contrast headline-on-canvas with negative letter-spacing on display sizes for a tight, modern register.

### Note on Font Substitutes
`fonts_licensed` was empty — no licensed face was flagged. Inter is used here purely as a safe open-source substitute pending confirmation of the site's actual typeface. **Geist** or **Manrope** are equally valid substitutes if a more geometric character is desired.

## Layout

### Spacing System
- **Base unit:** 4px (derived — no spacing tokens were measured).
- **Tokens (derived):** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px.
- **Section padding:** `{spacing.section}` (96px) between major bands — derived baseline.
- **Card internal padding:** `{spacing.xl}` (32px) for feature cards — derived.

### Grid & Container
- **Max content width:** ~1200px centered (derived — not measured).
- Feature card grids assumed 3-up at desktop, collapsing down at smaller breakpoints (derived).

### Whitespace Philosophy
Screenshots show generous negative space and clear single-action bands typical of minimal developer-tool marketing. Exact gutter and container values were not captured — the values above are derived defaults.

## Elevation & Depth

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow, no border | Body sections, top nav, hero bands |
| Soft hairline | 1px `{colors.hairline}` border | Inputs, card outlines on light surfaces |
| Card surface (light) | `{colors.surface-soft}` background — no shadow | Feature cards on white bands |
| Card surface (dark) | `{colors.ink-soft}` background — no shadow | Nested panels on black bands |
| Full-bleed dark band | `{colors.ink}` background | Hero / feature sections that invert the page |

No shadow tokens were measured (`shadows: []`). The system reads as flat-with-color-block-contrast: the black↔white band alternation does the elevation work rather than drop shadows. Any shadow specifics are unknown — see Known Gaps.

## Shapes

### Border Radius Scale
No radius values were measured (`radius: []`). The scale below is a **derived** baseline.

| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 4px | Badge accents — derived |
| `{rounded.sm}` | 6px | Small inline buttons — derived |
| `{rounded.md}` | 8px | CTA buttons, text inputs — derived |
| `{rounded.lg}` | 12px | Content / feature cards — derived |
| `{rounded.xl}` | 16px | Large hero mockup containers — derived |
| `{rounded.pill}` | 9999px | Badge pills — derived |
| `{rounded.full}` | 9999px | Avatars, icon buttons — derived |

### Photography Geometry
Not captured. The actual corner radii and image ratios should be confirmed from the live site.

## Components

No component specs were extracted (`components: []`). Every component below is a **derived** baseline assembled from the measured color palette plus standard developer-tool conventions. Treat dimensions, padding, and radius as placeholders; treat color references as the faithful part (drawn from measured hexes).

### Top Navigation

**`top-nav`** — White nav bar pinned to the top. `{colors.canvas}` background, `{colors.ink}` text, `{typography.nav-link}`. Height 64px (derived). Carries the wordmark at left, menu center, and a right-side cluster ending in a `{component.button-primary}` lime CTA.

### Buttons

**`button-primary`** — The signature lime CTA. Background `{colors.brand}` (#ade900), text `{colors.on-brand}` (#000000) — black ink on lime for maximum contrast. Type `{typography.button}`, rounded `{rounded.md}`, padding 12px × 20px, height 40px (dimensions derived).

**`button-secondary`** — White button with hairline outline. Background `{colors.canvas}`, text `{colors.ink}`, 1px `{colors.hairline}` border, same padding/height/radius as primary (derived).

**`button-dark`** — Black button used on light bands as an alternate solid action. Background `{colors.ink}`, text `{colors.on-dark}`, `{typography.button}`, rounded `{rounded.md}` (derived).

**`button-text-link`** — Inline text button, transparent background, `{colors.ink}` label.

### Cards & Bands

**`hero-band`** — White-canvas hero. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.display-xl}`, vertical padding `{spacing.section}` (derived).

**`hero-band-dark`** — The inverted hero/feature band. Background `{colors.ink}` (#000000), text `{colors.on-dark}`. The black full-bleed surface is a recurring structural device, and lime CTAs read sharply against it.

**`feature-card`** — Light feature card. Background `{colors.surface-soft}` (#f2f3f5), text `{colors.ink}`, type `{typography.title-md}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (radius and padding derived).

**`feature-card-dark`** — Dark feature card used inside black bands. Background `{colors.ink-soft}` (#0f0f0f), text `{colors.on-dark}`, type `{typography.title-md}`, rounded `{rounded.lg}` (derived).

### Inputs & Forms

**`text-input`** — Standard text input. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, rounded `{rounded.md}`, padding 10px × 14px, height 40px, 1px `{colors.hairline}` border (all dimensions derived).

### Tags / Badges

**`badge-pill`** — Small pill label. Background `{colors.brand-pale}` (#ebffb1), text `{colors.ink}`, type `{typography.caption}`, rounded `{rounded.pill}`, padding 4px × 12px (radius/padding derived). The pale lime tint is the soft brand-signal moment.

### Footer

**`footer`** — Dark footer that closes the page. Background `{colors.ink}` (#000000), text `{colors.muted-soft}` (#c0c2ce), type `{typography.body-sm}`, vertical padding 64px (derived). Continuous with the system's recurring black surface.

## Do's and Don'ts

### Do
- Reserve `{colors.brand}` (#ade900) for primary CTAs and brand-signal moments. It is the only saturated color — keep it scarce.
- Put black ink (`{colors.on-brand}`) on lime buttons. The black-on-lime pairing is the contrast signature.
- Use the black↔white band alternation as the structural rhythm; let color-block contrast carry elevation instead of shadows.
- Use the three-step lime ramp deliberately: `{colors.brand}` for action, `{colors.brand-soft}` for fills, `{colors.brand-pale}` for badges.
- Keep neutral text in `{colors.muted}` (#71767e) and `{colors.muted-soft}` (#c0c2ce); reserve pure `{colors.ink}` for headlines and primary copy.

### Don't
- Don't introduce a second accent color. The system is monochrome plus one lime — adding a second hue breaks the voltage.
- Don't dilute lime by using it as a large background field on marketing bands; it belongs on small high-attention surfaces (buttons, badges).
- Don't put lime CTAs on lime backgrounds — the accent needs black or white behind it to signal.
- Don't add hover-state styling beyond default and active/pressed (no hover docs in this system).
- Don't treat the derived typography/spacing/radius values as ground truth — confirm against the live site first.

## Responsive Behavior

### Breakpoints

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Hamburger nav; hero h1 scales down; feature grids 1-up — derived |
| Tablet | 768–1024px | Tightened nav; feature cards 2-up — derived |
| Desktop | 1024–1440px | Full nav; 3-up feature grids — derived |
| Wide | > 1440px | Same as desktop, content capped ~1200px — derived |

No responsive measurements were captured; the table above is a **derived** baseline.

### Touch Targets
- `{component.button-primary}` at a derived minimum of 40 × 40px.
- `{component.text-input}` at a derived 40px height.

### Collapsing Strategy
Derived defaults: top nav collapses to hamburger on mobile; feature grids reduce columns rather than scaling cards; black↔white band alternation persists at all breakpoints.

## Iteration Guide

1. Focus on ONE component at a time and reference its YAML key directly (`{component.button-primary}`, `{component.feature-card-dark}`).
2. Variants (`-dark`, `-secondary`) 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. The color tokens are the trustworthy part of this spec (measured). Typography, spacing, radius, and component dimensions are derived — replace them with measured values as soon as they're available.
6. Keep lime scarce and high-contrast. When in doubt about emphasis, use black/white contrast before reaching for the accent.

## Known Gaps

- **Typography is entirely unmeasured** (`typography: []`). All font families, sizes, weights, line heights, and letter-spacing are derived baselines using Inter as a substitute. The site's real typeface is unconfirmed.
- **Spacing is entirely unmeasured** (`spacing: []`). The 4px-base scale and 96px section rhythm are derived defaults.
- **Border radius is entirely unmeasured** (`radius: []`). The full rounded scale is derived.
- **Shadows are entirely unmeasured** (`shadows: []`). The flat / color-block elevation model is inferred from screenshots, not measured.
- **Components are entirely unmeasured** (`components: []`). All component dimensions, padding, and structure are derived; only their color references trace back to measured values.
- Color **roles** were assigned by the analyst from frequency + screenshot context; the analyzer labeled #f2f3f5, #ebffb1, #ade900, #e0fe92, and #c0c2ce as "accent" and the rest "neutral" — the lime ramp and gray ramp split here reflects that plus visual judgment.
- No semantic colors (success / warning / error) were measured; they would need a form or product-state surface to confirm.
- Whether `{colors.ink}` (#000000) and `{colors.ink-soft}` (#0f0f0f) are two intentional tokens or anti-aliasing artifacts is unconfirmed; both were measured at distinct frequencies.
- Responsive breakpoints, touch-target sizes, and image ratios are all derived — no responsive data was captured.
- Animation and transition timings are out of scope.

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

Color Palette

Accent

Neutrals

Typography

display-xl64px · 600 · 1.05
The quick brown fox jumps
display-lg48px · 600 · 1.1
The quick brown fox jumps
display-md36px · 600 · 1.15
The quick brown fox jumps
title-md18px · 600 · 1.4
The quick brown fox jumps
title-sm16px · 600 · 1.4
The quick brown fox jumps
body-md16px · 400 · 1.5
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
lg24px
xl32px
xxl48px
section96px

Border Radius

NameValuePreview
xs4px
sm6px
md8px
lg12px
xl16px
pill9999px
full9999px

More like this

Build in any
design language

Free to browse. Real design systems, documented as DESIGN.md. New designs land weekly.

Browse the libraryHow it works