cdragon 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +110 -0
  2. package/bin/cdragon.js +170 -0
  3. package/package.json +31 -0
  4. package/skills/agent-browser/SKILL.md +50 -0
  5. package/skills/grill-me/SKILL.md +7 -0
  6. package/skills/herdr-agent/SKILL.md +142 -0
  7. package/skills/herdr-cli/SKILL.md +388 -0
  8. package/skills/herdr-cli/scripts/herdr-agent-run-and-wait +203 -0
  9. package/skills/herdr-cli/scripts/herdr-agent-wait-complete +168 -0
  10. package/skills/notion-presentation/SKILL.md +170 -0
  11. package/skills/notion-presentation/references/example-redis-deck.md +97 -0
  12. package/skills/setup-matt-pocock-skills/SKILL.md +127 -0
  13. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  14. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  15. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  16. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  17. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  18. package/skills/tdd/SKILL.md +108 -0
  19. package/skills/tdd/mocking.md +59 -0
  20. package/skills/tdd/refactoring.md +10 -0
  21. package/skills/tdd/tests.md +61 -0
  22. package/skills/to-html/SKILL.md +83 -0
  23. package/skills/to-html/designs/INDEX.md +74 -0
  24. package/skills/to-html/designs/airbnb.DESIGN.md +581 -0
  25. package/skills/to-html/designs/airtable.DESIGN.md +275 -0
  26. package/skills/to-html/designs/alipay.DESIGN.md +456 -0
  27. package/skills/to-html/designs/apple.DESIGN.md +566 -0
  28. package/skills/to-html/designs/banksalad.DESIGN.md +621 -0
  29. package/skills/to-html/designs/channeltalk.DESIGN.md +374 -0
  30. package/skills/to-html/designs/clay.DESIGN.md +398 -0
  31. package/skills/to-html/designs/clickhouse.DESIGN.md +374 -0
  32. package/skills/to-html/designs/cohere.DESIGN.md +361 -0
  33. package/skills/to-html/designs/coinone.DESIGN.md +218 -0
  34. package/skills/to-html/designs/coupang.DESIGN.md +502 -0
  35. package/skills/to-html/designs/cursor.DESIGN.md +416 -0
  36. package/skills/to-html/designs/elevenlabs.DESIGN.md +376 -0
  37. package/skills/to-html/designs/expo.DESIGN.md +373 -0
  38. package/skills/to-html/designs/figma.DESIGN.md +490 -0
  39. package/skills/to-html/designs/framer.DESIGN.md +393 -0
  40. package/skills/to-html/designs/freee.DESIGN.md +572 -0
  41. package/skills/to-html/designs/gangnamunni.DESIGN.md +621 -0
  42. package/skills/to-html/designs/gmarket.DESIGN.md +483 -0
  43. package/skills/to-html/designs/gogolook.DESIGN.md +131 -0
  44. package/skills/to-html/designs/hahow.DESIGN.md +158 -0
  45. package/skills/to-html/designs/hashicorp.DESIGN.md +369 -0
  46. package/skills/to-html/designs/hyundaicard.DESIGN.md +177 -0
  47. package/skills/to-html/designs/ibm.DESIGN.md +420 -0
  48. package/skills/to-html/designs/kakaobank.DESIGN.md +548 -0
  49. package/skills/to-html/designs/kakaopay.DESIGN.md +544 -0
  50. package/skills/to-html/designs/karrot.DESIGN.md +445 -0
  51. package/skills/to-html/designs/kdan.DESIGN.md +160 -0
  52. package/skills/to-html/designs/krds.DESIGN.md +997 -0
  53. package/skills/to-html/designs/line.DESIGN.md +431 -0
  54. package/skills/to-html/designs/linear.app.DESIGN.md +548 -0
  55. package/skills/to-html/designs/miro.DESIGN.md +272 -0
  56. package/skills/to-html/designs/mistral.ai.DESIGN.md +353 -0
  57. package/skills/to-html/designs/money-forward.DESIGN.md +401 -0
  58. package/skills/to-html/designs/mongodb.DESIGN.md +357 -0
  59. package/skills/to-html/designs/naver.DESIGN.md +533 -0
  60. package/skills/to-html/designs/nhncloud.DESIGN.md +174 -0
  61. package/skills/to-html/designs/opencode.ai.DESIGN.md +388 -0
  62. package/skills/to-html/designs/pinterest.DESIGN.md +322 -0
  63. package/skills/to-html/designs/posthog.DESIGN.md +430 -0
  64. package/skills/to-html/designs/raycast.DESIGN.md +422 -0
  65. package/skills/to-html/designs/remember.DESIGN.md +460 -0
  66. package/skills/to-html/designs/resend.DESIGN.md +396 -0
  67. package/skills/to-html/designs/sanity.DESIGN.md +449 -0
  68. package/skills/to-html/designs/sendbird.DESIGN.md +285 -0
  69. package/skills/to-html/designs/smarthr.DESIGN.md +404 -0
  70. package/skills/to-html/designs/socar.DESIGN.md +403 -0
  71. package/skills/to-html/designs/spotify.DESIGN.md +265 -0
  72. package/skills/to-html/designs/supabase.DESIGN.md +348 -0
  73. package/skills/to-html/designs/superhuman.DESIGN.md +414 -0
  74. package/skills/to-html/designs/together.ai.DESIGN.md +356 -0
  75. package/skills/to-html/designs/toss.DESIGN.md +655 -0
  76. package/skills/to-html/designs/uber.DESIGN.md +387 -0
  77. package/skills/to-html/designs/upstage.DESIGN.md +232 -0
  78. package/skills/to-html/designs/velog.DESIGN.md +168 -0
  79. package/skills/to-html/designs/vercel.DESIGN.md +479 -0
  80. package/skills/to-html/designs/wanted.DESIGN.md +529 -0
  81. package/skills/to-html/designs/wise.DESIGN.md +276 -0
  82. package/skills/to-html/designs/yanolja.DESIGN.md +463 -0
  83. package/skills/to-html/designs/yeogiotte.DESIGN.md +459 -0
  84. package/skills/to-html/designs/zapier.DESIGN.md +433 -0
  85. package/skills/to-html/designs/zigzag.DESIGN.md +633 -0
  86. package/skills/to-issues/SKILL.md +84 -0
  87. package/skills/to-prd/SKILL.md +75 -0
  88. package/src/colors.js +15 -0
  89. package/src/link.js +47 -0
  90. package/src/prompt.js +137 -0
  91. package/src/skills.js +75 -0
