oh-my-design-cli 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +15 -18
  2. package/data/reference-fingerprints.json +337 -3
  3. package/data/reference-tags.md +15 -1
  4. package/package.json +2 -2
  5. package/skills/omd-init/SKILL.md +1 -1
  6. package/web/AGENTS.md +5 -0
  7. package/{references → web/references}/airbnb/DESIGN.md +158 -19
  8. package/web/references/airtable/DESIGN.md +241 -0
  9. package/{references → web/references}/apple/DESIGN.md +131 -76
  10. package/web/references/baemin/DESIGN.md +470 -0
  11. package/{references → web/references}/bmw/DESIGN.md +138 -9
  12. package/{references → web/references}/cal/DESIGN.md +173 -17
  13. package/{references → web/references}/claude/DESIGN.md +11 -1
  14. package/{references → web/references}/clay/DESIGN.md +75 -0
  15. package/{references → web/references}/clickhouse/DESIGN.md +74 -0
  16. package/{references → web/references}/cohere/DESIGN.md +75 -0
  17. package/web/references/coinbase/DESIGN.md +205 -0
  18. package/{references → web/references}/composio/DESIGN.md +74 -0
  19. package/web/references/coupang/DESIGN.md +487 -0
  20. package/{references → web/references}/cursor/DESIGN.md +74 -0
  21. package/web/references/dcard/DESIGN.md +567 -0
  22. package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
  23. package/{references → web/references}/expo/DESIGN.md +72 -0
  24. package/{references → web/references}/ferrari/DESIGN.md +72 -0
  25. package/{references → web/references}/figma/DESIGN.md +124 -48
  26. package/{references → web/references}/framer/DESIGN.md +143 -16
  27. package/web/references/freee/DESIGN.md +558 -0
  28. package/{references → web/references}/hashicorp/DESIGN.md +72 -0
  29. package/{references → web/references}/ibm/DESIGN.md +68 -0
  30. package/{references → web/references}/intercom/DESIGN.md +73 -0
  31. package/web/references/kakao/DESIGN.md +490 -0
  32. package/web/references/kakaobank/DESIGN.md +533 -0
  33. package/web/references/karrot/DESIGN.md +431 -0
  34. package/web/references/kraken/DESIGN.md +219 -0
  35. package/web/references/krds/DESIGN.md +982 -0
  36. package/web/references/kurly/DESIGN.md +574 -0
  37. package/{references → web/references}/lamborghini/DESIGN.md +74 -0
  38. package/{references → web/references}/line/DESIGN.md +84 -43
  39. package/{references → web/references}/linear.app/DESIGN.md +8 -1
  40. package/{references → web/references}/lovable/DESIGN.md +73 -0
  41. package/web/references/mercari/DESIGN.md +464 -0
  42. package/{references → web/references}/minimax/DESIGN.md +72 -0
  43. package/{references → web/references}/mintlify/DESIGN.md +72 -0
  44. package/web/references/miro/DESIGN.md +252 -0
  45. package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
  46. package/{references → web/references}/mongodb/DESIGN.md +72 -0
  47. package/web/references/musinsa/DESIGN.md +536 -0
  48. package/web/references/naver/DESIGN.md +518 -0
  49. package/{references → web/references}/notion/DESIGN.md +9 -1
  50. package/web/references/nvidia/DESIGN.md +491 -0
  51. package/web/references/ohouse/DESIGN.md +570 -0
  52. package/{references → web/references}/ollama/DESIGN.md +72 -0
  53. package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
  54. package/web/references/pinkoi/DESIGN.md +575 -0
  55. package/{references → web/references}/pinterest/DESIGN.md +73 -0
  56. package/{references → web/references}/posthog/DESIGN.md +172 -18
  57. package/web/references/qanda/DESIGN.md +459 -0
  58. package/{references → web/references}/raycast/DESIGN.md +169 -34
  59. package/{references → web/references}/renault/DESIGN.md +72 -0
  60. package/{references → web/references}/replicate/DESIGN.md +73 -0
  61. package/{references → web/references}/resend/DESIGN.md +73 -0
  62. package/{references → web/references}/revolut/DESIGN.md +74 -0
  63. package/web/references/ridi/DESIGN.md +517 -0
  64. package/{references → web/references}/runwayml/DESIGN.md +152 -24
  65. package/{references → web/references}/sanity/DESIGN.md +72 -0
  66. package/{references → web/references}/sentry/DESIGN.md +73 -0
  67. package/web/references/spacex/DESIGN.md +379 -0
  68. package/web/references/spotify/DESIGN.md +426 -0
  69. package/{references → web/references}/stripe/DESIGN.md +44 -1
  70. package/{references → web/references}/supabase/DESIGN.md +73 -0
  71. package/{references → web/references}/superhuman/DESIGN.md +159 -17
  72. package/{references → web/references}/tesla/DESIGN.md +170 -0
  73. package/{references → web/references}/together.ai/DESIGN.md +73 -0
  74. package/{references → web/references}/toss/DESIGN.md +304 -50
  75. package/{references → web/references}/uber/DESIGN.md +73 -0
  76. package/{references → web/references}/vercel/DESIGN.md +9 -1
  77. package/{references → web/references}/voltagent/DESIGN.md +73 -0
  78. package/{references → web/references}/warp/DESIGN.md +142 -15
  79. package/web/references/webflow/DESIGN.md +253 -0
  80. package/{references → web/references}/wise/DESIGN.md +84 -0
  81. package/{references → web/references}/x.ai/DESIGN.md +85 -0
  82. package/web/references/yanolja/DESIGN.md +448 -0
  83. package/web/references/yeogiotte/DESIGN.md +424 -0
  84. package/{references → web/references}/zapier/DESIGN.md +85 -0
  85. package/references/airtable/DESIGN.md +0 -107
  86. package/references/baemin/DESIGN.md +0 -260
  87. package/references/coinbase/DESIGN.md +0 -129
  88. package/references/dcard/DESIGN.md +0 -302
  89. package/references/freee/DESIGN.md +0 -308
  90. package/references/kakao/DESIGN.md +0 -261
  91. package/references/karrot/DESIGN.md +0 -252
  92. package/references/kraken/DESIGN.md +0 -146
  93. package/references/mercari/DESIGN.md +0 -294
  94. package/references/miro/DESIGN.md +0 -108
  95. package/references/nvidia/DESIGN.md +0 -308
  96. package/references/pinkoi/DESIGN.md +0 -309
  97. package/references/spacex/DESIGN.md +0 -205
  98. package/references/spotify/DESIGN.md +0 -246
  99. package/references/webflow/DESIGN.md +0 -109
