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.
Files changed (117) hide show
  1. package/README.ja.md +7 -7
  2. package/README.ko.md +7 -7
  3. package/README.md +15 -18
  4. package/README.zh-TW.md +7 -7
  5. package/agents/omd-ux-writer.md +1 -1
  6. package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +189 -0
  7. package/data/reference-audits/2026-05-13-kr10.md +132 -0
  8. package/data/reference-fingerprints.json +626 -3
  9. package/data/reference-tags.md +15 -1
  10. package/package.json +2 -2
  11. package/skills/omd-apply/SKILL.md +1 -1
  12. package/skills/omd-harness/SKILL.md +3 -3
  13. package/skills/omd-init/SKILL.md +2 -2
  14. package/web/AGENTS.md +5 -0
  15. package/web/references/29cm/DESIGN.md +445 -0
  16. package/web/references/ably/DESIGN.md +582 -0
  17. package/{references → web/references}/airbnb/DESIGN.md +158 -19
  18. package/web/references/airtable/DESIGN.md +241 -0
  19. package/{references → web/references}/apple/DESIGN.md +131 -76
  20. package/web/references/baemin/DESIGN.md +470 -0
  21. package/web/references/banksalad/DESIGN.md +606 -0
  22. package/{references → web/references}/bmw/DESIGN.md +138 -9
  23. package/{references → web/references}/cal/DESIGN.md +173 -17
  24. package/{references → web/references}/claude/DESIGN.md +11 -1
  25. package/{references → web/references}/clay/DESIGN.md +75 -0
  26. package/{references → web/references}/clickhouse/DESIGN.md +74 -0
  27. package/{references → web/references}/cohere/DESIGN.md +75 -0
  28. package/web/references/coinbase/DESIGN.md +205 -0
  29. package/{references → web/references}/composio/DESIGN.md +74 -0
  30. package/web/references/coupang/DESIGN.md +487 -0
  31. package/{references → web/references}/cursor/DESIGN.md +74 -0
  32. package/web/references/dcard/DESIGN.md +567 -0
  33. package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
  34. package/{references → web/references}/expo/DESIGN.md +72 -0
  35. package/{references → web/references}/ferrari/DESIGN.md +72 -0
  36. package/{references → web/references}/figma/DESIGN.md +124 -48
  37. package/{references → web/references}/framer/DESIGN.md +143 -16
  38. package/web/references/freee/DESIGN.md +558 -0
  39. package/web/references/gangnamunni/DESIGN.md +605 -0
  40. package/{references → web/references}/hashicorp/DESIGN.md +72 -0
  41. package/{references → web/references}/ibm/DESIGN.md +68 -0
  42. package/{references → web/references}/intercom/DESIGN.md +73 -0
  43. package/web/references/kakao/DESIGN.md +490 -0
  44. package/web/references/kakaobank/DESIGN.md +533 -0
  45. package/web/references/kakaopay/DESIGN.md +529 -0
  46. package/web/references/karrot/DESIGN.md +431 -0
  47. package/web/references/kraken/DESIGN.md +219 -0
  48. package/web/references/krds/DESIGN.md +982 -0
  49. package/web/references/kurly/DESIGN.md +574 -0
  50. package/{references → web/references}/lamborghini/DESIGN.md +74 -0
  51. package/{references → web/references}/line/DESIGN.md +84 -43
  52. package/{references → web/references}/linear.app/DESIGN.md +8 -1
  53. package/{references → web/references}/lovable/DESIGN.md +73 -0
  54. package/web/references/mercari/DESIGN.md +464 -0
  55. package/{references → web/references}/minimax/DESIGN.md +72 -0
  56. package/{references → web/references}/mintlify/DESIGN.md +72 -0
  57. package/web/references/miro/DESIGN.md +252 -0
  58. package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
  59. package/{references → web/references}/mongodb/DESIGN.md +72 -0
  60. package/web/references/musinsa/DESIGN.md +536 -0
  61. package/web/references/naver/DESIGN.md +518 -0
  62. package/{references → web/references}/notion/DESIGN.md +9 -1
  63. package/web/references/nvidia/DESIGN.md +491 -0
  64. package/web/references/ohouse/DESIGN.md +570 -0
  65. package/{references → web/references}/ollama/DESIGN.md +72 -0
  66. package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
  67. package/web/references/pinkoi/DESIGN.md +575 -0
  68. package/{references → web/references}/pinterest/DESIGN.md +73 -0
  69. package/{references → web/references}/posthog/DESIGN.md +172 -18
  70. package/web/references/qanda/DESIGN.md +459 -0
  71. package/{references → web/references}/raycast/DESIGN.md +169 -34
  72. package/web/references/remember/DESIGN.md +445 -0
  73. package/{references → web/references}/renault/DESIGN.md +72 -0
  74. package/{references → web/references}/replicate/DESIGN.md +73 -0
  75. package/{references → web/references}/resend/DESIGN.md +73 -0
  76. package/{references → web/references}/revolut/DESIGN.md +74 -0
  77. package/web/references/ridi/DESIGN.md +517 -0
  78. package/{references → web/references}/runwayml/DESIGN.md +152 -24
  79. package/{references → web/references}/sanity/DESIGN.md +72 -0
  80. package/{references → web/references}/sentry/DESIGN.md +73 -0
  81. package/web/references/socar/DESIGN.md +370 -0
  82. package/web/references/spacex/DESIGN.md +379 -0
  83. package/web/references/spotify/DESIGN.md +426 -0
  84. package/{references → web/references}/stripe/DESIGN.md +44 -1
  85. package/{references → web/references}/supabase/DESIGN.md +73 -0
  86. package/{references → web/references}/superhuman/DESIGN.md +159 -17
  87. package/{references → web/references}/tesla/DESIGN.md +170 -0
  88. package/{references → web/references}/together.ai/DESIGN.md +73 -0
  89. package/{references → web/references}/toss/DESIGN.md +304 -50
  90. package/{references → web/references}/uber/DESIGN.md +73 -0
  91. package/{references → web/references}/vercel/DESIGN.md +9 -1
  92. package/{references → web/references}/voltagent/DESIGN.md +73 -0
  93. package/web/references/wanted/DESIGN.md +515 -0
  94. package/{references → web/references}/warp/DESIGN.md +142 -15
  95. package/web/references/webflow/DESIGN.md +253 -0
  96. package/{references → web/references}/wise/DESIGN.md +84 -0
  97. package/{references → web/references}/x.ai/DESIGN.md +85 -0
  98. package/web/references/yanolja/DESIGN.md +448 -0
  99. package/web/references/yeogiotte/DESIGN.md +424 -0
  100. package/{references → web/references}/zapier/DESIGN.md +85 -0
  101. package/web/references/zigbang/DESIGN.md +457 -0
  102. package/web/references/zigzag/DESIGN.md +618 -0
  103. package/references/airtable/DESIGN.md +0 -107
  104. package/references/baemin/DESIGN.md +0 -260
  105. package/references/coinbase/DESIGN.md +0 -129
  106. package/references/dcard/DESIGN.md +0 -302
  107. package/references/freee/DESIGN.md +0 -308
  108. package/references/kakao/DESIGN.md +0 -261
  109. package/references/karrot/DESIGN.md +0 -252
  110. package/references/kraken/DESIGN.md +0 -146
  111. package/references/mercari/DESIGN.md +0 -294
  112. package/references/miro/DESIGN.md +0 -108
  113. package/references/nvidia/DESIGN.md +0 -308
  114. package/references/pinkoi/DESIGN.md +0 -309
  115. package/references/spacex/DESIGN.md +0 -205
  116. package/references/spotify/DESIGN.md +0 -246
  117. package/references/webflow/DESIGN.md +0 -109
