Easel Design System

Warm editorial / vintage-paper design system for an open-source, prompt-driven AI design-generation tool. Documents the marketing site and the three-pane AI design editor as one shared language: a paper ground, near-black ink type, a single coral accent, and a Playfair Display + Inter Tight + Inter + JetBrains Mono typographic stack.

Colors

A warm, low-glare palette built on vintage paper (#efe7d2) rather than white. coral (#ed6f5c) is the only true brand accent — primary actions, brand mark, selection, and links. Ink tones carry all type. Editorial secondaries (green, mustard, olive) appear sparingly.

Brand

Coral
--coral
#ed6f5c
Coral Soft — hover
--coral-soft
#f08e7c

Paper Surfaces

Paper — body bg
--paper
#efe7d2
Paper Warm
--paper-warm
#ece4cf
Paper Dark — canvas
--paper-dark
#ddd2b6
Bone — cards/panels
--bone
#f7f1de

Ink (Text)

Ink — headings
--ink
#15140f
Ink Soft — body
--ink-soft
#2a2620
Ink Mute
--ink-mute
#5a5448
Ink Faint — labels
--ink-faint
#8b8676

Editorial Secondaries

Green
--green
#237f00
Mustard
--mustard
#e9b94a
Olive
--olive
#6e7448

Lines & Hairlines

Line
--line
rgba(21,20,15,.16)
Line Soft
--line-soft
rgba(21,20,15,.08)
Line Faint
--line-faint
rgba(21,20,15,.05)

Typography

Four families. Playfair Display is the editorial display serif. Inter Tight drives the large, tightly-tracked headings (H1 72/72 at -2px). Inter sets body copy at 16/1.55. JetBrains Mono covers code, IDs, and numeric inspector values.

Playfair Display · 40px · 400 · serif display voice
Design anything from a prompt
H1 · Inter Tight · 72/72 · 800 · -2.016px
Create. Edit. Brainstorm.
H2 · Inter Tight · 77.76/77.76 · 800 · -2.177px
An open canvas
H3 · Inter Tight · 22/23.1 · 700 · -0.308px
Prompt-to-generate panel
H4 / Link · Inter Tight · 18/27.9 · 700 · -0.252px
Reference image chips
Body · Inter · 16/24.8 · 400
Describe what you would like to see, attach reference images, pick a style preset, and generate variations directly on the canvas.
Label · Inter Tight · 10px · 400 · 1px tracking · uppercase · ink-faint
Style presets
Mono · JetBrains Mono · 12px · 400
X 240  Y 120  W 220  H 150  opacity 100%

Spacing & Layout

A 4px-based scale. Marketing wrapper maxes at 1200px; section gaps run 80px default, 128px spacious. The editor uses a fixed three-pane grid: 280px left panel, fluid canvas, 300px inspector, under a 56px top toolbar.

space-1 · 4px
space-2 · 8px
space-4 · 16px
space-6 · 24px
space-8 · 32px
space-12 · 48px
space-20 · 80px
space-32 · 128px
TokenValueUse
wrapper-max1200pxMarketing content width
topbar-height56pxEditor top toolbar
left-panel-width280pxTool / asset panel
right-panel-width300pxInspector
layer-row-height32pxLayers tree rows

Radius & Shadows

Pills (999px) for every button. Panels and cards use 12-18px; small fields 6-8px. Avatars/dots use 50%. Shadows are soft and long, with a coral-tinted lift reserved for primary buttons.

xs · 2px
sm · 6px
md · 8px
lg · 12px
xl · 14px
2xl · 18px
pill · 999px
ShadowValue
soft0 30px 60px -30px rgba(21,20,15,.18)
card0 12px 36px rgba(26,26,26,.08)
coral0 14px 26px -16px #ed6f5c
hairline-inset0 0 0 1px rgba(21,20,15,.06) inset

Motion

Restrained and editorial. Scroll reveals fade-and-rise with a .4s default delay. Interactive states use 150-200ms ease. Panels slide with a soft cubic-bezier(0.22,1,0.36,1).

TokenValue
revealopacity .6s ease, transform .6s ease (delay .4s)
transition-defaultall 200ms ease
transition-colorcolor 150ms ease
panel-slidetransform 220ms cubic-bezier(0.22,1,0.36,1)
Website

Marketing Site Components

The editorial landing surface — coral primary pills, ink dark pills, outline pills, a GitHub-style star pill for open-source social proof, category filters, and bone cards.

Buttons

Every button is a pill (999px). Primary is solid coral with white text and a coral-tinted shadow. Dark is ink fill with paper text. Outline is transparent with a 1px ink-16% border.

Primary · Dark · Outline · Star
On paper · hover/active states

Category Pills

Filter pills used in galleries and template browsers. Inactive is outline; active inverts to a solid coral fill with white text.

Active inverts to coral All 232 Prototype 60 Posters Social UI

Cards

Bone surface (#f7f1de) over the paper ground, 18px radius, soft card shadow. Hover lifts 2px and deepens to the long soft shadow.

Create

Describe what you want and generate full designs from a single prompt.

Edit

Refine any element on the canvas — colors, layout, copy, and effects.

Brainstorm

Spin up variations side by side and keep the directions worth pursuing.

Navigation

Top nav uses Inter Tight 18/700 links in ink that shift to coral on hover, with a primary coral pill and a GitHub star pill on the right.

Easel Gallery Docs
App / Editor

AI Design Editor

The prompt-to-canvas editor. A three-pane shell wraps a dotted paper canvas. The warm-paper identity carries into every editor surface — toolbars, panels, prompt UI, layers, and the inspector.

Three-Pane Shell & Top Toolbar

Left tool/asset panel (280px, bone), center canvas (dotted paper-dark), right inspector (300px, bone), under a 56px paper-warm top toolbar holding file name, autosave, zoom, and the primary CTA.

Top toolbar
Untitled poster Saved 100%

Prompt-to-Generate Panel

A textarea (paper, 12px radius, coral focus ring), reference-image chips, a 4-up style-preset grid (selected gets a 2px coral outline), and a full-width coral Generate button.

Prompt panel
Describe what you would like to see
A vintage travel poster of a coastal town at sunset, warm grain, bold serif title…
reference-01.png × palette.jpg ×
Style presets

Floating Canvas Prompt Bar

A single prompt input floating over the canvas as a bone pill, with a 1/2/4 variation toggle and an inline coral Generate button.

Floating prompt bar
Make the sky more dramatic…
124

On-Canvas Object Toolbar

Appears above a selected object: opacity, apply-effects, set-as-background, overflow, and a coral delete. Bone surface, 12px radius, card shadow.

Object toolbar
🗑

Layers Tree & Inspector

Layers are 32px rows with visibility/lock toggles; the selected row gets a coral-tint fill. The inspector exposes numeric fields in JetBrains Mono and coral toggles.

Layers
👁 Background
👁 Headline group
👁 Title
👁 Subtitle
👁 Photo
Frame
X 240Y 120
W 220H 150
Settings
Snap to grid
Lock aspect

AI Prompt Modal

The "Create anything…" entry modal. Playfair Display title, mustard-tinted early-preview banner, paper input, and Create / Edit / Brainstorm feature pills.

AI prompt modal
Early preview

Start from a prompt and Easel builds an editable design on the canvas.

Create Edit Brainstorm

Full Editor Mock

A condensed reproduction of the editor: top toolbar, left layers panel, dotted canvas with a selected artboard and object toolbar, and the right inspector.

Untitled poster Saved 100%
Layers
👁 Background
👁 Headline
👁 Title
👁 Photo
🗑
Frame
X 240Y 120
W 220H 150
Opacity
100%
Settings
Snap to grid

Tailwind Reference

The paired design-system.json ships a tailwind block with theme extensions and component recipes. Drop it into tailwind.config.ts → theme.extend (or mirror into @theme for v4) and treat the recipes as required source instead of default Tailwind tokens.

theme.extend mappings

ScopeAccentGroundDisplay / UI FontDefault RadiusLift
Websitebrand.coral #ed6f5cpaper #efe7d2Playfair / Inter Tightpill (999px)shadow-coral
App / Editorbrand.coral #ed6f5cpaper-dark canvasInter Tight / JetBrains Monolg-2xl (12-18px)shadow-soft

Token mappings

Tailwind classResolves to
bg-paper / bg-paper-bone#efe7d2 / #f7f1de
text-ink / text-ink-mute#15140f / #5a5448
bg-brand-coral / hover:bg-brand-coralSoft#ed6f5c / #f08e7c
border-linergba(21,20,15,.16)
font-serif / font-sans / font-monoPlayfair Display / Inter Tight / JetBrains Mono
text-h172px / 72 lh / -2.016px / 800
rounded-pill / shadow-coral999px / 0 14px 26px -16px #ed6f5c

Component recipes

ScopeRecipeClass pattern
WebsitebuttonPrimaryinline-flex items-center justify-center rounded-pill bg-brand-coral text-white px-5 py-2.5 text-[14px] font-medium shadow-coral hover:bg-brand-coralSoft
WebsitebuttonOutlineinline-flex items-center rounded-pill bg-transparent text-ink border border-line px-4.5 py-2 text-[13px] hover:bg-line-faint
Websitecardrounded-2xl bg-paper-bone border border-line-soft p-7 text-ink shadow-card hover:-translate-y-0.5 hover:shadow-soft
WebsitecategoryPillrounded-pill border border-line text-ink-soft text-[13px] px-4.5 py-2 data-[active=true]:bg-brand-coral data-[active=true]:text-white
AppeditorShellgrid grid-cols-[280px_1fr_300px] grid-rows-[56px_1fr] h-screen bg-paper-dark
Appcanvasrelative overflow-hidden bg-paper-dark bg-canvasDots [background-size:20px_20px]
ApppromptTextareaw-full rounded-lg bg-paper border border-line px-3.5 py-3 font-body text-[14px] focus:border-brand-coral focus:ring-2 focus:ring-brand-coral/30
AppgenerateButtonw-full rounded-pill bg-brand-coral text-white py-3 text-[14px] font-medium shadow-coral hover:bg-brand-coralSoft
AppfloatingPromptBarflex items-center gap-2 max-w-[640px] rounded-pill bg-paper-bone border border-line pl-4.5 pr-2 py-2 shadow-soft
ApplayerRowflex items-center h-8 px-3 font-body text-[13px] text-ink-soft rounded-md hover:bg-line-faint data-[selected=true]:bg-brand-coral/10 data-[selected=true]:text-ink
AppnumberFieldrounded-md bg-paper border border-line px-2.5 py-1.5 font-mono text-[12px] text-ink

Downloadable Assets

Pair this page with the matching JSON token files. Use the toolbar at the top of the page to copy the LLM-ready prompt or download HTML/JSON/zip bundles.