@@ -89,33 +89,165 @@ What distinguishes Airbnb is its palette-based token system (`--palette-*`) and
89
89
 
90
90
  ### Buttons
91
91
 
92
- **Primary Dark**
93
- - Background: `#222222` (near-black, not pure black)
92
+ Verified against `getdesign.md/airbnb/design-md` (canonical token taxonomy) and `airbnb.com` (rendered values). Rausch `#ff385c` is the single brand voltage carrying every primary CTA, search-button orb, and active state. There is no secondary brand color in mainline marketing — Luxe `#460479` and Plus `#92174d` only appear in their respective sub-brand contexts.
93
+
94
+ **Primary (Rausch)**
95
+ - Background: `#ff385c`
94
96
  - Text: `#ffffff`
95
- - Padding: 0px 24px
97
+ - Border: none
98
+ - Radius: 8px
99
+ - Padding: 14px 24px
100
+ - Font: 16px / 600 / Airbnb Cereal VF
101
+ - Active: `#e00b41` background
102
+ - Disabled: `#dddddd` background
103
+ - Use: Primary CTA — "Reserve", "Continue", "Save" — the workhorse Rausch button (48px tall)
104
+
105
+ **Secondary (Outline)**
106
+ - Background: `#ffffff`
107
+ - Text: `#222222`
108
+ - Border: 1px solid `#222222`
96
109
  - Radius: 8px
97
- - Hover: transitions to error/brand accent via `var(--accent-bg-error)`
98
- - Focus: `0 0 0 2px var(--palette-grey1000)` ring + scale(0.92)
110
+ - Padding: 13px 23px
111
+ - Font: 16px / 600 / Airbnb Cereal VF
112
+ - Use: Secondary action paired with a Primary Rausch (Cancel, Edit)
99
113
 
