getrelay 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/bin/relay.js +362 -0
  4. package/design-md/airbnb/DESIGN.md +545 -0
  5. package/design-md/airbnb/README.md +5 -0
  6. package/design-md/airtable/DESIGN.md +554 -0
  7. package/design-md/airtable/README.md +5 -0
  8. package/design-md/apple/DESIGN.md +562 -0
  9. package/design-md/apple/README.md +5 -0
  10. package/design-md/binance/DESIGN.md +634 -0
  11. package/design-md/binance/README.md +5 -0
  12. package/design-md/bmw/DESIGN.md +544 -0
  13. package/design-md/bmw/README.md +5 -0
  14. package/design-md/bmw-m/DESIGN.md +503 -0
  15. package/design-md/bmw-m/README.md +5 -0
  16. package/design-md/bugatti/DESIGN.md +454 -0
  17. package/design-md/bugatti/README.md +5 -0
  18. package/design-md/cal/DESIGN.md +542 -0
  19. package/design-md/cal/README.md +5 -0
  20. package/design-md/claude/DESIGN.md +589 -0
  21. package/design-md/claude/README.md +5 -0
  22. package/design-md/clay/DESIGN.md +541 -0
  23. package/design-md/clay/README.md +5 -0
  24. package/design-md/clickhouse/DESIGN.md +544 -0
  25. package/design-md/clickhouse/README.md +5 -0
  26. package/design-md/cohere/DESIGN.md +451 -0
  27. package/design-md/cohere/README.md +5 -0
  28. package/design-md/coinbase/DESIGN.md +570 -0
  29. package/design-md/coinbase/README.md +5 -0
  30. package/design-md/composio/DESIGN.md +506 -0
  31. package/design-md/composio/README.md +5 -0
  32. package/design-md/cursor/DESIGN.md +537 -0
  33. package/design-md/cursor/README.md +5 -0
  34. package/design-md/elevenlabs/DESIGN.md +504 -0
  35. package/design-md/elevenlabs/README.md +5 -0
  36. package/design-md/expo/DESIGN.md +526 -0
  37. package/design-md/expo/README.md +5 -0
  38. package/design-md/ferrari/DESIGN.md +531 -0
  39. package/design-md/ferrari/README.md +5 -0
  40. package/design-md/figma/DESIGN.md +578 -0
  41. package/design-md/figma/README.md +5 -0
  42. package/design-md/framer/DESIGN.md +544 -0
  43. package/design-md/framer/README.md +5 -0
  44. package/design-md/hashicorp/DESIGN.md +575 -0
  45. package/design-md/hashicorp/README.md +5 -0
  46. package/design-md/ibm/DESIGN.md +550 -0
  47. package/design-md/ibm/README.md +5 -0
  48. package/design-md/intercom/DESIGN.md +546 -0
  49. package/design-md/intercom/README.md +5 -0
  50. package/design-md/kraken/DESIGN.md +125 -0
  51. package/design-md/kraken/README.md +5 -0
  52. package/design-md/lamborghini/DESIGN.md +288 -0
  53. package/design-md/lamborghini/README.md +5 -0
  54. package/design-md/linear.app/DESIGN.md +548 -0
  55. package/design-md/linear.app/README.md +5 -0
  56. package/design-md/lovable/DESIGN.md +298 -0
  57. package/design-md/lovable/README.md +5 -0
  58. package/design-md/mastercard/DESIGN.md +365 -0
  59. package/design-md/mastercard/README.md +5 -0
  60. package/design-md/meta/DESIGN.md +683 -0
  61. package/design-md/meta/README.md +5 -0
  62. package/design-md/minimax/DESIGN.md +746 -0
  63. package/design-md/minimax/README.md +5 -0
  64. package/design-md/mintlify/DESIGN.md +852 -0
  65. package/design-md/mintlify/README.md +5 -0
  66. package/design-md/miro/DESIGN.md +825 -0
  67. package/design-md/miro/README.md +5 -0
  68. package/design-md/mistral.ai/DESIGN.md +773 -0
  69. package/design-md/mistral.ai/README.md +5 -0
  70. package/design-md/mongodb/DESIGN.md +767 -0
  71. package/design-md/mongodb/README.md +5 -0
  72. package/design-md/nike/DESIGN.md +575 -0
  73. package/design-md/nike/README.md +5 -0
  74. package/design-md/notion/DESIGN.md +821 -0
  75. package/design-md/notion/README.md +5 -0
  76. package/design-md/nvidia/DESIGN.md +640 -0
  77. package/design-md/nvidia/README.md +5 -0
  78. package/design-md/ollama/DESIGN.md +539 -0
  79. package/design-md/ollama/README.md +5 -0
  80. package/design-md/opencode.ai/DESIGN.md +521 -0
  81. package/design-md/opencode.ai/README.md +5 -0
  82. package/design-md/pinterest/DESIGN.md +597 -0
  83. package/design-md/pinterest/README.md +5 -0
  84. package/design-md/playstation/DESIGN.md +661 -0
  85. package/design-md/playstation/README.md +5 -0
  86. package/design-md/posthog/DESIGN.md +690 -0
  87. package/design-md/posthog/README.md +5 -0
  88. package/design-md/raycast/DESIGN.md +669 -0
  89. package/design-md/raycast/README.md +5 -0
  90. package/design-md/renault/DESIGN.md +589 -0
  91. package/design-md/renault/README.md +5 -0
  92. package/design-md/replicate/DESIGN.md +616 -0
  93. package/design-md/replicate/README.md +5 -0
  94. package/design-md/resend/DESIGN.md +585 -0
  95. package/design-md/resend/README.md +5 -0
  96. package/design-md/revolut/DESIGN.md +636 -0
  97. package/design-md/revolut/README.md +5 -0
  98. package/design-md/runwayml/DESIGN.md +244 -0
  99. package/design-md/runwayml/README.md +5 -0
  100. package/design-md/sanity/DESIGN.md +357 -0
  101. package/design-md/sanity/README.md +5 -0
  102. package/design-md/sentry/DESIGN.md +551 -0
  103. package/design-md/sentry/README.md +5 -0
  104. package/design-md/shopify/DESIGN.md +516 -0
  105. package/design-md/shopify/README.md +5 -0
  106. package/design-md/slack/DESIGN.md +482 -0
  107. package/design-md/spacex/DESIGN.md +363 -0
  108. package/design-md/spacex/README.md +5 -0
  109. package/design-md/spotify/DESIGN.md +246 -0
  110. package/design-md/spotify/README.md +5 -0
  111. package/design-md/starbucks/DESIGN.md +580 -0
  112. package/design-md/starbucks/README.md +5 -0
  113. package/design-md/stripe/DESIGN.md +487 -0
  114. package/design-md/stripe/README.md +5 -0
  115. package/design-md/supabase/DESIGN.md +462 -0
  116. package/design-md/supabase/README.md +5 -0
  117. package/design-md/superhuman/DESIGN.md +448 -0
  118. package/design-md/superhuman/README.md +5 -0
  119. package/design-md/tesla/DESIGN.md +286 -0
  120. package/design-md/tesla/README.md +5 -0
  121. package/design-md/theverge/DESIGN.md +339 -0
  122. package/design-md/theverge/README.md +5 -0
  123. package/design-md/together.ai/DESIGN.md +633 -0
  124. package/design-md/together.ai/README.md +5 -0
  125. package/design-md/uber/DESIGN.md +636 -0
  126. package/design-md/uber/README.md +5 -0
  127. package/design-md/vercel/DESIGN.md +736 -0
  128. package/design-md/vercel/README.md +5 -0
  129. package/design-md/vodafone/DESIGN.md +538 -0
  130. package/design-md/vodafone/README.md +5 -0
  131. package/design-md/voltagent/DESIGN.md +521 -0
  132. package/design-md/voltagent/README.md +5 -0
  133. package/design-md/warp/DESIGN.md +526 -0
  134. package/design-md/warp/README.md +5 -0
  135. package/design-md/webflow/DESIGN.md +588 -0
  136. package/design-md/webflow/README.md +5 -0
  137. package/design-md/wired/DESIGN.md +497 -0
  138. package/design-md/wired/README.md +5 -0
  139. package/design-md/wise/DESIGN.md +544 -0
  140. package/design-md/wise/README.md +5 -0
  141. package/design-md/x.ai/DESIGN.md +465 -0
  142. package/design-md/x.ai/README.md +5 -0
  143. package/design-md/zapier/DESIGN.md +537 -0
  144. package/design-md/zapier/README.md +5 -0
  145. package/package.json +31 -0
