dark · minimal · sans · mono · ai · builder

DESIGN.md inspired by Onlook

Near-black code-design workspace with white CTAs, script contrast, and red-black shadows.

By webdesignhot · www.onlook.com
$ npx @webdesignhot/design-md add onlook
Learn more about the CLI
try on →
theme
1440 × 900
mobile · 390 × 844
Tokens webdesignhot/0.1
  • bg #040000
  • bg-deep #000000
  • surface rgba(0, 0, 0, 0.8)
  • surface-panel #100102
  • surface-soft #230206
  • text AAA · 20.9 #ffffff
  • text-muted #999999
  • text-soft #ababab
  • text-hidden-red #620000
  • brand AAA · 20.9 #ffffff
  • on-brand #000000
  • accent-red #620000
  • accent-red-soft #300206
  • accent-red-mid #4e1a23
  • border — · 1.0 rgba(100, 0, 0, 0.1)
  • border-red #550102
  • chrome-line #1b1b1b
  • success #24d0bd
  • warning #d9a441
  • danger #d84a4a
Typography
Ship faster than ever.
script-hero Vujahday Script 74px w400 0
Ship faster than ever.
display-hero Inter 60px w300 -0.02em
Ship faster than ever.
display Inter 48px w300 -0.015em
Ship faster than ever.
h1 Inter 48px w300 -0.015em
Built for teams that ship.
h2 Inter 36px w300 -0.01em
The quick brown fox jumps over the lazy dog.
body-lg Inter 20px w400 0
A complete kit
h3 JetBrains Mono 18px w400 0
The quick brown fox jumps over the lazy dog.
body Inter 16px w400 0
The quick brown fox jumps over the lazy dog.
body-sm Inter 14px w400 0
The quick brown fox jumps over the lazy dog.
button Inter 14px w500 0
The quick brown fox jumps over the lazy dog.
chrome JetBrains Mono 12px w400 0
Spacing
  • step-0 0px
  • step-1 4px
  • step-2 8px
  • step-3 12px
  • step-4 16px
  • step-5 24px
  • step-6 32px
  • step-7 48px
  • step-8 64px
  • step-9 96px
  • step-10 128px
Radius
  • micro 2px
  • sm 6px
  • md 8px
  • lg 12px
  • xl 20px
  • panel 24px
  • pill 9999px
Components
Text link →
Card preview A complete kit — everything your product needs. Hero, pricing, FAQ, dashboard, docs — every layout your product needs.
New Stable v1.0
Design roles 8/8 mapped · webdesignhot/0.1

Maps the 8 canonical role names to this entry's actual tokens. Use these to plug the design into role-aware tools — shadcn/ui themes, role-aware Tailwind plugins, atelier-lint — without hard-coding token names.

  • background bg
  • foreground text
  • primary brand
  • primary-foreground on-brand
  • accent accent-red
  • muted text-muted
  • border border
  • ring border-red
Lineage & influences

Onlook blends the dark editor language of code tools with a designer-facing brand moment. The near-black hero and low-red computed shadows make the workspace feel deep, while the script display word interrupts the engineering tone with a human design cue.

  • Code editors
    dark workspace, mono labels, panel chrome
  • Visual design tools
    layers, mockup containers, preview tabs
  • AI pair-building products
    chat/code side-by-side composition
Export 4 formats · paste-ready
Tailwind

theme.extend block for tailwind.config.js

tailwind.config.js
CSS variables

:root { --bg, --text, --brand, … } you can paste anywhere

design.css
DTCG JSON

W3C Design Tokens Community Group format

design.tokens.json
Figma Variables

Importable into Figma → Variables → Import

figma-variables.json
The file
---
name: Onlook
tagline: 'Near-black code-design workspace with white CTAs, script contrast, and red-black shadows.'
updated_at: 2026-07-08T21:21:00+12:00
published_at: 2026-07-08T21:21:00+12:00
author: webdesignhot
source_url: https://www.onlook.com
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [ai, design-tools, dev-tools]
tags: [dark, minimal, sans, mono, ai, builder]
preview_swatch: ['#040000', '#ffffff', '#620000']
related: [cursor, figma, framer]
description: 'Onlook presents design-in-code collaboration as a dark workspace: near-black hero, white conversion buttons, gray navigation, red-black shadows, Inter UI type, JetBrains Mono product chrome, and a handwritten script accent for the designer wordmark moment.'
aliases:
  background: bg
  foreground: text
  primary: brand
  primary-foreground: on-brand
  accent: accent-red
  muted: text-muted
  border: border
  ring: border-red