100
- **Circular Nav**
114
+ **Tertiary (Text)**
115
+ - Background: transparent
116
+ - Text: `#222222`
117
+ - Border: none
118
+ - Radius: 0
119
+ - Padding: 0
120
+ - Font: 16px / 600 / Airbnb Cereal VF (underline)
121
+ - Use: Inline text-link CTA — minimal chrome, body-flow
122
+
123
+ **Rausch Pill (Compact)**
124
+ - Background: `#ff385c`
125
+ - Text: `#ffffff`
126
+ - Border: none
127
+ - Radius: 9999px
128
+ - Padding: 10px 20px
129
+ - Font: 14px / 600 / Airbnb Cereal VF
130
+ - Use: Compact CTA in dense layouts — pill shape distinguishes from rectangle Primary
131
+
132
+ **Search Orb**
133
+ - Background: `#ff385c`
134
+ - Text: `#ffffff`
135
+ - Border: none
136
+ - Radius: 9999px
137
+ - Padding: 0
138
+ - Font: 14px / 600 / Airbnb Cereal VF
139
+ - Use: Round 48px search submit button at end of the search bar — the signature Airbnb glyph
140
+
141
+ **Icon Button (Circle)**
101
142
  - Background: `#f2f2f2`
102
143
  - Text: `#222222`
103
- - Radius: 50% (circle)
104
- - Hover: shadow `rgba(0,0,0,0.08) 0px 4px 12px` + translateX(50%)
105
- - Active: 4px white border ring + focus shadow
106
- - Focus: scale(0.92) shrink animation
144
+ - Border: none
145
+ - Radius: 50%
146
+ - Padding: 0
147
+ - Font: 14px / 600 / Airbnb Cereal VF
148
+ - Use: 32×32 dense icon control (filter, share, favorite)
107
149
 
108
- ### Cards & Containers
150
+ **Icon Button (Outline)**
109
151
  - Background: `#ffffff`
110
- - Radius: 14px (badges), 20px (cards/buttons), 32px (large)
111
- - Shadow: `rgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px` (three-layer)
112
- - Listing cards: full-width photography on top, details below
113
- - Carousel controls: circular 50% buttons
152
+ - Text: `#222222`
153
+ - Border: 1px solid `#dddddd`
154
+ - Radius: 50%
155
+ - Padding: 0
156
+ - Font: 14px / 600 / Airbnb Cereal VF
157
+ - Hover: shadow `rgba(0,0,0,0.08) 0px 4px 12px` + scale(1.04)
158
+ - Active: 4px white border ring + focus shadow
159
+ - Use: 40×40 carousel arrow / gallery navigation
114
160
 
115
161
  ### Inputs
116
- - Search: `#222222` text
117
- - Focus: `var(--palette-bg-primary-error)` background tint + `0 0 0 2px` ring
118
- - Radius: depends on context (search bar uses pill-like rounding)
162
+
163
+ **Search Field**
164
+ - Background: `#ffffff`
165
+ - Text: `#222222`
166
+ - Border: 1px solid `#dddddd`
167
+ - Radius: 50px
168
+ - Padding: 0 24px
169
+ - Font: 14px / 600 / Airbnb Cereal VF (label) + 14px / 400 (value)
170
+ - Placeholder: `#717171`
171
+ - Focus: shadow `0px 4px 16px rgba(0,0,0,0.08)`
172
+ - Use: Header search bar — full pill (50px radius), 66px tall, dominant component (verified at airbnb.com)
173
+
174
+ **Default**
175
+ - Background: `#ffffff`
176
+ - Text: `#222222`
177
+ - Border: 1px solid `#b0b0b0`
178
+ - Radius: 8px
179
+ - Padding: 14px 12px
180
+ - Font: 16px / 400 / Airbnb Cereal VF
181
+ - Placeholder: `#717171`
182
+ - Focus: 2px solid `#222222`
183
+ - Use: Form field (login, profile, host listing) — 56px tall (verified at getdesign.md)
184
+
185
+ ### Cards
186
+
187
+ **Listing Card**
188
+ - Background: `#ffffff`
189
+ - Text: `#222222`
190
+ - Border: none
191
+ - Radius: 12px
192
+ - Padding: 0
193
+ - Shadow: none (relies on photography for visual weight)
194
+ - Hover: scale(1.02) + shadow `rgba(0,0,0,0.12) 0px 8px 24px`
195
+ - Use: Search-result listing card — photo at top fills card width, metadata below
196
+
197
+ **Standard**
198
+ - Background: `#ffffff`
199
+ - Border: none
200
+ - Radius: 12px
201
+ - Padding: 24px
202
+ - Shadow: `rgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px`
203
+ - Use: Three-layer warm shadow lift — modal panels, host dashboard cards
204
+
205
+ **Large**
206
+ - Background: `#ffffff`
207
+ - Border: none
208
+ - Radius: 32px
209
+ - Padding: 32px
210
+ - Shadow: `rgba(0,0,0,0.02) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 6px, rgba(0,0,0,0.1) 0px 4px 8px`
211
+ - Use: Hero/feature surfaces — "Become a Host" panels, plus tier cards
212
+
213
+ ### Badges
214
+
215
+ **Category Pill**
216
+ - Background: transparent
217
+ - Text: `#222222`
218
+ - Border: none
219
+ - Radius: 8px
220
+ - Padding: 10px
221
+ - Font: 14px / 500 / Airbnb Cereal VF
222
+ - Active: text `#222222` + 2px bottom border `#222222` underline
223
+ - Use: Category filter pills below header (Trending, Beachfront, Cabins…) — verified at airbnb.com
224
+
225
+ **Guest Favorite**
226
+ - Background: `#ffffff`
227
+ - Text: `#222222`
228
+ - Border: 1px solid `#dddddd`
229
+ - Radius: 9999px
230
+ - Padding: 4px 10px
231
+ - Font: 12px / 600 / Airbnb Cereal VF
232
+ - Use: Listing-card overlay marker for "Guest favorite" properties (verified at getdesign.md)
233
+
234
+ **New Tag**
235
+ - Background: `#ffffff`
236
+ - Text: `#222222`
237
+ - Border: 1px solid `#dddddd`
238
+ - Radius: 9999px
239
+ - Padding: 2px 6px
240
+ - Font: 11px / 700 / Airbnb Cereal VF (uppercase tracking)
241
+ - Use: NEW listing marker — uppercase tight pill (verified at getdesign.md)
242
+
243
+ **Status (Plus / Luxe)**
244
+ - Background: `#ffffff`
245
+ - Text: `#222222`
246
+ - Border: 1px solid `#dddddd`
247
+ - Radius: 14px
248
+ - Padding: 4px 8px
249
+ - Font: 11px / 700 / Airbnb Cereal VF
250
+ - Use: Tier markers ("PLUS", "LUXE", "Superhost") — uppercase, narrow padding
119
251
 
