oh-my-design-cli 1.0.2 → 1.2.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.
- package/README.ja.md +7 -7
- package/README.ko.md +7 -7
- package/README.md +15 -18
- package/README.zh-TW.md +7 -7
- package/agents/omd-ux-writer.md +1 -1
- package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +189 -0
- package/data/reference-audits/2026-05-13-kr10.md +132 -0
- package/data/reference-fingerprints.json +626 -3
- package/data/reference-tags.md +15 -1
- package/package.json +2 -2
- package/skills/omd-apply/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +3 -3
- package/skills/omd-init/SKILL.md +2 -2
- package/web/AGENTS.md +5 -0
- package/web/references/29cm/DESIGN.md +445 -0
- package/web/references/ably/DESIGN.md +582 -0
- package/{references → web/references}/airbnb/DESIGN.md +158 -19
- package/web/references/airtable/DESIGN.md +241 -0
- package/{references → web/references}/apple/DESIGN.md +131 -76
- package/web/references/baemin/DESIGN.md +470 -0
- package/web/references/banksalad/DESIGN.md +606 -0
- package/{references → web/references}/bmw/DESIGN.md +138 -9
- package/{references → web/references}/cal/DESIGN.md +173 -17
- package/{references → web/references}/claude/DESIGN.md +11 -1
- package/{references → web/references}/clay/DESIGN.md +75 -0
- package/{references → web/references}/clickhouse/DESIGN.md +74 -0
- package/{references → web/references}/cohere/DESIGN.md +75 -0
- package/web/references/coinbase/DESIGN.md +205 -0
- package/{references → web/references}/composio/DESIGN.md +74 -0
- package/web/references/coupang/DESIGN.md +487 -0
- package/{references → web/references}/cursor/DESIGN.md +74 -0
- package/web/references/dcard/DESIGN.md +567 -0
- package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
- package/{references → web/references}/expo/DESIGN.md +72 -0
- package/{references → web/references}/ferrari/DESIGN.md +72 -0
- package/{references → web/references}/figma/DESIGN.md +124 -48
- package/{references → web/references}/framer/DESIGN.md +143 -16
- package/web/references/freee/DESIGN.md +558 -0
- package/web/references/gangnamunni/DESIGN.md +605 -0
- package/{references → web/references}/hashicorp/DESIGN.md +72 -0
- package/{references → web/references}/ibm/DESIGN.md +68 -0
- package/{references → web/references}/intercom/DESIGN.md +73 -0
- package/web/references/kakao/DESIGN.md +490 -0
- package/web/references/kakaobank/DESIGN.md +533 -0
- package/web/references/kakaopay/DESIGN.md +529 -0
- package/web/references/karrot/DESIGN.md +431 -0
- package/web/references/kraken/DESIGN.md +219 -0
- package/web/references/krds/DESIGN.md +982 -0
- package/web/references/kurly/DESIGN.md +574 -0
- package/{references → web/references}/lamborghini/DESIGN.md +74 -0
- package/{references → web/references}/line/DESIGN.md +84 -43
- package/{references → web/references}/linear.app/DESIGN.md +8 -1
- package/{references → web/references}/lovable/DESIGN.md +73 -0
- package/web/references/mercari/DESIGN.md +464 -0
- package/{references → web/references}/minimax/DESIGN.md +72 -0
- package/{references → web/references}/mintlify/DESIGN.md +72 -0
- package/web/references/miro/DESIGN.md +252 -0
- package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
- package/{references → web/references}/mongodb/DESIGN.md +72 -0
- package/web/references/musinsa/DESIGN.md +536 -0
- package/web/references/naver/DESIGN.md +518 -0
- package/{references → web/references}/notion/DESIGN.md +9 -1
- package/web/references/nvidia/DESIGN.md +491 -0
- package/web/references/ohouse/DESIGN.md +570 -0
- package/{references → web/references}/ollama/DESIGN.md +72 -0
- package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
- package/web/references/pinkoi/DESIGN.md +575 -0
- package/{references → web/references}/pinterest/DESIGN.md +73 -0
- package/{references → web/references}/posthog/DESIGN.md +172 -18
- package/web/references/qanda/DESIGN.md +459 -0
- package/{references → web/references}/raycast/DESIGN.md +169 -34
- package/web/references/remember/DESIGN.md +445 -0
- package/{references → web/references}/renault/DESIGN.md +72 -0
- package/{references → web/references}/replicate/DESIGN.md +73 -0
- package/{references → web/references}/resend/DESIGN.md +73 -0
- package/{references → web/references}/revolut/DESIGN.md +74 -0
- package/web/references/ridi/DESIGN.md +517 -0
- package/{references → web/references}/runwayml/DESIGN.md +152 -24
- package/{references → web/references}/sanity/DESIGN.md +72 -0
- package/{references → web/references}/sentry/DESIGN.md +73 -0
- package/web/references/socar/DESIGN.md +370 -0
- package/web/references/spacex/DESIGN.md +379 -0
- package/web/references/spotify/DESIGN.md +426 -0
- package/{references → web/references}/stripe/DESIGN.md +44 -1
- package/{references → web/references}/supabase/DESIGN.md +73 -0
- package/{references → web/references}/superhuman/DESIGN.md +159 -17
- package/{references → web/references}/tesla/DESIGN.md +170 -0
- package/{references → web/references}/together.ai/DESIGN.md +73 -0
- package/{references → web/references}/toss/DESIGN.md +304 -50
- package/{references → web/references}/uber/DESIGN.md +73 -0
- package/{references → web/references}/vercel/DESIGN.md +9 -1
- package/{references → web/references}/voltagent/DESIGN.md +73 -0
- package/web/references/wanted/DESIGN.md +515 -0
- package/{references → web/references}/warp/DESIGN.md +142 -15
- package/web/references/webflow/DESIGN.md +253 -0
- package/{references → web/references}/wise/DESIGN.md +84 -0
- package/{references → web/references}/x.ai/DESIGN.md +85 -0
- package/web/references/yanolja/DESIGN.md +448 -0
- package/web/references/yeogiotte/DESIGN.md +424 -0
- package/{references → web/references}/zapier/DESIGN.md +85 -0
- package/web/references/zigbang/DESIGN.md +457 -0
- package/web/references/zigzag/DESIGN.md +618 -0
- package/references/airtable/DESIGN.md +0 -107
- package/references/baemin/DESIGN.md +0 -260
- package/references/coinbase/DESIGN.md +0 -129
- package/references/dcard/DESIGN.md +0 -302
- package/references/freee/DESIGN.md +0 -308
- package/references/kakao/DESIGN.md +0 -261
- package/references/karrot/DESIGN.md +0 -252
- package/references/kraken/DESIGN.md +0 -146
- package/references/mercari/DESIGN.md +0 -294
- package/references/miro/DESIGN.md +0 -108
- package/references/nvidia/DESIGN.md +0 -308
- package/references/pinkoi/DESIGN.md +0 -309
- package/references/spacex/DESIGN.md +0 -205
- package/references/spotify/DESIGN.md +0 -246
- package/references/webflow/DESIGN.md +0 -109
|
@@ -77,32 +77,73 @@ What makes Runway distinctive is its complete commitment to visual content as de
|
|
|
77
77
|
## 4. Component Stylings
|
|
78
78
|
|
|
79
79
|
### Buttons
|
|
80
|
-
- Text: weight 600 at 14px abcNormal
|
|
81
|
-
- Background: likely transparent or dark, with minimal border
|
|
82
|
-
- Radius: small (4px) for button-like links
|
|
83
|
-
- The button design is extremely restrained — no heavy fills or borders detected
|
|
84
|
-
- Interactive elements blend into the editorial flow
|
|
85
|
-
|
|
86
|
-
### Cards & Containers
|
|
87
|
-
- Background: transparent or Dark Surface (`#1a1a1a`)
|
|
88
|
-
- Border: `1px solid #27272a` (dark mode) — barely visible containment
|
|
89
|
-
- Radius: small (4–8px) for functional elements; 16px for alert-style containers
|
|
90
|
-
- Shadow: zero — no shadows on any element
|
|
91
|
-
- Cards are primarily photographic — the image IS the card
|
|
92
80
|
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
81
|
+
**Default**
|
|
82
|
+
- Background: transparent
|
|
83
|
+
- Text: `#ffffff` (or `#000000` on light surfaces)
|
|
84
|
+
- Border: minimal / none
|
|
85
|
+
- Radius: 4px
|
|
86
|
+
- Padding: 8px 12px
|
|
87
|
+
- Font: 14px / 600 / abcNormal
|
|
97
88
|
- Hover: text shifts to white or higher opacity
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
89
|
+
- Use: Restrained button — interactive elements blend into editorial flow, no heavy fills
|
|
90
|
+
|
|
91
|
+
**Text Link**
|
|
92
|
+
- Background: transparent
|
|
93
|
+
- Text: `#ffffff`
|
|
94
|
+
- Radius: 4px
|
|
95
|
+
- Padding: 4px 8px
|
|
96
|
+
- Font: 14px / 600 / abcNormal
|
|
97
|
+
- Use: Inline link-style button
|
|
98
|
+
|
|
99
|
+
### Inputs
|
|
100
|
+
|
|
101
|
+
**Default**
|
|
102
|
+
- Background: `#1a1a1a`
|
|
103
|
+
- Text: `#ffffff`
|
|
104
|
+
- Border: 1px solid `#27272a`
|
|
105
|
+
- Radius: 4px
|
|
106
|
+
- Padding: 8px 12px
|
|
107
|
+
- Font: 14px / 400 / abcNormal
|
|
108
|
+
- Use: Inferred from §1-§2 baseline (no explicit DS variant in source) — minimal dark input.
|
|
109
|
+
|
|
110
|
+
### Cards
|
|
111
|
+
|
|
112
|
+
**Photographic Card**
|
|
113
|
+
- Background: transparent (image fills frame)
|
|
114
|
+
- Radius: 8px
|
|
115
|
+
- Padding: 0px (the image IS the card)
|
|
116
|
+
- Border: none
|
|
117
|
+
- Shadow: none
|
|
118
|
+
- Use: Mixed-size image grid card — Research Article Cards / Trust Bar
|
|
119
|
+
|
|
120
|
+
**Dark Surface Card**
|
|
121
|
+
- Background: `#1a1a1a`
|
|
122
|
+
- Text: `#ffffff`
|
|
123
|
+
- Border: 1px solid `#27272a` (barely visible)
|
|
124
|
+
- Radius: 8px
|
|
125
|
+
- Padding: 16px
|
|
126
|
+
- Shadow: none
|
|
127
|
+
- Use: Functional dark card
|
|
128
|
+
|
|
129
|
+
**Alert / Containment**
|
|
130
|
+
- Background: `#1a1a1a`
|
|
131
|
+
- Border: 1px solid `#27272a`
|
|
132
|
+
- Radius: 16px
|
|
133
|
+
- Padding: 24px
|
|
134
|
+
- Shadow: none
|
|
135
|
+
- Use: Alert-style containers (larger radius)
|
|
136
|
+
|
|
137
|
+
### Badges
|
|
138
|
+
|
|
139
|
+
**Default**
|
|
140
|
+
- Background: transparent
|
|
141
|
+
- Text: `#ffffff`
|
|
142
|
+
- Border: 1px solid `#27272a`
|
|
143
|
+
- Radius: 4px
|
|
144
|
+
- Padding: 2px 8px
|
|
145
|
+
- Font: 11px / 600 / abcNormal
|
|
146
|
+
- Use: Inferred from §1-§2 baseline (no explicit DS variant in source) — uppercase label-style.
|
|
106
147
|
|
|
107
148
|
### Distinctive Components
|
|
108
149
|
|
|
@@ -126,6 +167,20 @@ What makes Runway distinctive is its complete commitment to visual content as de
|
|
|
126
167
|
- On a dark background with white text
|
|
127
168
|
- The emotional close — artistic and philosophical
|
|
128
169
|
|
|
170
|
+
### Navigation
|
|
171
|
+
- Minimal horizontal nav — transparent over hero content
|
|
172
|
+
- Logo: Runway wordmark in white/black
|
|
173
|
+
- Links: abcNormal at 16px, weight 400-600
|
|
174
|
+
- Hover: text shifts to white or higher opacity
|
|
175
|
+
- Extremely subtle — designed to not compete with visual content
|
|
176
|
+
|
|
177
|
+
### Image Treatment
|
|
178
|
+
- Full-bleed cinematic photography and video dominate
|
|
179
|
+
- AI-generated content shown at large scale as primary visual elements
|
|
180
|
+
- Mixed-size image grids creating editorial magazine layouts
|
|
181
|
+
- Dark overlays on hero images for text readability
|
|
182
|
+
- Product screenshots with subtle rounded corners (8px)
|
|
183
|
+
|
|
129
184
|
## 5. Layout Principles
|
|
130
185
|
|
|
131
186
|
### Spacing System
|
|
@@ -242,3 +297,76 @@ What makes Runway distinctive is its complete commitment to visual content as de
|
|
|
242
297
|
4. Use the cool slate grays (#767d88, #7d848e) for secondary text — not warm grays
|
|
243
298
|
5. Uppercase labels need letter-spacing (0.35px) — never tight uppercase
|
|
244
299
|
6. Dark sections should be truly dark (#000000 or #1a1a1a) — no medium grays as surfaces
|
|
300
|
+
|
|
301
|
+
## 10. Voice & Tone
|
|
302
|
+
|
|
303
|
+
Runway's voice is **filmmaker-grade and AI-research-confident.** "Building AI to Simulate the World" — ambitious mission framing. Marketing copy positions Runway as the AI-native creative tool for video professionals + filmmakers, distinct from indie consumer tools.
|
|
304
|
+
|
|
305
|
+
| Context | Tone |
|
|
306
|
+
|---|---|
|
|
307
|
+
| CTA | Verb. "Get Started", "Try Runway", "Enterprise Sales" |
|
|
308
|
+
| Marketing | Cinematic. Generated video samples dominate |
|
|
309
|
+
| Documentation | Visual-first, frame-by-frame |
|
|
310
|
+
| Error | Specific. "Generation failed: insufficient credits. Top up." |
|
|
311
|
+
|
|
312
|
+
**Voice samples**
|
|
313
|
+
- Tagline: *"Building AI to Simulate the World"* <!-- verified: runwayml.com homepage 2026-05 -->
|
|
314
|
+
|
|
315
|
+
**Forbidden phrases.** "Revolutionary AI video". Generic Sora-comparison framing.
|
|
316
|
+
|
|
317
|
+
## 11. Brand Narrative
|
|
318
|
+
|
|
319
|
+
Runway was founded **2018** by **Cristóbal Valenzuela (CEO, Chilean)**, **Alejandro Matamala (Chilean)**, and **Anastasis Germanidis (Greek)** — the three met at **NYU Tisch School of the Arts ITP** ([Runway — Wikipedia](https://en.wikipedia.org/wiki/Runway_(company)), [Acquired Podcast — Cristobal Valenzuela complete history](https://www.acquired.fm/episodes/generative-ai-in-video-and-the-future-of-storytelling-with-runway-ceo-cristobal-valenzuela)). Initially a research tool for ML-creative experimentation → grew into AI video generation platform (**Gen-1, Gen-2, Gen-3, Gen-4**). Co-developed **Stable Diffusion** with the original research team. **Real production credits**: tools used in **Everything Everywhere All at Once** (Best Picture Oscar 2023) + **The Late Show with Stephen Colbert**. **June 2023**: $141M Series C extension at **$1.5B valuation** with **Google, NVIDIA, Salesforce**. **Current**: **~$860M total raised** with **General Atlantic, Amplify Partners, Google** — **valuation ~$5.3B** ([Sacra — Runway revenue/funding](https://sacra.com/c/runway/), [Contrary Research — Runway](https://research.contrary.com/company/runway)). Strong adoption in filmmaking + advertising. The brand voice — uppercase tracking, dark cinematic surfaces — reflects the filmmaker positioning.
|
|
320
|
+
|
|
321
|
+
## 12. Principles
|
|
322
|
+
|
|
323
|
+
1. **Filmmaker-grade, not consumer toy.** *UI implication:* tone is professional video production.
|
|
324
|
+
2. **Truly dark surfaces.** `#000` or `#1a1a1a`, never medium gray. *UI implication:* preserve cinematic depth.
|
|
325
|
+
3. **Uppercase with letter-spacing 0.35px.** *UI implication:* never tight uppercase.
|
|
326
|
+
4. **Generated video samples lead.** *UI implication:* hero modules autoplay generated video, not static.
|
|
327
|
+
5. **6px standard radius.** *UI implication:* keep consistent across CTAs and cards.
|
|
328
|
+
|
|
329
|
+
## 13. Personas
|
|
330
|
+
|
|
331
|
+
*Personas are fictional archetypes informed by Runway user segments (filmmakers, advertising creatives, content studios), not individual people.*
|
|
332
|
+
|
|
333
|
+
**Sofia Russo, 35, Milan.** Indie filmmaker. Runway Gen-4 for previs + b-roll generation.
|
|
334
|
+
|
|
335
|
+
**Marcus Chen, 42, San Francisco.** Creative director at advertising agency. Runway for client pitches + concept exploration.
|
|
336
|
+
|
|
337
|
+
**Yuki Tanaka, 31, Tokyo.** Music video director. Runway for stylistic transfer experiments.
|
|
338
|
+
|
|
339
|
+
## 14. States
|
|
340
|
+
|
|
341
|
+
| State | Treatment |
|
|
342
|
+
|---|---|
|
|
343
|
+
| **Empty (no projects)** | "Start a new project" CTA + template gallery |
|
|
344
|
+
| **Empty (no generations)** | "Try a generation" with prompt examples |
|
|
345
|
+
| **Loading (generation)** | Real-time progress with frame previews |
|
|
346
|
+
| **Loading (model)** | Initialization status |
|
|
347
|
+
| **Error (generation)** | Specific. "Failed at frame 23. Retry from this point?" |
|
|
348
|
+
| **Error (insufficient credits)** | Top up link + plan comparison |
|
|
349
|
+
| **Success (generated)** | Inline player + download/share/timeline |
|
|
350
|
+
| **Success (exported)** | Download triggered + shareable link |
|
|
351
|
+
| **Skeleton (projects)** | Dark cinematic placeholders |
|
|
352
|
+
| **Disabled (no plan)** | Upgrade link |
|
|
353
|
+
| **Loading (long generation)** | Persistent progress with cancel option |
|
|
354
|
+
|
|
355
|
+
## 15. Motion & Easing
|
|
356
|
+
|
|
357
|
+
| Token | Value | Use |
|
|
358
|
+
|---|---|---|
|
|
359
|
+
| `motion-instant` | 0ms | Selection |
|
|
360
|
+
| `motion-fast` | 150ms | Hover |
|
|
361
|
+
| `motion-standard` | 300ms | Modal, panel |
|
|
362
|
+
| `motion-cinematic` | 600ms | Hero video reveals |
|
|
363
|
+
|
|
364
|
+
Cinematic easing for hero reveals, standard for chrome. `prefers-reduced-motion: reduce` disables hero auto-play.
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
**Verified:** 2026-05-08 (omd:migrate run 52 — Apple-tier)
|
|
369
|
+
**Tier 1 sources:** runwayml.com home + /research (live DOM via playwright — Primary `#262626` Charcoal 6px / 32px / 6×10 / 14px·**600**; Outline `#eef1f5` Cool Cream + `#1a1a1a` Near-Black text 6px; compact 4px / 28px sub-tier; **top nav 11px·450 ALL CAPS** with `#0c0c0c` Deep Black; **three-shade near-black palette** `#0c0c0c` / `#1a1a1a` / `#262626`).
|
|
370
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
371
|
+
**Tier 2 (Philosophy/founders/funding):** Wikipedia (Runway), Acquired Podcast (Valenzuela complete history), LinkedIn (Cristóbal Valenzuela), Sacra ($5.3B valuation), Contrary Research, Tracxn, Skim AI, Upstarts Media.
|
|
372
|
+
**Style ref:** `claude`. **Conflicts unresolved:** none. **Earlier addition:** ALL CAPS 11px·**450** nav signature + 3-shade near-black palette + 4px compact sub-tier missed; Outline cream is `#eef1f5` (Cool Cream w/ blue cast) not `#f7f7f7`.
|
|
@@ -355,3 +355,75 @@ Light Surface: #ededed / #ffffff (inverted sections)
|
|
|
355
355
|
5. **Refine spacing**: 8px base unit, 24-32px within sections, 64-120px between sections
|
|
356
356
|
6. **Technical details**: Add IBM Plex Mono uppercase labels for tags and metadata
|
|
357
357
|
7. **Polish**: Ensure all interactive elements hover to `#0052ef`, all buttons are pills or subtle 5px radius, borders are hairline (1px)
|
|
358
|
+
|
|
359
|
+
## 10. Voice & Tone
|
|
360
|
+
|
|
361
|
+
Sanity's voice is **content-platform-confident and developer-warm.** "The Content Operating System for the AI era" — confident enterprise positioning with developer-friendly chrome. Mixed type system + flat-no-shadow signals "premium content tooling."
|
|
362
|
+
|
|
363
|
+
| Context | Tone |
|
|
364
|
+
|---|---|
|
|
365
|
+
| CTA | Verb. "Get started", "Talk to sales", "Start free" |
|
|
366
|
+
| Marketing | Capability-list. Studio + Dataset + Content Lake naming |
|
|
367
|
+
| Documentation | Deep, code-block-heavy, GROQ-aware |
|
|
368
|
+
| Error | Specific. "Schema validation failed at field X." |
|
|
369
|
+
|
|
370
|
+
**Voice samples**
|
|
371
|
+
- Tagline: *"The Content Operating System for the AI era"* <!-- verified: sanity.io homepage 2026-05 -->
|
|
372
|
+
|
|
373
|
+
**Forbidden phrases.** "Revolutionary CMS". Aggressive WordPress-comparison framing.
|
|
374
|
+
|
|
375
|
+
## 11. Brand Narrative
|
|
376
|
+
|
|
377
|
+
Sanity was **founded 2016 in Norway** with the **public launch November 2017** by four co-founders: **Magnus Kongsli Hillestad**, **Even Westvang**, **Øyvind Rostad**, and **Simen Svale Skogsrud** ([Threshold Ventures — Magnus Hillestad founder Q&A](https://medium.com/threshold-ventures/magnus-hillestad-sanity-founder-story-80b7e97952d), [Sanity — Magnus profile](https://www.sanity.io/exchange/community/magnus)). **Dual-headquartered in Oslo and San Francisco** with remote team across four continents. Headless CMS positioned as content infrastructure — **Studio** (editor) + **Dataset** (storage) + **Content Lake** (queryable). Founding insight: content must be **structured data**, easily queried + distributed across APIs (vs traditional page-bound CMS). **Series B $39M (2021)** led by **ICONIQ Growth** with **Lead Edge Capital** + existing investors — ICONIQ's portfolio includes **Datadog, Snowflake, Notion, Airtable, Zoom** ([Sanity blog — It takes a village (Series B)](https://www.sanity.io/blog/it-takes-a-village), [TechStartups — Sanity $39M Series B](https://techstartups.com/2021/06/24/norwegian-tech-startup-sanity-raises-39-million-grow-unified-content-platform-building-data-driven-content-solutions/)). Strong adoption among design-first SaaS + e-commerce. The **2024-2025 evolution to "Content Operating System for AI era"** positions Sanity as the structured-content layer for AI applications — confirmed via live `<title>` "The Content Operating System for the AI era | Sanity" 2026-05.
|
|
378
|
+
|
|
379
|
+
## 12. Principles
|
|
380
|
+
|
|
381
|
+
1. **Content as code.** Schemas, GROQ queries, deploys as code. *UI implication:* schema-first approach surfaces.
|
|
382
|
+
2. **Studio is the canvas.** Customizable React-based editor. *UI implication:* showcase Studio screenshots as primary marketing asset.
|
|
383
|
+
3. **Hairline borders, no shadow.** *UI implication:* depth via 1px borders + color contrast.
|
|
384
|
+
4. **Pills + 5px subtle.** *UI implication:* primary CTAs pill; secondary 5px radius.
|
|
385
|
+
5. **Hover to `#0052ef` blue.** *UI implication:* preserve hover blue across all interactive elements.
|
|
386
|
+
|
|
387
|
+
## 13. Personas
|
|
388
|
+
|
|
389
|
+
*Personas are fictional archetypes informed by Sanity user segments (developers, content teams, e-commerce marketers), not individual people.*
|
|
390
|
+
|
|
391
|
+
**Henrik Sondergaard, 35, Copenhagen.** Senior engineer at e-commerce SaaS. Sanity Studio for product content management.
|
|
392
|
+
|
|
393
|
+
**Sofia Russo, 30, Milan.** Indie SaaS shipping editorial sites. Sanity for headless CMS + Next.js integration.
|
|
394
|
+
|
|
395
|
+
**Marcus Chen, 38, San Francisco.** Content lead at growth-stage SaaS. Owns the marketing site CMS.
|
|
396
|
+
|
|
397
|
+
## 14. States
|
|
398
|
+
|
|
399
|
+
| State | Treatment |
|
|
400
|
+
|---|---|
|
|
401
|
+
| **Empty (no content)** | "Create your first document" CTA + schema picker |
|
|
402
|
+
| **Empty (no schemas)** | "Define a schema" with code example |
|
|
403
|
+
| **Loading (query)** | GROQ query result inline |
|
|
404
|
+
| **Loading (publishing)** | Per-document progress |
|
|
405
|
+
| **Error (schema)** | Specific. "Field X validation failed." |
|
|
406
|
+
| **Error (deploy)** | Token + permission diagnostic |
|
|
407
|
+
| **Success (published)** | Subtle confirmation + revision history |
|
|
408
|
+
| **Success (preview)** | Inline preview link |
|
|
409
|
+
| **Skeleton (document list)** | Hairline-border placeholders |
|
|
410
|
+
| **Disabled (no permission)** | Role tooltip |
|
|
411
|
+
| **Loading (long deploy)** | Persistent progress |
|
|
412
|
+
|
|
413
|
+
## 15. Motion & Easing
|
|
414
|
+
|
|
415
|
+
| Token | Value | Use |
|
|
416
|
+
|---|---|---|
|
|
417
|
+
| `motion-instant` | 0ms | Selection |
|
|
418
|
+
| `motion-fast` | 150ms | Hover |
|
|
419
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
420
|
+
|
|
421
|
+
Standard cubic-bezier; no bounce. `prefers-reduced-motion: reduce` removes hover transitions.
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
**Verified:** 2026-05-08 (omd:migrate run 53 — Apple-tier)
|
|
426
|
+
**Tier 1 sources:** sanity.io home + /pricing (live DOM via playwright — Primary **`color(display-p3 1 0.3333 0)`** Sanity Orange-Red (~`#ff5500` sRGB / wide-gamut P3) 99999px full-pill / 35px (page 13px·400 ALL CAPS) or 55px (hero 24px·400) / 4×12 or 8×32; Inverse `#0b0b0b` Near-Black; Light Secondary `#ededed`; A11y skip-nav `#0052ef` Sanity Blue. **`display-p3()` wide-gamut color-space — most advanced in corpus**).
|
|
427
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
428
|
+
**Tier 2 (Philosophy/founders/funding):** Threshold Ventures (Magnus Hillestad Q&A), Sanity profile pages (Magnus + Simen), Sanity blog (Series B "It takes a village"), TechStartups, Nordic 9, Crunchbase.
|
|
429
|
+
**Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier mistake reverted (significant):** prior footer claimed Primary was `#0b0b0b` 0px (announcement-banner strip) — canonical is **wide-gamut display-p3 Orange-Red 99999px full-pill**. Massive correction.
|
|
@@ -260,3 +260,76 @@ What makes Sentry distinctive is its embrace of the "dark IDE" aesthetic without
|
|
|
260
260
|
4. Lime green (#c2ef4e) is the "pop" color — use once per section maximum
|
|
261
261
|
5. Frosted glass for overlaid panels, solid purple for primary surfaces
|
|
262
262
|
6. Rubik handles 90% of typography — Dammit Sans is hero-only
|
|
263
|
+
|
|
264
|
+
## 10. Voice & Tone
|
|
265
|
+
|
|
266
|
+
Sentry's voice is **error-tracking-honest and developer-empathetic.** Sentry is famous for talking about errors in plain English — "see what's broken, fix it fast." Frosted glass overlays + purple primary signal "premium debugging tool."
|
|
267
|
+
|
|
268
|
+
| Context | Tone |
|
|
269
|
+
|---|---|
|
|
270
|
+
| CTA | Verb. "Get started", "Try Sentry", "Sign up free" |
|
|
271
|
+
| Marketing | Error-honest. Real stack traces in marketing |
|
|
272
|
+
| Documentation | Code-block-heavy, framework-specific |
|
|
273
|
+
| Error (in product) | Specific stack trace + commit context |
|
|
274
|
+
|
|
275
|
+
**Voice samples**
|
|
276
|
+
- Marketing pattern: *"See what's broken"* / *"Errors and performance"* <!-- illustrative -->
|
|
277
|
+
|
|
278
|
+
**Forbidden phrases.** "Revolutionary error monitoring". Generic "AI-powered" framing.
|
|
279
|
+
|
|
280
|
+
## 11. Brand Narrative
|
|
281
|
+
|
|
282
|
+
Sentry started as an **open-source project by David Cramer in 2008** for application error monitoring. **Cramer + Chris Jennings formally incorporated Functional Software Inc. in February 2012** ([CIO — Sentry's Cramer on bootstrapping](https://www.cio.com/article/401704/sentrys-david-cramer-on-bootstrapping-a-unicorn.html), [First Round Review — Sentry's Path to PMF](https://review.firstround.com/sentrys-path-to-product-market-fit/)). **Cramer (CTO)** + **Jennings (Chief Creative Officer)** **bootstrapped the company organically** for ~3 years before transitioning open-source to monetized product, and another stretch before taking VC. Cramer is famously a **high-school dropout** turned engineer — [First Round Review: "A High School Dropout Turned an Open-Source Project into a $3B Company"](https://review.firstround.com/sentrys-path-to-product-market-fit/). The brand voice tracks the founder positioning: errors are normal, debugging is craft, transparency is the ethos. Sentry remains heavily OSS-aware while operating a managed cloud product. **Total funding ~$217M** from **Accel, NEA, Bond Capital** at **~$3B valuation** ([Crunchbase — Sentry](https://www.crunchbase.com/organization/sentry), [Contrary Research — Sentry](https://research.contrary.com/company/sentry)). **Milin Desai is current CEO**. Purple primary is the signature accent — Tier 1 live measurement on `/pricing` shows the canonical Primary as `rgb(69, 38, 80)` = **`#452650` Sentry Deep Purple** (slightly different from prior §2 doc claim `#6c5fc7` Mid-Purple).
|
|
283
|
+
|
|
284
|
+
## 12. Principles
|
|
285
|
+
|
|
286
|
+
1. **Open-source heritage.** *UI implication:* self-hosted Sentry first-class option.
|
|
287
|
+
2. **Errors are normal.** *UI implication:* tone never shames developers; debugging is craft.
|
|
288
|
+
3. **Frosted glass for overlays.** *UI implication:* preserve translucent panel pattern.
|
|
289
|
+
4. **Purple `#6c5fc7` primary.** *UI implication:* don't introduce new accent colors.
|
|
290
|
+
5. **Rubik for 90%, Dammit Sans hero only.** *UI implication:* don't substitute Rubik.
|
|
291
|
+
|
|
292
|
+
## 13. Personas
|
|
293
|
+
|
|
294
|
+
*Personas are fictional archetypes informed by Sentry user segments (backend engineers, mobile dev teams, frontend performance leads), not individual people.*
|
|
295
|
+
|
|
296
|
+
**Sergey Volkov, 36, Berlin.** Backend engineer. Sentry as production error feed.
|
|
297
|
+
|
|
298
|
+
**Sofia Russo, 30, Milan.** Mobile dev shipping iOS app. Crash analytics + release tracking.
|
|
299
|
+
|
|
300
|
+
**Marcus Chen, 41, San Francisco.** Frontend performance lead. Web Vitals + LCP monitoring.
|
|
301
|
+
|
|
302
|
+
## 14. States
|
|
303
|
+
|
|
304
|
+
| State | Treatment |
|
|
305
|
+
|---|---|
|
|
306
|
+
| **Empty (no projects)** | "Create your first project" with SDK install |
|
|
307
|
+
| **Empty (no events)** | "Trigger first event" with code snippet |
|
|
308
|
+
| **Loading (event capturing)** | Real-time event feed |
|
|
309
|
+
| **Loading (issue grouping)** | Skeleton issue cards |
|
|
310
|
+
| **Error (SDK)** | Specific. "DSN invalid" with verify steps |
|
|
311
|
+
| **Error (rate limit)** | Tier limit + upgrade |
|
|
312
|
+
| **Success (resolved)** | Issue moves to resolved tab + version |
|
|
313
|
+
| **Success (alerted)** | Alert chip with route to alert |
|
|
314
|
+
| **Skeleton (issue list)** | Frosted-glass placeholders |
|
|
315
|
+
| **Disabled (no permission)** | Role tooltip |
|
|
316
|
+
| **Loading (long replay)** | Persistent progress |
|
|
317
|
+
|
|
318
|
+
## 15. Motion & Easing
|
|
319
|
+
|
|
320
|
+
| Token | Value | Use |
|
|
321
|
+
|---|---|---|
|
|
322
|
+
| `motion-instant` | 0ms | Selection |
|
|
323
|
+
| `motion-fast` | 150ms | Hover |
|
|
324
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
325
|
+
|
|
326
|
+
Standard cubic-bezier; no bounce. `prefers-reduced-motion: reduce` removes hover transitions.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
**Verified:** 2026-05-08 (omd:migrate run 54 — Apple-tier)
|
|
331
|
+
**Tier 1 sources:** sentry.io/welcome home + sentry.io/pricing (live DOM via playwright — Primary **`#452650` Sentry Deep Purple** 8px / 40px / 12×16 / **14px·700 ALL CAPS**; Outline Eggplant `#1f1633` text; Cookie Mid-Purple `#362d59`; Lavender Mist `#f5f3fa` 0px tab; nav 14px·500 ALL CAPS).
|
|
332
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
333
|
+
**Tier 2 (Philosophy/founders/funding):** First Round Review (Sentry PMF case study + Cramer podcast), CIO (Cramer bootstrapping), Crunchbase, Contrary Research, Tracxn, ShiftMag (Milin Desai CEO).
|
|
334
|
+
**Style ref:** `stripe`.
|
|
335
|
+
**Conflicts unresolved:** Brand Purple HEX — §2 doc cited `#6c5fc7` Mid-Purple; live DOM shows `#452650` Deep Purple as canonical Primary. **Resolution: 3-shade palette `#452650`/`#362d59`/`#1f1633`**, live `#452650` wins for Primary; both retained. **Earlier mistake reverted (significant):** prior footer captured nav 14px·500 ghost only — Primary is **14px·700 ALL CAPS Deep Purple**.
|