@@ -0,0 +1,636 @@
1
+ ---
2
+ version: alpha
3
+ name: Uber Inspired
4
+ description: An inspired interpretation of Uber's design language — a transportation-and-delivery super-app brand whose web surface is a black-and-white duet, framed by a custom geometric display sans, accented by a single signature pill shape (radius 999px) on every interactive element, and decorated only by editorial 4:3 illustrations of riders, drivers, and city objects.
5
+
6
+ colors:
7
+ primary: "#000000"
8
+ on-primary: "#ffffff"
9
+ ink: "#000000"
10
+ body: "#5e5e5e"
11
+ mute: "#afafaf"
12
+ hairline-mid: "#4b4b4b"
13
+ canvas: "#ffffff"
14
+ canvas-soft: "#efefef"
15
+ canvas-softer: "#f3f3f3"
16
+ surface-pressed: "#e2e2e2"
17
+ link: "#0000ee"
18
+ on-dark: "#ffffff"
19
+ black-elevated: "#282828"
20
+
21
+ typography:
22
+ display-xxl:
23
+ fontFamily: UberMove, UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
24
+ fontSize: 52px
25
+ fontWeight: 700
26
+ lineHeight: 64px
27
+ display-xl:
28
+ fontFamily: UberMove, UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
29
+ fontSize: 36px
30
+ fontWeight: 700
31
+ lineHeight: 44px
32
+ display-lg:
33
+ fontFamily: UberMove, UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
34
+ fontSize: 32px
35
+ fontWeight: 700
36
+ lineHeight: 40px
37
+ display-md:
38
+ fontFamily: UberMove, UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
39
+ fontSize: 24px
40
+ fontWeight: 700
41
+ lineHeight: 32px
42
+ display-sm:
43
+ fontFamily: UberMove, UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
44
+ fontSize: 20px
45
+ fontWeight: 700
46
+ lineHeight: 28px
47
+ body-lg:
48
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
49
+ fontSize: 18px
50
+ fontWeight: 500
51
+ lineHeight: 24px
52
+ body-md:
53
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
54
+ fontSize: 16px
55
+ fontWeight: 400
56
+ lineHeight: 24px
57
+ body-md-strong:
58
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
59
+ fontSize: 16px
60
+ fontWeight: 500
61
+ lineHeight: 20px
62
+ body-sm:
63
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
64
+ fontSize: 14px
65
+ fontWeight: 400
66
+ lineHeight: 20px
67
+ body-sm-strong:
68
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
69
+ fontSize: 14px
70
+ fontWeight: 500
71
+ lineHeight: 16px
72
+ caption:
73
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
74
+ fontSize: 12px
75
+ fontWeight: 400
76
+ lineHeight: 20px
77
+ button-large:
78
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
79
+ fontSize: 18px
80
+ fontWeight: 500
81
+ lineHeight: 24px
82
+ button-md:
83
+ fontFamily: UberMoveText, system-ui, Helvetica Neue, Arial, sans-serif
84
+ fontSize: 16px
85
+ fontWeight: 500
86
+ lineHeight: 20px
87
+
88
+ rounded:
89
+ none: 0px
90
+ md: 8px
91
+ lg: 12px
92
+ xl: 16px
93
+ pill: 999px
94
+ pill-tab: 36px
95
+ full: 9999px
96
+
97
+ spacing:
98
+ xxs: 4px
99
+ xs: 6px
100
+ sm: 8px
101
+ md: 12px
102
+ lg: 16px
103
+ xl: 20px
104
+ 2xl: 24px
105
+ 3xl: 32px
106
+
107
+ components:
108
+ nav-bar:
109
+ backgroundColor: "{colors.canvas}"
110
+ textColor: "{colors.ink}"
111
+ typography: "{typography.body-md-strong}"
112
+ padding: "{spacing.lg} {spacing.3xl}"
113
+ nav-link:
114
+ textColor: "{colors.ink}"
115
+ typography: "{typography.body-md-strong}"
116
+ button-primary:
117
+ backgroundColor: "{colors.primary}"
118
+ textColor: "{colors.on-primary}"
119
+ typography: "{typography.button-md}"
120
+ rounded: "{rounded.pill}"
121
+ padding: "{spacing.md} {spacing.md}"
122
+ button-secondary:
123
+ backgroundColor: "{colors.canvas}"
124
+ textColor: "{colors.ink}"
125
+ typography: "{typography.button-md}"
126
+ rounded: "{rounded.pill}"
127
+ padding: "{spacing.md} {spacing.md}"
128
+ button-subtle:
129
+ backgroundColor: "{colors.canvas-soft}"
130
+ textColor: "{colors.ink}"
131
+ typography: "{typography.button-md}"
132
+ rounded: "{rounded.pill}"
133
+ padding: "{spacing.md} {spacing.lg}"
134
+ button-floating:
135
+ backgroundColor: "{colors.canvas}"
136
+ textColor: "{colors.ink}"
137
+ typography: "{typography.button-md}"
138
+ rounded: "{rounded.pill}"
139
+ padding: "{spacing.md}"
140
+ button-large-rounded:
141
+ backgroundColor: "{colors.primary}"
142
+ textColor: "{colors.on-primary}"
143
+ typography: "{typography.button-large}"
144
+ rounded: "{rounded.xl}"
145
+ padding: "{spacing.lg} {spacing.xl}"
146
+ button-tab-translucent:
147
+ backgroundColor: "{colors.canvas}"
148
+ textColor: "{colors.ink}"
149
+ typography: "{typography.body-md-strong}"
150
+ rounded: "{rounded.pill-tab}"
151
+ text-input:
152
+ backgroundColor: "{colors.canvas-soft}"
153
+ textColor: "{colors.ink}"
154
+ typography: "{typography.body-md}"
155
+ rounded: "{rounded.none}"
156
+ padding: "{spacing.lg}"
157
+ text-input-on-soft:
158
+ backgroundColor: "{colors.canvas-softer}"
159
+ textColor: "{colors.ink}"
160
+ typography: "{typography.body-md}"
161
+ rounded: "{rounded.none}"
162
+ padding: "{spacing.lg}"
163
+ card-content:
164
+ backgroundColor: "{colors.canvas}"
165
+ textColor: "{colors.ink}"
166
+ typography: "{typography.body-md}"
167
+ rounded: "{rounded.xl}"
168
+ padding: "{spacing.2xl}"
169
+ card-elevated:
170
+ backgroundColor: "{colors.canvas}"
171
+ textColor: "{colors.ink}"
172
+ typography: "{typography.body-md}"
173
+ rounded: "{rounded.xl}"
174
+ padding: "{spacing.2xl}"
175
+ card-soft-tinted:
176
+ backgroundColor: "{colors.canvas-soft}"
177
+ textColor: "{colors.ink}"
178
+ typography: "{typography.body-md}"
179
+ rounded: "{rounded.xl}"
180
+ padding: "{spacing.2xl}"
181
+ promo-card-illustrated:
182
+ backgroundColor: "{colors.canvas}"
183
+ textColor: "{colors.ink}"
184
+ typography: "{typography.display-md}"
185
+ rounded: "{rounded.xl}"
186
+ padding: "{spacing.2xl}"
187
+ promo-card-on-dark:
188
+ backgroundColor: "{colors.ink}"
189
+ textColor: "{colors.on-dark}"
190
+ typography: "{typography.display-md}"
191
+ rounded: "{rounded.xl}"
192
+ padding: "{spacing.2xl}"
193
+ request-form-card:
194
+ backgroundColor: "{colors.canvas}"
195
+ textColor: "{colors.ink}"
196
+ typography: "{typography.body-md}"
197
+ rounded: "{rounded.xl}"
198
+ padding: "{spacing.lg}"
199
+ request-form-input-row:
200
+ backgroundColor: "{colors.canvas-soft}"
201
+ textColor: "{colors.ink}"
202
+ typography: "{typography.body-md}"
203
+ rounded: "{rounded.none}"
204
+ padding: "{spacing.lg}"
205
+ category-button:
206
+ backgroundColor: "{colors.canvas-soft}"
207
+ textColor: "{colors.ink}"
208
+ typography: "{typography.body-sm-strong}"
209
+ rounded: "{rounded.pill}"
210
+ padding: "{spacing.sm} {spacing.lg}"
211
+ faq-row:
212
+ backgroundColor: "{colors.canvas}"
213
+ textColor: "{colors.ink}"
214
+ typography: "{typography.body-md-strong}"
215
+ padding: "{spacing.lg} 0"
216
+ app-download-pill:
217
+ backgroundColor: "{colors.ink}"
218
+ textColor: "{colors.on-dark}"
219
+ typography: "{typography.body-md-strong}"
220
+ rounded: "{rounded.pill}"
221
+ padding: "{spacing.md} {spacing.xl}"
222
+ hero-band-light:
223
+ backgroundColor: "{colors.canvas}"
224
+ textColor: "{colors.ink}"
225
+ typography: "{typography.display-xxl}"
226
+ padding: "{spacing.3xl} {spacing.3xl}"
227
+ hero-band-dark:
228
+ backgroundColor: "{colors.ink}"
229
+ textColor: "{colors.on-dark}"
230
+ typography: "{typography.display-xxl}"
231
+ padding: "{spacing.3xl} {spacing.3xl}"
232
+ showcase-image-card:
233
+ backgroundColor: "{colors.ink}"
234
+ textColor: "{colors.on-dark}"
235
+ typography: "{typography.display-xxl}"
236
+ rounded: "{rounded.xl}"
237
+ padding: "{spacing.3xl}"
238
+ link-blue:
239
+ textColor: "{colors.link}"
240
+ typography: "{typography.body-md}"
241
+ link-on-dark:
242
+ textColor: "{colors.on-dark}"
243
+ typography: "{typography.body-md}"
244
+ link-mute:
245
+ textColor: "{colors.hairline-mid}"
246
+ typography: "{typography.body-md}"
247
+ link-mute-soft:
248
+ textColor: "{colors.mute}"
249
+ typography: "{typography.body-md}"
250
+ icon-button-circular:
251
+ backgroundColor: "{colors.canvas-soft}"
252
+ textColor: "{colors.ink}"
253
+ rounded: "{rounded.full}"
254
+ footer:
255
+ backgroundColor: "{colors.primary}"
256
+ textColor: "{colors.on-dark}"
257
+ typography: "{typography.body-sm}"
258
+ padding: "{spacing.3xl} {spacing.3xl}"
259
+
260
+ # ─── Examples (illustrative) — auto-derived; resolve any TO_FILL markers below ───
261
+ ex-pricing-tier:
262
+ description: "Default tier card. Mirrors card-content chrome with canvas-soft surface and a faint border."
263
+ backgroundColor: "{colors.canvas-soft}"
264
+ textColor: "{colors.ink}"
265
+ borderColor: "{colors.surface-pressed}"
266
+ rounded: "{rounded.xl}"
267
+ padding: "{spacing.2xl}"
268
+ ex-pricing-tier-featured:
269
+ description: "Featured tier — polarity-flipped to ink with white text."
270
+ backgroundColor: "{colors.ink}"
271
+ textColor: "{colors.on-primary}"
272
+ rounded: "{rounded.xl}"
273
+ padding: "{spacing.2xl}"
274
+ ex-product-selector:
275
+ description: "Plan picker — re-purposed for the brand's Ride / Eats / Reserve tier picker. Uses category-button pills inside the frame."
276
+ backgroundColor: "{colors.canvas-soft}"
277
+ rounded: "{rounded.none}"
278
+ padding: "{spacing.2xl}"
279
+ ex-cart-drawer:
280
+ description: "Subscription summary — line items per add-on (NOT a literal e-commerce cart)."
281
+ backgroundColor: "{colors.canvas}"
282
+ rounded: "{rounded.xl}"
283
+ padding: "{spacing.2xl}"
284
+ item-divider: "{colors.surface-pressed}"
285
+ ex-app-shell-row:
286
+ description: "Sidebar nav row. Active state uses brand primary as a left-edge indicator bar."
287
+ backgroundColor: "{colors.canvas}"
288
+ activeIndicator: "{colors.primary}"
289
+ rounded: "{rounded.md}"
290
+ padding: "{spacing.md} {spacing.lg}"
291
+ ex-data-table-cell:
292
+ description: "Default data-table th + td chrome. Header uses body-sm-strong 500 weight; body uses body-sm."
293
+ headerBackground: "{colors.canvas-soft}"
294
+ headerTypography: "{typography.body-sm-strong}"
295
+ bodyTypography: "{typography.body-sm}"
296
+ cellPadding: "{spacing.md} {spacing.lg}"
297
+ rowBorder: "{colors.surface-pressed}"
298
+ ex-auth-form-card:
299
+ description: "Sign-in / sign-up card. Mirrors card-content chrome with text-input primitives inside."
300
+ backgroundColor: "{colors.canvas-soft}"
301
+ rounded: "{rounded.xl}"
302
+ padding: "{spacing.2xl}"
303
+ ex-modal-card:
304
+ description: "Modal dialog surface — same chrome as card-content with Level 2 drop shadow."
305
+ backgroundColor: "{colors.canvas}"
306
+ rounded: "{rounded.xl}"
307
+ padding: "{spacing.2xl}"
308
+ ex-empty-state-card:
309
+ description: "Empty-state illustration frame. Generous padding on canvas-soft surface."
310
+ backgroundColor: "{colors.canvas-soft}"
311
+ rounded: "{rounded.xl}"
312
+ padding: "{spacing.3xl}"
313
+ captionTypography: "{typography.body-md}"
314
+ ex-toast:
315
+ description: "Toast notification surface — flat-cornered card-content chrome with Level 2 drop shadow."
316
+ backgroundColor: "{colors.canvas}"
317
+ rounded: "{rounded.xl}"
318
+ padding: "{spacing.md} {spacing.lg}"
319
+ typography: "{typography.body-sm}"
320
+
321
+ ---
322
+
323
+
324
+ ## Overview
325
+
326
+ Uber is a transportation-and-delivery super-app — ride, eats, freight, the whole urban logistics layer — and the brand's web surface signals that scale through restraint: no third colour, no accent palette, no illustration that fights the headline. The page is structurally a black-and-white duet, where black `{colors.primary}` is the conversion anchor (every CTA pill, every nav login button, the footer fill) and `{colors.canvas}` white carries everything else. The only consistent decoration is a body of editorial 4:3 illustrations — riders, drivers, parking lots, cars-on-highway — that ground the marketing without leaking accent colour into the system.
327
+
328
+ Type is the second decisive voice. Two custom faces carry every page: `UberMove` at weight 700 for headlines (32 – 52 px display sizes with tight 1.22 – 1.25 line-height, never letter-spaced), and `UberMoveText` at weights 400 / 500 for body, button, and link. The pairing reads as engineering-grade — no italic, no decorative weight, no tracking flourish. Headlines are sentence-case; eyebrows are uppercase only when used as the section eyebrow ("WHY BECOME"); buttons are sentence-case.
329
+
330
+ The single shape signature is the pill. Every interactive element rounds to `{rounded.pill}` 999 px — primary CTA, secondary CTA, subtle gray pill, white floating pill, category chip, app-download badge. Cards and surfaces round to `{rounded.xl}` 16 px; the larger "Go Get 2026" annual-showcase card uses the same 16 px shape, just at scale. The tab-toggle on the hero ride-request form uses an off-shape `{rounded.pill-tab}` 36 px — barely-pill, deliberately tighter than the canonical 999 px pill.
331
+
332
+ **Key Characteristics:**
333
+ - A two-colour CTA hierarchy: black `{colors.primary}` pill for primary conversion targets; white `{colors.canvas}` pill (sometimes with a soft drop shadow) for secondary; subtle gray `{colors.canvas-soft}` pill for tertiary or chip variants.
334
+ - The pill is the single signature shape — `{rounded.pill}` 999 px on every interactive element except the tab-toggle (`{rounded.pill-tab}` 36 px) and the larger product cards (`{rounded.xl}` 16 px).
335
+ - Every headline is sentence-case in `{typography.display-xl}` / `{typography.display-xxl}` weight 700; no all-caps display.
336
+ - Editorial 4:3 illustrations of riders / drivers / cars are the only consistent decorative system; no gradients, no atmospheric backdrops, no shadows that aren't card-elevation hints.
337
+ - A signature alternating-band rhythm: white feature card → black promo card (with white text and white CTA) → white feature card → black footer. The black bands are NOT hero-only; they appear mid-page as promo callouts.
338
+ - A signature ride-request form card on the hero: pickup pin input + destination input + date/time chip + black "See prices" pill, all stacked inside a `{rounded.xl}` shadowed card.
339
+
340
+ ## Colors
341
+
342
+ ### Brand & Accent
343
+ - **Ink Black** (`{colors.primary}` — `#000000`): The brand's only conversion colour. Every primary CTA pill, the footer fill, every dark promo band, every nav login button. The system has no secondary accent.
344
+ - **Surface Pressed** (`{colors.surface-pressed}` — `#e2e2e2`): The pressed-state fill for white pills — a soft grey that's used only in active / pressed states.
345
+ - **Black Elevated** (`{colors.black-elevated}` — `#282828`): A near-black used on hover for the translucent white tab-toggle pill. Documented as a system colour because it appears on a recurring brand control.
346
+
347
+ ### Surface
348
+ - **Canvas** (`{colors.canvas}` — `#ffffff`): The default page background.
349
+ - **Canvas Soft** (`{colors.canvas-soft}` — `#efefef`): The soft gray fill for category chips, form-input rows inside the ride-request card, and subtle pill buttons.
350
+ - **Canvas Softer** (`{colors.canvas-softer}` — `#f3f3f3`): A slightly lighter gray used as a nested-input fill on white surfaces.
351
+
352
+ ### Text
353
+ - **Ink** (`{colors.ink}` — `#000000`): Every heading and body paragraph on light surfaces.
354
+ - **Body** (`{colors.body}` — `#5e5e5e`): Secondary text — captions, sub-headings, supporting copy.
355
+ - **Hairline Mid** (`{colors.hairline-mid}` — `#4b4b4b`): A mid-gray used for muted link text inside footer columns and breadcrumb-style nav.
356
+ - **Mute** (`{colors.mute}` — `#afafaf`): The lightest text role — placeholder text, fine print, low-priority metadata.
357
+ - **On Dark** (`{colors.on-dark}` — `#ffffff`): All text on `{colors.ink}` surfaces (footer, dark promo bands).
358
+
359
+ ### Semantic
360
+ The brand does not maintain a separate error / success / warning palette in its public marketing surface. Validation cues come from the primary black or from the brand's editorial illustrations. The `#0000ee` link colour is the system's only chromatic — it's the browser-default link blue, appearing in body-copy inline links inside legal / footer text.
361
+
362
+ ## Typography
363
+
364
+ ### Font Family
365
+ Two custom faces carry the entire system:
366
+
367
+ 1. **A custom geometric display sans** (extracted as `UberMove`) for every headline. Weight 700 only; no italic; no tracking variation. Sizes range from `display-sm` 20 px up to `display-xxl` 52 px on the hero. Line-heights tighten to 1.22 – 1.25 at display sizes for a poured-on-the-page look.
368
+ 2. **A custom text sans** (extracted as `UberMoveText`) for body, button, link, and small headings. Weights 400 and 500 are the working pair. Used at 12 – 18 px; 24 px maximum for ride-request form labels. Tracking is always neutral.
369
+
370
+ The two faces share a family DNA but never overlap roles — the display face never carries a body paragraph; the text face never carries a hero headline.
371
+
372
+ ### Hierarchy
373
+
374
+ | Token | Size | Weight | Line Height | Use |
375
+ |---|---|---|---|---|
376
+ | `{typography.display-xxl}` | 52px | 700 | 64px | Hero headline ("Go anywhere with Uber", "Drive when you want"). |
377
+ | `{typography.display-xl}` | 36px | 700 | 44px | Page section headlines ("Plan for later", "Safety, simplified"). |
378
+ | `{typography.display-lg}` | 32px | 700 | 40px | Promo-card headlines. |
379
+ | `{typography.display-md}` | 24px | 700 | 32px | Card titles, illustrated-promo headlines. |
380
+ | `{typography.display-sm}` | 20px | 700 | 28px | Sub-card headings. |
381
+ | `{typography.body-lg}` | 18px | 500 | 24px | Lead paragraphs and larger body. |
382
+ | `{typography.body-md}` | 16px | 400 | 24px | Default paragraph body. |
383
+ | `{typography.body-md-strong}` | 16px | 500 | 20px | Bolded inline body and most button labels. |
384
+ | `{typography.body-sm}` | 14px | 400 | 20px | Captions, secondary metadata. |
385
+ | `{typography.body-sm-strong}` | 14px | 500 | 16px | Bold caption / chip labels. |
386
+ | `{typography.caption}` | 12px | 400 | 20px | Fine print, footer secondary lines. |
387
+ | `{typography.button-large}` | 18px | 500 | 24px | Large rounded buttons inside the ride-request form. |
388
+ | `{typography.button-md}` | 16px | 500 | 20px | Default button label. |
389
+
390
+ ### Principles
391
+ - **Sentence-case is the voice.** No all-caps headlines. Eyebrow tags ("WHY BECOME") are the rare exception.
392
+ - **Weight 700 is for headlines; weight 500 is for buttons and emphasis.** Don't promote button labels to 700.
393
+ - **No tracking flourish.** The display face is never letter-spaced, positive or negative.
394
+ - **Two faces, two roles.** UberMove for display; UberMoveText for everything else. Never cross the streams.
395
+
396
+ ### Note on Font Substitutes
397
+ The two faces are proprietary. Open-source substitutes:
398
+ - **Display sans** — *Inter* weight 700 with `font-feature-settings: "ss01"` enabled comes closest. *Geist* weight 700 is the second-best option.
399
+ - **Text sans** — *Inter* weights 400 / 500 match the geometric width and x-height. *Plus Jakarta Sans* is a softer alternative if the brand wants a less neutral feel.
400
+
401
+ ## Layout
402
+
403
+ ### Spacing System
404
+ - **Base unit**: 4 px. Most captured values are multiples of 4 with a few 6-px sub-multiples (10, 14) inside button padding.
405
+ - **Tokens**: `{spacing.xxs}` 4 px · `{spacing.xs}` 6 px · `{spacing.sm}` 8 px · `{spacing.md}` 12 px · `{spacing.lg}` 16 px · `{spacing.xl}` 20 px · `{spacing.2xl}` 24 px · `{spacing.3xl}` 32 px.
406
+ - **Section padding**: marketing bands sit at `{spacing.3xl}` 32 px top/bottom on tighter pages and `{spacing.3xl} {spacing.3xl}` for hero bands; promo cards inset at `{spacing.2xl}` 24 px.
407
+ - **Card interior padding**: content cards sit at `{spacing.2xl}` 24 px; the ride-request form uses `{spacing.lg}` 16 px to keep the form compact.
408
+ - **Inline gap**: button rows, category chip rows, app-store pill rows use `{spacing.md}` 12 px between siblings.
409
+
410
+ ### Grid & Container
411
+ - **Max width**: ~1200 px container; centred with horizontal gutters of `{spacing.3xl}` 32 px on desktop, `{spacing.lg}` 16 px on mobile.
412
+ - **Column patterns**:
413
+ - Promo-card rows: 2-up at desktop (image left + content right, alternating sides), 1-up at mobile.
414
+ - Category chips: horizontal flex with wrap.
415
+ - FAQ rows: full-width single-column.
416
+ - App-download pills: 2-up at desktop (Rider + Driver), 1-up at mobile.
417
+
418
+ ### Whitespace Philosophy
419
+ Card-to-card spacing carries the rhythm — between two stacked promo cards there's roughly a full `{spacing.3xl}` 32 px gutter; inside a card the headline / paragraph / CTA stack is tight (`{spacing.sm}` 8 px between siblings). The black promo bands and the footer have no internal hairlines — content sits on flat ink with white text.
420
+
421
+ ### Responsive Strategy
422
+
423
+ #### Breakpoints
424
+
425
+ | Name | Width | Key Changes |
426
+ |---|---|---|
427
+ | Mobile | < 600px | Nav collapses to hamburger; promo cards stack; ride-request form becomes full-width. |
428
+ | Mobile-Large | 600–767px | Same as Mobile; chip rows enable horizontal scroll. |
429
+ | Tablet | 768–1119px | 2-up promo grid at upper widths; nav stays horizontal until ≥ 1120 px. |
430
+ | Desktop | 1120–1135px | Full nav row visible; promo cards 2-up. |
431
+ | Desktop-Large | ≥ 1136px | Container caps at ~1200 px; bands stay edge-to-edge while content centres. |
432
+
433
+ #### Touch Targets
434
+ The pill `button-primary` renders at ~44 px tall (10 px vertical padding + 24 px label line-height); the larger `button-large-rounded` at ~56 px. Both meet WCAG AAA at all breakpoints. Category chips inflate to ≥ 44 px tall through extra padding on touch viewports.
435
+
436
+ #### Collapsing Strategy
437
+ - **Nav**: full link row + Help / Log in / Sign up pills at desktop. Collapses to logo + hamburger at mobile; menu overlays full-screen with the same link list stacked.
438
+ - **Ride-request form card**: at desktop, the form sits inside a max-490-px `{rounded.xl}` card with shadow. At mobile, full-width with edge-to-edge.
439
+ - **Promo cards**: at desktop, image-left + content-right (or alternating). At mobile, image always above content.
440
+ - **Annual showcase card**: scales from a 2:3 desktop frame to a 4:3 mobile frame; date text resizes proportionally.
441
+
442
+ #### Image Behavior
443
+ - **Editorial illustrations**: 4:3 or 16:9 hard-edge rectangles; never cropped to a circle, never tilted. Aspect preserved.
444
+ - **Photography**: same — square or landscape; framed inside `{rounded.xl}` card chrome.
445
+ - **Maps in ride-request flow**: full-bleed inside a card; rounded corners follow the parent card.
446
+ - **Logo bar**: SVG vector, monochrome, consistent height.
447
+
448
+ ## Elevation & Depth
449
+
450
+ | Level | Treatment | Use |
451
+ |---|---|---|
452
+ | Level 0 — Flat | No shadow, no border. | Default — most cards and surfaces lean on hairline-of-canvas contrast. |
453
+ | Level 1 — Subtle Drop | `rgba(0, 0, 0, 0.12) 0px 4px 16px 0px` | Card-elevated frames around promo cards on light bands. |
454
+ | Level 2 — Card Drop | `rgba(0, 0, 0, 0.16) 0px 4px 16px 0px` | The ride-request form card on the hero; large content cards with embedded forms. |
455
+ | Level 3 — Pill Float | `rgba(0, 0, 0, 0.16) 0px 2px 8px 0px` | The floating white pill button (the one that floats over hero photography). |
456
+
457
+ ### Decorative Depth
458
+ - **Black bands as polarity-flip depth**: the brand uses pure black `{colors.primary}` mid-page bands to break the white-on-white rhythm. The polarity shift IS the depth cue.
459
+ - **Editorial illustrations as in-card depth**: every promo card has a single 4:3 illustration as its left or right column. The illustration's visual weight is part of the card's elevation read.
460
+ - **Pill geometry as micro-depth**: `{rounded.pill}` 999 px applied at varying button heights creates a stack of nested pills that reads as visual hierarchy.
461
+
462
+ ## Shapes
463
+
464
+ ### Border Radius Scale
465
+
466
+ | Token | Value | Use |
467
+ |---|---|---|
468
+ | `{rounded.none}` | 0px | Full-bleed hero bands, footer fill, raw image edges. |
469
+ | `{rounded.md}` | 8px | Form-input fields inside the ride-request card. |
470
+ | `{rounded.lg}` | 12px | Smaller secondary card chrome. |
471
+ | `{rounded.xl}` | 16px | Canonical card radius — promo cards, content cards, ride-request form card, annual-showcase card, large rounded buttons. |
472
+ | `{rounded.pill}` | 999px | The brand's signature interactive shape — every pill button, category chip, app-download pill, icon button. |
473
+ | `{rounded.pill-tab}` | 36px | The translucent-white tab-toggle pill on the hero (Ride / Drive). |
474
+ | `{rounded.full}` | 9999px | Identical effect to `{rounded.pill}` for circular icon containers. |
475
+
476
+ ### Photography Geometry
477
+ - **Editorial illustrations**: 4:3 landscape inside promo cards; 16:9 for full-width showcase frames.
478
+ - **Driver / rider portraits**: 4:5 portrait crop; framed by `{rounded.xl}` 16 px card chrome.
479
+ - **Annual showcase image**: 2:3 portrait at desktop, scaling to 4:3 at mobile. The image fills the card; the headline overlays the bottom.
480
+ - **Logo bar**: monochrome SVG vectors at consistent ~24 px height.
481
+ - **Avatars** (where used): square or `{rounded.full}` circle, never `{rounded.lg}` rounded-square.
482
+
483
+ ## Components
484
+
485
+ ### Buttons
486
+
487
+ **`button-primary`** — the canonical black pill, the brand's conversion target.
488
+ - Background `{colors.primary}`, text `{colors.on-primary}`, label set in `{typography.button-md}`, padding `{spacing.md} {spacing.md}`, shape `{rounded.pill}` 999 px.
489
+
490
+ **`button-secondary`** — the white pill paired with the black primary.
491
+ - Background `{colors.canvas}`, text `{colors.ink}`, same label and padding as `button-primary`, shape `{rounded.pill}`.
492
+
493
+ **`button-subtle`** — the gray secondary pill used for tertiary actions inside cards (e.g., "Learn more" / "Use Reserve").
494
+ - Background `{colors.canvas-soft}` (`#efefef`), text `{colors.ink}`, label in `{typography.button-md}`, padding `{spacing.md} {spacing.lg}`, shape `{rounded.pill}`.
495
+
496
+ **`button-floating`** — the white pill with a subtle drop-shadow that floats over a dark or photographic surface.
497
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md}`, shape `{rounded.pill}`. Carries a Level 3 pill-float shadow.
498
+
499
+ **`button-large-rounded`** — the bigger black call-to-action used inside the ride-request flow ("Yes, help me").
500
+ - Background `{colors.primary}`, text `{colors.on-primary}`, label in `{typography.button-large}`, padding `{spacing.lg} {spacing.xl}`, shape `{rounded.xl}` 16 px (not pill — the only black CTA that breaks the pill rule, used in the larger form context).
501
+
502
+ **`button-tab-translucent`** — the tab-toggle on the hero ride-request form (Ride / Drive).
503
+ - Background `{colors.canvas}`, text `{colors.ink}`, label in `{typography.body-md-strong}`, shape `{rounded.pill-tab}` 36 px (off-shape, deliberately tighter than the canonical 999 px pill).
504
+
505
+ ### Cards & Containers
506
+
507
+ **`card-content`** — the canonical content card.
508
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.2xl}`, shape `{rounded.xl}` 16 px. No shadow on the default state.
509
+
510
+ **`card-elevated`** — the content card with Level 1 subtle drop.
511
+ - Background `{colors.canvas}`, text `{colors.ink}`, same padding + shape as `card-content`. Shadow at Level 1.
512
+
513
+ **`card-soft-tinted`** — the gray-tinted card used as a sub-region inside the page (e.g., "Plan for later" callout).
514
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.2xl}`, shape `{rounded.xl}`.
515
+
516
+ **`promo-card-illustrated`** — the 2-column promo card with illustration on one side and copy on the other.
517
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.2xl}`, shape `{rounded.xl}`. Headline in `{typography.display-md}` or larger.
518
+
519
+ **`promo-card-on-dark`** — the polarity-flipped promo card in black.
520
+ - Background `{colors.ink}`, text `{colors.on-dark}`, padding `{spacing.2xl}`, shape `{rounded.xl}`. Used for the "Drive with Uber" mid-page band.
521
+
522
+ **`request-form-card`** — the hero ride-request form chrome.
523
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.lg}`, shape `{rounded.xl}`. Carries Level 2 card drop shadow.
524
+
525
+ **`request-form-input-row`** — the per-field row inside the request-form card.
526
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.lg}`, shape `{rounded.md}` 8 px. Hosts an icon + label + value.
527
+
528
+ **`showcase-image-card`** — the giant "GO•GET 2026" annual showcase card.
529
+ - Background `{colors.ink}`, text `{colors.on-dark}` overlay, padding `{spacing.3xl}`, shape `{rounded.xl}`. Display-xxl headline overlays the bottom of the image.
530
+
531
+ ### Inputs & Forms
532
+
533
+ **`text-input`** — the canonical text input.
534
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, body in `{typography.body-md}`, padding `{spacing.lg}`, shape `{rounded.md}` 8 px.
535
+
536
+ **`text-input-on-soft`** — the nested input on a white card (slightly lighter fill).
537
+ - Background `{colors.canvas-softer}`, otherwise identical to `text-input`.
538
+
539
+ ### Navigation
540
+
541
+ **`nav-bar`** — the sticky top nav.
542
+ - Background `{colors.canvas}` on light pages, switches to `{colors.ink}` on the rare dark page (e.g., Uber Eats hero). Padding `{spacing.lg} {spacing.3xl}`.
543
+
544
+ **`nav-link`** — the link row inside `nav-bar`.
545
+ - Text `{colors.ink}`, set in `{typography.body-md-strong}` 500 weight.
546
+
547
+ **`footer`** — the deep-black footer band.
548
+ - Background `{colors.primary}` (the brand's only true black surface), text `{colors.on-dark}`, padding `{spacing.3xl} {spacing.3xl}`. Body in `{typography.body-sm}`; column eyebrows in `{typography.body-md-strong}`.
549
+
550
+ ### Signature Components
551
+
552
+ **`hero-band-light`** — the white hero with the ride-request card.
553
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.3xl} {spacing.3xl}`. Headline in `{typography.display-xxl}` (52 px / 700) on the left; `request-form-card` on the right.
554
+
555
+ **`hero-band-dark`** — the rare black hero (used on Uber Eats and Drive landing).
556
+ - Background `{colors.ink}`, text `{colors.on-dark}`, padding `{spacing.3xl} {spacing.3xl}`. Same display-xxl headline scale; CTA inverts to `button-secondary` white pill.
557
+
558
+ **`category-button`** — the horizontal-scroll category row ("Reserve / Rentals / Teens / Group rides").
559
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, label in `{typography.body-sm-strong}`, padding `{spacing.sm} {spacing.lg}`, shape `{rounded.pill}`. An icon precedes the label.
560
+
561
+ **`faq-row`** — the FAQ accordion item.
562
+ - Background `{colors.canvas}`, text `{colors.ink}`, question in `{typography.body-md-strong}`, padding `{spacing.lg}` 0. No card chrome — hairline dividers between rows.
563
+
564
+ **`app-download-pill`** — the "Download the Rider app" / "Download the Driver app" pill.
565
+ - Background `{colors.ink}`, text `{colors.on-dark}`, label in `{typography.body-md-strong}`, padding `{spacing.md} {spacing.xl}`, shape `{rounded.pill}`.
566
+
567
+ **`icon-button-circular`** — the round icon container used in the nav and inside the ride-request card.
568
+ - Background `{colors.canvas-soft}`, dark icon, shape `{rounded.full}`. No label.
569
+
570
+ ### Links
571
+
572
+ **`link-blue`** — the system-default browser-blue link inside legal / footer fine print.
573
+ - Text `{colors.link}` (`#0000ee`), body in `{typography.body-md}`.
574
+
575
+ **`link-on-dark`** — the white link inside dark bands.
576
+ - Text `{colors.on-dark}`, body in `{typography.body-md}`.
577
+
578
+ **`link-mute`** — the muted gray link inside footer columns.
579
+ - Text `{colors.hairline-mid}`, body in `{typography.body-md}`.
580
+
581
+ **`link-mute-soft`** — the lightest gray link, used for low-priority secondary text on dark surfaces.
582
+ - Text `{colors.mute}`, body in `{typography.body-md}`.
583
+
584
+ ### Examples (illustrative)
585
+
586
+ > Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.
587
+
588
+ **`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
589
+ - Properties: `backgroundColor`, `textColor`, `borderColor`, `rounded`, `padding`
590
+
591
+ **`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
592
+ - Properties: `backgroundColor`, `textColor`, `rounded`, `padding`
593
+
594
+ **`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
595
+ - Properties: `backgroundColor`, `rounded`, `padding`
596
+
597
+ **`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
598
+ - Properties: `backgroundColor`, `rounded`, `padding`, `item-divider`
599
+
600
+ **`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
601
+ - Properties: `backgroundColor`, `activeIndicator`, `rounded`, `padding`
602
+
603
+ **`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
604
+ - Properties: `headerBackground`, `headerTypography`, `bodyTypography`, `cellPadding`, `rowBorder`
605
+
606
+ **`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
607
+ - Properties: `backgroundColor`, `rounded`, `padding`
608
+
609
+ **`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.
610
+ - Properties: `backgroundColor`, `rounded`, `padding`
611
+
612
+ **`ex-empty-state-card`** — Empty-state illustration frame.
613
+ - Properties: `backgroundColor`, `rounded`, `padding`, `captionTypography`
614
+
615
+ **`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.
616
+ - Properties: `backgroundColor`, `rounded`, `padding`, `typography`
617
+
618
+
619
+ ## Do's and Don'ts
620
+
621
+ ### Do
622
+ - Reserve `{colors.primary}` (`#000000`) for every primary CTA pill. One black pill per visible viewport is the brand's whole conversion story.
623
+ - Use `{rounded.pill}` 999 px on every interactive element (buttons, chips, app pills). The pill IS the brand's geometric signature.
624
+ - Render cards in `{rounded.xl}` 16 px — promo cards, content cards, the ride-request form card, the annual-showcase card all share this radius.
625
+ - Set every headline in `{typography.display-*}` weight 700 in sentence-case. The display face never carries body copy.
626
+ - Use polarity-flipped black promo bands mid-page to break up white-on-white rhythm. The polarity shift IS the depth cue.
627
+ - Anchor every promo card with a 4:3 editorial illustration; never use generic stock imagery.
628
+
629
+ ### Don't
630
+ - Don't introduce a second brand accent colour (orange, blue, green). The brand's entire UI is black-and-white plus grayscale; new accents flatten the system.
631
+ - Don't render the primary CTA as a `{rounded.xl}` rectangle except inside the larger ride-request flow (where `button-large-rounded` is the documented exception).
632
+ - Don't use all-caps display headlines. Sentence-case is the voice; uppercase is restricted to rare eyebrow tags.
633
+ - Don't drop a soft drop-shadow on every card. The brand uses Level 0 flat as the default; shadow is reserved for the floating pill and the ride-request form.
634
+ - Don't reduce the brand to its illustration system alone. The pill geometry + black/white duet carries the brand even without illustrations.
635
+ - Don't tighten or loosen letter-spacing on the display face. The brand never letter-spaces; default tracking is part of the voice.
636
+ - Don't use `{rounded.full}` 9999 px for square cards — the pill 999 px and full 9999 px effects are identical for interactive elements, but cards stay at `{rounded.xl}` 16 px.
@@ -0,0 +1,5 @@
1
+ # Uber Inspired Design System
2
+
3
+ Design system details have been moved to: https://getdesign.md/uber/design-md
4
+
5
+ You can also view previews, dark mode examples, and download options on getdesign.md.