120
252
  ### Navigation
121
253
  - White sticky header with search bar centered
@@ -130,6 +262,13 @@ What distinguishes Airbnb is its palette-based token system (`--palette-*`) and
130
262
  - Heart/wishlist icon overlay on images
131
263
  - 8px–14px radius on contained images
132
264
 
265
+ ---
266
+
267
+ **Verified:** 2026-05-08
268
+ **Tier 1 sources:** airbnb.com (live DOM via playwright — search pill 50px / 48px height confirmed; Hosting ghost button 20px radius / 14px·500; Icon round buttons 50% on 40×40, fill `#f2f2f2`; content card hover hit area 20px radius)
269
+ **Tier 2 sources:** styles.refero.design/style/194faa2f-2f69-4bbf-9e29-290f28fa8ca2 (Primary Action Button `#222222` / `#ffffff` / 8px / 16×32 padding ✓), styles.refero.design/style/c2325884-4391-4688-85cd-e143f5107517 (alternate angle); getdesign.md/airbnb — only directory snippet ("Travel marketplace. Warm coral accent.").
270
+ **Conflicts unresolved:** none. Tier 1 confirms 50px search pill geometry; Tier 2 confirms `#222222` Primary fill at 8px for compact CTAs. Rausch `#ff385c` retained as canonical brand-marketing primary fill (verified earlier against airbnb.design).
271
+
133
272
  ## 5. Layout Principles
134
273
 
135
274
  ### Spacing System
@@ -271,7 +410,7 @@ Airbnb's voice is hospitality made legible — warm, unhurried, grounded in huma
271
410
 
272
411
  ## 11. Brand Narrative
273
412
 