colors:
  bg: '#040000'
  bg-deep: '#000000'
  surface: 'rgba(0, 0, 0, 0.8)'
  surface-panel: '#100102'
  surface-soft: '#230206'
  text: '#ffffff'
  text-muted: '#999999'
  text-soft: '#ababab'
  text-hidden-red: '#620000'
  brand: '#ffffff'
  on-brand: '#000000'
  accent-red: '#620000'
  accent-red-soft: '#300206'
  accent-red-mid: '#4e1a23'
  border: 'rgba(100, 0, 0, 0.1)'
  border-red: '#550102'
  chrome-line: '#1b1b1b'
  success: '#24d0bd'
  warning: '#d9a441'
  danger: '#d84a4a'
typography:
  display:
    family: 'Inter, system-ui, -apple-system, sans-serif'
    weights: [300, 400, 500]
  script:
    family: 'Vujahday Script, cursive'
    weights: [400]
  body:
    family: 'Inter, system-ui, -apple-system, sans-serif'
    weights: [400, 500, 600]
  mono:
    family: 'JetBrains Mono, ui-monospace, SFMono-Regular, monospace'
    weights: [400, 500]
  scale:
    display-hero: { size: 60, weight: 300, lineHeight: 0.9, tracking: '-0.02em', family: display }
    script-hero: { size: 74, weight: 400, lineHeight: 0.9, tracking: '0', family: script }
    display: { size: 48, weight: 300, lineHeight: 1.25, tracking: '-0.015em', family: display }
    h1: { size: 48, weight: 300, lineHeight: 1.15, tracking: '-0.015em', family: display }
    h2: { size: 36, weight: 300, lineHeight: 1.2, tracking: '-0.01em', family: display }
    h3: { size: 18, weight: 400, lineHeight: 1.35, tracking: '0', family: mono }
    body-lg: { size: 20, weight: 400, lineHeight: 1.45, tracking: '0', family: body }
    body: { size: 16, weight: 400, lineHeight: 1.5, tracking: '0', family: body }
    body-sm: { size: 14, weight: 400, lineHeight: 1.45, tracking: '0', family: body }
    chrome: { size: 12, weight: 400, lineHeight: 1.5, tracking: '0', family: mono }
    button: { size: 14, weight: 500, lineHeight: 1.45, tracking: '0', family: body }
radius:
  micro: 2
  sm: 6
  md: 8
  lg: 12
  xl: 20
  panel: 24
  pill: 9999
spacing:
  base: 4
  scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96, 128]
layout:
  page-width: 1320
  prose-width: 700
  header-height: 48
  hero-min-height: 820
  workspace-width: 1160
motion:
  ease-standard: 'cubic-bezier(0.2, 0, 0, 1)'
  duration-fast: 120
  duration-standard: 220
  duration-slow: 480
  reduced-motion: 'freeze workspace preview and remove background drift'
breakpoints:
  mobile: 640
  tablet: 1024
  desktop: 1280
  wide: 1536
components:
  button-primary:
    bg: brand
    text: on-brand
    radius: 8
    padding: '8px 18px'
    use: 'Sign Up and Log In actions'
  button-secondary:
    bg: bg
    text: text
    border: border
    radius: 8
    padding: '8px 18px'
    use: 'Book a Demo'
  nav-link:
    bg: transparent
    text: text-muted
    radius: 0
    padding: '6px 10px'
  workspace-panel:
    bg: surface
    border: border
    radius: 24
    padding: 16
lineage:
  summary: 'Onlook blends the dark editor language of code tools with a designer-facing brand moment. The near-black hero and low-red computed shadows make the workspace feel deep, while the script display word interrupts the engineering tone with a human design cue.'
  influences:
    - { name: 'Code editors', role: 'dark workspace, mono labels, panel chrome' }
    - { name: 'Visual design tools', role: 'layers, mockup containers, preview tabs' }
    - { name: 'AI pair-building products', role: 'chat/code side-by-side composition' }
