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.
- package/README.md +15 -18
- package/data/reference-fingerprints.json +337 -3
- package/data/reference-tags.md +15 -1
- package/package.json +2 -2
- package/skills/omd-init/SKILL.md +1 -1
- package/web/AGENTS.md +5 -0
- package/{references → web/references}/airbnb/DESIGN.md +158 -19
- package/web/references/airtable/DESIGN.md +241 -0
- package/{references → web/references}/apple/DESIGN.md +131 -76
- package/web/references/baemin/DESIGN.md +470 -0
- package/{references → web/references}/bmw/DESIGN.md +138 -9
- package/{references → web/references}/cal/DESIGN.md +173 -17
- package/{references → web/references}/claude/DESIGN.md +11 -1
- package/{references → web/references}/clay/DESIGN.md +75 -0
- package/{references → web/references}/clickhouse/DESIGN.md +74 -0
- package/{references → web/references}/cohere/DESIGN.md +75 -0
- package/web/references/coinbase/DESIGN.md +205 -0
- package/{references → web/references}/composio/DESIGN.md +74 -0
- package/web/references/coupang/DESIGN.md +487 -0
- package/{references → web/references}/cursor/DESIGN.md +74 -0
- package/web/references/dcard/DESIGN.md +567 -0
- package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
- package/{references → web/references}/expo/DESIGN.md +72 -0
- package/{references → web/references}/ferrari/DESIGN.md +72 -0
- package/{references → web/references}/figma/DESIGN.md +124 -48
- package/{references → web/references}/framer/DESIGN.md +143 -16
- package/web/references/freee/DESIGN.md +558 -0
- package/{references → web/references}/hashicorp/DESIGN.md +72 -0
- package/{references → web/references}/ibm/DESIGN.md +68 -0
- package/{references → web/references}/intercom/DESIGN.md +73 -0
- package/web/references/kakao/DESIGN.md +490 -0
- package/web/references/kakaobank/DESIGN.md +533 -0
- package/web/references/karrot/DESIGN.md +431 -0
- package/web/references/kraken/DESIGN.md +219 -0
- package/web/references/krds/DESIGN.md +982 -0
- package/web/references/kurly/DESIGN.md +574 -0
- package/{references → web/references}/lamborghini/DESIGN.md +74 -0
- package/{references → web/references}/line/DESIGN.md +84 -43
- package/{references → web/references}/linear.app/DESIGN.md +8 -1
- package/{references → web/references}/lovable/DESIGN.md +73 -0
- package/web/references/mercari/DESIGN.md +464 -0
- package/{references → web/references}/minimax/DESIGN.md +72 -0
- package/{references → web/references}/mintlify/DESIGN.md +72 -0
- package/web/references/miro/DESIGN.md +252 -0
- package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
- package/{references → web/references}/mongodb/DESIGN.md +72 -0
- package/web/references/musinsa/DESIGN.md +536 -0
- package/web/references/naver/DESIGN.md +518 -0
- package/{references → web/references}/notion/DESIGN.md +9 -1
- package/web/references/nvidia/DESIGN.md +491 -0
- package/web/references/ohouse/DESIGN.md +570 -0
- package/{references → web/references}/ollama/DESIGN.md +72 -0
- package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
- package/web/references/pinkoi/DESIGN.md +575 -0
- package/{references → web/references}/pinterest/DESIGN.md +73 -0
- package/{references → web/references}/posthog/DESIGN.md +172 -18
- package/web/references/qanda/DESIGN.md +459 -0
- package/{references → web/references}/raycast/DESIGN.md +169 -34
- package/{references → web/references}/renault/DESIGN.md +72 -0
- package/{references → web/references}/replicate/DESIGN.md +73 -0
- package/{references → web/references}/resend/DESIGN.md +73 -0
- package/{references → web/references}/revolut/DESIGN.md +74 -0
- package/web/references/ridi/DESIGN.md +517 -0
- package/{references → web/references}/runwayml/DESIGN.md +152 -24
- package/{references → web/references}/sanity/DESIGN.md +72 -0
- package/{references → web/references}/sentry/DESIGN.md +73 -0
- package/web/references/spacex/DESIGN.md +379 -0
- package/web/references/spotify/DESIGN.md +426 -0
- package/{references → web/references}/stripe/DESIGN.md +44 -1
- package/{references → web/references}/supabase/DESIGN.md +73 -0
- package/{references → web/references}/superhuman/DESIGN.md +159 -17
- package/{references → web/references}/tesla/DESIGN.md +170 -0
- package/{references → web/references}/together.ai/DESIGN.md +73 -0
- package/{references → web/references}/toss/DESIGN.md +304 -50
- package/{references → web/references}/uber/DESIGN.md +73 -0
- package/{references → web/references}/vercel/DESIGN.md +9 -1
- package/{references → web/references}/voltagent/DESIGN.md +73 -0
- package/{references → web/references}/warp/DESIGN.md +142 -15
- package/web/references/webflow/DESIGN.md +253 -0
- package/{references → web/references}/wise/DESIGN.md +84 -0
- package/{references → web/references}/x.ai/DESIGN.md +85 -0
- package/web/references/yanolja/DESIGN.md +448 -0
- package/web/references/yeogiotte/DESIGN.md +424 -0
- package/{references → web/references}/zapier/DESIGN.md +85 -0
- package/references/airtable/DESIGN.md +0 -107
- package/references/baemin/DESIGN.md +0 -260
- package/references/coinbase/DESIGN.md +0 -129
- package/references/dcard/DESIGN.md +0 -302
- package/references/freee/DESIGN.md +0 -308
- package/references/kakao/DESIGN.md +0 -261
- package/references/karrot/DESIGN.md +0 -252
- package/references/kraken/DESIGN.md +0 -146
- package/references/mercari/DESIGN.md +0 -294
- package/references/miro/DESIGN.md +0 -108
- package/references/nvidia/DESIGN.md +0 -308
- package/references/pinkoi/DESIGN.md +0 -309
- package/references/spacex/DESIGN.md +0 -205
- package/references/spotify/DESIGN.md +0 -246
- package/references/webflow/DESIGN.md +0 -109
|
@@ -89,33 +89,165 @@ What distinguishes Airbnb is its palette-based token system (`--palette-*`) and
|
|
|
89
89
|
|
|
90
90
|
### Buttons
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
-
|
|
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
|
-
-
|
|
98
|
-
-
|
|
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
|
-
**
|
|
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
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
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
|
-
|
|
150
|
+
**Icon Button (Outline)**
|
|
109
151
|
- Background: `#ffffff`
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
-
|
|
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
|
|
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.
|