Back to directory
warm · editorial · code · premium

Inkwell IDE.

Warm cream canvas with yellow-undertone ink, gothic compressed display, literary serif body, and warm crimson hover — code-editor elegance as print publication.

01 · Preview

The kitchen sink.

Inkwell.app
ProductPricingDocsAbout
Sign inGet started
warm · editorial · code

Build with Inkwell IDE.

A complete design system, ready for your AI coding agent. Every primitive, token, and pattern below is generated straight from DESIGN.md — drop the file in your project and ship matching UI in minutes.

Start building →View on GitHub
Featured
Tokens that travel with your prompts.
Active users
12,840
Status
All systems operational
01 · Color

Palette

primary
#26251E
secondary
#5A5A52
tertiary
#F54E00
neutral
#F2F1ED
surface
#EBEAE5
02 · Typography

Type scale

display
The quick brown fox
h1
A major section heading
h2
A subsection title
body
Body copy in the system's body font.
03 · Buttons

Buttons

PrimarySecondaryOutlineGhostText link →
Disabled
04 · Inputs

Form controls

Email
iris@studio.com
Password
••••••••••••
Bio
Designing for long-form publications. Based in Kyoto.
05 · Choices

Select & toggle

Plan
Starter
Free forever
Pro
$18 / month
Team
$48 / month
Toggles
Public profile
Require two-factor
Auto-accept invites
06 · Tags & badges

Labeling

NeutralAccentSolidWith dot
NEWBETAv2.0LIVE
07 · Cards

Cards

Feature
Editorial rigor

Prose-first token file — decisions live next to their reasoning.

Learn more →
Metric
24,810
▲ +12.4% vs last week
08 · Navigation

Tabs & breadcrumb

Overview
Analytics
Members
Workspace/Projects/Heritage System
09 · Spacing

Spacing scale

Fine micro-scale (1–5px) for pills, editorial scale (12–21px) for the grid.

1px
2px
5px
8px · base
10px
12px
14px
16px
18px
20px
21px
10 · Radius

Border radius scale

The system's own radius tokens — sm for chips and inputs, md for buttons, lg for cards, pill for fully-rounded CTAs.

sm
2px
md
8px
lg
10px
pill
9999px
11 · Elevation

Depth & elevation

00 · Flat
Elevation 00
01 · Low
Elevation 01
02 · Medium
Elevation 02
03 · High
Elevation 03
12 · Data

Charts

Weekly revenue
$48,210
M
T
W
T
F
S
S
Active sessions
2,184
02 · The file

DESIGN.md