---

## 1. Visual Theme & Atmosphere

Onlook is a dark workspace before it is a landing page. The hero is nearly black, with white headline strokes, muted gray navigation, and a large product interface emerging from the lower half of the viewport.

The distinctive moment is typographic: the engineering-like "Cursor for" phrase is interrupted by a handwritten script word. That contrast says the product sits between code and design.

**Key Characteristics**
- Near-black background: `#040000`.
- White primary text and CTA fills.
- Gray nav and support copy.
- Red-black computed shadows and borders.
- Inter for UI and body text.
- Vujahday Script for the designer accent.
- JetBrains Mono inside product chrome.
- Large dark workspace preview anchored below the hero.

## 2. Color Palette & Roles

Base: `bg #040000` and `bg-deep #000000` define the page.

Text: use `text #ffffff` for visible headlines and active controls, `text-muted #999999` for nav, and `text-soft #ababab` for secondary product labels.

Accent: `accent-red #620000`, `accent-red-soft #300206`, and `accent-red-mid #4e1a23` appear in the dark computed palette and create subtle warmth.

Borders: `border rgba(100, 0, 0, 0.1)` and `border-red #550102` keep panels barely separated.

Action: `brand #ffffff` on `on-brand #000000` is the clearest conversion treatment.

## 3. Typography Rules

| Role | Font | Size | Weight | Notes |
| --- | --- | ---: | ---: | --- |
| Hero | Inter | 60 | 300 | light engineering phrase |
| Script hero | Vujahday Script | 74 | 400 | designer accent only |
| Display | Inter | 48 | 300 | section headings |
| H1 | Inter | 48 | 300 | major page titles |
| H2 | Inter | 36 | 300 | narrative sections |
| H3 chrome | JetBrains Mono | 18 | 400 | product panel labels |
| Body large | Inter | 20 | 400 | hero support |
| Body | Inter | 16 | 400 | default copy |
| Chrome | JetBrains Mono | 12 | 400 | layers, tabs, mockup labels |
| Button | Inter | 14 | 500 | compact CTAs |

Use the script face once per composition. Repeating it makes the system feel decorative instead of intentional.

## 4. Component Stylings

Primary CTA: white fill, black text, 8px radius. This is used for Sign Up and Log In.

Secondary CTA: transparent or near-black fill, dim red border, white or muted text, 8px radius.

Nav: low-contrast gray links on black. Keep height compact and do not add heavy separators.

Workspace panel: dark translucent panel, 24px radius, subtle red-black border, mono labels, and small tabs.

Badges: use muted gray text or small outlined pills. Avoid bright fills in the navigation.

## 5. Layout Principles

The hero is vertically centered but leaves room for the product workspace preview to enter from the bottom. This gives the page a product-in-motion feel without a literal video.

Keep the nav narrow and quiet. The page should feel like an editor, not a marketing dashboard.

## 6. Shapes & Radius Scale

| Tier | Value | Use |
| --- | ---: | --- |
| Micro | 2 | small focus marks |
| Small | 6 | utility controls |
| Medium | 8 | CTAs |
| Large | 12 | inner controls |
| Panel | 24 | workspace frame |
| Pill | 9999 | rare status badges |

Most interactive elements use 8px. Large preview shells use 24px.

## 7. Depth & Elevation

Depth is created by black-on-black separation, not bright shadows.

| Level | Treatment | Use |
| --- | --- | --- |
| 0 | `#040000` | page base |
| 1 | subtle radial dark texture | hero background |
| 2 | `rgba(0,0,0,0.8)` | workspace surfaces |
| 3 | red-black border and muted glow | active panels |

## 8. Interaction & Motion

Use editor-like motion: fast hover feedback, restrained tab transitions, and smooth workspace reveals.

White CTAs can brighten with a small lift. Workspace panels should fade or slide, not bounce. Background drift should be subtle enough to disappear under reduced motion.

## 9. Accessibility & A11y

White CTAs on black are strong. Muted nav text `#999999` remains readable at 14px on the near-black header, but smaller product labels should use at least `#ababab`.