@@ -0,0 +1,445 @@
1
+ ---
2
+ omd: 0.1
3
+ brand: Remember
4
+ ---
5
+
6
+ # Design System Inspiration of Remember (리멤버)
7
+
8
+ > **Disambiguation.** This is **Remember (리멤버) — the Korean B2B business-card management and professional-networking app operated by 리멤버앤컴퍼니 (formerly 드라마앤컴퍼니, Drama & Company)**. Not to be confused with Remember The Milk, any “Remember” calendar app, or generic English-word brands. Verified against `https://www.rememberapp.co.kr/` (redirects to `career.rememberapp.co.kr`) and `https://corp.remember.co.kr/`.
9
+
10
+ ## 1. Visual Theme & Atmosphere
11
+
12
+ Remember is the app that turned the paper business card into a database — and now wraps that database in a career-marketplace, headhunter outreach surface, and an industry-expert community. The visual identity is built around that origin: it has to feel **trustworthy enough for a 54-year-old factory owner to hand over his Rolodex**, while also feeling **modern enough for a 32-year-old engineer to take a scout call through it**. The result is an aggressively restrained palette — near-pure white surfaces, deep charcoal type, **black as the primary action color**, and a hot signup-orange (`#FF5414`) that punches through only at conversion moments.
13
+
14
+ Where Toss made financial blue its brand thesis and Wanted made cobalt (`#0066FF`) its career-marketplace color, Remember made **black** the primary CTA. That choice is deliberate: black reads as the most "professional" neutral in Korean B2B context — it's the color of name-card foil stamping, of executive notepads, of legal letterhead. It refuses both the playful saturation of consumer apps (Toss blue, Kakao yellow) and the engineered cobalt of recruiting competitors. Body type is rendered in `#222222` — slightly off-black, warmer than `#000` — for long-form reading comfort across job descriptions, community posts, and contact lists.
15
+
16
+ The typeface is **Pretendard** (sans-serif), the open-source Korean–Latin hybrid that has become the de facto Korean product-design default. Remember doesn't ship a custom face; the brand statement is restraint, not typographic exotica. Information density is **high**: the career feed surfaces dozens of jobs per viewport in 162-wide cards with no shadow and minimal chrome, because the user value is "more opportunities visible," not "fewer, prettier opportunities."
17
+
18
+ **Key Characteristics:**
19
+ - Black (`#000000`) as primary interactive — CTAs, search submit, primary buttons. The fingerprint of the brand.
20
+ - Off-black body text (`#222222`) — softer than pure black, optimized for long-form reading
21
+ - Signup orange (`#FF5414`) — high-saturation conversion punch, used sparingly and only on growth moments
22
+ - Pretendard font family across all surfaces (no custom face)
23
+ - 4–6px radius scale — small, restrained, never pill-shaped on primary CTAs
24
+ - Border-led component definition (`#D4D4D4` hairlines on filter chips) — not shadow-led
25
+ - High information density — small cards, tight spacing, more results per viewport
26
+
27
+ ## 2. Color Palette & Roles
28
+
29
+ ### Primary
30
+ - **Action Black** (`#000000`): The brand's primary CTA color. Login button, search submit, primary action on detail pages. White text on top.
31
+ - **Body Charcoal** (`#222222`): Default text color. Softer than `#000` for sustained reading. Used for headlines, body, filter labels.
32
+ - **Pure White** (`#FFFFFF`): Page surface, card surfaces, secondary button background.
33
+ - **Off-white** (`#FFFFF9`): Text color used on top of orange CTAs — a near-cream that warms against `#FF5414`.
34
+
35
+ ### Brand Accent (Conversion / Growth)
36
+ - **Signup Orange** (`#FF5414`): The "가입하기" / signup punch. Reserved for high-intent conversion moments — onboarding nudge, free-trial CTAs, growth banners. Never the default primary.
37
+ - **Brand Orange** (`#FF6A0D`): Secondary orange used in marketing-surface accents and badges. One step lighter / less saturated than signup orange.
38
+
39
+ ### Semantic
40
+ - **Success Green** (`#239E7B`): Used for confirmation states, "지원 완료" / application success badges, positive metrics.
41
+ - **Surface Mint** (`#D9FCF2`): Pale green surface — success banners, accepted-status pills. Pairs with success-green text.
42
+ - (Error / warning tokens are not consistently exposed on the public career surface; on internal forms they follow Korean fintech convention — red 2px input border with red helper text. Treat as Tier 1-unverified for this brand.)
43
+
44
+ ### Neutral Scale
45
+ - **Neutral 50** (`#FAFAFA`): Page background tint, hover surfaces.
46
+ - **Neutral 100** (`#F2F2F2`): Search-input background, secondary surface.
47
+ - **Neutral 200** (`#EBEBEB`): Dividers, low-emphasis fills.
48
+ - **Neutral 300** (`#D4D4D4`): Default border on filter chips, input outlines, low-emphasis components.
49
+ - **Neutral 400** (`#BDBDBD`): Disabled icon, low-emphasis caption.
50
+ - **Neutral 500** (`#808080`): Placeholder text, secondary caption.
51
+ - **Neutral 700** (`#424242`): Sub-headline color (H2 on career feed).
52
+ - **Neutral 900** (`#222222`): Body and primary heading color.
53
+
54
+ ### Surface & Borders
55
+ - **Border default**: `#D4D4D4` (`neutral 300`) — filter chips, input outlines, card hairlines.
56
+ - **Border subtle**: `#EBEBEB` (`neutral 200`) — dividers between list rows.
57
+ - **Search-input surface**: `#F2F2F2` (`neutral 100`) — search field background.
58
+ - **Overlay scrim**: `rgba(0, 0, 0, 0.8)` — bottom sheet and modal backdrop on mobile.
59
+
60
+ ## 3. Typography Rules
61
+
62
+ ### Font Family
63
+ - **Primary**: `Pretendard, -apple-system, "system-ui", system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif`
64
+ - **Storybook / web component lib**: `Pretendard, sans-serif` (short form — Remember UI Storybook body computed style)
65
+
66
+ ### Hierarchy
67
+
68
+ | Role | Font | Size | Weight | Line Height | Color | Notes |
69
+ |------|------|------|--------|-------------|-------|-------|
70
+ | Section H2 | Pretendard | 20px | 600 | 26px (1.30) | `#424242` | Career feed section headers ("프리미엄 대표기업") |
71
+ | Card H3 | Pretendard | 16px | 400 | 23.2px (1.45) | `#000000` | Job-card and company-card titles |
72
+ | Body | Pretendard | 16px | 400 | 1.5 | `#222222` | Job-description, community-post body |
73
+ | Filter / Chip | Pretendard | 16px | 400 | normal | `#222222` | Filter chip labels (10px 16px padding) |
74
+ | Button label | Pretendard | 14px | 400 | normal | varies | Login / Signup / nav buttons (32px tall) |
75
+ | Search input | Pretendard | 16px | 400 | normal | `#808080` placeholder, `#222` typed | 52px tall, 16px size |
76
+ | Conversion CTA label | Pretendard | 12px | 400 | normal | `#FFFFF9` | Signup nudges (32px tall, orange bg) |
77
+ | Caption / meta | Pretendard | 12-13px | 400 | normal | `#808080` | Timestamps, D-day badges, location |
78
+
79
+ ### Principles
80
+ - **One family, no custom face.** Pretendard does everything — Korean, Latin, numerals. The brand statement is restraint, not typographic identity. Where Toss invests in a custom face, Remember invests in a third-party open-source default.
81
+ - **Weight discipline.** Captured surfaces use predominantly weight 400. Weight 600 is reserved for section H2 sub-emphasis. Weight 700 is absent on the career feed — Remember does not shout typographically.
82
+ - **Off-black for sustained reading.** Body and most headlines are `#222222`, not `#000`. Pure black is reserved for the H3 card titles where the user's eye lands first, and for the action-button background.
83
+
84
+ ## 4. Component Stylings
85
+
86
+ ### Buttons
87
+
88
+ Remember's button system is a 2-axis matrix: **fill kind** (black / white / outlined / orange-growth) × **size**. The default size shown below is the 32-tall header button captured live on `career.rememberapp.co.kr/job/postings`. The search-submit button is the same color but 52px tall to match the search input.
89
+
90
+ **Primary / Action Black**
91
+ - Background: `#000000`
92
+ - Text: `#FFFFFF`
93
+ - Border: none
94
+ - Radius: 4px
95
+ - Padding: 0 (square hit area in header), 0 12px on labelled variants
96
+ - Font: 14px / 400 / Pretendard
97
+ - Use: Login, primary auth CTAs, search submit (52px variant). The fingerprint button of Remember.
98
+
99
+ **Primary / Action Black — Search size**
100
+ - Background: `#000000`
101
+ - Text: `#FFFFFF`
102
+ - Border: none
103
+ - Radius: 6px
104
+ - Padding: 0 12px
105
+ - Height: 52px
106
+ - Font: 14px / 400 / Pretendard
107
+ - Use: Search submit beside the 52-tall search input on the career feed hero.
108
+
109
+ **Secondary / White Fill**
110
+ - Background: `#FFFFFF`
111
+ - Text: `#000000`
112
+ - Border: none
113
+ - Radius: 6px
114
+ - Padding: 0 12px
115
+ - Height: 32px
116
+ - Font: 14px / 400 / Pretendard
117
+ - Use: "회원가입" / sign-up secondary button in the dark header (white-on-dark surface).
118
+
119
+ **Outline / Ghost on Dark**
120
+ - Background: transparent
121
+ - Text: `#FFFFFF`
122
+ - Border: 1px solid `#FFFFFF`
123
+ - Radius: 6px
124
+ - Padding: 0 12px
125
+ - Height: 32px
126
+ - Font: 14px / 400 / Pretendard
127
+ - Use: "기업 서비스" / B2B nav button in the dark hero — outline on dark surface.
128
+
129
+ **Growth / Signup Orange**
130
+ - Background: `#FF5414`
131
+ - Text: `#FFFFF9`
132
+ - Border: none
133
+ - Radius: 4px
134
+ - Padding: 6.5px 13px
135
+ - Height: 32px
136
+ - Font: 12px / 400 / Pretendard
137
+ - Use: "가입하기" growth CTAs, onboarding nudges, free-trial bars. The single saturated punch on the page.
138
+
139
+ ### Filter Chips
140
+
141
+ Remember's filter system is the densest interactive zone on the career feed. Chips are border-defined (not fill-defined) and stay stable across hover / pressed / active.
142
+
143
+ **Default**
144
+ - Background: transparent
145
+ - Text: `#222222`
146
+ - Border: 1px solid `#D4D4D4`
147
+ - Radius: 4px
148
+ - Padding: 10px 16px
149
+ - Height: 42px
150
+ - Font: 16px / 400 / Pretendard
151
+ - Min-width: 82px (single-character labels like "직무" / "연봉" / "지역" / "경력")
152
+ - Use: Filter facets on `/job/postings` — 직무, 연봉, 지역, 경력, 기업 유형, 산업/업종.
153
+
154
+ **Selected / Active** (inferred Tier-1 from sibling chips when applied — values may shift)
155
+ - Background: `#222222`
156
+ - Text: `#FFFFFF`
157
+ - Border: 1px solid `#222222`
158
+ - Radius: 4px
159
+ - Use: Active filter facet. Inverts the default. Marked `(unresolved)` — see footer.
160
+
161
+ ### Search Input
162
+
163
+ The hero search is the single highest-priority surface on the career feed; it is wider than the page gutter and taller than every other input.
164
+
165
+ **Default**
166
+ - Background: `#F2F2F2`
167
+ - Text typed: `#222222`
168
+ - Placeholder: `#808080` ("직무, 회사를 검색해 주세요")
169
+ - Border: none
170
+ - Radius: 4px
171
+ - Padding: 0 0 0 56px (left padding makes room for the leading search icon)
172
+ - Height: 52px
173
+ - Font: 16px / 400 / Pretendard
174
+ - Use: Hero search above the job list. Pairs with the 52-tall black submit button to the right.
175
+
176
+ ### Cards
177
+
178
+ **Job Card (Career Feed)**
179
+ - Background: transparent (cards inherit the page surface — Remember uses density, not card-chrome, to separate items)
180
+ - Text: `#000000` (H3 title), `#222222` (meta line)
181
+ - Border: none
182
+ - Radius: 0
183
+ - Padding: tight internal — content-led, not chrome-led
184
+ - Width: 162px (verified live on `career.rememberapp.co.kr/job/postings`)
185
+ - Height: 201–250px depending on title wrap and number of meta lines
186
+ - Shadow: none
187
+ - Title: 16px / 400, `lineHeight: 23.2px`
188
+ - Use: The career feed's atomic unit. Many per viewport, low-chrome, optimized for scan speed.
189
+
190
+ **Company / Premium Card** (Tier-1 inferred — exact tokens not exhaustively captured)
191
+ - Background: `#FFFFFF`
192
+ - Text: `#222222`
193
+ - Border: 1px solid `#EBEBEB` (or no border + flat divider)
194
+ - Radius: 8–12px
195
+ - Padding: 16–20px
196
+ - Use: "프리미엄 대표기업" carousel cards (H2 = 20px / 600 / `#424242` overhead). Wider than job cards, with logo + tagline.
197
+
198
+ ### Status / Tag Pills
199
+
200
+ **Success / Accepted**
201
+ - Background: `#D9FCF2`
202
+ - Text: `#239E7B`
203
+ - Border: none
204
+ - Radius: 4px
205
+ - Padding: 2–4px 8px
206
+ - Font: 12px / 400 / Pretendard
207
+ - Use: "지원 완료" / accepted-status badges in user history.
208
+
209
+ **D-day Badge**
210
+ - Background: transparent
211
+ - Text: `#FF5414` (urgency) or `#424242` (neutral countdown)
212
+ - Border: none
213
+ - Font: 12px / 400 / Pretendard
214
+ - Use: "D-8", "D-11" countdown chips on time-sensitive job cards.
215
+
216
+ ## 5. Layout Principles
217
+
218
+ ### Spacing System
219
+ - Base unit: 4px
220
+ - Common values: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 56px
221
+ - Horizontal page gutter: 16–20px on mobile, 24–40px on desktop
222
+ - Search-input internal padding-left: 56px (leading-icon clearance)
223
+ - Filter row internal gap: 8px between chips, 16px between filter groups
224
+
225
+ ### Grid & Container
226
+ - Design baseline: 360–375px mobile width; desktop uses a fixed central column
227
+ - Career feed: dense multi-card grid; cards ~162px wide, no shadow, no border, density-led
228
+ - Single-column body on detail / community surfaces
229
+ - Filter row above the feed is full-width, horizontally scrollable on mobile
230
+
231
+ ### Whitespace Philosophy
232
+ - **Density is the value proposition.** Where Toss optimizes for "breathing room around money," Remember optimizes for "more opportunities per viewport." Card chrome is minimized so the count of visible opportunities is maximized.
233
+ - **Borders, not shadows, define grouping.** Filter chips, inputs, and dividers carry `#D4D4D4` / `#EBEBEB` hairlines. The page rarely uses box-shadow.
234
+ - **Black anchors the hero.** The dark hero band (header + B2B nav + search) is solid `#000000` and absorbs all chrome contrast; the body returns to white and lets content carry contrast.
235
+
236
+ ### Border Radius Scale
237
+ - Compact (4px): Filter chips, primary action buttons, search input, status pills — Remember's dominant radius
238
+ - Standard (6px): Secondary buttons, outline buttons in the header
239
+ - Comfortable (8–12px): Cards (when present), modals
240
+ - (Pill / 9999px is absent on the captured career surface — Remember does not use pill-shaped CTAs)
241
+
242
+ ## 6. Depth & Elevation
243
+
244
+ | Level | Treatment | Use |
245
+ |-------|-----------|-----|
246
+ | Flat (Level 0) | No shadow | Career-feed cards, filter chips, page surface |
247
+ | Subtle (Level 1) | `0px 1px 2px rgba(0,0,0,0.04)` | Sticky header bottom edge, scroll-aware nav |
248
+ | Standard (Level 2) | `0px 2px 8px rgba(0,0,0,0.08)` | Dropdown menus, autocomplete panels |
249
+ | Modal (Level 3) | `0px 8px 24px rgba(0,0,0,0.16)` | Bottom sheets, filter modals, dialogs |
250
+
251
+ **Shadow Philosophy.** Remember keeps elevation neutral and minimal. The default career feed is **shadowless** — cards float in the page surface and are separated by space alone. Shadow is reserved for stateful overlays (dropdowns, sheets) where the user needs a clear "this is on top." Pure black with low opacity, never colored. This is consistent with the brand's trust-through-restraint posture: a professional networking app in Korea cannot afford to look "designy."
252
+
253
+ ### Blur Effects
254
+ - Sticky navigation applies a subtle backdrop blur on scroll for the dark hero band
255
+ - Bottom sheets on mobile use a dimmed `rgba(0,0,0,0.8)` backdrop without blur — full opacity preferred for focus
256
+
257
+ ## 7. Do's and Don'ts
258
+
259
+ ### Do
260
+ - Use **black (`#000000`)** as the primary CTA color across all surfaces. It is Remember's fingerprint.
261
+ - Render long-form body text in **`#222222`**, not `#000`, for sustained reading comfort.
262
+ - Reserve **signup orange (`#FF5414`)** for conversion moments — onboarding nudges, free-trial bars. It is a punctuation color, not a default.
263
+ - Keep cards on the career feed **shadowless and chromeless**. Density of opportunities is the brand promise.
264
+ - Use **`#D4D4D4` 1px borders** to define filter chips and input outlines — borders, not fills.
265
+ - Default to **4px radius** on buttons, chips, and inputs. Restraint over pillow softness.
266
+ - Stack **Pretendard, -apple-system, "Apple SD Gothic Neo"** for Korean–Latin parity.
267
+
268
+ ### Don't
269
+ - Don't use **Wanted's cobalt (`#0066FF`)** as a primary on Remember surfaces. Remember is a networking product, not a marketplace; it intentionally avoids the engineered-blue category.
270
+ - Don't use **Kakao yellow** or **playful saturations**. Remember's user base includes executive recruiters and 50+ business owners — playful color reads as untrustworthy here.
271
+ - Don't pill-shape primary CTAs (`9999px`). The captured surfaces use 4–6px exclusively on action buttons.
272
+ - Don't apply colored shadows or multi-layer elevation. Shadows are pure black, low opacity, single layer.
273
+ - Don't use signup orange (`#FF5414`) on more than one CTA per screen. It loses its conversion punch when repeated.
274
+ - Don't render small UI labels (chips, captions) in weight 600+. Career-feed labels are 400; weight is reserved for H2.
275
+ - Don't introduce custom illustrations on empty/error states for B2B-facing surfaces. Remember's audience expects sentence-led empty states, not characters.
276
+
277
+ ## 8. Iconography & Imagery
278
+
279
+ - **Icon system.** Remember uses outlined / stroke-style icons at 1.5–2px stroke weight in `#222222` or `#424242`. Filled icons appear only in active-state nav bottoms. No brand-color icons in primary surfaces.
280
+ - **Logos in cards.** Company logos in the premium-company carousel and job cards are framed at ~50×50 with a 9px radius (Tier-1 captured) and a near-white background — never a colored frame.
281
+ - **Photography.** Remember leans on stock-quality professional photography for marketing-only surfaces (corp site, blog). Product surfaces (career feed, contact list, community) are photography-light — they prioritize structured data density.
282
+ - **Empty-state illustration.** Avoided on B2B-product surfaces. Empty states are sentence-led with a single suggested action button. (Marketing surfaces may use spot illustration, but the product does not.)
283
+ - **Business-card visual.** The legacy product affordance — a rectangular card with name + title + company — is the brand's signature surface. When rendered in-product, business-card components use white bg, `#222` heading, `#808080` meta, 8–12px radius, and a soft `0 1px 3px rgba(0,0,0,0.06)` shadow to suggest physical paper.
284
+
285
+ ## 9. Overall Personality
286
+
287
+ Remember is the **trusted professional notebook** of the Korean white-collar workforce. It is calm, dense, slightly serious — the visual equivalent of a tailored navy suit, not a hoodie. Black is the primary action color because Remember sells professionalism, and black is the color of foil-stamped name cards and executive notepads. Orange is the conversion accent because Remember still needs to grow, and conversion needs a different visual register from the rest of the product. White space is sparing because the user came to Remember to see more, not to admire empty real estate.
288
+
289
+ The brand sits in deliberate contrast to its nearest neighbors:
290
+ - **vs. Wanted (`#0066FF` cobalt, career-marketplace).** Wanted is a transactional job-board with a strong engineering aesthetic. Remember is a *networking* product — the same user might have a Remember account for 8 years (their contact graph) and a Wanted tab open for 6 weeks (their current job hunt). Remember's restraint reflects long-term residency in the user's life.
291
+ - **vs. LinkedIn (global, blue, feed-heavy).** Remember is more transactional and less performative — there is no public broadcasting of personal milestones at the center of the product. The feed is jobs and scout messages, not "I'm thrilled to announce."
292
+ - **vs. Toss (consumer fintech, cerulean).** Toss is one-action-per-screen and breathing-room-around-money. Remember is many-options-per-screen and density-around-opportunities. The two brands occupy opposite ends of the Korean-product-design spectrum: Toss is *calm consumer*, Remember is *dense professional*.
293
+
294
+ In one line: **Remember is what happens when you take the world's most boring product surface — a business card — and treat it as a serious operating system for a career.**
295
+
296
+ ---
297
+
298
+ **Verified:** 2026-05-13
299
+
300
+ **Tier 1 sources:**
301
+ - `https://www.rememberapp.co.kr/` → redirects to `https://career.rememberapp.co.kr/job/postings` (playwright live computed-style inspect, 2026-05-13)
302
+ - `https://career.rememberapp.co.kr/job/postings` (Tier 1 live — primary surface; captured body font `Pretendard`, primary CTA `rgb(0,0,0)` radius `4px–6px`, filter chip `1px solid #D4D4D4`, search input `#F2F2F2` 52px, growth CTA `#FF5414` text `#FFFFF9` radius `4px`)
303
+ - `https://dramancompany.github.io/remember-ui/` (Storybook root — body bg `#F3F2EF`, font-family `Pretendard, sans-serif`)
304
+ - `https://corp.remember.co.kr/company` (mission, vision, founder identity)
305
+ - `https://corp.remember.co.kr/` (tagline "프로를 위한 모든 기회, 리멤버가 연결합니다")
306
+
307
+ **Tier 2 sources:**
308
+ - `https://getdesign.md/remember` — **not found**: "No designs found for 'remember'." (2026-05-13)
309
+ - `https://styles.refero.design/?q=remember` — **not found**: "Collection not found — Refero Styles" 404 (2026-05-13)
310
+ - `https://github.com/dramancompany/remember-ui` — **HTTP 404** at fetch time (2026-05-13). The Storybook deploy at `dramancompany.github.io/remember-ui/` is still live, but the source repo is not publicly readable. Tier 2 effectively unavailable for this brand.
311
+
312
+ **Conflicts unresolved:**
313
+ - **Selected / active filter chip tokens** — chips in default state were captured live (`#D4D4D4` border, transparent fill, `#222222` text). The selected/active state inversion (`#222` bg + white text) is inferred from the parent surface pattern but was not captured in a selected state during the live session. Flagged `(unresolved)` in §4.
314
+ - **Error / warning semantic tokens** — public career surface does not expose red error semantics. Internal form errors follow Korean fintech convention but are not Tier 1 verified for this brand. Treat as inferred.
315
+ - Tier 2 cross-validation was unavailable (both getdesign.md and refero have no entry for Remember; GitHub source repo returns 404). All token claims rest on Tier 1 live computed-style capture from the career surface and Storybook root.
316
+
317
+ ## 10. Voice & Tone
318
+
319
+ Remember speaks like the senior colleague who got promoted twice and still answers your DM: **calm, concrete, low on adjectives, never sells**. The product is a name-card-app-that-grew-up — its voice cannot afford to feel scrappy or playful, because half its users are 45+ executives who are unforgiving of brand cuteness. Korean is the primary voice; English strings exist but are secondary translations. Imperative verbs end CTAs (`가입하기`, `지원하기`, `검색`); declarative single sentences end notifications.
320
+
321
+ | Context | Tone |
322
+ |---|---|
323
+ | CTAs | Imperative Korean short form (`가입하기`, `지원하기`, `검색`, `회원가입`, `로그인`) — no period, no emoji |
324
+ | Success states | Past-tense single sentence — `지원이 완료되었어요`, `명함이 저장되었어요`. Pairs with the `#D9FCF2` mint surface and `#239E7B` text. |
325
+ | Error messages | Specific + blameless + actionable. Avoid `오류가 발생했습니다`; prefer `이메일 형식을 다시 확인해주세요`. |
326
+ | Onboarding | Second-person, one idea per screen. Skip illustration; lead with the value proposition (`경력에 맞는 제안이 도착했어요`). |
327
+ | Job-card meta | Bare facts, separated by interpunct or middle-dot. `7년~12년 차 · 서울/강남구`. Never "approximately." |
328
+ | Empty states | One-line `why` in `#808080` body, optional secondary action below. Never `데이터가 없어요`. |
329
+ | Scout / headhunter outreach | Formal `합니다` endings — this is the one place Remember dials *up* the formality. The message is a real person from a real company. |
330
+ | Community posts | User-generated; product copy here is restrained to nav and meta labels — never editorial. |
331
+
332
+ **Forbidden phrases.** `불편을 드려 죄송합니다`, `Oops`, English exclamations on Korean surfaces, `약 ~원` (approximation on salary numbers), emoji in any scout/recruiter message, "thrilled to announce"-style milestone broadcasting. Salary ranges and years-of-experience are exact-only — never rounded into marketing-friendly ranges.
333
+
334
+ **Voice samples (with verification).**
335
+
336
+ 1. *"프로를 위한 모든 기회, 리멤버가 연결합니다."* — Corporate site tagline, `corp.remember.co.kr/` (Tier 1 verified, 2026-05-13). Sets the brand's positioning: *connector*, not marketplace.
337
+ 2. *"일하는 사람과 기회를 연결하여 성공으로 이끈다."* — Stated mission, `corp.remember.co.kr/company` (Tier 1 verified). The voice in mission documents is more elevated than product copy — declarative, professional, never casual.
338
+ 3. *"리멤버를 통해 채용 시장의 문을 두드리는 구직자와 채용에 임하는 기업을 돕는 일이 우리 사회 경제발전에 일조한다는 책임감과 사명감을 늘 간직하려 한다."* — CEO 최재호, paraphrased from `thebigdata.co.kr` 2024 미디어데이 coverage. Founder voice carries the "responsibility / 책임감" register — a B2B-formal lexicon absent in consumer-app founder quotes.
339
+
340
+ ## 11. Brand Narrative
341
+
342
+ Remember is the consumer brand of **리멤버앤컴퍼니 (Remember & Company)**, formerly known as **드라마앤컴퍼니 (Drama & Company)** — a name whose acronym was always *"**D**REAM **A**ND **M**ake it h**A**ppen."* The company was founded in **July 2013** by **최재호 (Choi Jae-ho)** and **송기홍 (Song Ki-hong)** (corp.remember.co.kr, namu.wiki). The founding product was deceptively simple: photograph your stack of paper business cards, have a human-in-the-loop transcription team digitize each card, and store them in an app. The thesis was that Korean white-collar business culture revolved around the *physical exchange of name cards*, and the first company to digitize that exchange would inherit the resulting network graph.
343
+
344
+ By 2024 — eleven years and several pivots later — Remember had digitized hundreds of millions of business cards, accumulating one of the largest verified professional graphs in Korea, and used that graph as the foundation for three layered businesses: **(1) business-card and contact management** (the original product), **(2) career and scout-recruitment marketplace** (the most-visited surface today, at `career.rememberapp.co.kr`), and **(3) expert-network services** (research and consulting). In **October 2024**, the parent company rebranded from 드라마앤컴퍼니 to **리멤버앤컴퍼니** — a public commitment to the consumer brand as the company's identity. CEO 최재호 framed the rebrand as the "second leap" (`제2의 도약`), positioning Remember as the central infrastructure of *Korean business networking* (tech42.co.kr, thebigdata.co.kr, 2024).
345
+
346
+ What Remember refuses, visually and verbally, is the aesthetic of two adjacent categories. It refuses the **playful consumer fintech** register (Toss-blue, illustration-led empty states, casual `해요체`) — its 45+ executive users would read that as a downgrade. It also refuses the **engineered cobalt of recruiting marketplaces** (Wanted, LinkedIn) — Remember is not a transactional marketplace where users churn after a successful hire; it is a *long-residency* product where the user's contact graph compounds for a decade. Black-as-primary, dense layouts, restrained typography, and the conspicuous absence of brand-mascot illustration all express this: Remember is built to *stay* in the user's professional life, not to perform during it.
347
+
348
+ ## 12. Principles
349
+
350
+ 1. **Density is trust.** A career feed that shows 20 jobs per viewport feels like *opportunity*; a feed that shows 4 feels like a curated dead-end. *UI implication:* prefer chromeless cards, 4–6px radius, no shadow on list items. Reserve shadow for stateful overlays.
351
+ 2. **Black is the action color.** Black communicates seniority and seriousness in Korean B2B; saturated colors communicate consumer marketing. *UI implication:* primary CTA bg = `#000000`, never `#0066FF` or `#FF5414`. Orange is reserved for conversion-only moments.
352
+ 3. **One conversion punch per screen.** Signup orange (`#FF5414`) appears at most once per surface — when repeated, it loses urgency and starts to look like advertising. *UI implication:* growth CTAs use orange; in-product primary actions stay black.
353
+ 4. **Borders, not fills, define interactive density.** Filter rows and chip groups carry information through `#D4D4D4` hairlines, not background tints. *UI implication:* default chip = transparent bg + 1px border; selected = inverted black fill. Never colored fills for filter state.
354
+ 5. **The business card is the brand atom.** Every legacy product affordance — and every new one — should be visually translatable to "this looks like a name card." *UI implication:* the contact/profile card uses ~8–12px radius, white bg, `#222` heading, `#808080` meta, and the lightest possible shadow to suggest physical paper.
355
+ 6. **Korean first, English second.** Strings, dates, salary formats, and address conventions assume Korean primary. *UI implication:* `7년~12년 차`, `서울/강남구`, `7,000만원` — never `7Y–12Y`, `Seoul`, or `₩70M` on primary surfaces.
356
+ 7. **No mascots, no illustration on product surfaces.** The Remember product surface has zero brand-character illustration. Marketing surfaces may use spot illustration; the product cannot. *UI implication:* empty states are sentence-led; error states are sentence-led; only growth banners may host illustration.
357
+
358
+ ## 13. Personas
359
+
360
+ *Personas below are fictional archetypes informed by publicly described Korean B2B-network user segments — not individual people.*
361
+
362
+ **현우 (Hyunwoo), 38, Seoul.** Mid-level marketing manager at a Series-D startup. Has had a Remember account since 2018. Opens the app once a week — usually when a stranger requests his card after a meeting and he wants to quickly send back his digitized version. Maintains ~1,200 contacts in the app, more than in his actual phone. Every 6–9 months he uses the career surface to passively browse scout messages, even when he's not actively looking — *"just keeping the door open."* Distrusts career platforms that demand he upload a resume; trusts Remember because he's "always already in it."
363
+
364
+ **박 이사 (Director Park), 52, Bundang.** Executive director at a mid-cap manufacturing firm. The Remember app is the most-used non-KakaoTalk app on his phone. Uses it to: (a) verify the contact information of new business counterparts before meetings, (b) accept headhunter outreach from search firms, (c) cross-check job-title histories of vendors. Will not accept a friend-request from anyone he hasn't met in person. Reads Korean only; English UI strings are invisible. Pays for the premium tier without thinking about it.
365
+
366
+ **지윤 (Jiyoon), 29, Seongnam.** Senior software engineer at a mid-size tech company. Has used Remember for 3 years for the career surface, not the contact one — she joined when a recruiter from her current company scouted her through Remember in 2022. Toggles "open to offers" on/off based on her current job satisfaction. Uses Wanted for active job search and Remember for *passive* signal — the distinction matters to her. Reads English natively but uses Korean UI for speed.
367
+
368
+ **민호 (Minho), 24, Daegu.** New-grad consultant at a Big-4 firm. Set up Remember during onboarding week because his team lead told him to ("everyone here has it"). Uses it once a month, mostly to log new contacts from client meetings. Will become a daily user in 5–8 years, when his contact graph crosses ~400 and the network effect engages. Right now he's still in the "why do I need this when I have LinkedIn" phase.
369
+
370
+ ## 14. States
371
+
372
+ | State | Treatment |
373
+ |---|---|
374
+ | **Empty (first use)** | Single paragraph of `#808080` body text explaining the value of populating the surface (`스카우트 제안을 받으면 여기에 표시돼요`). One secondary button below in black. Never illustration. Never `데이터가 없어요`. |
375
+ | **Empty (filter cleared)** | Single line of `#808080` caption (`조건에 맞는 공고가 없어요`). No button — user resets the filter themselves via the chip row. |
376
+ | **Loading (first paint)** | Skeleton blocks at `#F2F2F2` (`neutral 100`) matching the final card geometry — 162×201 rectangles for job cards. Salary and years-of-experience fields render as `--` until resolved, never as skeleton. |
377
+ | **Loading (refresh)** | Top inline spinner in `#222222`. No blocking overlay. Existing content stays visible with its previous values. |
378
+ | **Error (inline field)** | Red 2px border on the input (inferred — Korean fintech convention; not Tier 1 captured on the career surface) + red helper text below at 13px / 400. Single actionable sentence. |
379
+ | **Error (toast / banner)** | `#222222` background, `#FFFFFF` 14px / 400 text, 3s auto-dismiss. One sentence. No icons. Anchored to bottom on mobile, top-right on desktop. |
380
+ | **Error (server / page-blocking)** | Reserved for outage. White screen, centered single-line message in `#222` 16px / 600, retry button in black below. No illustration. |
381
+ | **Success (inline)** | Mint flash — `#D9FCF2` background fades behind the updated element for 300ms, then returns to default. For routine confirmations like "공고 저장됨." |
382
+ | **Success (application submitted)** | Dedicated confirmation screen. `#239E7B` checkmark top-center, application summary below, single black `확인` button. This weight is intentional — a job application is not a toast. |
383
+ | **Skeleton (job-card grid)** | `#F2F2F2` blocks at exact card dimensions. 1.2s shimmer with 8% white linear-gradient highlight. Rounded at 0–4px to match card geometry. Never used on salary or years-of-experience values — those render as `--`. |
384
+ | **Disabled (button)** | Button opacity drops to ~40%. Background color is preserved (black stays black, orange stays orange) so the geometry and identity are stable when re-enabled. |
385
+ | **Loading inside pressed button** | Text is replaced by a 3-dot animation in `#FFFFFF` (on black bg) or `#FFFFF9` (on orange bg). Button width is preserved — no resize, no double-submit. |
386
+
387
+ ## 15. Motion & Easing
388
+
389
+ **Durations** (named, not raw milliseconds):
390
+
391
+ | Token | Value | Use |
392
+ |---|---|---|
393
+ | `motion-instant` | 0ms | Toggle flips, checkbox state, filter-chip select/deselect |
394
+ | `motion-fast` | 150ms | Hover, focus, small reveals, button press overlay |
395
+ | `motion-standard` | 250ms | The default — sheet opens, modal expands, tab switches, autocomplete dropdown |
396
+ | `motion-emphasized` | 400ms | Success checkmark draw, onboarding step advance, scout-message arrival |
397
+ | `motion-page` | 300ms | Route transitions between top-level tabs (홈 / 채용 / 명함 / 커뮤니티) |
398
+
399
+ **Easings:**
400
+
401
+ | Token | Curve | Use |
402
+ |---|---|---|
403
+ | `ease-enter` | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Things appearing — sheets, toasts, dropdowns, screen pushes |
404
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Things leaving — dismissals, pops, sheet drag-down |
405
+ | `ease-standard` | `cubic-bezier(0.4, 0.0, 0.2, 1)` | Two-way transitions — collapsible filter groups, tab content swap |
406
+ | `ease-snap` | `cubic-bezier(0.2, 0.9, 0.1, 1)` | Sticky-header collapse on scroll, filter-chip selection inversion. Slight overshoot for tactile confirmation. |
407
+
408
+ **Signature motions.**
409
+
410
+ 1. **Filter-chip invert.** When a filter is selected, the chip background fills from `transparent` → `#222222` in 150ms with `ease-snap`, while the label color flips white. The 150ms is fast enough to feel like a hardware toggle, slow enough to register the change.
411
+ 2. **Job-card hover (desktop).** Cards lift 0px and gain a faint `0 1px 3px rgba(0,0,0,0.06)` shadow over 150ms with `ease-fast`. The title color stays the same — Remember does not link-underline on hover.
412
+ 3. **Sticky-header collapse.** On scroll-down, the dark hero band collapses to a thinner sticky bar over 250ms with `ease-snap`. On scroll-up, expansion is `ease-enter` — leaving feels light, returning feels welcoming.
413
+ 4. **Scout-message arrival.** When a new scout message arrives, the badge counter on the nav increments with a brief 1.05× scale pulse (400ms, `ease-emphasized`). This is the one place where motion is celebratory — receiving a recruiter offer is a status moment.
414
+ 5. **Reduce motion.** If `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. Crossfades replace slides. The app stays usable; just less kinetic.
415
+
416
+ <!--
417
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
418
+
419
+ Direct verification via WebFetch / playwright live inspect (2026-05-13):
420
+ - https://www.rememberapp.co.kr/ → redirects to https://career.rememberapp.co.kr/job/postings
421
+ Tier 1 live computed-style capture confirmed: Pretendard body font, primary CTA #000000,
422
+ filter chips 1px #D4D4D4, search input #F2F2F2 52px tall, growth CTA #FF5414.
423
+ - https://corp.remember.co.kr/company — mission ("일하는 사람과 기회를 연결하여 성공으로 이끈다"),
424
+ founders 최재호 / 송기홍, business-card-app origin story confirmed.
425
+ - https://corp.remember.co.kr/ — tagline "프로를 위한 모든 기회, 리멤버가 연결합니다."
426
+ - https://dramancompany.github.io/remember-ui/ — Storybook root reachable; body bg #F3F2EF,
427
+ font-family Pretendard, sans-serif. Source repo (github.com/dramancompany/remember-ui)
428
+ returns HTTP 404 — not publicly readable as of 2026-05-13.
429
+
430
+ Founder-quote and rebrand context (2024 사명 변경 → 리멤버앤컴퍼니, "제2의 도약"):
431
+ - platum.kr/archives/236180, tech42.co.kr (2024 미디어데이 coverage),
432
+ thebigdata.co.kr/view.php?ud=202410161600341264edcbfa73b7_23.
433
+
434
+ Tier 2 cross-validation unavailable:
435
+ - getdesign.md/remember returns "No designs found for 'remember'."
436
+ - styles.refero.design/?q=remember returns "Collection not found — 404."
437
+ - All Tier 1 claims rest on live computed-style capture from the public career surface.
438
+
439
+ Personas (§13) are fictional archetypes informed by publicly described Korean
440
+ B2B-network user segments. Any resemblance to specific individuals is unintended.
441
+
442
+ Interpretive claims (e.g., "Black is the action color because Korean B2B reads
443
+ black as professional") are editorial readings of the captured palette, not
444
+ documented Remember statements.
445
+ -->
@@ -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.