@@ -0,0 +1,416 @@
1
+ ---
2
+ id: cursor
3
+ name: Cursor
4
+ country: US
5
+ category: developer-tools
6
+ homepage: "https://www.cursor.com"
7
+ primary_color: "#000000"
8
+ logo:
9
+ type: simpleicons
10
+ slug: cursor
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Cursor Brand
15
+ url: "https://www.cursor.com/brand"
16
+ type: brand
17
+ description: Cursor's brand guidelines with logos, icons, and naming conventions.
18
+ og_image: "https://cursor.com/public/opengraph-image.png"
19
+ ---
20
+
21
+ # Design System Inspiration of Cursor
22
+
23
+ ## 1. Visual Theme & Atmosphere
24
+
25
+ Cursor's website is a study in warm minimalism meets code-editor elegance. The entire experience is built on a warm off-white canvas (`#f2f1ed`) with dark warm-brown text (`#26251e`) -- not pure black, not neutral gray, but a deeply warm near-black with a yellowish undertone that evokes old paper, ink, and craft. This warmth permeates every surface: backgrounds lean toward cream (`#e6e5e0`, `#ebeae5`), borders dissolve into transparent warm overlays using `oklab` color space, 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.
26
+
27
+ The custom CursorGothic font is the typographic signature -- a gothic sans-serif with aggressive negative letter-spacing at display sizes (-2.16px at 72px) that creates a compressed, engineered feel. As a secondary voice, the jjannon serif font (with OpenType `"cswh"` contextual swash alternates) provides literary counterpoint for body copy and editorial passages. The monospace voice comes from berkeleyMono, a refined coding font that connects the marketing site to Cursor's core identity as a code editor. This three-font system (gothic display, serif body, mono code) gives Cursor one of the most typographically rich palettes in developer tooling.
28
+
29
+ The border system is particularly distinctive -- Cursor uses `oklab()` color space for border colors, applying warm brown at various alpha levels (0.1, 0.2, 0.55) to create borders that feel organic rather than mechanical. The signature border color `oklab(0.263084 -0.00230259 0.0124794 / 0.1)` is not a simple rgba value but a perceptually uniform color that maintains visual consistency across different backgrounds.
30
+
31
+ **Key Characteristics:**
32
+ - CursorGothic with aggressive negative letter-spacing (-2.16px at 72px, -0.72px at 36px) for compressed display headings
33
+ - jjannon serif for body text with OpenType `"cswh"` (contextual swash alternates)
34
+ - berkeleyMono for code and technical labels
35
+ - Warm off-white background (`#f2f1ed`) instead of pure white -- the entire system is warm-shifted
36
+ - Primary text color `#26251e` (warm near-black with yellow undertone)
37
+ - Accent orange `#f54e00` for brand highlight and links
38
+ - oklab-space borders at various alpha levels for perceptually uniform edge treatment
39
+ - Pill-shaped elements with extreme radius (33.5M px, effectively full-pill)
40
+ - 8px base spacing system with fine-grained sub-8px increments (1.5px, 2px, 2.5px, 3px, 4px, 5px, 6px)
41
+
42
+ ### Do's and Don'ts
43
+
44
+ - **DO** lean into warm neutrals — `#f2f1ed` canvas, `#26251e` text, `oklab` borders. Pure white or pure black breaks the warm-print atmosphere.
45
+ - **DON'T** introduce cold grays (`#e5e7eb`, `#6b7280`) — they fight the warm undertone and feel mechanical against Cursor's literary warmth.
46
+ - **DO** apply aggressive negative letter-spacing (-2.16px at 72px, scaling proportionally) on display headlines. Compressed type is the brand voice.
47
+ - **DON'T** use default tracking on display sizes — it reads as generic and undersells Cursor's typographic care.
48
+ - **DO** use the three-font system deliberately: CursorGothic for display, jjannon serif for body and editorial passages, berkeleyMono for code.
49
+ - **DON'T** mix fonts from outside the system — adding a fourth voice fragments the carefully curated typographic palette.
50
+ - **DO** use `oklab()` color space for borders and overlays where supported — perceptually uniform colors maintain consistency across backgrounds.
51
+ - **DON'T** fall back to flat rgba() borders without considering perceptual contrast on different surface tints.
52
+ - **DO** use full-pill buttons (extreme radius) for primary CTAs — they're part of the warm, approachable feel.
53
+ - **DON'T** use sharp 2-4px corners on buttons — that aesthetic belongs to engineering brands like NVIDIA, not Cursor's editorial warmth.
54
+
55
+ ## 2. Color Palette & Roles
56
+
57
+ ### Primary
58
+ - **Cursor Dark** (`#26251e`): Primary text, headings, dark UI surfaces. A warm near-black with distinct yellow-brown undertone -- the defining color of the system.
59
+ - **Cursor Cream** (`#f2f1ed`): Page background, primary surface. Not white but a warm cream that sets the entire warm tone.
60
+ - **Cursor Light** (`#e6e5e0`): Secondary surface, button backgrounds, card fills. A slightly warmer, slightly darker cream.
61
+ - **Pure White** (`#ffffff`): Used sparingly for maximum contrast elements and specific surface highlights.
62
+ - **True Black** (`#000000`): Minimal use, specific code/console contexts.
63
+
64
+ ### Accent
65
+ - **Cursor Orange** (`#f54e00`): Brand accent, `--color-accent`. A vibrant red-orange used for primary CTAs, active links, and brand moments. Warm and urgent.
66
+ - **Gold** (`#c08532`): Secondary accent, warm gold for premium or highlighted contexts.
67
+
68
+ ### Semantic
69
+ - **Error** (`#cf2d56`): `--color-error`. A warm crimson-rose rather than cold red.
70
+ - **Success** (`#1f8a65`): `--color-success`. A muted teal-green, warm-shifted.
71
+
72
+ ### Timeline / Feature Colors
73
+ - **Thinking** (`#dfa88f`): Warm peach for "thinking" state in AI timeline.
74
+ - **Grep** (`#9fc9a2`): Soft sage green for search/grep operations.
75
+ - **Read** (`#9fbbe0`): Soft blue for file reading operations.
76
+ - **Edit** (`#c0a8dd`): Soft lavender for editing operations.
77
+
78
+ ### Surface Scale
79
+ - **Surface 100** (`#f7f7f4`): Lightest button/card surface, barely tinted.
80
+ - **Surface 200** (`#f2f1ed`): Primary page background.
81
+ - **Surface 300** (`#ebeae5`): Button default background, subtle emphasis.
82
+ - **Surface 400** (`#e6e5e0`): Card backgrounds, secondary surfaces.
83
+ - **Surface 500** (`#e1e0db`): Tertiary button background, deeper emphasis.
84
+
85
+ ### Border Colors
86
+ - **Border Primary** (`oklab(0.263084 -0.00230259 0.0124794 / 0.1)`): Standard border, 10% warm brown in oklab space.
87
+ - **Border Medium** (`oklab(0.263084 -0.00230259 0.0124794 / 0.2)`): Emphasized border, 20% warm brown.
88
+ - **Border Strong** (`rgba(38, 37, 30, 0.55)`): Strong borders, table rules.
89
+ - **Border Solid** (`#26251e`): Full-opacity dark border for maximum contrast.
90
+ - **Border Light** (`#f2f1ed`): Light border matching page background.
91
+
92
+ ### Shadows & Depth
93
+ - **Card Shadow** (`rgba(0,0,0,0.14) 0px 28px 70px, rgba(0,0,0,0.1) 0px 14px 32px, oklab(0.263084 -0.00230259 0.0124794 / 0.1) 0px 0px 0px 1px`): Heavy elevated card with warm oklab border ring.
94
+ - **Ambient Shadow** (`rgba(0,0,0,0.02) 0px 0px 16px, rgba(0,0,0,0.008) 0px 0px 8px`): Subtle ambient glow for floating elements.
95
+
96
+ ## 3. Typography Rules
97
+
98
+ ### Font Family
99
+ - **Display/Headlines**: `CursorGothic`, with fallbacks: `CursorGothic Fallback, system-ui, Helvetica Neue, Helvetica, Arial`
100
+ - **Body/Editorial**: `jjannon`, with fallbacks: `Iowan Old Style, Palatino Linotype, URW Palladio L, P052, ui-serif, Georgia, Cambria, Times New Roman, Times`
101
+ - **Code/Technical**: `berkeleyMono`, with fallbacks: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New`
102
+ - **UI/System**: `system-ui`, with fallbacks: `-apple-system, Segoe UI, Helvetica Neue, Arial`
103
+ - **Icons**: `CursorIcons16` (icon font at 14px and 12px)
104
+ - **OpenType Features**: `"cswh"` on jjannon body text, `"ss09"` on CursorGothic buttons/captions
105
+
106
+ ### Hierarchy
107
+
108
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
109
+ |------|------|------|--------|-------------|----------------|-------|
110
+ | Display Hero | CursorGothic | 72px (4.50rem) | 400 | 1.10 (tight) | -2.16px | Maximum compression, hero statements |
111
+ | Section Heading | CursorGothic | 36px (2.25rem) | 400 | 1.20 (tight) | -0.72px | Feature sections, CTA headlines |
112
+ | Sub-heading | CursorGothic | 26px (1.63rem) | 400 | 1.25 (tight) | -0.325px | Card headings, sub-sections |
113
+ | Title Small | CursorGothic | 22px (1.38rem) | 400 | 1.30 (tight) | -0.11px | Smaller titles, list headings |
114
+ | Body Serif | jjannon | 19.2px (1.20rem) | 500 | 1.50 | normal | Editorial body with `"cswh"` |
115
+ | Body Serif SM | jjannon | 17.28px (1.08rem) | 400 | 1.35 | normal | Standard body text, descriptions |
116
+ | Body Sans | CursorGothic | 16px (1.00rem) | 400 | 1.50 | normal/0.08px | UI body text |
117
+ | Button Label | CursorGothic | 14px (0.88rem) | 400 | 1.00 (tight) | normal | Primary button text |
118
+ | Button Caption | CursorGothic | 14px (0.88rem) | 400 | 1.50 | 0.14px | Secondary button with `"ss09"` |
119
+ | Caption | CursorGothic | 11px (0.69rem) | 400-500 | 1.50 | normal | Small captions, metadata |
120
+ | System Heading | system-ui | 20px (1.25rem) | 700 | 1.55 | normal | System UI headings |
121
+ | System Caption | system-ui | 13px (0.81rem) | 500-600 | 1.33 | normal | System UI labels |
122
+ | System Micro | system-ui | 11px (0.69rem) | 500 | 1.27 (tight) | 0.048px | Uppercase micro labels |
123
+ | Mono Body | berkeleyMono | 12px (0.75rem) | 400 | 1.67 (relaxed) | normal | Code blocks |
124
+ | Mono Small | berkeleyMono | 11px (0.69rem) | 400 | 1.33 | -0.275px | Inline code, terminal |
125
+ | Lato Heading | Lato | 16px (1.00rem) | 600 | 1.33 | normal | Lato section headings |
126
+ | Lato Caption | Lato | 14px (0.88rem) | 400-600 | 1.33 | normal | Lato captions |
127
+ | Lato Micro | Lato | 12px (0.75rem) | 400-600 | 1.27 (tight) | 0.053px | Lato small labels |
128
+
129
+ ### Principles
130
+ - **Gothic compression for impact**: CursorGothic at display sizes uses -2.16px letter-spacing at 72px, progressively relaxing: -0.72px at 36px, -0.325px at 26px, -0.11px at 22px, normal at 16px and below. The tracking creates a sense of precision engineering.
131
+ - **Serif for soul**: jjannon provides literary warmth. The `"cswh"` feature adds contextual swash alternates that give body text a calligraphic quality.
132
+ - **Three typographic voices**: Gothic (display/UI), serif (editorial/body), mono (code/technical). Each serves a distinct communication purpose.
133
+ - **Weight restraint**: CursorGothic uses weight 400 almost exclusively, relying on size and tracking for hierarchy rather than weight. System-ui components use 500-700 for functional emphasis.
134
+
135
+ ## 4. Component Stylings
136
+
137
+ ### Buttons
138
+
139
+ **Primary (Warm Surface)**
140
+ - Background: `#ebeae5` (Surface 300)
141
+ - Text: `#26251e` (Cursor Dark)
142
+ - Padding: 10px 12px 10px 14px
143
+ - Radius: 8px
144
+ - Outline: none
145
+ - Hover: text shifts to `var(--color-error)` (`#cf2d56`)
146
+ - Focus shadow: `rgba(0,0,0,0.1) 0px 4px 12px`
147
+ - Use: Primary actions, main CTAs
148
+
149
+ **Secondary Pill**
150
+ - Background: `#e6e5e0` (Surface 400)
151
+ - Text: `oklab(0.263 / 0.6)` (60% warm brown)
152
+ - Padding: 3px 8px
153
+ - Radius: full pill (33.5M px)
154
+ - Hover: text shifts to `var(--color-error)`
155
+ - Use: Tags, filters, secondary actions
156
+
157
+ **Tertiary Pill**
158
+ - Background: `#e1e0db` (Surface 500)
159
+ - Text: `oklab(0.263 / 0.6)` (60% warm brown)
160
+ - Radius: full pill
161
+ - Use: Active filter state, selected tags
162
+
163
+ **Ghost (Transparent)**
164
+ - Background: `rgba(38, 37, 30, 0.06)` (6% warm brown)
165
+ - Text: `rgba(38, 37, 30, 0.55)` (55% warm brown)
166
+ - Padding: 6px 12px
167
+ - Use: Tertiary actions, dismiss buttons
168
+
169
+ **Light Surface**
170
+ - Background: `#f7f7f4` (Surface 100) or `#f2f1ed` (Surface 200)
171
+ - Text: `#26251e` or `oklab(0.263 / 0.9)` (90%)
172
+ - Padding: 0px 8px 1px 12px
173
+ - Use: Dropdown triggers, subtle interactive elements
174
+
175
+ ### Cards & Containers
176
+ - Background: `#e6e5e0` or `#f2f1ed`
177
+ - Border: `1px solid oklab(0.263 / 0.1)` (warm brown at 10%)
178
+ - Radius: 8px (standard), 4px (compact), 10px (featured)
179
+ - Shadow: `rgba(0,0,0,0.14) 0px 28px 70px, rgba(0,0,0,0.1) 0px 14px 32px` for elevated cards
180
+ - Hover: shadow intensification
181
+
182
+ ### Inputs & Forms
183
+ - Background: transparent or surface
184
+ - Text: `#26251e`
185
+ - Padding: 8px 8px 6px (textarea)
186
+ - Border: `1px solid oklab(0.263 / 0.1)`
187
+ - Focus: border shifts to `oklab(0.263 / 0.2)` or accent orange
188
+
189
+ ### Navigation
190
+ - Clean horizontal nav on warm cream background
191
+ - Cursor logotype left-aligned (~96x24px)
192
+ - Links: 14px CursorGothic or system-ui, weight 500
193
+ - CTA button: warm surface with Cursor Dark text
194
+ - Tab navigation: bottom border `1px solid oklab(0.263 / 0.1)` with active tab differentiation
195
+
196
+ ### Image Treatment
197
+ - Code editor screenshots with `1px solid oklab(0.263 / 0.1)` border
198
+ - Rounded corners: 8px standard
199
+ - AI chat/timeline screenshots dominate feature sections
200
+ - Warm gradient or solid cream backgrounds behind hero images
201
+
202
+ ### Distinctive Components
203
+
204
+ **AI Timeline**
205
+ - Vertical timeline showing AI operations: thinking (peach), grep (sage), read (blue), edit (lavender)
206
+ - Each step uses its semantic color with matching text
207
+ - Connected with vertical lines
208
+ - Core visual metaphor for Cursor's AI-first coding experience
209
+
210
+ **Code Editor Previews**
211
+ - Dark code editor screenshots with warm cream border frame
212
+ - berkeleyMono for code text
213
+ - Syntax highlighting using timeline colors
214
+
215
+ **Pricing Cards**
216
+ - Warm surface backgrounds with bordered containers
217
+ - Feature lists using jjannon serif for readability
218
+ - CTA buttons with accent orange or primary dark styling
219
+
220
+ ## 5. Layout Principles
221
+
222
+ ### Spacing System
223
+ - Base unit: 8px
224
+ - Fine scale: 1.5px, 2px, 2.5px, 3px, 4px, 5px, 6px (sub-8px for micro-adjustments)
225
+ - Standard scale: 8px, 10px, 12px, 14px (derived from extraction)
226
+ - Extended scale (inferred): 16px, 24px, 32px, 48px, 64px, 96px
227
+ - Notable: fine-grained sub-8px increments for precise icon/text alignment
228
+
229
+ ### Grid & Container
230
+ - Max content width: approximately 1200px
231
+ - Hero: centered single-column with generous top padding (80-120px)
232
+ - Feature sections: 2-3 column grids for cards and features
233
+ - Full-width sections with warm cream or slightly darker backgrounds
234
+ - Sidebar layouts for documentation and settings pages
235
+
236
+ ### Whitespace Philosophy
237
+ - **Warm negative space**: The cream background means whitespace has warmth and texture, unlike cold white minimalism. Large empty areas feel cozy rather than clinical.
238
+ - **Compressed text, open layout**: Aggressive negative letter-spacing on CursorGothic headlines is balanced by generous surrounding margins. Text is dense; space around it breathes.
239
+ - **Section variation**: Alternating surface tones (cream → lighter cream → cream) create subtle section differentiation without harsh boundaries.
240
+
241
+ ### Border Radius Scale
242
+ - Micro (1.5px): Fine detail elements
243
+ - Small (2px): Inline elements, code spans
244
+ - Medium (3px): Small containers, inline badges
245
+ - Standard (4px): Cards, images, compact buttons
246
+ - Comfortable (8px): Primary buttons, cards, menus
247
+ - Featured (10px): Larger containers, featured cards
248
+ - Full Pill (33.5M px / 9999px): Pill buttons, tags, badges
249
+
250
+ ## 6. Depth & Elevation
251
+
252
+ | Level | Treatment | Use |
253
+ |-------|-----------|-----|
254
+ | Flat (Level 0) | No shadow | Page background, text blocks |
255
+ | Border Ring (Level 1) | `oklab(0.263 / 0.1) 0px 0px 0px 1px` | Standard card/container border (warm oklab) |
256
+ | Border Medium (Level 1b) | `oklab(0.263 / 0.2) 0px 0px 0px 1px` | Emphasized borders, active states |
257
+ | Ambient (Level 2) | `rgba(0,0,0,0.02) 0px 0px 16px, rgba(0,0,0,0.008) 0px 0px 8px` | Floating elements, subtle glow |
258
+ | Elevated Card (Level 3) | `rgba(0,0,0,0.14) 0px 28px 70px, rgba(0,0,0,0.1) 0px 14px 32px, oklab ring` | Modals, popovers, elevated cards |
259
+ | Focus | `rgba(0,0,0,0.1) 0px 4px 12px` on button focus | Interactive focus feedback |
260
+
261
+ **Shadow Philosophy**: Cursor's depth system is built around two ideas. First, borders use perceptually uniform oklab color space rather than rgba, ensuring warm brown borders look consistent across different background tones. Second, elevation shadows use dramatically large blur values (28px, 70px) with moderate opacity (0.14, 0.1), creating a diffused, atmospheric lift rather than hard-edged drop shadows. Cards don't feel like they float above the page -- they feel like the page has gently opened a space for them.
262
+
263
+ ### Decorative Depth
264
+ - Warm cream surface variations create subtle tonal depth without shadows
265
+ - oklab borders at 10% and 20% create a spectrum of edge definition
266
+ - No harsh divider lines -- section separation through background tone shifts and spacing
267
+
268
+ ## 7. Interaction & Motion
269
+
270
+ ### Hover States
271
+ - Buttons: text color shifts to `--color-error` (`#cf2d56`) on hover -- a distinctive warm crimson that signals interactivity
272
+ - Links: color shift to accent orange (`#f54e00`) or underline decoration with `rgba(38, 37, 30, 0.4)`
273
+ - Cards: shadow intensification on hover (ambient → elevated)
274
+
275
+ ### Focus States
276
+ - Shadow-based focus: `rgba(0,0,0,0.1) 0px 4px 12px` for depth-based focus indication
277
+ - Border focus: `oklab(0.263 / 0.2)` (20% border) for input/form focus
278
+ - Consistent warm tone in all focus states -- no cold blue focus rings
279
+
280
+ ### Transitions
281
+ - Color transitions: 150ms ease for text/background color changes
282
+ - Shadow transitions: 200ms ease for elevation changes
283
+ - Transform: subtle scale or translate for interactive feedback
284
+
285
+ ## 8. Responsive Behavior
286
+
287
+ ### Breakpoints
288
+ | Name | Width | Key Changes |
289
+ |------|-------|-------------|
290
+ | Mobile | <600px | Single column, reduced padding, stacked navigation |
291
+ | Tablet Small | 600-768px | 2-column grids begin |
292
+ | Tablet | 768-900px | Expanded card grids, sidebar appears |
293
+ | Desktop Small | 900-1279px | Full layout forming |
294
+ | Desktop | >1279px | Full layout, maximum content width |
295
+
296
+ ### Touch Targets
297
+ - Buttons use comfortable padding (6px-14px vertical, 8px-14px horizontal)
298
+ - Pill buttons maintain tap-friendly sizing with 3px-10px padding
299
+ - Navigation links at 14px with adequate spacing for touch
300
+
301
+ ### Collapsing Strategy
302
+ - Hero: 72px CursorGothic → 36px → 26px on smaller screens, maintaining proportional letter-spacing
303
+ - Navigation: horizontal links → hamburger menu on mobile
304
+ - Feature cards: 3-column → 2-column → single column stacked
305
+ - Code editor screenshots: maintain aspect ratio, may shrink with border treatment preserved
306
+ - Timeline visualization: horizontal → vertical stacking
307
+ - Section spacing: 80px+ → 48px → 32px on mobile
308
+
309
+ ### Image Behavior
310
+ - Editor screenshots maintain warm border treatment at all sizes
311
+ - AI timeline adapts from horizontal to vertical layout
312
+ - Product screenshots use responsive images with consistent border radius
313
+ - Full-width hero images scale proportionally
314
+
315
+ ## 9. Agent Prompt Guide
316
+
317
+ ### Quick Color Reference
318
+ - Primary CTA background: `#ebeae5` (warm cream button)
319
+ - Page background: `#f2f1ed` (warm off-white)
320
+ - Text color: `#26251e` (warm near-black)
321
+ - Secondary text: `rgba(38, 37, 30, 0.55)` (55% warm brown)
322
+ - Accent: `#f54e00` (orange)
323
+ - Error/hover: `#cf2d56` (warm crimson)
324
+ - Success: `#1f8a65` (muted teal)
325
+ - Border: `oklab(0.263084 -0.00230259 0.0124794 / 0.1)` or `rgba(38, 37, 30, 0.1)` as fallback
326
+
327
+ ### Example Component Prompts
328
+ - "Create a hero section on `#f2f1ed` warm cream background. Headline at 72px CursorGothic weight 400, line-height 1.10, letter-spacing -2.16px, color `#26251e`. Subtitle at 17.28px jjannon weight 400, line-height 1.35, color `rgba(38,37,30,0.55)`. Primary CTA button (`#ebeae5` bg, 8px radius, 10px 14px padding) with hover text shift to `#cf2d56`."
329
+ - "Design a card: `#e6e5e0` background, border `1px solid rgba(38,37,30,0.1)`. Radius 8px. Title at 22px CursorGothic weight 400, letter-spacing -0.11px. Body at 17.28px jjannon weight 400, color `rgba(38,37,30,0.55)`. Use `#f54e00` for link accents."
330
+ - "Build a pill tag: `#e6e5e0` background, `rgba(38,37,30,0.6)` text, full-pill radius (9999px), 3px 8px padding, 14px CursorGothic weight 400."
331
+ - "Create navigation: sticky `#f2f1ed` background with backdrop-filter blur. 14px system-ui weight 500 for links, `#26251e` text. CTA button right-aligned with `#ebeae5` bg and 8px radius. Bottom border `1px solid rgba(38,37,30,0.1)`."
332
+ - "Design an AI timeline showing four steps: Thinking (`#dfa88f`), Grep (`#9fc9a2`), Read (`#9fbbe0`), Edit (`#c0a8dd`). Each step: 14px system-ui label + 16px CursorGothic description + vertical connecting line in `rgba(38,37,30,0.1)`."
333
+
334
+ ### Iteration Guide
335
+ 1. Always use warm tones -- `#f2f1ed` background, `#26251e` text, never pure white/black for primary surfaces
336
+ 2. Letter-spacing scales with font size for CursorGothic: -2.16px at 72px, -0.72px at 36px, -0.325px at 26px, normal at 16px
337
+ 3. Use `rgba(38, 37, 30, alpha)` as a CSS-compatible fallback for oklab borders
338
+ 4. Three fonts, three voices: CursorGothic (display/UI), jjannon (editorial), berkeleyMono (code)
339
+ 5. Pill shapes (9999px radius) for tags and filters; 8px radius for primary buttons and cards
340
+ 6. Hover states use `#cf2d56` text color -- the warm crimson shift is a signature interaction
341
+ 7. Shadows use large blur values (28px, 70px) for diffused atmospheric depth
342
+ 8. The sub-8px spacing scale (1.5, 2, 2.5, 3, 4, 5, 6px) is critical for icon/text micro-alignment
343
+
344
+ ## 10. Voice & Tone
345
+
346
+ Cursor's voice is **engineer-poetic** — straightforward technical claims dressed in warm typographic restraint. Marketing copy emphasizes the developer experience over capability lists: "the best way to code with AI" (homepage 2026-05) is short, confident, present-tense. Surfaces use ivory-warm palette + crimson hover (`#cf2d56`) — the warmth signals "this is a tool you live in for 8 hours/day, not a flashy consumer demo."
347
+
348
+ | Context | Tone |
349
+ |---|---|
350
+ | CTA | Plain. "Download for macOS", "Get started", "Request a demo" |
351
+ | Marketing | Single-claim hero, screenshots dominate |
352
+ | Documentation | Concise; assumes IDE / engineering context |
353
+ | Error (model) | Specific. "Claude rate limit reached. Switch model or wait." |
354
+
355
+ **Voice samples**
356
+ - Marketing CTA (KR): *"macOS용 다운로드"* <!-- verified: cursor.com/ko homepage 2026-05 -->
357
+
358
+ **Forbidden phrases.** "10× developer", "AI-powered" without specificity. Aggressive comparison-mode marketing.
359
+
360
+ ## 11. Brand Narrative
361
+
362
+ Cursor (corporate name **Anysphere, Inc.**) was incorporated **2022** by four MIT students — **Michael Truell (CEO)**, **Sualeh Asif (CPO)**, **Aman Sanger (COO)**, and **Arvid Lunnemark (former CTO)** ([Anysphere — Wikipedia](https://en.wikipedia.org/wiki/Anysphere)). The team **graduated from OpenAI's accelerator** and **launched Cursor publicly March 2023** as a fork of VS Code with first-class LLM integration. Founding observation: AI-assisted coding was being bolted onto editors as plugins, but the editor itself needed redesign for AI-native workflows. Funding trajectory has been one of the steepest in software history: **$8M seed (Oct 2023)** led by **OpenAI Startup Fund** with **Nat Friedman** + **Arash Ferdowsi** angels → **$60M Series A (Aug 2024)** → **$900M Series C (Jun 2025)** led by **Thrive Capital** at **$9.9B** → **$2.3B Series D (Nov 2025)** co-led by **Accel** + **Coatue** with **Google** + **Nvidia** strategic, valuing the company at **$29.3B** ([Inc — Cursor billionaires](https://www.inc.com/ben-sherry/this-ai-coding-startup-just-minted-4-new-billionaires/91265014), [Contrary Research — Cursor breakdown](https://research.contrary.com/company/cursor)). ARR crossed **$100M January 2025**, **$500M June 2025**, **$1B+ annualized post-Series D**. What Cursor refuses: aggressive comparison-mode marketing, "10× developer" framing, AI-magic vocabulary that obscures the actual editor mechanic.
363
+
364
+ ## 12. Principles
365
+
366
+ 1. **The editor is the brand.** *UI implication:* marketing screenshots are always the actual editor; never illustration.
367
+ 2. **Warm ivory, not cold black.** *UI implication:* default canvas warm `#f7f7f4`; dark theme uses warm grays not pure black.
368
+ 3. **Crimson hover signals interaction.** `#cf2d56` text shift on links. *UI implication:* never use crimson as default chrome color.
369
+ 4. **Shadow blur is large.** 28px / 70px blurs create atmospheric depth. *UI implication:* don't use tight shadows; the diffused atmospheric quality IS the brand.
370
+ 5. **Typography micro-alignment matters.** Sub-8px spacing scale (1.5/2/2.5/3) for icon-text alignment. *UI implication:* don't round to 4px increments; the 1.5px granularity is intentional.
371
+
372
+ ## 13. Personas
373
+
374
+ *Personas are fictional archetypes informed by Cursor user segments (full-time engineers using AI pair-programming, indie developers, ML researchers), not individual people.*
375
+
376
+ **Sarah Lin, 33, Seattle.** Senior backend engineer. Cursor as primary IDE for 6 months. Uses tab autocomplete + Cmd+K refactoring + Composer for multi-file changes.
377
+
378
+ **Henrik Sondergaard, 41, Copenhagen.** Indie developer building SaaS. Multi-file Composer is the workflow that justifies the subscription.
379
+
380
+ **Ravi Krishnan, 28, Bengaluru.** ML researcher. Uses Cursor for Python notebooks + research code. Cares about Claude/GPT model selection + cost transparency.
381
+
382
+ ## 14. States
383
+
384
+ | State | Treatment |
385
+ |---|---|
386
+ | **Empty (welcome)** | Centered "Open folder" CTA + recent projects |
387
+ | **Empty (no AI history)** | "Try Cmd+K to get started" with keyboard shortcut hint |
388
+ | **Loading (model thinking)** | Inline cursor-blink (1.5px width, crimson) where model is composing |
389
+ | **Loading (file applying changes)** | Diff view with applying state, accept/reject buttons |
390
+ | **Error (model)** | Inline below input. "Claude rate limit reached. Switch model or wait." |
391
+ | **Error (apply failed)** | Diff stays visible, error tooltip with specific reason |
392
+ | **Success (changes applied)** | Soft cream pulse on file tabs, no toast |
393
+ | **Success (Composer commit)** | Multi-file diff folds into success summary |
394
+ | **Skeleton (welcome cards)** | Warm-cream rectangles, no shimmer |
395
+ | **Disabled (no model selected)** | 0.5 opacity + crimson "Select a model" link |
396
+ | **Loading (long agent run)** | Persistent progress with step trace, cancellable |
397
+
398
+ ## 15. Motion & Easing
399
+
400
+ | Token | Value | Use |
401
+ |---|---|---|
402
+ | `motion-instant` | 0ms | Cursor commit |
403
+ | `motion-fast` | 150ms | Hover crimson shift |
404
+ | `motion-blink` | 530ms | Cursor blink (model composing) |
405
+ | `motion-standard` | 250ms | Modal, panel |
406
+
407
+ Easings: standard cubic-bezier. **Crimson hover** is the only color animation. `prefers-reduced-motion: reduce` disables blink (steady cursor).
408
+
409
+ ---
410
+
411
+ **Verified:** 2026-05-08 (B2 loop)
412
+ **Tier 1 sources:** cursor.com (live DOM via playwright — Warm `#26251e` Primary 9999px / 12.48×21.6 / 43px / 16px·400; cream `#e6e5e0` Secondary same geometry)
413
+ **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
414
+ **Tier 1 (Philosophy):** cursor.com homepage; cursor.com/pricing.
415
+ **Tier 2 (Founders/Funding):** Wikipedia (Anysphere), Inc, Contrary Research, BusinessDay NG.
416
+ **Style ref:** `claude` (engineer-poetic register). **Conflicts unresolved:** none.