Do not render important visible text in the low-red computed colors. Red-black values work for texture and borders, not primary copy.

## 10. Responsive Behavior

On mobile, keep the headline centered and reduce the script word so it does not overflow. Stack primary and secondary CTAs, or keep them side by side only when both remain at least 44px tall.

The workspace preview should crop horizontally like an editor screenshot. Do not shrink every panel until the labels become unreadable.

## 11. Content & Voice

Voice is focused on collaboration between design and code. Use words like design, codebase, preview, layers, chat, build, inspect, and ship.

Keep copy concise and product-specific. The dark visual system already carries the drama, so the words can stay practical.

## 12. Dark Mode & Theming

Dark is the default. A light theme would lose most of the brand feeling unless it appears only inside product mockups.

For alternate sections, use black surfaces with slightly different red-black tints rather than switching to white cards.

## 13. Lineage & Influences

Onlook borrows from code editors, canvas design tools, and AI builder interfaces. The page says that product design can happen directly inside a real codebase, so the visual system keeps both editor chrome and designer flair visible.

The script display word is the key differentiator. It prevents the dark editor aesthetic from becoming too austere.

## 14. Do's and Don'ts

Do use near-black backgrounds. Do keep white CTAs crisp. Do use mono labels in product chrome. Do let red-black borders stay subtle. Do use the script type only for the designer accent.

Do not make the accent red bright. Do not use white cards in the main hero. Do not overuse the script face. Do not make the nav louder than the product preview.

## 15. Agent Prompt Guide

### Quick Color Reference

Background: `#040000`; deep black: `#000000`; white text: `#ffffff`; muted nav: `#999999`; soft text: `#ababab`; red accent: `#620000`; panel: `rgba(0,0,0,0.8)`; border: `rgba(100,0,0,0.1)`.

### Example Component Prompts

- Create an Onlook-style dark hero with Inter light headline text and one Vujahday Script designer word.
- Design a white Sign Up button and transparent Book a Demo button on near-black.
- Build a dark workspace preview with mono labels, tabs, layers, and subtle red-black borders.
- Create a compact black header with muted nav links and a white login CTA.

### Iteration Guide

1. Make the background darker before adding more contrast.
2. Use white for conversion, not brand-color fills.
3. Keep red as a shadow and border language.
4. Add mono labels to make product surfaces feel real.
5. Use script type once to humanize the code-tool frame.
Prose

1. Visual Theme & Atmosphere

Onlook is a dark workspace before it is a landing page. The hero is nearly black, with white headline strokes, muted gray navigation, and a large product interface emerging from the lower half of the viewport.

The distinctive moment is typographic: the engineering-like “Cursor for” phrase is interrupted by a handwritten script word. That contrast says the product sits between code and design.

Key Characteristics

  • Near-black background: #040000.
  • White primary text and CTA fills.
  • Gray nav and support copy.
  • Red-black computed shadows and borders.
  • Inter for UI and body text.
  • Vujahday Script for the designer accent.
  • JetBrains Mono inside product chrome.
  • Large dark workspace preview anchored below the hero.

2. Color Palette & Roles

Base: bg #040000 and bg-deep #000000 define the page.

Text: use text #ffffff for visible headlines and active controls, text-muted #999999 for nav, and text-soft #ababab for secondary product labels.

Accent: accent-red #620000, accent-red-soft #300206, and accent-red-mid #4e1a23 appear in the dark computed palette and create subtle warmth.

Borders: border rgba(100, 0, 0, 0.1) and border-red #550102 keep panels barely separated.

Action: brand #ffffff on on-brand #000000 is the clearest conversion treatment.

3. Typography Rules

RoleFontSizeWeightNotes
HeroInter60300light engineering phrase
Script heroVujahday Script74400designer accent only
DisplayInter48300section headings
H1Inter48300major page titles
H2Inter36300narrative sections
H3 chromeJetBrains Mono18400product panel labels
Body largeInter20400hero support
BodyInter16400default copy
ChromeJetBrains Mono12400layers, tabs, mockup labels
ButtonInter14500compact CTAs

Use the script face once per composition. Repeating it makes the system feel decorative instead of intentional.

4. Component Stylings