markdown
1---
2name: "Inkwell IDE"
3description: "Warm cream canvas with yellow-undertone ink, gothic compressed display, literary serif body, and warm crimson hover — code-editor elegance as print publication."
4tags: [warm, editorial, code, premium]
5colors:
6 primary: "#26251e"
7 secondary: "#5a5a52"
8 tertiary: "#f54e00"
9 neutral: "#f2f1ed"
10 surface: "#ebeae5"
11typography:
12 display: "Space Grotesk"
13 body: Fraunces
14 mono: "JetBrains Mono"
15 scale:
16 hero: "4.5rem / 1.1 / 500 / -2.16px"
17 h1: "2.25rem / 1.2 / 500 / -0.72px"
18 h2: "1.625rem / 1.25 / 500 / -0.325px"
19 body: "1.08rem / 1.35 / 400 / 0"
20radius:
21 sm: 2px
22 md: 8px
23 lg: 10px
24 pill: 9999px
25shadows:
26 card: "rgba(38,37,30,0.1) 0 0 0 1px, rgba(0,0,0,0.02) 0 0 16px, rgba(0,0,0,0.008) 0 0 8px"
27 button: "rgba(0,0,0,0.1) 0 4px 12px"
28buttons:
29 primary:
30 background: #C13B27
31 color: #FFFEF8
32 border: none
33 shape: rounded
34 padding: 11px 20px
35 font: display / 600
36 secondary:
37 background: #FFFEF8
38 color: #1A1612
39 border: 1px solid #E8E0D0
40 shape: rounded
41 padding: 11px 20px
42 font: display / 600
43 outline:
44 background: transparent
45 color: #1A1612
46 border: 1px solid #1A1612
47 shape: rounded
48 padding: 11px 20px
49 font: display / 600
50 ghost:
51 background: transparent
52 color: #C13B27
53 border: none
54 shape: rounded
55 padding: 10px 12px
56 font: display / 600
57 hover: underline
58charts:
59 variant: stepped
60 stroke_width: 2
61 fill_opacity: 0.1
62 gridlines: false
63 bar_gap: 0px
64 highlight: single
65 dot_marker: false
66fonts_url: "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Fraunces:opsz,wght@9..144,400;9..144,500&family=JetBrains+Mono:wght@400&display=swap"
67dependencies: ["lucide-react"]
68---
69
70# Inkwell IDE
71
72## AI Build Instructions
73
74> **Read this section before writing any code.** The rules below
75> are non-negotiable. Every value used in the UI must come from this
76> file's frontmatter — never substitute, approximate, or invent new
77> colors, fonts, radii, or shadows. If a value is missing, ask the
78> user before adding one.
79
80### 1 · Your role
81
82You are building UI for a project that has adopted **Inkwell IDE** as its
83design system. Treat `DESIGN.md` as the single source of truth.
84Your job is to translate the user's product requirements into
85components and pages that look like they were designed by the same
86person who authored this file.
87
88### 2 · Token compliance
89
90- Pull every color, font family, radius, shadow, and spacing value
91 from the frontmatter at the top of this file.
92- Use semantic roles (e.g. `primary`, `accent`, `muted`) — never
93 hard-code hex values that bypass the system.
94- When a token can be expressed as a CSS variable, declare it once
95 in your global stylesheet and reference it everywhere downstream.
96- The Google Fonts `<link>` is provided in the Typography section.
97 Add it to `<head>` before any component renders.
98
99### 3 · Component recipes
100
101Use these recipes verbatim when building the corresponding component.
102
103#### Buttons
104
105Four variants are defined. Pick one — never blend variants or invent a fifth.
106
107- **Primary** — rounded shape, bg `#C13B27`, text `#FFFEF8`, padding `11px 20px`, weight `600`.
108- **Secondary** — rounded shape, bg `#FFFEF8`, text `#1A1612`, border `1px solid #E8E0D0`, padding `11px 20px`, weight `600`.
109- **Outline** — rounded shape, text `#1A1612`, border `1px solid #1A1612`, padding `11px 20px`, weight `600`.
110- **Ghost** — rounded shape, text `#C13B27`, padding `10px 12px`, weight `600`.
111
112Reach for **primary** as the single dominant CTA per screen.
113**Secondary** for the supporting action. **Outline** for tertiary
114actions in toolbars. **Ghost** for inline links and table actions.
115
116#### Cards
117
118- Background: `#ebeae5`
119- Shadow: `rgba(38,37,30,0.1) 0 0 0 1px, rgba(0,0,0,0.02) 0 0 16px, rgba(0,0,0,0.008) 0 0 8px`
120- Radius: `radius.lg` (`10px`)
121- Internal padding: `20px` for compact cards, `24–28px` for content cards.
122
123#### Tabs
124
125Variant: `boxed`. Each tab is a bordered card. Active tab gets the accent border and a subtle fill.
126
127#### Charts
128
129- Bar/line variant: `stepped`
130- No gridlines — let the bars/lines carry the data.
131- Highlight strategy: `single` — emphasize a single bar/point per chart.
132
133#### Typography pairings
134
135- **Display (`Space Grotesk`)** — h1, h2, hero headlines, brand wordmarks.
136- **Body (`Fraunces`)** — paragraphs, labels, button text, form inputs.
137- **Mono (`JetBrains Mono`)** — code, eyebrows, metadata, numerals in tables.
138
139### 4 · Hard constraints
140
141Never do any of the following without explicit instruction from the user:
142
143- Introduce a new color, font, radius, or shadow that isn't declared above.
144- Mix this system with another (e.g. don't paste in Material or Bootstrap defaults).
145- Use generic gradient defaults (purple→blue, peach→pink) — they break the system's voice.
146- Reach for emoji icons. Use a consistent icon library and size icons in line with body type.
147- Add motion that exceeds the system's restraint — keep transitions short (≤200ms) and subtle.
148
149### 5 · Before you finish — verify
150
151Run through this checklist for every screen you produce:
152
153- [ ] Every color used appears in the Colors table above.
154- [ ] Headlines use the display font; body copy uses the body font.
155- [ ] Buttons match one of the declared variants exactly (shape, padding, weight).
156- [ ] Border-radius values come from `radius.sm` / `radius.md` / `radius.lg` / `radius.pill`.
157- [ ] Cards and dividers use the declared border + shadow tokens.
158- [ ] No values were invented; if you needed something missing, you stopped and asked.
159
160---
161
162## 1. Atmosphere
163
164Inkwell IDE is warm minimalism meets code-editor elegance. The entire experience is built on a warm off-white canvas (`#f2f1ed`) with dark warm-brown ink (`#26251e`) — not pure black, not neutral gray, but a deeply warm near-black with a yellow undertone that evokes old paper, ink, and craft. The warmth permeates every surface: cream backgrounds (`#e6e5e0`, `#ebeae5`), borders dissolve into transparent warm overlays, and even the error state (`#cf2d56`) carries warmth rather than clinical red. The result feels more like a premium print publication than a tech website.
165
166The typographic signature is a compressed gothic sans for display — at 72px with -2.16px letter-spacing, headlines feel precision-engineered. As secondary voice, a literary serif provides editorial counterpoint for body copy, with contextual swash alternates that bring a calligraphic quality to long-form reading. A monospace voice handles code and technical labels, connecting the marketing surface to the IDE's core identity.
167
168The border system uses warm brown at varying alpha levels (0.1, 0.2, 0.55) — borders that feel organic rather than mechanical.
169
170**Signature moves**
171- Compressed gothic display with aggressive negative tracking (-2.16px at 72px, -0.72px at 36px)
172- Literary serif body with swash alternates — editorial warmth
173- Warm off-white canvas (`#f2f1ed`) — never pure white
174- Warm near-black ink (`#26251e`) with yellow undertone
175- Accent crimson-orange (`#f54e00`) for brand and links
176- Hover state shifts text to warm crimson (`#cf2d56`) — the signature interaction
177- Diffused atmospheric shadows: 28px / 70px blur at moderate opacity
178
179## 2. Palette
180
181### Primary
182- **Ink Dark** `#26251e` — text, headings, dark surfaces
183- **Cream** `#f2f1ed` — page background
184- **Light Cream** `#e6e5e0` — secondary surface, button background
185- Pure White `#ffffff` — sparingly for max-contrast highlights
186
187### Accent
188- **Ember Orange** `#f54e00` — brand, primary CTA, active links
189- Gold `#c08532` — premium / highlighted contexts
190
191### Semantic
192- Error / Hover `#cf2d56` — warm crimson, the interaction signal
193- Success `#1f8a65` — muted teal-green
194
195### Timeline colors
196- Thinking `#dfa88f` (peach)
197- Grep `#9fc9a2` (sage)
198- Read `#9fbbe0` (soft blue)
199- Edit `#c0a8dd` (lavender)
200
201### Surface scale
202- 100 `#f7f7f4` / 200 `#f2f1ed` / 300 `#ebeae5` / 400 `#e6e5e0` / 500 `#e1e0db`
203
204### Borders
205- Standard `rgba(38,37,30,0.1)` (warm brown 10%)
206- Medium `rgba(38,37,30,0.2)`
207- Strong `rgba(38,37,30,0.55)`
208
209## 3. Typography
210
211| Role | Font | Size | Weight | Leading | Tracking |
212|------|------|------|--------|---------|----------|
213| Display | Gothic | 72px | 500 | 1.10 | -2.16px |
214| Section | Gothic | 36px | 500 | 1.20 | -0.72px |
215| Sub-heading | Gothic | 26px | 500 | 1.25 | -0.325px |
216| Title S | Gothic | 22px | 500 | 1.30 | -0.11px |
217| Body Serif | Serif | 19.2px | 500 | 1.50 | normal |
218| Body | Serif | 17.28px | 400 | 1.35 | normal |
219| UI | Gothic | 16px | 400 | 1.50 | 0.08px |
220| Button | Gothic | 14px | 500 | 1.00 | normal |
221| Caption | Gothic | 11px | 400 | 1.50 | normal |
222| Mono | Mono | 12px | 400 | 1.67 | normal |
223
224**Three voices, three jobs.** Gothic for display and UI. Serif for editorial body. Mono for code. Hierarchy comes from size and tracking — the display font stays at weight 500 across the board, never bolder.
225
226## 4. Buttons
227
228### Primary (Warm Surface)
229```css
230background: #ebeae5;
231color: #26251e;
232padding: 10px 12px 10px 14px;
233border-radius: 8px;
234```
235Hover: text shifts to `#cf2d56`.
236
237### Secondary Pill
238- `#e6e5e0` background, `rgba(38,37,30,0.6)` text
239- Padding 3px 8px, full pill (9999px)
240- For tags and filters
241
242### Ghost
243- `rgba(38,37,30,0.06)` background, `rgba(38,37,30,0.55)` text
244- 6px 12px padding — for tertiary actions
245
246## 5. Cards
247
248- Background: `#e6e5e0` or `#f2f1ed`
249- Border: `1px solid rgba(38,37,30,0.1)`
250- Radius: 8px standard, 4px compact, 10px featured
251- Elevated: `rgba(0,0,0,0.14) 0 28px 70px, rgba(0,0,0,0.1) 0 14px 32px`
252
253## 6. Spacing
254
255- Base: 8px
256- Fine: `1.5, 2, 2.5, 3, 4, 5, 6` — sub-8px for icon/text micro-alignment
257- Standard: `8, 10, 12, 14, 16, 24, 32, 48, 64, 96`
258- Section vertical: 80px+
259
260## 7. Radius scale
261
262`1.5 / 2 / 3 / 4 / 8 / 10 / 9999` — pill for tags and filters, 8px for primary buttons and cards.
263
264## 8. Depth & elevation
265
266| Level | Treatment | Use |
267|-------|-----------|-----|
268| 0 | Flat | Page, text blocks |
269| 1 | `rgba(38,37,30,0.1) 0 0 0 1px` | Standard card border |
270| 2 | `rgba(0,0,0,0.02) 0 0 16px` | Floating, subtle glow |
271| 3 | `rgba(0,0,0,0.14) 0 28px 70px` + `rgba(0,0,0,0.1) 0 14px 32px` | Modals, elevated cards |
272| Focus | `rgba(0,0,0,0.1) 0 4px 12px` | Interactive focus |
273
274**Atmospheric depth.** Shadows use dramatically large blur (28px, 70px) at moderate opacity (0.14, 0.1) — diffused, atmospheric lift rather than hard-edged drops. Cards don't float above the page; the page gently opens space for them.
275
276## 9. Do's & don'ts
277
278✅ **Do**
279- Use `#f2f1ed` cream as the page foundation
280- Apply aggressive negative tracking on gothic display (-2.16px at 72px)
281- Use the literary serif for body copy — editorial warmth
282- Shift hover text to `#cf2d56` warm crimson — the signature interaction
283- Use `rgba(38,37,30, α)` for warm brown borders
284
285❌ **Don't**
286- Use pure white (`#ffffff`) as primary surface
287- Use cold blue focus rings — keep the warm tone
288- Reach for bold (700+) display weight — 500 is the cap
289- Apply 9999px radius to rectangular buttons — pills are for tags only
290- Use neutral gray borders — they kill the warmth
291
292---
293
294## Tokens
295
296> Generated from the same source the live preview renders from.
297> Treat the values below as the contract — never substitute approximations.
298
299### Colors
300
301| Role | Value |
302|-----------|-------|
303| primary | `#26251e` |
304| secondary | `#5a5a52` |
305| tertiary | `#f54e00` |
306| neutral | `#f2f1ed` |
307| surface | `#ebeae5` |
308
309### Typography
310
311- **Display:** Space Grotesk
312- **Body:** Fraunces
313- **Mono:** JetBrains Mono
314
315| Role | size / leading / weight / tracking |
316|------|------------------------------------|
317| Hero | 4.5rem / 1.1 / 500 / -2.16px |
318| H1 | 2.25rem / 1.2 / 500 / -0.72px |
319| H2 | 1.625rem / 1.25 / 500 / -0.325px |
320| Body | 1.08rem / 1.35 / 400 / 0 |
321
322### Radius
323
324- sm: `2px`
325- md: `8px`
326- lg: `10px`
327- pill: `9999px`
328
329### Shadows
330
331- **card:** `rgba(38,37,30,0.1) 0 0 0 1px, rgba(0,0,0,0.02) 0 0 16px, rgba(0,0,0,0.008) 0 0 8px`
332- **button:** `rgba(0,0,0,0.1) 0 4px 12px`
333
334### Buttons
335
336Four variants, each fully tokenized. The preview renders from these exact values.
337
338#### Primary
339
340| Property | Value |
341|----------|-------|
342| shape | `rounded` |
343| background | `#C13B27` |
344| color | `#FFFEF8` |
345| border | `none` |
346| padding | `11px 20px` |
347| fontFamily | `display` |
348| fontWeight | `600` |
349
350#### Secondary
351
352| Property | Value |
353|----------|-------|
354| shape | `rounded` |
355| background | `#FFFEF8` |
356| color | `#1A1612` |
357| border | `1px solid #E8E0D0` |
358| padding | `11px 20px` |
359| fontFamily | `display` |
360| fontWeight | `600` |
361
362#### Outline
363
364| Property | Value |
365|----------|-------|
366| shape | `rounded` |
367| background | `transparent` |
368| color | `#1A1612` |
369| border | `1px solid #1A1612` |
370| padding | `11px 20px` |
371| fontFamily | `display` |
372| fontWeight | `600` |
373
374#### Ghost
375
376| Property | Value |
377|----------|-------|
378| shape | `rounded` |
379| background | `transparent` |
380| color | `#C13B27` |
381| border | `none` |
382| padding | `10px 12px` |
383| fontFamily | `display` |
384| fontWeight | `600` |
385| hoverHint | `underline` |
386
387### Charts
388
389| Property | Value |
390|----------|-------|
391| variant | `stepped` |
392| strokeWidth | `2` |
393| fillOpacity | `0.1` |
394| gridlines | `false` |
395| barGap | `0px` |
396| highlight | `single` |
397| dotMarker | `false` |
398
03 · How to use it

Wire it into your agent.

markdown
# CLAUDE.md
Reference @DESIGN.md for all styling decisions. Apply tokens strictly — do not introduce colors, fonts, or radii outside the system. When in doubt, prefer the values declared in DESIGN.md frontmatter.
04 · Required setup

Three snippets.

Google Fonts link

html
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Fraunces:opsz,wght@9..144,400;9..144,500&family=JetBrains+Mono:wght@400&display=swap" />

Install dependencies

bash
npm install lucide-react

Tailwind config

js
// tailwind.config.js
export default {
theme: {
extend: {
fontFamily: {
display: ['"Space Grotesk"', 'serif'],
sans: ['"Fraunces"', 'sans-serif'],
mono: ['"JetBrains Mono"', 'monospace'],
},
colors: {
primary: '#26251e',
secondary: '#5a5a52',
accent: '#f54e00',
neutral: '#f2f1ed',
surface: '#ebeae5',
},
borderRadius: {
sm: '2px',
md: '8px',
lg: '10px',
},
},
},
};
05 · Keep browsing

Try another system.