oh-my-design-cli 1.0.1 → 1.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.
- package/README.md +15 -18
- package/data/reference-fingerprints.json +337 -3
- package/data/reference-tags.md +15 -1
- package/dist/bin/oh-my-design.js +1 -1
- package/dist/{install-skills-GQPTQF5S.js → install-skills-MVXVXYAY.js} +4 -4
- package/dist/{install-skills-GQPTQF5S.js.map → install-skills-MVXVXYAY.js.map} +1 -1
- package/package.json +2 -2
- package/skills/omd-init/SKILL.md +1 -1
- package/web/AGENTS.md +5 -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/{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/{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/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/{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/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/{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/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
|
@@ -97,44 +97,107 @@ Inter is used everywhere — headings, body, buttons, captions — with extensiv
|
|
|
97
97
|
## 4. Component Stylings
|
|
98
98
|
|
|
99
99
|
### Buttons
|
|
100
|
-
- **Primary Pill**: Transparent background, white text, pill shape (86px radius), multi-layer inset shadow (`rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset`). Hover: opacity 0.6
|
|
101
|
-
- **Secondary Button**: Transparent background, white text, 6px radius, `1px solid rgba(255, 255, 255, 0.1)` border, subtle drop shadow (`rgba(0, 0, 0, 0.03) 0px 7px 3px`). Hover: opacity 0.6
|
|
102
|
-
- **Ghost Button**: No background or border, gray text (`#6a6b6c`), 86px radius, same inset shadow. Hover: opacity 0.6, text brightens to white
|
|
103
|
-
- **CTA (Download)**: Semi-transparent white background (`hsla(0, 0%, 100%, 0.815)`), dark text (`#18191a`), pill shape. Hover: full white background (`hsl(0, 0%, 100%)`)
|
|
104
|
-
- **Transition**: All buttons use opacity transition for hover rather than background-color change — a signature Raycast interaction pattern
|
|
105
|
-
|
|
106
|
-
### Cards & Containers
|
|
107
|
-
- **Standard Card**: `#101111` surface, `1px solid rgba(255, 255, 255, 0.06)` border, 12px–16px border-radius
|
|
108
|
-
- **Elevated Card**: Ring shadow `rgb(27, 28, 30) 0px 0px 0px 1px` outer + `rgb(7, 8, 10) 0px 0px 0px 1px inset` inner — creates a double-ring containment
|
|
109
|
-
- **Feature Card**: 16px–20px border-radius, subtle warm glow (`rgba(215, 201, 175, 0.05) 0px 0px 20px 5px`) behind hero elements
|
|
110
|
-
- **Hover**: Cards brighten slightly via border opacity increase or subtle shadow enhancement
|
|
111
|
-
|
|
112
|
-
### Inputs & Forms
|
|
113
|
-
- Dark input fields with `#07080a` background, `1px solid rgba(255, 255, 255, 0.08)` border, 8px border-radius
|
|
114
|
-
- Focus state: Border brightens, blue glow (`hsla(202, 100%, 67%, 0.15)`) ring appears
|
|
115
|
-
- Text: `#f9f9f9` input color, `#6a6b6c` placeholder
|
|
116
|
-
- Labels: `#9c9c9d` at 14px weight 500
|
|
117
100
|
|
|
118
|
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
101
|
+
**Primary Pill**
|
|
102
|
+
- Background: transparent
|
|
103
|
+
- Text: `#ffffff`
|
|
104
|
+
- Radius: 86px (pill)
|
|
105
|
+
- Padding: 10px 16px
|
|
106
|
+
- Shadow: `rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset`
|
|
107
|
+
- Hover: opacity 0.6
|
|
108
|
+
- Use: Primary pill button on dark surfaces
|
|
109
|
+
|
|
110
|
+
**Secondary**
|
|
111
|
+
- Background: transparent
|
|
112
|
+
- Text: `#ffffff`
|
|
113
|
+
- Border: 1px solid `rgba(255, 255, 255, 0.1)`
|
|
114
|
+
- Radius: 6px
|
|
115
|
+
- Padding: 8px 14px
|
|
116
|
+
- Shadow: `rgba(0, 0, 0, 0.03) 0px 7px 3px`
|
|
117
|
+
- Hover: opacity 0.6
|
|
118
|
+
- Use: Secondary action
|
|
119
|
+
|
|
120
|
+
**Ghost**
|
|
121
|
+
- Background: transparent
|
|
122
|
+
- Text: `#6a6b6c`
|
|
123
|
+
- Radius: 86px
|
|
124
|
+
- Padding: 10px 16px
|
|
125
|
+
- Shadow: `rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset`
|
|
126
|
+
- Hover: opacity 0.6, text brightens to `#ffffff`
|
|
127
|
+
- Use: Tertiary action — gray text
|
|
128
|
+
|
|
129
|
+
**CTA Download**
|
|
130
|
+
- Background: `hsla(0, 0%, 100%, 0.815)`
|
|
131
|
+
- Text: `#18191a`
|
|
132
|
+
- Radius: 86px (pill)
|
|
133
|
+
- Padding: 10px 16px
|
|
134
|
+
- Hover: `hsl(0, 0%, 100%)` (full white)
|
|
135
|
+
- Use: Hero "Download" CTA on dark surfaces
|
|
136
|
+
|
|
137
|
+
### Inputs
|
|
138
|
+
|
|
139
|
+
**Default**
|
|
140
|
+
- Background: `#07080a`
|
|
141
|
+
- Text: `#f9f9f9`
|
|
142
|
+
- Border: 1px solid `rgba(255, 255, 255, 0.08)`
|
|
143
|
+
- Radius: 8px
|
|
144
|
+
- Padding: 10px 12px
|
|
145
|
+
- Placeholder: `#6a6b6c`
|
|
146
|
+
- Focus: border brightens, blue glow `hsla(202, 100%, 67%, 0.15)` ring
|
|
147
|
+
- Label: `#9c9c9d` 14px / 500
|
|
148
|
+
- Use: Form input on dark theme
|
|
149
|
+
|
|
150
|
+
### Cards
|
|
151
|
+
|
|
152
|
+
**Standard**
|
|
153
|
+
- Background: `#101111`
|
|
154
|
+
- Text: `#ffffff`
|
|
155
|
+
- Border: 1px solid `rgba(255, 255, 255, 0.06)`
|
|
156
|
+
- Radius: 12px
|
|
157
|
+
- Padding: 16px
|
|
158
|
+
- Use: Default dark card
|
|
159
|
+
|
|
160
|
+
**Elevated**
|
|
161
|
+
- Background: `#101111`
|
|
162
|
+
- Radius: 16px
|
|
163
|
+
- Padding: 20px
|
|
164
|
+
- Shadow: `rgb(27, 28, 30) 0px 0px 0px 1px, rgb(7, 8, 10) 0px 0px 0px 1px inset`
|
|
165
|
+
- Use: Double-ring elevated card
|
|
166
|
+
|
|
167
|
+
**Feature**
|
|
168
|
+
- Background: `#101111`
|
|
169
|
+
- Radius: 20px
|
|
170
|
+
- Padding: 24px
|
|
171
|
+
- Shadow: `rgba(215, 201, 175, 0.05) 0px 0px 20px 5px` (subtle warm glow)
|
|
172
|
+
- Use: Hero/feature card with warm glow
|
|
173
|
+
|
|
174
|
+
### Badges
|
|
175
|
+
|
|
176
|
+
**Neutral**
|
|
177
|
+
- Background: `#1b1c1e`
|
|
178
|
+
- Text: `#ffffff`
|
|
179
|
+
- Radius: 6px
|
|
180
|
+
- Padding: 0px 6px
|
|
181
|
+
- Font: 14px / 500
|
|
182
|
+
- Use: Categorization badge — compact pill-like treatment
|
|
130
183
|
|
|
131
184
|
### Keyboard Shortcut Keys
|
|
132
|
-
-
|
|
133
|
-
-
|
|
185
|
+
- Key cap: gradient `#121212` → `#0d0d0d`, multi-layer shadow `rgba(0, 0, 0, 0.4) 0px 1.5px 0.5px 2.5px` + inset shadows
|
|
186
|
+
- Radius: 4-6px
|
|
187
|
+
- Use: Realistic physical key cap rendering for Raycast shortcuts
|
|
134
188
|
|
|
135
|
-
###
|
|
136
|
-
-
|
|
137
|
-
-
|
|
189
|
+
### Image Treatment
|
|
190
|
+
- Product screenshots: macOS window chrome style — rounded corners (12px), deep shadows simulating floating windows
|
|
191
|
+
- Full-bleed sections: Dark screenshots blend seamlessly into the dark background
|
|
192
|
+
- Hero illustration: Diagonal stripe pattern in Raycast Red — abstract, geometric, brand-defining
|
|
193
|
+
- App UI embeds: actual Raycast command palette and extensions — product as content
|
|
194
|
+
|
|
195
|
+
### Navigation
|
|
196
|
+
- Top nav: Dark background blending with page, white text links at 16px weight 500
|
|
197
|
+
- Nav links: Gray text (`#9c9c9d`) → white on hover, underline on hover
|
|
198
|
+
- CTA: Semi-transparent white pill at nav end
|
|
199
|
+
- Mobile: hamburger, dark theme preserved
|
|
200
|
+
- Sticky: Fixed at top with subtle border separator
|
|
138
201
|
|
|
139
202
|
## 5. Layout Principles
|
|
140
203
|
|
|
@@ -266,3 +329,75 @@ When refining existing screens generated with this design system:
|
|
|
266
329
|
3. Ensure shadows have both outer and inset layers — single-layer shadows look flat and wrong
|
|
267
330
|
4. Confirm Inter has OpenType features `calt`, `kern`, `liga`, `ss03` enabled
|
|
268
331
|
5. Test that hover states use opacity transitions (0.6) not color swaps — this is a core interaction pattern
|
|
332
|
+
|
|
333
|
+
## 10. Voice & Tone
|
|
334
|
+
|
|
335
|
+
Raycast's voice is **prosumer-confident and keyboard-first.** "Your shortcut to everything" — concise, capability-driven, never marketing-fluff. Dark prosumer canvas + warm gradients signal "Mac native, designed for power users."
|
|
336
|
+
|
|
337
|
+
| Context | Tone |
|
|
338
|
+
|---|---|
|
|
339
|
+
| CTA | Verb. "Download", "Sign up", "Get started" |
|
|
340
|
+
| Marketing | Capability-list. "Spotlight on steroids" framing |
|
|
341
|
+
| Documentation | Keyboard-shortcut-heavy, code-block-friendly |
|
|
342
|
+
| Error | Specific. "Extension failed to load. Check console for details." |
|
|
343
|
+
|
|
344
|
+
**Voice samples**
|
|
345
|
+
- Tagline: *"Your shortcut to everything"* <!-- verified: raycast.com homepage 2026-05 -->
|
|
346
|
+
|
|
347
|
+
**Forbidden phrases.** "Revolutionary launcher". Aggressive Spotlight-comparison framing.
|
|
348
|
+
|
|
349
|
+
## 11. Brand Narrative
|
|
350
|
+
|
|
351
|
+
Raycast was founded **2020** out of **London** by ex-Facebook engineers **Thomas Paul Mann (CEO)** and **Petr Nikolaev (CTO)** — they **met working at Facebook on the same team**, sharing frustration with the clunky productivity tools they used and a desire to build a better Spotlight ([TechCrunch — Raycast $30M Series B 2024-09](https://techcrunch.com/2024/09/25/raycast-raises-30m-to-bring-its-mac-productivity-app-to-windows-and-ios/), [Ness Labs — Thomas Paul Mann interview](https://nesslabs.com/raycast-featured-tool)). Funding ladder: **first round March 18 2020** (seed) → **$15M Series A (November 2021)** led by **Accel + Coatue** ([TechCrunch — Raycast $15M 2021-11](https://techcrunch.com/2021/11/30/developer-productivity-tools-startup-raycast-raises-15m-from-accel-and-coatue/)) → **$30M / €27M Series B (Sept 25 2024)** to expand from Mac to Windows + iOS ([EU-Startups — Raycast €27M Series B 2024-09](https://www.eu-startups.com/2024/09/london-based-raycast-raises-e27-million-series-b-to-help-ios-and-windows-enhance-productivity/)) → **total $47.8M across 4 rounds from 20 investors** including **Accel, Y Combinator, Atomico** ([Tracxn — Raycast](https://tracxn.com/d/companies/raycast/__VNiI9rqA4HFcosfhPf0QoAIcecG3jJRlMCseC8jQeOw)). Mac-native productivity tool — Spotlight replacement that grew into a platform for extensions. Strong adoption among engineers, designers, and prosumers. Brand voice — keyboard-first, prosumer-aesthetic — reflects the product positioning.
|
|
352
|
+
|
|
353
|
+
## 12. Principles
|
|
354
|
+
|
|
355
|
+
1. **Keyboard is the interface.** *UI implication:* every action has a keyboard shortcut documented inline.
|
|
356
|
+
2. **Inter with OpenType features.** `calt`, `kern`, `liga`, `ss03`. *UI implication:* don't substitute system fonts.
|
|
357
|
+
3. **Hover via opacity, not color swap.** *UI implication:* preserve opacity-transition pattern.
|
|
358
|
+
4. **Dark prosumer canvas.** *UI implication:* default to dark theme; light theme as secondary.
|
|
359
|
+
5. **Extensions are first-class.** *UI implication:* Store + Extension nav has main-nav placement.
|
|
360
|
+
|
|
361
|
+
## 13. Personas
|
|
362
|
+
|
|
363
|
+
*Personas are fictional archetypes informed by Raycast user segments (Mac power users, engineers, prosumer designers), not individual people.*
|
|
364
|
+
|
|
365
|
+
**Sergey Volkov, 36, Berlin.** Senior engineer, Raycast as Spotlight replacement + AI commands.
|
|
366
|
+
|
|
367
|
+
**Sofia Park, 31, Seoul.** Product designer with 30+ extensions installed.
|
|
368
|
+
|
|
369
|
+
**Marcus Webb, 41, San Francisco.** Engineering manager. Raycast Pro subscriber for AI features.
|
|
370
|
+
|
|
371
|
+
## 14. States
|
|
372
|
+
|
|
373
|
+
| State | Treatment |
|
|
374
|
+
|---|---|
|
|
375
|
+
| **Empty (no extensions)** | "Browse the Store" CTA + featured grid |
|
|
376
|
+
| **Empty (search)** | "No commands found. Try different keywords." |
|
|
377
|
+
| **Loading (extension loading)** | Subtle skeleton with maintained dimensions |
|
|
378
|
+
| **Loading (AI command)** | Per-token streaming inline |
|
|
379
|
+
| **Error (extension)** | Specific error + reload extension button |
|
|
380
|
+
| **Error (auth)** | Specific cause + re-auth flow |
|
|
381
|
+
| **Success (executed)** | Implicit; result appears |
|
|
382
|
+
| **Success (extension installed)** | Subtle check + immediately available |
|
|
383
|
+
| **Skeleton (results)** | Dark-tone placeholders |
|
|
384
|
+
| **Disabled (no Pro)** | Upgrade link |
|
|
385
|
+
| **Loading (long task)** | Persistent progress |
|
|
386
|
+
|
|
387
|
+
## 15. Motion & Easing
|
|
388
|
+
|
|
389
|
+
| Token | Value | Use |
|
|
390
|
+
|---|---|---|
|
|
391
|
+
| `motion-instant` | 0ms | Selection |
|
|
392
|
+
| `motion-fast` | 150ms | Hover opacity |
|
|
393
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
394
|
+
|
|
395
|
+
Standard cubic-bezier; minimal bounce. **Hover via opacity 0.6** is signature. `prefers-reduced-motion: reduce` removes hover transitions.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
**Verified:** 2026-05-08 (omd:migrate run 47 — Apple-tier)
|
|
400
|
+
**Tier 1 sources:** raycast.com home + /pro (live DOM via playwright — Primary **`#e6e6e6` Light Gray** + Charcoal `#2f3031` text 8px / 36px / 14px·**500**; banner-pill `#130d0e` Deep Black 1000px / 30px (top promo); newsletter inline 4px variant; dark-canvas Outline `rgba(255,255,255,0.05)` 12px on /pro).
|
|
401
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
402
|
+
**Tier 2 (Philosophy/founders/funding):** TechCrunch (2021-11 $15M Accel+Coatue + 2024-09 $30M Series B), EU-Startups (€27M Series B), TechFundingNews, Ness Labs (Mann interview), Tracxn ($47.8M total / 20 investors).
|
|
403
|
+
**Style ref:** `claude`. **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer captured nav-link mid-gray (`#9c9c9d`) — canonical Primary is **`#e6e6e6` Light Gray** 8px (the brand-defining download CTA, missed entirely).
|
|
@@ -309,3 +309,75 @@ When refining existing screens generated with this design system:
|
|
|
309
309
|
4. Describe the desired "feel" alongside specific measurements — "assertive automotive energy" communicates the NouvelR Bold heading personality better than "font-weight: 700"
|
|
310
310
|
5. Always check whether a section should be light or dark — the chessboard alternation is a core pattern
|
|
311
311
|
6. Reserve Renault Yellow for ONE button per screen — if yellow appears in more than one CTA, the hierarchy collapses
|
|
312
|
+
|
|
313
|
+
## 10. Voice & Tone
|
|
314
|
+
|
|
315
|
+
Renault's voice is **French-popular-mobility and accessible-design.** Pivot 2021+ to "accessible mobility" + Renault Yellow signature. Marketing copy emphasizes "voitures pour tous" with French aesthetic restraint.
|
|
316
|
+
|
|
317
|
+
| Context | Tone |
|
|
318
|
+
|---|---|
|
|
319
|
+
| CTA | Verb. "Découvrir", "Configurer", "Réserver" |
|
|
320
|
+
| Marketing | Photography + concise headlines |
|
|
321
|
+
| Documentation | Specs + sustainability reporting |
|
|
322
|
+
| Error | Polite French. "Une erreur s'est produite." |
|
|
323
|
+
|
|
324
|
+
**Voice samples**
|
|
325
|
+
- Marketing CTA pattern: *"더 알아보기"* / *"Découvrir"* <!-- verified: renaultgroup.com 2026-05 -->
|
|
326
|
+
|
|
327
|
+
**Forbidden phrases.** "Revolutionary mobility". Aggressive PSA-comparison framing.
|
|
328
|
+
|
|
329
|
+
## 11. Brand Narrative
|
|
330
|
+
|
|
331
|
+
Renault was founded **1899** in **Boulogne-Billancourt, France** by three brothers — **Louis Renault**, **Marcel Renault**, and **Fernand Renault** — with the **Renault Voiturette 1CV** sold December 1898 ([Renault — Wikipedia](https://en.wikipedia.org/wiki/Renault)). Iconic French automaker. The **Renault-Nissan Alliance** was founded **1999**; **Mitsubishi joined September 2017** after Nissan acquired a controlling stake (1 year prior), forming the **Renault-Nissan-Mitsubishi Alliance** ([Renault-Nissan-Mitsubishi Alliance — Wikipedia](https://en.wikipedia.org/wiki/Renault%E2%80%93Nissan%E2%80%93Mitsubishi_Alliance)). The **2021+ "Renaulution" rebrand** under CEO **Luca de Meo** introduced **a new geometric "diamond" logo** (announced March 2021, fleet-wide rollout completed by 2024) — **the 9th iteration of the diamond shape since 1925**, designed as two intertwined black lines evoking the popular 1972 design ([Renault Group — A Renaulution for the diamond](https://www.renaultgroup.com/en/magazine/our-group-news/a-renaulution-for-the-diamond/), [Design Week — new geometric logo](https://www.designweek.co.uk/issues/15-21-march-2021/renault-new-logo/)). Renault Yellow as a signature accent + chess-board section alternation as visual rhythm.
|
|
332
|
+
|
|
333
|
+
## 12. Principles
|
|
334
|
+
|
|
335
|
+
1. **One Renault Yellow per screen.** *UI implication:* if yellow appears more than once in CTAs, hierarchy collapses.
|
|
336
|
+
2. **Chessboard alternation.** Light ↔ dark section rhythm. *UI implication:* never flat sequences.
|
|
337
|
+
3. **0px sharp radius.** *UI implication:* don't round corners — French precision.
|
|
338
|
+
4. **Photography drives.** *UI implication:* hero modules photo-first.
|
|
339
|
+
5. **Sustainability narrative.** *UI implication:* EV + recycling references in product surfaces.
|
|
340
|
+
|
|
341
|
+
## 13. Personas
|
|
342
|
+
|
|
343
|
+
*Personas are fictional archetypes informed by Renault user segments (French/EU mass-market buyers, EV early adopters, fleet managers), not individual people.*
|
|
344
|
+
|
|
345
|
+
**Sophie Martin, 38, Lyon.** Family car buyer. Mégane E-Tech EV.
|
|
346
|
+
|
|
347
|
+
**Henrik Müller, 45, Berlin.** Fleet manager evaluating EV transition.
|
|
348
|
+
|
|
349
|
+
**Sofia Russo, 32, Milan.** First-time car buyer. Clio E-Tech for city driving.
|
|
350
|
+
|
|
351
|
+
## 14. States
|
|
352
|
+
|
|
353
|
+
| State | Treatment |
|
|
354
|
+
|---|---|
|
|
355
|
+
| **Empty (configurator)** | "Configurez votre Renault" |
|
|
356
|
+
| **Empty (no saved)** | Model selector |
|
|
357
|
+
| **Loading (config)** | Real-time 3D rendering |
|
|
358
|
+
| **Loading (price)** | Per-option update |
|
|
359
|
+
| **Error (incompatible)** | Specific constraint |
|
|
360
|
+
| **Error (no inventory)** | "Délai de livraison: N mois" |
|
|
361
|
+
| **Success (saved)** | Configuration ID |
|
|
362
|
+
| **Success (booked)** | Dealer confirmation |
|
|
363
|
+
| **Skeleton (model list)** | 0px placeholders |
|
|
364
|
+
| **Disabled (option locked)** | Tooltip |
|
|
365
|
+
| **Loading (long render)** | Persistent progress |
|
|
366
|
+
|
|
367
|
+
## 15. Motion & Easing
|
|
368
|
+
|
|
369
|
+
| Token | Value | Use |
|
|
370
|
+
|---|---|---|
|
|
371
|
+
| `motion-instant` | 0ms | Selection |
|
|
372
|
+
| `motion-fast` | 150ms | Hover |
|
|
373
|
+
| `motion-standard` | 300ms | Modal, panel |
|
|
374
|
+
|
|
375
|
+
Standard cubic-bezier; no bounce. `prefers-reduced-motion: reduce` disables auto-play.
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
**Verified:** 2026-05-08 (omd:migrate run 48 — Apple-tier)
|
|
380
|
+
**Tier 1 sources:** renaultgroup.com/en home + /en/group (live DOM via playwright — Primary `#000` Black **100px full-pill** / 19×24 / **64px** / **14px·700 ALL CAPS** + Inverse `#fff` 100px (canvas-aware) + carousel 100% circular 40×40 + nav `#fff` 16px·700 ALL CAPS).
|
|
381
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
382
|
+
**Tier 2 (Philosophy/founders/Alliance/logo):** Wikipedia (Renault + RNM Alliance), Renault Group magazine (Renaulution diamond), Design Week / Autocar / It's Nice That (2021 logo rebrand).
|
|
383
|
+
**Style ref:** `apple` (luxury minimal). **Conflicts unresolved:** none. **Earlier mistake reverted (significant — every Primary geometry value was wrong):** Radius 0px→**100px**, padding 24→**19×24**, height 72→**64**, font 16px·400→**14px·700 ALL CAPS**. §4 material correction.
|
|
@@ -259,3 +259,76 @@ What makes Replicate distinctive is its community-powered energy. The model gall
|
|
|
259
259
|
3. Links use dotted underline (#bbbbbb) — never solid
|
|
260
260
|
4. The gradient hero is the visual anchor — make it bold
|
|
261
261
|
5. Use basier-square for body, rb-freigeist-neue for display, JetBrains Mono for code
|
|
262
|
+
|
|
263
|
+
## 10. Voice & Tone
|
|
264
|
+
|
|
265
|
+
Replicate's voice is **research-engineering-friendly and API-first.** "Run AI with an API" — capability-driven, model-versioned. Marketing copy emphasizes the running-models-without-infra value prop.
|
|
266
|
+
|
|
267
|
+
| Context | Tone |
|
|
268
|
+
|---|---|
|
|
269
|
+
| CTA | Verb. "Get started for free", "Try a model", "API access" |
|
|
270
|
+
| Marketing | Model-driven. "Run X model with one line of code" |
|
|
271
|
+
| Documentation | Code-first, copy-paste-ready |
|
|
272
|
+
| Error | Specific. "Model output exceeded timeout (60s). Try smaller input." |
|
|
273
|
+
|
|
274
|
+
**Voice samples**
|
|
275
|
+
- Tagline: *"Run AI with an API"* <!-- verified: replicate.com homepage 2026-05 -->
|
|
276
|
+
|
|
277
|
+
**Forbidden phrases.** "Revolutionary AI hosting". Generic platform claims.
|
|
278
|
+
|
|
279
|
+
## 11. Brand Narrative
|
|
280
|
+
|
|
281
|
+
Replicate was founded **2019** by **Ben Firshman** + **Andreas Jansson** ([Y Combinator — Replicate](https://www.ycombinator.com/companies/replicate), [Sequoia Capital — Partnering with Replicate](https://sequoiacap.com/article/partnering-with-replicate-machine-learning-simplified/)). **Firshman**: created **Docker Compose** during his time at Docker; **Jansson**: built research tools and infrastructure at **Spotify** with a **PhD in ML for music**. **Zeke Sikelianos** joined as a co-founder later. The founders' mission was to improve dissemination of scientific research with friendlier ML tools, leading to **Cog** — an open-source tool for packaging ML models into production-ready containers (Rust + Axum HTTP server). **Y Combinator Winter 2020 (W20)** batch ([MLQ — Replicate Deep Dive](https://mlq.ai/startups/replicate/)). Total funding **~$57.8M** with **post-Series B valuation $350M** (investors include **Sequoia Capital**, **Heavybit**). **Late 2025**: 50,000+ public models hosted + ~100 official curated by Replicate. **Acquired by Cloudflare** (Firshman's [LinkedIn](https://www.linkedin.com/in/bfirsh/) confirms current title **Head of AI Platform at Cloudflare**). The brand sits at the intersection of OSS researcher culture + cloud convenience — "run any model with one API call."
|
|
282
|
+
|
|
283
|
+
## 12. Principles
|
|
284
|
+
|
|
285
|
+
1. **One API, every model.** *UI implication:* uniform input/output schema across model variants.
|
|
286
|
+
2. **Open-source heritage.** Cog still public. *UI implication:* surfaces emphasize OSS roots.
|
|
287
|
+
3. **Gradient hero is the anchor.** *UI implication:* hero modules use bold gradient backgrounds.
|
|
288
|
+
4. **Mixed type system.** basier-square / rb-freigeist-neue / JetBrains Mono. *UI implication:* don't substitute.
|
|
289
|
+
5. **Model showcase first.** *UI implication:* discover/explore is the entry point, not pricing.
|
|
290
|
+
|
|
291
|
+
## 13. Personas
|
|
292
|
+
|
|
293
|
+
*Personas are fictional archetypes informed by Replicate user segments (ML researchers, indie AI builders, content creators), not individual people.*
|
|
294
|
+
|
|
295
|
+
**Yuki Tanaka, 30, Tokyo.** ML researcher experimenting with image models. Replicate for one-line API access without GPU setup.
|
|
296
|
+
|
|
297
|
+
**Sofia Russo, 28, Milan.** Indie AI app builder shipping multiple SaaS. Replicate as the inference layer.
|
|
298
|
+
|
|
299
|
+
**Marcus Chen, 41, San Francisco.** Senior engineer at content startup. Production replicate for image/video generation.
|
|
300
|
+
|
|
301
|
+
## 14. States
|
|
302
|
+
|
|
303
|
+
| State | Treatment |
|
|
304
|
+
|---|---|
|
|
305
|
+
| **Empty (no API keys)** | "Generate first API key" CTA |
|
|
306
|
+
| **Empty (no predictions)** | "Try a model" with featured grid |
|
|
307
|
+
| **Loading (prediction)** | Per-step status + ETA |
|
|
308
|
+
| **Loading (model loading)** | Cold-start indicator |
|
|
309
|
+
| **Error (model)** | Specific. "Model failed: <reason>. Retry?" |
|
|
310
|
+
| **Error (rate limit)** | Tier limit + upgrade |
|
|
311
|
+
| **Success (prediction)** | Result inline + share link |
|
|
312
|
+
| **Success (deployment)** | Endpoint + credentials |
|
|
313
|
+
| **Skeleton (model grid)** | Gradient-tinted placeholders |
|
|
314
|
+
| **Disabled (insufficient credits)** | Add credits link |
|
|
315
|
+
| **Loading (long generation)** | Persistent progress |
|
|
316
|
+
|
|
317
|
+
## 15. Motion & Easing
|
|
318
|
+
|
|
319
|
+
| Token | Value | Use |
|
|
320
|
+
|---|---|---|
|
|
321
|
+
| `motion-instant` | 0ms | Selection |
|
|
322
|
+
| `motion-fast` | 150ms | Hover |
|
|
323
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
324
|
+
| `motion-streaming` | continuous | Token streaming |
|
|
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 49 — Apple-tier)
|
|
331
|
+
**Tier 1 sources:** replicate.com home + /explore (live DOM via playwright — Primary `#000` Black 0px sharp three-tier height (hero 54 / page 42 / mini 34) / 12-16×8-16 / 14-18px·400; **Replicate Orange-Red `#dd4425`** featured-accent on **Replicate Cream `#fffcfc`** card; Mid-Gray `#646464` nav + secondary; Charcoal `#202020` active code-tab states).
|
|
332
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
333
|
+
**Tier 2 (Philosophy/founders/Cloudflare-acquisition):** Y Combinator (W20), Sequoia Capital (Partnering with Replicate), Heavybit, MLQ Deep Dive, Latent Space podcast, LinkedIn (Firshman = Cloudflare Head of AI Platform — confirms Cloudflare acquisition), Tracxn.
|
|
334
|
+
**Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier addition:** 3-height tier system + Orange-Red `#dd4425` accent + Cream `#fffcfc` featured-surface + Cloudflare acquisition narrative missed by prior pass.
|
|
@@ -301,3 +301,76 @@ What makes Resend distinctive is its icy, blue-tinted border system. Instead of
|
|
|
301
301
|
5. Multi-color accents at low opacity (12–42%) for backgrounds, full opacity for text
|
|
302
302
|
6. Pill shape (9999px) for CTAs and badges, standard radius (4px–16px) for containers
|
|
303
303
|
7. No shadows — use frost borders for depth against the void
|
|
304
|
+
|
|
305
|
+
## 10. Voice & Tone
|
|
306
|
+
|
|
307
|
+
Resend's voice is **dev-focused-elegant and API-first.** "Email for developers" — concise, capability-driven. Dark void canvas + frost-border depth signal "premium developer tool."
|
|
308
|
+
|
|
309
|
+
| Context | Tone |
|
|
310
|
+
|---|---|
|
|
311
|
+
| CTA | Verb. "Get started", "Try it now", "Sign up" |
|
|
312
|
+
| Marketing | API-first. Code snippets dominant in marketing |
|
|
313
|
+
| Documentation | Code-first, framework-specific examples |
|
|
314
|
+
| Error | Specific. "Invalid API key. Generate new one in Settings." |
|
|
315
|
+
|
|
316
|
+
**Voice samples**
|
|
317
|
+
- Tagline: *"Email for developers"* <!-- verified: resend.com homepage 2026-05 -->
|
|
318
|
+
- Recurring promo: *"Announcing Resend Forward"* <!-- verified: resend.com homepage 2026-05 -->
|
|
319
|
+
|
|
320
|
+
**Forbidden phrases.** "Revolutionary email API". Aggressive SendGrid-comparison framing.
|
|
321
|
+
|
|
322
|
+
## 11. Brand Narrative
|
|
323
|
+
|
|
324
|
+
Resend was incorporated **January 2023** (open-source `react.email` predecessor launched 2022) by **Bu Kinoshita** and **Zeno Rocha** ([Resend — How we got here](https://resend.com/handbook/company/how-we-got-here), [Y Combinator — Resend](https://www.ycombinator.com/companies/resend)). The pair launched **react.email** in 2022 because they were frustrated by how difficult it was to build modern email templates that worked across all email clients — that OSS distribution lever became the founder-edge for the commercial Resend product. They **immediately quit their jobs and moved to San Francisco** to join **Y Combinator's Winter 2023 (W23)** batch — **Launch HN: Resend (YC W23)** thread is publicly archived ([Hacker News — Launch HN: Resend](https://news.ycombinator.com/item?id=36309120)). After YC: **$3M seed round** ([Y Combinator/TechCrunch — Resend $3M](https://www.linkedin.com/posts/y-combinator_developer-focused-email-platform-resend-raises-activity-7087087056081866753-GaNB)). Modern email API positioned for developers — React Email components + clean DX. Strong YC + community adoption among indie SaaS builders. The brand voice tracks this positioning: minimal chrome, dark canvas, premium-developer aesthetic.
|
|
325
|
+
|
|
326
|
+
## 12. Principles
|
|
327
|
+
|
|
328
|
+
1. **Code is the marketing.** *UI implication:* hero shows real API code, never marketing illustration.
|
|
329
|
+
2. **No shadows, frost borders.** *UI implication:* depth via translucent borders against dark void.
|
|
330
|
+
3. **Pill (9999px) for CTAs and badges.** *UI implication:* primary actions pill-shaped.
|
|
331
|
+
4. **Standard radius (4-16px) for containers.** *UI implication:* mixed radius is intentional.
|
|
332
|
+
5. **React Email is the OSS hook.** *UI implication:* surfaces lead with React Email examples.
|
|
333
|
+
|
|
334
|
+
## 13. Personas
|
|
335
|
+
|
|
336
|
+
*Personas are fictional archetypes informed by Resend user segments (indie SaaS founders, transactional email engineers, dev-tooling buyers), not individual people.*
|
|
337
|
+
|
|
338
|
+
**Sofia Russo, 30, Milan.** Indie SaaS founder shipping authentication emails. React Email + Resend for clean DX.
|
|
339
|
+
|
|
340
|
+
**Marcus Chen, 38, San Francisco.** Senior engineer migrating from SendGrid. Cares about deliverability + simple API.
|
|
341
|
+
|
|
342
|
+
**Priya Krishnan, 27, Bengaluru.** YC startup building B2B SaaS. Resend as the only email service their team uses.
|
|
343
|
+
|
|
344
|
+
## 14. States
|
|
345
|
+
|
|
346
|
+
| State | Treatment |
|
|
347
|
+
|---|---|
|
|
348
|
+
| **Empty (no domains)** | "Add your first domain" CTA + DNS setup |
|
|
349
|
+
| **Empty (no API keys)** | "Generate first API key" CTA |
|
|
350
|
+
| **Loading (sending)** | Per-email status visible |
|
|
351
|
+
| **Loading (DNS verifying)** | Persistent badge with check button |
|
|
352
|
+
| **Error (DNS not verified)** | Specific record + value to add |
|
|
353
|
+
| **Error (rate limit)** | Tier limit + upgrade |
|
|
354
|
+
| **Success (sent)** | Implicit; appears in dashboard |
|
|
355
|
+
| **Success (domain verified)** | Subtle confirmation |
|
|
356
|
+
| **Skeleton (email log)** | Frost-border placeholders |
|
|
357
|
+
| **Disabled (no plan)** | Upgrade link |
|
|
358
|
+
| **Loading (long batch)** | Persistent progress |
|
|
359
|
+
|
|
360
|
+
## 15. Motion & Easing
|
|
361
|
+
|
|
362
|
+
| Token | Value | Use |
|
|
363
|
+
|---|---|---|
|
|
364
|
+
| `motion-instant` | 0ms | Selection |
|
|
365
|
+
| `motion-fast` | 150ms | Hover |
|
|
366
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
367
|
+
|
|
368
|
+
Standard cubic-bezier; no bounce — premium register. `prefers-reduced-motion: reduce` removes hover transitions.
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
**Verified:** 2026-05-08 (omd:migrate run 50 — Apple-tier)
|
|
373
|
+
**Tier 1 sources:** resend.com home + /pricing (live DOM via playwright — **Primary `#00a3ff` Resend Blue 4px** / 41px / 12×20 / 14px·**600** + Tab pill `rgba(24,25,28,0.88)` Charcoal-translucent 16px (pricing tab active) + Announcement banner 9999px translucent blue (top promo) + Outline ghost 16px + Mid-Gray `#a1a4a5` nav text).
|
|
374
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
375
|
+
**Tier 2 (Philosophy/founders):** Resend handbook (How we got here), Y Combinator (Resend W23), Hacker News (Launch HN W23), LinkedIn (YC TechCrunch $3M post), No Cap Blog (Rocha), Mintlify customer story.
|
|
376
|
+
**Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier mistake reverted (significant):** prior footer captured 16px tab/ghost variants only — canonical Primary is `#00a3ff` **Resend Blue 4px** (the brand-defining color, missed entirely). §4 material correction.
|
|
@@ -183,3 +183,77 @@ What distinguishes Revolut is its pill-everything button system. Every button us
|
|
|
183
183
|
2. All buttons are pills (9999px) with generous padding
|
|
184
184
|
3. Zero shadows — flat is the Revolut identity
|
|
185
185
|
4. Near-black + white for marketing, semantic colors for product
|
|
186
|
+
|
|
187
|
+
## 10. Voice & Tone
|
|
188
|
+
|
|
189
|
+
Revolut's voice is **fintech-bold and segment-aware.** "Banking & Beyond" — confident, multi-segment positioning (Personal / Business / Kids & Teens). Pill chrome (9999px) signals "modern fintech" while flat-no-shadow design signals "no-nonsense banking."
|
|
190
|
+
|
|
191
|
+
| Context | Tone |
|
|
192
|
+
|---|---|
|
|
193
|
+
| CTA | Verb. "Get started", "Try Revolut", "Sign up" |
|
|
194
|
+
| Marketing | Segment-targeted. Personal vs Business vs Teens copy distinct |
|
|
195
|
+
| Onboarding | KYC-aware. Plain-language compliance |
|
|
196
|
+
| Error | Specific. "Insufficient funds. Top up via bank transfer." |
|
|
197
|
+
|
|
198
|
+
**Voice samples**
|
|
199
|
+
- Tagline: *"Banking & Beyond"* <!-- verified: revolut.com homepage 2026-05 -->
|
|
200
|
+
- Segment nav: *"Personal / Business / Kids & Teens"* <!-- verified: revolut.com homepage -->
|
|
201
|
+
|
|
202
|
+
**Forbidden phrases.** "Revolutionary fintech". Aggressive crypto-bro framing.
|
|
203
|
+
|
|
204
|
+
## 11. Brand Narrative
|
|
205
|
+
|
|
206
|
+
**Revolut Ltd was incorporated December 2013** by **Nikolay "Nik" Storonsky (CEO)** with **Vlad Yatsenko (CTO)** joining shortly after; the consumer product **launched 2015** at **Level39 fintech accelerator, Canary Wharf, London** ([Revolut — Wikipedia](https://en.wikipedia.org/wiki/Revolut), [Nik Storonsky — Wikipedia](https://en.wikipedia.org/wiki/Nik_Storonsky)). Storonsky was **the company's first investor (£300,000 of his own savings)**. **Yatsenko**: graduated with honors, worked at **Comarch (Krakow programmer)** → **UBS (London senior software developer 2010)** → brief stints at **Deutsche Bank + Credit Suisse** through 2014. Storonsky and Yatsenko are **both immigrants** ([The Vertical — immigrant founders Revolut](https://thevertical.la/development/who-are-the-immigrant-founders-behind-revolut-the-45-billion-neobank-eyeing-u-s-expansion/)). Originally a multi-currency travel card → expanded to full neobank with stocks, crypto, lending, insurance. **Valuation timeline**: $45B secondary share sale 2024 → **$75B November 2025** ([City AM — Revolut $75B](https://www.cityam.com/revolut-inside-nik-storonskys-75bn-fintech-empire-still-hunting-for-its-crown/)). **IPO timeline**: per Bloomberg April 20 2026 interview, Storonsky stated **~2 years from IPO with U.S. listing preferred**. The brand voice — bold, multi-segment, flat-design — tracks the product's evolution from single-card to financial super-app.
|
|
207
|
+
|
|
208
|
+
## 12. Principles
|
|
209
|
+
|
|
210
|
+
1. **Multi-segment first-class.** Personal / Business / Kids & Teens. *UI implication:* segment nav at top level.
|
|
211
|
+
2. **Pill chrome 16px+.** *UI implication:* primary actions and nav use 16px pill.
|
|
212
|
+
3. **Zero shadows.** *UI implication:* depth via background contrast, never shadow.
|
|
213
|
+
4. **Near-black `#0e1318` + white marketing.** *UI implication:* marketing chrome stays achromatic.
|
|
214
|
+
5. **Semantic colors only in product.** *UI implication:* charts + status use semantic; marketing stays neutral.
|
|
215
|
+
|
|
216
|
+
## 13. Personas
|
|
217
|
+
|
|
218
|
+
*Personas are fictional archetypes informed by Revolut user segments (multi-currency travelers, freelancers, EU SMB, Gen Z), not individual people.*
|
|
219
|
+
|
|
220
|
+
**Catherine Liu, 32, London.** UK-based consultant traveling EU monthly. Multi-currency wallet + travel insurance.
|
|
221
|
+
|
|
222
|
+
**Marcus Müller, 38, Berlin.** Freelancer with EUR/USD income streams. Revolut Business for invoicing.
|
|
223
|
+
|
|
224
|
+
**Sofia Park, 18, Seoul.** Teens account holder traveling for university applications.
|
|
225
|
+
|
|
226
|
+
## 14. States
|
|
227
|
+
|
|
228
|
+
| State | Treatment |
|
|
229
|
+
|---|---|
|
|
230
|
+
| **Empty (no transactions)** | "Top up to start" CTA |
|
|
231
|
+
| **Empty (no investments)** | "Browse stocks/crypto" link |
|
|
232
|
+
| **Loading (price feed)** | Last cached + stale indicator |
|
|
233
|
+
| **Loading (KYC)** | Persistent badge with progress |
|
|
234
|
+
| **Error (KYC)** | Specific reason + remediation |
|
|
235
|
+
| **Error (payment)** | Receipt-style failure + retry |
|
|
236
|
+
| **Success (transaction)** | Receipt with full details + emoji-free confirmation |
|
|
237
|
+
| **Success (deposit)** | Confirmation + when funds available |
|
|
238
|
+
| **Skeleton (account list)** | Pill placeholders |
|
|
239
|
+
| **Disabled (no funds)** | Top up inline link |
|
|
240
|
+
| **Loading (long action)** | Multi-step progress |
|
|
241
|
+
|
|
242
|
+
## 15. Motion & Easing
|
|
243
|
+
|
|
244
|
+
| Token | Value | Use |
|
|
245
|
+
|---|---|---|
|
|
246
|
+
| `motion-instant` | 0ms | Toggle |
|
|
247
|
+
| `motion-fast` | 150ms | Hover |
|
|
248
|
+
| `motion-standard` | 250ms | Modal, panel |
|
|
249
|
+
| `motion-pulse` | continuous | Live price update |
|
|
250
|
+
|
|
251
|
+
Standard cubic-bezier; no bounce — fintech register. `prefers-reduced-motion: reduce` disables price pulse.
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
**Verified:** 2026-05-08 (omd:migrate run 51 — Apple-tier)
|
|
256
|
+
**Tier 1 sources:** revolut.com/en-US home + /en-US/business (live DOM via playwright — **all-pill 9999px** chrome with canvas-aware Charcoal/Light pair: **Charcoal `#191c1f`** Primary (consumer light canvas) + **Light Surface `#f4f4f4`** Inverse (Business dark canvas + feature cards) + Translucent `rgba(244,244,244,0.10)` on-dark hover, all 9999px / 42px / 10×24 / 16px·**500**).
|
|
257
|
+
**Tier 2 sources:** styles.refero.design / getdesign.md — no record.
|
|
258
|
+
**Tier 2 (Philosophy/founders/valuation/IPO):** Wikipedia (Revolut + Nik Storonsky), Huxley (Yatsenko Ukrainian billionaire bio), The Vertical (immigrant founders narrative), City AM ($75B Nov 2025), MoneyWeek, Bloomberg Billionaires, FinTech Magazine.
|
|
259
|
+
**Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier addition:** Charcoal `#191c1f` Primary + Light Surface `#f4f4f4` Inverse + canvas-aware pair + translucent variant missed by prior pass (which captured 38px segment-nav only — canonical is 42px Primary).
|