Primary CTA: white fill, black text, 8px radius. This is used for Sign Up and Log In.

Secondary CTA: transparent or near-black fill, dim red border, white or muted text, 8px radius.

Nav: low-contrast gray links on black. Keep height compact and do not add heavy separators.

Workspace panel: dark translucent panel, 24px radius, subtle red-black border, mono labels, and small tabs.

Badges: use muted gray text or small outlined pills. Avoid bright fills in the navigation.

5. Layout Principles

The hero is vertically centered but leaves room for the product workspace preview to enter from the bottom. This gives the page a product-in-motion feel without a literal video.

Keep the nav narrow and quiet. The page should feel like an editor, not a marketing dashboard.

6. Shapes & Radius Scale

TierValueUse
Micro2small focus marks
Small6utility controls
Medium8CTAs
Large12inner controls
Panel24workspace frame
Pill9999rare status badges

Most interactive elements use 8px. Large preview shells use 24px.

7. Depth & Elevation

Depth is created by black-on-black separation, not bright shadows.

LevelTreatmentUse
0#040000page base
1subtle radial dark texturehero background
2rgba(0,0,0,0.8)workspace surfaces
3red-black border and muted glowactive panels

8. Interaction & Motion

Use editor-like motion: fast hover feedback, restrained tab transitions, and smooth workspace reveals.

White CTAs can brighten with a small lift. Workspace panels should fade or slide, not bounce. Background drift should be subtle enough to disappear under reduced motion.

9. Accessibility & A11y

White CTAs on black are strong. Muted nav text #999999 remains readable at 14px on the near-black header, but smaller product labels should use at least #ababab.

Do not render important visible text in the low-red computed colors. Red-black values work for texture and borders, not primary copy.

10. Responsive Behavior

On mobile, keep the headline centered and reduce the script word so it does not overflow. Stack primary and secondary CTAs, or keep them side by side only when both remain at least 44px tall.

The workspace preview should crop horizontally like an editor screenshot. Do not shrink every panel until the labels become unreadable.

11. Content & Voice

Voice is focused on collaboration between design and code. Use words like design, codebase, preview, layers, chat, build, inspect, and ship.

Keep copy concise and product-specific. The dark visual system already carries the drama, so the words can stay practical.

12. Dark Mode & Theming

Dark is the default. A light theme would lose most of the brand feeling unless it appears only inside product mockups.

For alternate sections, use black surfaces with slightly different red-black tints rather than switching to white cards.

13. Lineage & Influences

Onlook borrows from code editors, canvas design tools, and AI builder interfaces. The page says that product design can happen directly inside a real codebase, so the visual system keeps both editor chrome and designer flair visible.

The script display word is the key differentiator. It prevents the dark editor aesthetic from becoming too austere.

14. Do’s and Don’ts

Do use near-black backgrounds. Do keep white CTAs crisp. Do use mono labels in product chrome. Do let red-black borders stay subtle. Do use the script type only for the designer accent.

Do not make the accent red bright. Do not use white cards in the main hero. Do not overuse the script face. Do not make the nav louder than the product preview.

15. Agent Prompt Guide

Quick Color Reference

Background: #040000; deep black: #000000; white text: #ffffff; muted nav: #999999; soft text: #ababab; red accent: #620000; panel: rgba(0,0,0,0.8); border: rgba(100,0,0,0.1).

Example Component Prompts

  • Create an Onlook-style dark hero with Inter light headline text and one Vujahday Script designer word.
  • Design a white Sign Up button and transparent Book a Demo button on near-black.
  • Build a dark workspace preview with mono labels, tabs, layers, and subtle red-black borders.
  • Create a compact black header with muted nav links and a white login CTA.

Iteration Guide

  1. Make the background darker before adding more contrast.
  2. Use white for conversion, not brand-color fills.
  3. Keep red as a shadow and border language.
  4. Add mono labels to make product surfaces feel real.
  5. Use script type once to humanize the code-tool frame.
Ship with this

Drop onlook into your project, then ship the actual sections in an afternoon.

1 · install design
npx @webdesignhot/design-md add onlook
2 · ship landing page
npx agentkit init --design onlook
How AgentKit reads DESIGN.md