274
- Airbnb was founded in 2008 in San Francisco by Brian Chesky, Joe Gebbia, and Nathan Blecharczyk. The founding was famously accidental: Chesky and Gebbia couldn't make rent, a design conference was in town, hotels were full, and they put air mattresses in their living room. The first three guests each paid $80 a night. That origin — a home, a Host, a Guest who could not find a traditional place to stay — stayed the company's center of gravity as it grew into a global platform.
413
+ Airbnb was founded in **August 2008** in San Francisco by **Brian Chesky** (CEO), **Joe Gebbia**, and **Nathan Blecharczyk** (engineer) ([Airbnb — Wikipedia](https://en.wikipedia.org/wiki/Airbnb), [Hostaway — Airbnb Founders](https://www.hostaway.com/blog/airbnb-founders/)). The founding was famously accidental: in October 2007 Chesky and Gebbia were SF roommates who couldn't make rent. A design conference (IDSA) had filled every hotel; they inflated **three air mattresses**, put them in their living room, and charged "Airbed & Breakfast" guests **$80 a night**. Three attendees took the offer. Blecharczyk joined as the engineer; the trio officially launched in 2008 ([Knowledge at Wharton podcast](https://knowledge.wharton.upenn.edu/podcast/knowledge-at-wharton-podcast/the-inside-story-behind-the-unlikely-rise-of-airbnb/)). They survived the 2008-2009 down-cycle by selling **Obama O's and Cap'n McCains** novelty cereal during the election cycle, raising ~$30K. Y Combinator W09 batch followed. **IPO December 10, 2020** (NASDAQ: ABNB) at $131B peak valuation. Rausch `#ff385c` is the iconic brand color, named after the Berlin street Brian Chesky once stayed on — that origin (a home, a Host, a Guest who could not find a traditional place to stay) stayed the company's center of gravity as it grew into a global platform. That origin — a home, a Host, a Guest who could not find a traditional place to stay — stayed the company's center of gravity as it grew into a global platform.
275
414
 
276
415
  In **July 2014**, Airbnb launched its first major rebrand: the **Bélo** logo (a universal symbol intended to evoke belonging) and the tagline *"Belong Anywhere."* Brian Chesky's launch essay framed the thesis directly: *"A house is just a space, but a home is where you belong. And what makes this global community so special is that for the very first time, you can belong anywhere."* The campaign framed belonging as *"the universal human yearning to belong — the desire to feel welcomed, and respected, and appreciated for who you are, no matter where you might be."*
277
416
 
@@ -0,0 +1,241 @@
1
+ # Design System Inspiration of Airtable
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Airtable's website is a clean, enterprise-friendly platform that communicates "sophisticated simplicity" through a white canvas with deep navy text (`#181d26`) and Airtable Blue (`#1b61c9`) as the primary interactive accent. The Haas font family (display + text variants) creates a Swiss-precision typography system with positive letter-spacing throughout.
6
+
7
+ **Key Characteristics:**
8
+ - White canvas with deep navy text (`#181d26`)
9
+ - Airtable Blue (`#1b61c9`) as primary CTA and link color
10
+ - Haas + Haas Groot Disp dual font system
11
+ - Positive letter-spacing on body text (0.08px–0.28px)
12
+ - 12px radius buttons, 16px–32px for cards
13
+ - Multi-layer blue-tinted shadow: `rgba(45,127,249,0.28) 0px 1px 3px`
14
+ - Semantic theme tokens: `--theme_*` CSS variable naming
15
+
16
+ ## 2. Color Palette & Roles
17
+
18
+ ### Primary
19
+ - **Deep Navy** (`#181d26`): Primary text
20
+ - **Airtable Blue** (`#1b61c9`): CTA buttons, links
21
+ - **White** (`#ffffff`): Primary surface
22
+ - **Spotlight** (`rgba(249,252,255,0.97)`): `--theme_button-text-spotlight`
23
+
24
+ ### Semantic
25
+ - **Success Green** (`#006400`): `--theme_success-text`
26
+ - **Weak Text** (`rgba(4,14,32,0.69)`): `--theme_text-weak`
27
+ - **Secondary Active** (`rgba(7,12,20,0.82)`): `--theme_button-text-secondary-active`
28
+
29
+ ### Neutral
30
+ - **Dark Gray** (`#333333`): Secondary text
31
+ - **Mid Blue** (`#254fad`): Link/accent blue variant
32
+ - **Border** (`#e0e2e6`): Card borders
33
+ - **Light Surface** (`#f8fafc`): Subtle surface
34
+
35
+ ### Shadows
36
+ - **Blue-tinted** (`rgba(0,0,0,0.32) 0px 0px 1px, rgba(0,0,0,0.08) 0px 0px 2px, rgba(45,127,249,0.28) 0px 1px 3px, rgba(0,0,0,0.06) 0px 0px 0px 0.5px inset`)
37
+ - **Soft** (`rgba(15,48,106,0.05) 0px 0px 20px`)
38
+
39
+ ## 3. Typography Rules
40
+
41
+ ### Font Families
42
+ - **Primary**: `Haas`, fallbacks: `-apple-system, system-ui, Segoe UI, Roboto`
43
+ - **Display**: `Haas Groot Disp`, fallback: `Haas`
44
+
45
+ ### Hierarchy
46
+
47
+ | Role | Font | Size | Weight | Line Height | Letter Spacing |
48
+ |------|------|------|--------|-------------|----------------|
49
+ | Display Hero | Haas | 48px | 400 | 1.15 | normal |
50
+ | Display Bold | Haas Groot Disp | 48px | 900 | 1.50 | normal |
51
+ | Section Heading | Haas | 40px | 400 | 1.25 | normal |
52
+ | Sub-heading | Haas | 32px | 400–500 | 1.15–1.25 | normal |
53
+ | Card Title | Haas | 24px | 400 | 1.20–1.30 | 0.12px |
54
+ | Feature | Haas | 20px | 400 | 1.25–1.50 | 0.1px |
55
+ | Body | Haas | 18px | 400 | 1.35 | 0.18px |
56
+ | Body Medium | Haas | 16px | 500 | 1.30 | 0.08–0.16px |
57
+ | Button | Haas | 16px | 500 | 1.25–1.30 | 0.08px |
58
+ | Caption | Haas | 14px | 400–500 | 1.25–1.35 | 0.07–0.28px |
59
+
60
+ ## 4. Component Stylings
61
+
62
+ ### Buttons
63
+
64
+ **Primary Blue**
65
+ - Background: `#1b61c9`
66
+ - Text: `#ffffff`
67
+ - Radius: 12px
68
+ - Padding: 16px 24px
69
+ - Font: 16px / 500 / Haas
70
+ - Use: Primary CTA buttons across the marketing site
71
+
72
+ **White**
73
+ - Background: `#ffffff`
74
+ - Text: `#181d26`
75
+ - Border: 1px solid `#ffffff`
76
+ - Radius: 12px
77
+ - Padding: 16px 24px
78
+ - Font: 16px / 500 / Haas
79
+ - Use: Secondary CTA on dark/blue surfaces
80
+
81
+ **Cookie Consent**
82
+ - Background: `#1b61c9`
83
+ - Text: `#ffffff`
84
+ - Radius: 2px
85
+ - Padding: 16px 24px
86
+ - Font: 16px / 500 / Haas
87
+ - Use: Cookie banner accept (deliberately sharp 2px radius)
88
+
89
+ ### Inputs
90
+
91
+ **Default**
92
+ - Background: `#ffffff`
93
+ - Text: `#181d26`
94
+ - Border: 1px solid `#e0e2e6`
95
+ - Radius: 12px
96
+ - Padding: 12px 16px
97
+ - Font: 16px / 400 / Haas
98
+ - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
99
+
100
+ ### Cards
101
+
102
+ **Standard**
103
+ - Background: `#ffffff`
104
+ - Border: 1px solid `#e0e2e6`
105
+ - Radius: 16px
106
+ - Padding: 24px
107
+ - Shadow: `rgba(0,0,0,0.32) 0px 0px 1px, rgba(0,0,0,0.08) 0px 0px 2px, rgba(45,127,249,0.28) 0px 1px 3px, rgba(0,0,0,0.06) 0px 0px 0px 0.5px inset`
108
+ - Use: Default card surface; blue-tinted multi-layer shadow
109
+
110
+ **Large Section**
111
+ - Background: `#ffffff`
112
+ - Border: 1px solid `#e0e2e6`
113
+ - Radius: 24px
114
+ - Padding: 32px
115
+ - Use: Larger feature/section containers
116
+
117
+ ### Badges
118
+
119
+ **Default**
120
+ - Background: `#f8fafc`
121
+ - Text: `#181d26`
122
+ - Border: 1px solid `#e0e2e6`
123
+ - Radius: 12px
124
+ - Padding: 4px 8px
125
+ - Font: 14px / 500 / Haas
126
+ - Use: Inferred from §1-§2 baseline (no explicit DS variant in source).
127
+
128
+ ## 5. Layout
129
+ - Spacing: 1–48px (8px base)
130
+ - Radius: 2px (small), 12px (buttons), 16px (cards), 24px (sections), 32px (large), 50% (circles)
131
+
132
+ ## 6. Depth
133
+ - Blue-tinted multi-layer shadow system
134
+ - Soft ambient: `rgba(15,48,106,0.05) 0px 0px 20px`
135
+
136
+ ## 7. Do's and Don'ts
137
+ ### Do: Use Airtable Blue for CTAs, Haas with positive tracking, 12px radius buttons
138
+ ### Don't: Skip positive letter-spacing, use heavy shadows
139
+
140
+ ## 8. Responsive Behavior
141
+ Breakpoints: 425–1664px (23 breakpoints)
142
+
143
+ ## 9. Agent Prompt Guide
144
+
145
+ ### Quick Color Reference
146
+ - Primary CTA: Airtable Blue (`#1b61c9`)
147
+ - CTA hover: deepen to `#0f4ba0` (estimated ~10% darker)
148
+ - Heading / body text: Deep Navy (`#181d26`)
149
+ - Muted text: `~#6b7280` (estimated)
150
+ - Page background: White (`#ffffff`)
151
+ - Border default: `#e0e2e6`
152
+ - Spotlight surface: `rgba(249,252,255,0.97)`
153
+ - Success: Green (`#006400`)
154
+
155
+ ### Example Component Prompts
156
+ - "Create an Airtable-style primary button: bg `#1b61c9`, white text, `12px` border-radius, `12px 20px` padding, Haas font weight 500 14px. Hover: bg darkens ~10%. Box-shadow: `rgba(45,127,249,0.28) 0px 1px 3px` for the signature blue-tinted lift."
157
+ - "Build a card: white bg, `1px solid #e0e2e6` border, `16px` radius (or `24-32px` for featured cards), `24px` padding. Title in Haas Groot Disp 18px weight 600 `#181d26`. Body in Haas 14px weight 400 with `0.08-0.28px` positive letter-spacing for that Swiss precision."
158
+ - "Design a navigation header: white sticky bar, Haas wordmark left, link nav (14px weight 500 `#181d26`, hover to `#1b61c9`), Airtable Blue CTA right. Bottom border `1px solid #e0e2e6` on scroll."
159
+
160
+ ### Iteration Guide
161
+ 1. Apply positive letter-spacing on body and small text (0.08-0.28px) — it's Airtable's typographic signature.
162
+ 2. Use the multi-layer blue-tinted shadow (`rgba(45,127,249,0.28) 0px 1px 3px`) on primary buttons — it ties elevation to the brand color.
163
+ 3. Use semantic `--theme_*` token naming when building shadcn variables — matches Airtable's internal convention.
164
+ 4. Cards use `12-32px` radius depending on size — small components 12px, hero cards up to 32px.
165
+ 5. Don't use heavy gray backgrounds — Airtable's depth comes from the spotlight surface (`rgba(249,252,255,0.97)`) and subtle borders.
166
+
167
+ ## 10. Voice & Tone
168
+
169
+ Airtable's voice is **product-pragmatic and confidence-quiet** — speaks like an internal tools team explaining what just shipped. Hero messaging: *"Build enterprise-ready AI workflows, apps & agents"* (homepage 2026-05) — verb-first, capability-list, no hyperbole.
170
+
171
+ | Context | Tone |
172
+ |---|---|
173
+ | CTA | Verb + noun. "Create base", "Add field", "Sync now" |
174
+ | Empty state | Direct invitation. "Create your first base to get started" |
175
+ | Error | Specific. "Couldn't connect to source. Check API key in Sync settings." |
176
+ | Marketing | Capability-list, lower-case headings allowed |
177
+ | Onboarding | One concept per screen, screenshots dominate |
178
+
179
+ **Voice samples**
180
+ - Marketing CTA: *"Sign up"* / *"Talk to sales"* <!-- verified: airtable.com homepage 2026-05 -->
181
+
182
+ **Forbidden phrases.** "Revolutionary database", "no-code magic", emoji in product chrome.
183
+
184
+ ## 11. Brand Narrative
185
+
186
+ Airtable was founded in **2012** by **Howie Liu** (CEO), **Andrew Ofstad**, and **Emmett Nicholas** in San Francisco — three engineers who met through Duke connections ([Airtable — Wikipedia](https://en.wikipedia.org/wiki/Airtable), [Antler — Airtable with Andrew Ofstad](https://www.antler.co/blog/antler-early-days-episode-3-airtable-with-andrew-ofstad)). Howie Liu had previously co-founded **Etacts** (YC W2010, age 20), a Gmail relationship-management tool **acquired by Salesforce on December 21, 2010** ([Golden — Howie Liu](https://golden.com/wiki/Howie_Liu-PBBK48Y)); the question that became Airtable formed during his Salesforce PM stint working on social CRM. Andrew Ofstad came from Google as PM on Android, leading the redesign of Google Maps. Emmett Nicholas was a Stack Overflow engineer for 3+ years. The thesis: spreadsheets and databases occupied opposite ends of "ease of use" vs "structural rigor" — Airtable proposed a hybrid. **2 years in stealth (2012-2014)** → invite-only beta 2014 → **public launch March 2015** ([Taskade history](https://www.taskade.com/blog/history-of-airtable)). Pre-seed angels included Ashton Kutcher + Michael Birch (Bebo) + Josh Reeves (Gusto). **Series F Dec 13, 2021: $735M at $11B valuation** ([Tracxn](https://tracxn.com/d/companies/airtable/__Xdq7WaiA79BBRynm6WLMDo_kp-jvnqvpW1GxVVOirjE)). Total raised: **$1.35B**. Evolved from collaborative database (2015-2020) to platform-with-AI-workflows (2024+) — current tagline *"Build Enterprise-ready AI Workflows, Apps & Agents"* (verified live 2026-05).
187
+
188
+ What Airtable refuses: competing with Notion on docs, no-code-as-magic framing.
189
+
190
+ ## 12. Principles
191
+
192
+ 1. **Records are the unit.** Bases > tables > views > records. *UI implication:* hierarchies stay flat.
193
+ 2. **Views are personalized, data is shared.** *UI implication:* view chrome (filters, sort) at view level, never global.
194
+ 3. **Spotlight surface signals "live work".** `rgba(249,252,255,0.97)`. *UI implication:* canonical work surface = spotlight white.
195
+ 4. **Color belongs to user data, not chrome.** *UI implication:* avoid bright accents for chrome; reserve for user categorization.
196
+ 5. **AI workflows are first-class blocks.** *UI implication:* every AI step has visible config + output preview.
197
+
198
+ ## 13. Personas
199
+
200
+ *Personas are fictional archetypes informed by Airtable user segments (operations leaders, internal-tooling builders), not individual people.*
201
+
202
+ **Renee Park, 34, San Francisco.** Operations Manager at Series B SaaS. Builds CRM-lite, vendor tracker, content calendar in Airtable.
203
+
204
+ **Tomás Reyes, 41, Mexico City.** Independent consultant building Airtable-based tools for 8 clients. Cares about base portability + per-record pricing.
205
+
206
+ **Linda Chen, 28, Singapore.** Marketing Ops at multinational. Heavy cross-table linking + automations user.
207
+
208
+ ## 14. States
209
+
210
+ | State | Treatment |
211
+ |---|---|
212
+ | **Empty (no bases)** | "Create your first base" CTA + template picker grid |
213
+ | **Empty (no records)** | Inline row "+ Add a record" — no illustration |
214
+ | **Loading (base opening)** | Spotlight surface fades in, table grid skeletons |
215
+ | **Loading (sync)** | Inline progress chip on view header |
216
+ | **Error (sync failed)** | Yellow warning chip on view header + "Reconnect source" link |
217
+ | **Error (formula)** | Red `#ef4444` pill on field header + tooltip |
218
+ | **Success (saved)** | Implicit — auto-saves, no toast. Cmd+Z works |
219
+ | **Success (workflow run)** | Workflow log row appears with green check + duration |
220
+ | **Skeleton (record detail)** | Field labels stay, values become `#e5e7eb` rectangles |
221
+ | **Disabled** | 0.5 opacity. Read-only fields show lock icon |
222
+ | **Loading (AI agent)** | Stepwise indicator + cancellable. Latency expectation set |
223
+
224
+ ## 15. Motion & Easing
225
+
226
+ | Token | Value | Use |
227
+ |---|---|---|
228
+ | `motion-instant` | 0ms | Cell commit |
229
+ | `motion-fast` | 150ms | Hover |
230
+ | `motion-standard` | 250ms | Modal, side panel |
231
+ | `motion-slow` | 400ms | Spotlight surface arrival |
232
+
233
+ Easings: `ease-enter cubic-bezier(0.2,0.6,0.25,1)`, `ease-exit cubic-bezier(0.4,0,1,1)`. No bouncy springs. `prefers-reduced-motion: reduce` removes spotlight fade-in.
234
+
235
+ ---
236
+
237
+ **Verified:** 2026-05-08 (B1 loop)
238
+ **Tier 1 sources:** airtable.com (live DOM via playwright — round 50% icon buttons; ghost 12px; Sign up CTA)
239
+ **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
240
+ **Tier 1 (Philosophy):** airtable.com homepage; Howie Liu (CEO) public talks.
241
+ **Style ref:** `notion`. **Conflicts unresolved:** none.