oh-my-design-cli 1.8.6 → 1.9.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/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +2761 -85
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/airbridge/DESIGN.md +451 -0
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bigin/DESIGN.md +454 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/codeit/DESIGN.md +470 -0
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +338 -0
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/elice/DESIGN.md +445 -0
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/furiosaai/DESIGN.md +450 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hwahae/DESIGN.md +453 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kcd/DESIGN.md +432 -0
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +242 -0
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/moreh/DESIGN.md +437 -0
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/portone/DESIGN.md +446 -0
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/returnzero/DESIGN.md +460 -0
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/saramin/DESIGN.md +465 -0
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shiftee/DESIGN.md +468 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/solapi/DESIGN.md +483 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/supertone/DESIGN.md +413 -0
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -8,53 +8,108 @@ primary_color: "#635bff"
|
|
|
8
8
|
logo:
|
|
9
9
|
type: simpleicons
|
|
10
10
|
slug: stripe
|
|
11
|
-
verified: "2026-
|
|
12
|
-
|
|
11
|
+
verified: "2026-07-13"
|
|
13
12
|
omd: "0.1"
|
|
13
|
+
verification_v2:
|
|
14
|
+
schema: 2
|
|
15
|
+
checked: "2026-07-13"
|
|
16
|
+
surfaces:
|
|
17
|
+
- { id: docs-home, kind: product, url: "https://docs.stripe.com/", inspected: "2026-07-13" }
|
|
18
|
+
- { id: docs-payments, kind: product, url: "https://docs.stripe.com/payments", inspected: "2026-07-13" }
|
|
19
|
+
- { id: docs-api, kind: product, url: "https://docs.stripe.com/api", inspected: "2026-07-13" }
|
|
20
|
+
sources:
|
|
21
|
+
- { id: docs-home-live, kind: product-surface, url: "https://docs.stripe.com/", captured: "2026-07-13" }
|
|
22
|
+
- { id: docs-payments-live, kind: product-surface, url: "https://docs.stripe.com/payments", captured: "2026-07-13" }
|
|
23
|
+
- { id: docs-api-live, kind: product-surface, url: "https://docs.stripe.com/api", captured: "2026-07-13" }
|
|
24
|
+
- { id: newsroom, kind: brand-asset, url: "https://stripe.com/newsroom/information", captured: "2026-07-13" }
|
|
25
|
+
- { id: culture, kind: official-doc, url: "https://stripe.com/jobs/culture", captured: "2026-07-13" }
|
|
26
|
+
- { id: soehne-foundry, kind: license, url: "https://klim.co.nz/fonts/soehne/", captured: "2026-07-13" }
|
|
27
|
+
- { id: source-code-license, kind: license, url: "https://github.com/adobe-fonts/source-code-pro/blob/release/LICENSE.md", captured: "2026-07-13" }
|
|
28
|
+
conflicts: []
|
|
29
|
+
claims:
|
|
30
|
+
"tokens.colors.foreground": &docsHome { surface_id: docs-home, source_id: docs-home-live, method: live-inspect, captured: "2026-07-13" }
|
|
31
|
+
"tokens.colors.foreground-strong": &docsApi { surface_id: docs-api, source_id: docs-api-live, method: live-inspect, captured: "2026-07-13" }
|
|
32
|
+
"tokens.colors.muted": *docsHome
|
|
33
|
+
"tokens.colors.link": *docsHome
|
|
34
|
+
"tokens.colors.accent": *docsApi
|
|
35
|
+
"tokens.colors.canvas": *docsHome
|
|
36
|
+
"tokens.colors.surface-subtle": *docsHome
|
|
37
|
+
"tokens.colors.hairline": *docsHome
|
|
38
|
+
"tokens.colors.hairline-hover": *docsHome
|
|
39
|
+
"tokens.colors.on-dark": *docsApi
|
|
40
|
+
"tokens.typography.body.size": *docsHome
|
|
41
|
+
"tokens.typography.body.weight": *docsHome
|
|
42
|
+
"tokens.typography.body.lineHeight": *docsHome
|
|
43
|
+
"tokens.typography.body.use": *docsHome
|
|
44
|
+
"tokens.typography.heading.size": *docsApi
|
|
45
|
+
"tokens.typography.heading.weight": *docsApi
|
|
46
|
+
"tokens.typography.heading.lineHeight": *docsApi
|
|
47
|
+
"tokens.typography.heading.use": *docsApi
|
|
48
|
+
"tokens.typography.control.size": *docsHome
|
|
49
|
+
"tokens.typography.control.weight": *docsHome
|
|
50
|
+
"tokens.typography.control.lineHeight": *docsHome
|
|
51
|
+
"tokens.typography.control.use": *docsHome
|
|
52
|
+
"tokens.spacing.xs": *docsHome
|
|
53
|
+
"tokens.spacing.sm": *docsHome
|
|
54
|
+
"tokens.spacing.md": *docsHome
|
|
55
|
+
"tokens.spacing.lg": *docsHome
|
|
56
|
+
"tokens.spacing.xl": *docsHome
|
|
57
|
+
"tokens.spacing.xxl": *docsHome
|
|
58
|
+
"tokens.rounded.sm": *docsHome
|
|
59
|
+
"tokens.rounded.md": *docsHome
|
|
60
|
+
"tokens.rounded.lg": *docsApi
|
|
61
|
+
"tokens.components.docs-search-prompt.type": *docsHome
|
|
62
|
+
"tokens.components.docs-search-prompt.bg": *docsHome
|
|
63
|
+
"tokens.components.docs-search-prompt.fg": *docsHome
|
|
64
|
+
"tokens.components.docs-search-prompt.radius": *docsHome
|
|
65
|
+
"tokens.components.docs-search-prompt.padding": *docsHome
|
|
66
|
+
"tokens.components.docs-search-prompt.font": *docsHome
|
|
67
|
+
"tokens.components.docs-search-prompt.hover": *docsHome
|
|
68
|
+
"tokens.components.docs-search-prompt.pressed": *docsHome
|
|
69
|
+
"tokens.components.docs-search-prompt.focus": *docsHome
|
|
70
|
+
"tokens.components.docs-search-prompt.states": *docsHome
|
|
71
|
+
"tokens.components.docs-secondary-action.type": *docsHome
|
|
72
|
+
"tokens.components.docs-secondary-action.bg": *docsHome
|
|
73
|
+
"tokens.components.docs-secondary-action.fg": *docsHome
|
|
74
|
+
"tokens.components.docs-secondary-action.border": *docsHome
|
|
75
|
+
"tokens.components.docs-secondary-action.radius": *docsHome
|
|
76
|
+
"tokens.components.docs-secondary-action.padding": *docsHome
|
|
77
|
+
"tokens.components.docs-secondary-action.font": *docsHome
|
|
78
|
+
"tokens.components.docs-secondary-action.hover": *docsHome
|
|
79
|
+
"tokens.components.docs-secondary-action.pressed": *docsHome
|
|
80
|
+
"tokens.components.docs-secondary-action.focus": *docsHome
|
|
81
|
+
"tokens.components.docs-secondary-action.states": *docsHome
|
|
82
|
+
"tokens.components.docs-content-tab.type": *docsHome
|
|
83
|
+
"tokens.components.docs-content-tab.fg": *docsHome
|
|
84
|
+
"tokens.components.docs-content-tab.radius": *docsHome
|
|
85
|
+
"tokens.components.docs-content-tab.padding": *docsHome
|
|
86
|
+
"tokens.components.docs-content-tab.font": *docsHome
|
|
87
|
+
"tokens.components.docs-content-tab.states": *docsHome
|
|
14
88
|
tokens:
|
|
15
89
|
source: reconciled
|
|
16
|
-
extracted: "2026-
|
|
17
|
-
note: "
|
|
90
|
+
extracted: "2026-07-13"
|
|
91
|
+
note: "Only selector-backed public Docs values are tokens. Stripe marketing, newsroom assets, Docs chrome, and declared-only font assets are separate evidence domains."
|
|
18
92
|
colors:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
93
|
+
foreground: "#414552"
|
|
94
|
+
foreground-strong: "#1a2c44"
|
|
95
|
+
muted: "#50617a"
|
|
96
|
+
link: "#5469d4"
|
|
97
|
+
accent: "#533afd"
|
|
24
98
|
canvas: "#ffffff"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
on-
|
|
29
|
-
ruby: "#ea2261"
|
|
30
|
-
magenta: "#f96bee"
|
|
31
|
-
success: "#15be53"
|
|
32
|
-
success-text: "#108c3d"
|
|
33
|
-
hairline: "#e5edf5"
|
|
34
|
-
border-purple: "#b9b9f9"
|
|
99
|
+
surface-subtle: "#f4f7fa"
|
|
100
|
+
hairline: "#d4dee9"
|
|
101
|
+
hairline-hover: "#95a4ba"
|
|
102
|
+
on-dark: "#ffffff"
|
|
35
103
|
typography:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
body-lg: { size: 18, weight: 300, lineHeight: 1.40, use: "Feature descriptions, intro" }
|
|
42
|
-
body: { size: 16, weight: 400, lineHeight: 1.40, use: "Standard reading text" }
|
|
43
|
-
button: { size: 16, weight: 400, lineHeight: 1.00, use: "Primary button label" }
|
|
44
|
-
caption: { size: 13, weight: 400, use: "Small labels, metadata" }
|
|
45
|
-
code: { size: 12, weight: 500, lineHeight: 2.00, use: "Code blocks, syntax" }
|
|
46
|
-
spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
|
|
47
|
-
rounded: { sm: 4, md: 8, lg: 16, full: 9999 }
|
|
48
|
-
shadow:
|
|
49
|
-
ambient: "rgba(23,23,23,0.06) 0px 3px 6px"
|
|
50
|
-
standard: "rgba(23,23,23,0.08) 0px 15px 35px"
|
|
51
|
-
elevated: "rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px"
|
|
104
|
+
body: { size: 14, weight: 400, lineHeight: 1.43, use: "Repeated public Docs text; operating-system stack, not a named Stripe UI family" }
|
|
105
|
+
heading: { size: 32, weight: 700, lineHeight: 1.25, use: "Observed Docs h1 only; not a complete display scale" }
|
|
106
|
+
control: { size: 14, weight: 400, lineHeight: 1.43, use: "Public Docs prompt, action, input, and tab samples" }
|
|
107
|
+
spacing: { xs: 4, sm: 6, md: 8, lg: 12, xl: 16, xxl: 24 }
|
|
108
|
+
rounded: { sm: 4, md: 6, lg: 8 }
|
|
52
109
|
components:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
input-text: { type: input, fg: "#061b31", radius: 4, font: "14px sohne-var", use: "Form input, 1px #e5edf5 border, focus #533afd, placeholder #64748d" }
|
|
57
|
-
badge-success: { type: badge, fg: "#108c3d", radius: 4, padding: "1px 6px", font: "10px/300 sohne-var", use: "Success badge, success #15be53 tinted bg" }
|
|
110
|
+
docs-search-prompt: { type: button, bg: "#ffffff", fg: "#5469d4", radius: 8, padding: "2px 8px", font: "14px/400 operating-system stack", hover: "#273951 text with #95a4ba border", pressed: "#f4f7fa background with #3c4f69 text and #d4dee9 border", focus: "captured without a distinct computed value", states: "focus, hover, pressed; home and payments only" }
|
|
111
|
+
docs-secondary-action: { type: button, bg: "#ffffff", fg: "#50617a", border: "0px #d4dee9", radius: 8, padding: "6px 12px", font: "14px/400/20px operating-system stack", hover: "#273951 text with #95a4ba border", pressed: "#f4f7fa background with #3c4f69 text", focus: "#f4f7fa background with #50617a text", states: "focus, hover, pressed; home and payments only" }
|
|
112
|
+
docs-content-tab: { type: tab, fg: "#414552", radius: 0, padding: "0px", font: "14px/400 operating-system stack", states: "selected; static aria-tab capture on Docs home and payments" }
|
|
58
113
|
components_harvested: true
|
|
59
114
|
---
|
|
60
115
|
|
|
@@ -62,510 +117,176 @@ tokens:
|
|
|
62
117
|
|
|
63
118
|
## 1. Visual Theme & Atmosphere
|
|
64
119
|
|
|
65
|
-
Stripe
|
|
66
|
-
|
|
67
|
-
The custom `sohne-var` variable font is the defining element of Stripe's visual identity. Every text element enables the OpenType `"ss01"` stylistic set, which modifies character shapes for a distinctly geometric, modern feel. At display sizes (48px-56px), sohne-var runs at weight 300 -- an extraordinarily light weight for headlines that creates an ethereal, almost whispered authority. This is the opposite of the "bold hero headline" convention; Stripe's headlines feel like they don't need to shout. The negative letter-spacing (-1.4px at 56px, -0.96px at 48px) tightens the text into dense, engineered blocks. At smaller sizes, the system also uses weight 300 with proportionally reduced tracking, and tabular numerals via `"tnum"` for financial data display.
|
|
120
|
+
Stripe builds economic infrastructure for internet businesses, from payments to broader business-management software. Its official newsroom frames that mission around increasing the GDP of the internet, while the current public Docs surfaces turn the same infrastructure stance into an information-dense, quiet interface. The supplied capture covers Docs home, Payments documentation, and API reference—not the marketing home, Dashboard, or checkout. Across those public documentation routes, a restrained blue-gray text hierarchy sits on white and faintly cool surfaces, with purple/indigo used for links and API-reference accents. The visual character is therefore best described as product documentation chrome: readable, compact, and deliberately non-promotional. Stripe’s official operating principles add the relevant brand context—users first, craft and beauty, urgency and focus, and careful foundations—but they do not authorize treating marketing art direction as a Docs token.
|
|
68
121
|
|
|
69
|
-
|
|
122
|
+
**Key characteristics:**
|
|
70
123
|
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
- Deep navy (`#061b31`) headings instead of black -- warm, premium, financial-grade
|
|
77
|
-
- Conservative border-radius (4px-8px) -- nothing pill-shaped, nothing harsh
|
|
78
|
-
- Ruby (`#ea2261`) and magenta (`#f96bee`) accents for gradient and decorative elements
|
|
79
|
-
- `SourceCodePro` as the monospace companion for code and technical labels
|
|
124
|
+
- Public Docs use `#414552` as repeated foreground text and `#1a2c44` in API-reference content.
|
|
125
|
+
- `#5469d4` is the selector-backed Docs link/action color; `#533afd` occurs on API-reference actions and borders.
|
|
126
|
+
- White `#ffffff` is the repeated canvas; `#f4f7fa` appears in pressed/subtle controls.
|
|
127
|
+
- Captured geometry is compact: 4px, 6px, and 8px radii; the evidence does not support a universal radius rule.
|
|
128
|
+
- Marketing, Docs, newsroom assets, and unauthenticated product UI remain separate evidence domains.
|
|
80
129
|
|
|
81
130
|
## 2. Color Palette & Roles
|
|
82
131
|
|
|
83
|
-
###
|
|
84
|
-
|
|
85
|
-
- **
|
|
86
|
-
- **
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
### Interactive
|
|
98
|
-
- **Primary Purple** (`#533afd`): Primary link color, active states, selected elements.
|
|
99
|
-
- **Purple Hover** (`#4434d4`): Darker purple for hover states on primary elements.
|
|
100
|
-
- **Purple Deep** (`#2e2b8c`): `--hds-color-button-ui-iconHover`. Dark purple for icon hover states.
|
|
101
|
-
- **Purple Light** (`#b9b9f9`): `--hds-color-action-bg-subduedHover`. Soft lavender for subdued hover backgrounds.
|
|
102
|
-
- **Purple Mid** (`#665efd`): `--hds-color-input-selector-text-range`. Range selector and input highlight color.
|
|
103
|
-
|
|
104
|
-
### Neutral Scale
|
|
105
|
-
- **Heading** (`#061b31`): Primary headings, nav text, strong labels.
|
|
106
|
-
- **Label** (`#273951`): `--hds-color-input-text-label`. Form labels, secondary headings.
|
|
107
|
-
- **Body** (`#64748d`): Secondary text, descriptions, captions.
|
|
108
|
-
- **Success Green** (`#15be53`): Status badges, success indicators (with 0.2-0.4 alpha for backgrounds/borders).
|
|
109
|
-
- **Success Text** (`#108c3d`): Success badge text color.
|
|
110
|
-
- **Lemon** (`#9b6829`): `--hds-color-core-lemon-500`. Warning and highlight accent.
|
|
111
|
-
|
|
112
|
-
### Surface & Borders
|
|
113
|
-
- **Border Default** (`#e5edf5`): Standard border color for cards, dividers, and containers.
|
|
114
|
-
- **Border Purple** (`#b9b9f9`): Active/selected state borders on buttons and inputs.
|
|
115
|
-
- **Border Soft Purple** (`#d6d9fc`): Subtle purple-tinted borders for secondary elements.
|
|
116
|
-
- **Border Magenta** (`#ffd7ef`): Pink-tinted borders for magenta-themed elements.
|
|
117
|
-
- **Border Dashed** (`#362baa`): Dashed borders for drop zones and placeholder elements.
|
|
118
|
-
|
|
119
|
-
### Shadow Colors
|
|
120
|
-
- **Shadow Blue** (`rgba(50,50,93,0.25)`): The signature -- blue-tinted primary shadow color.
|
|
121
|
-
- **Shadow Dark Blue** (`rgba(3,3,39,0.25)`): Deeper blue shadow for elevated elements.
|
|
122
|
-
- **Shadow Black** (`rgba(0,0,0,0.1)`): Secondary shadow layer for depth reinforcement.
|
|
123
|
-
- **Shadow Ambient** (`rgba(23,23,23,0.08)`): Soft ambient shadow for subtle elevation.
|
|
124
|
-
- **Shadow Soft** (`rgba(23,23,23,0.06)`): Minimal ambient shadow for light lift.
|
|
132
|
+
### Selector-backed public Docs colors
|
|
133
|
+
|
|
134
|
+
- **Docs Foreground** (`#414552`): repeated text and tab color on Docs home, Payments docs, and API reference.
|
|
135
|
+
- **API Foreground** (`#1a2c44`): stronger text on captured API-reference and Payments documentation content.
|
|
136
|
+
- **Muted Docs Text** (`#50617a`): compact secondary-action text.
|
|
137
|
+
- **Docs Link** (`#5469d4`): repeated Docs home/Payments link and prompt-action color.
|
|
138
|
+
- **API Accent** (`#533afd`): API-reference action/link and border samples; it is not promoted as a universal Docs fill.
|
|
139
|
+
- **Canvas / On-dark** (`#ffffff`): repeated white public Docs canvas and dark-control text.
|
|
140
|
+
- **Subtle Pressed Surface** (`#f4f7fa`): observed only on pressed/focused compact Docs controls.
|
|
141
|
+
- **Hairline** (`#d4dee9`): observed compact-control border; **Hairline Hover** (`#95a4ba`) appears in captured hover styles.
|
|
142
|
+
|
|
143
|
+
### Brand-asset boundary
|
|
144
|
+
|
|
145
|
+
Stripe’s newsroom says its wordmark is available in slate, blurple, and white. The catalog’s `primary_color` remains `#635bff`, but the current packet contains no computed marketing-surface sample that would make it a Docs token. Do not substitute the marketing/wordmark color for `#5469d4` or `#533afd` on the captured Docs routes.
|
|
125
146
|
|
|
126
147
|
## 3. Typography Rules
|
|
127
148
|
|
|
128
|
-
###
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
| Caption Small | sohne-var | 12px (0.75rem) | 300-400 | 1.33-1.45 | normal | ss01 | Fine print, timestamps |
|
|
149
|
-
| Caption Tabular | sohne-var | 12px (0.75rem) | 300-400 | 1.33 | -0.36px | tnum | Financial data, numbers |
|
|
150
|
-
| Micro | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | 0.1px | ss01 | Tiny labels, axis markers |
|
|
151
|
-
| Micro Tabular | sohne-var | 10px (0.63rem) | 300 | 1.15 (tight) | -0.3px | tnum | Chart data, small numbers |
|
|
152
|
-
| Nano | sohne-var | 8px (0.50rem) | 300 | 1.07 (tight) | normal | ss01 | Smallest labels |
|
|
153
|
-
| Code Body | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | -- | Code blocks, syntax |
|
|
154
|
-
| Code Bold | SourceCodePro | 12px (0.75rem) | 700 | 2.00 (relaxed) | normal | -- | Bold code, keywords |
|
|
155
|
-
| Code Label | SourceCodePro | 12px (0.75rem) | 500 | 2.00 (relaxed) | normal | uppercase | Technical labels |
|
|
156
|
-
| Code Micro | SourceCodePro | 9px (0.56rem) | 500 | 1.00 (tight) | normal | ss01 | Tiny code annotations |
|
|
157
|
-
|
|
158
|
-
### Principles
|
|
159
|
-
- **Light weight as signature**: Weight 300 at display sizes is Stripe's most distinctive typographic choice. Where others use 600-700 to command attention, Stripe uses lightness as luxury -- the text is so confident it doesn't need weight to be authoritative.
|
|
160
|
-
- **ss01 everywhere**: The `"ss01"` stylistic set is non-negotiable. It modifies specific glyphs (likely alternate `a`, `g`, `l` forms) to create a more geometric, contemporary feel across all sohne-var text.
|
|
161
|
-
- **Two OpenType modes**: `"ss01"` for display/body text, `"tnum"` for tabular numerals in financial data. These never overlap -- a number in a paragraph uses ss01, a number in a data table uses tnum.
|
|
162
|
-
- **Progressive tracking**: Letter-spacing tightens proportionally with size: -1.4px at 56px, -0.96px at 48px, -0.64px at 32px, -0.26px at 26px, normal at 16px and below.
|
|
163
|
-
- **Two-weight simplicity**: Primarily 300 (body and headings) and 400 (UI/buttons). No bold (700) in the primary font -- SourceCodePro uses 500/700 for code contrast.
|
|
149
|
+
### Evidence classes
|
|
150
|
+
|
|
151
|
+
| Evidence class | Family and boundary |
|
|
152
|
+
|---|---|
|
|
153
|
+
| Official product-use | No supplied official Stripe statement establishes a named type family for the three captured Docs routes. |
|
|
154
|
+
| Live computed surface-use | The Docs capture records an operating-system stack beginning `-apple-system` in 355 visible uses. It is system typography, not a Stripe-owned family or a substitute for one. |
|
|
155
|
+
| Official distributed brand asset | Klim Type Foundry’s Söhne page lists Stripe in its separate “Söhne in use” showcase and describes available WOFF2/web licensing. This is foundry/brand context only; it is not evidence that the captured Docs routes loaded Söhne. |
|
|
156
|
+
| Declared-only | Heiti SC, Hiragino Kaku Gothic ProN, Hiragino Sans, Hiragino Sans GB, Meiryo UI, Microsoft JhengHei, Microsoft YaHei, PingFang SC, and Yu Gothic UI have declarations but no visible use in the supplied capture. |
|
|
157
|
+
| System / unresolved | `Source Code Pro` (four computed occurrences) and Menlo (two) have no matching loaded FontFace/source URL in the artifact, so neither is promoted. Adobe’s Source Code Pro repository/license establishes the font’s OFL status, not Stripe deployment. |
|
|
158
|
+
|
|
159
|
+
### Captured hierarchy
|
|
160
|
+
|
|
161
|
+
| Role | Family boundary | Size | Weight | Line height | Evidence boundary |
|
|
162
|
+
|---|---|---:|---:|---:|---|
|
|
163
|
+
| Public Docs body | operating-system stack | 14px | 400 | 20px or normal | repeated Docs samples; no named UI family claim |
|
|
164
|
+
| API Docs h1 | operating-system stack | 32px | 700 | 40px | two observed API-reference samples only |
|
|
165
|
+
| Docs control | operating-system stack | 14px | 400 | 20px or normal | prompt, action, input, and tab samples |
|
|
166
|
+
| Code-adjacent sample | Source Code Pro | 12px | 700 | 20px | four computed occurrences; unresolved because FontFace/source corroboration is absent |
|
|
167
|
+
|
|
168
|
+
Do not render a system fallback as Söhne or Source Code Pro. The capture supports system-stack documentation typography only.
|
|
164
169
|
|
|
165
170
|
## 4. Component Stylings
|
|
166
171
|
|
|
167
|
-
###
|
|
168
|
-
|
|
169
|
-
**
|
|
170
|
-
- Background: `#533afd`
|
|
171
|
-
- Text: `#ffffff`
|
|
172
|
-
- Padding: 8px 16px
|
|
173
|
-
- Radius: 4px
|
|
174
|
-
- Font: 16px sohne-var weight 400, `"ss01"`
|
|
175
|
-
- Hover: `#4434d4` background
|
|
176
|
-
- Use: Primary CTA ("Start now", "Contact sales")
|
|
177
|
-
|
|
178
|
-
**Ghost / Outlined**
|
|
179
|
-
- Background: transparent
|
|
180
|
-
- Text: `#533afd`
|
|
181
|
-
- Padding: 8px 16px
|
|
182
|
-
- Radius: 4px
|
|
183
|
-
- Border: `1px solid #b9b9f9`
|
|
184
|
-
- Font: 16px sohne-var weight 400, `"ss01"`
|
|
185
|
-
- Hover: background shifts to `rgba(83,58,253,0.05)`
|
|
186
|
-
- Use: Secondary actions
|
|
187
|
-
|
|
188
|
-
**Transparent Info**
|
|
189
|
-
- Background: transparent
|
|
190
|
-
- Text: `#2874ad`
|
|
191
|
-
- Padding: 8px 16px
|
|
192
|
-
- Radius: 4px
|
|
193
|
-
- Border: `1px solid rgba(43,145,223,0.2)`
|
|
194
|
-
- Use: Tertiary/info-level actions
|
|
195
|
-
|
|
196
|
-
**Neutral Ghost**
|
|
197
|
-
- Background: transparent (`rgba(255,255,255,0)`)
|
|
198
|
-
- Text: `rgba(16,16,16,0.3)`
|
|
199
|
-
- Padding: 8px 16px
|
|
200
|
-
- Radius: 4px
|
|
201
|
-
- Outline: `1px solid rgb(212,222,233)`
|
|
202
|
-
- Use: Disabled or muted actions
|
|
203
|
-
|
|
204
|
-
#### Sessions / `.CtaButton` system — `stripe.com/payments` and product surfaces
|
|
205
|
-
|
|
206
|
-
Stripe runs a **second button system** on product/payment surfaces, distinct from the HDS marketing chrome. Different color (`#9966ff` lavender vs HDS `#533afd` Deep Violet), different geometry (16.5px pill vs 4px sharp), different weight (425 vs 400).
|
|
207
|
-
|
|
208
|
-
**Sessions Primary**
|
|
209
|
-
- Background: `#9966ff` (rgb(153, 102, 255) — lighter lavender)
|
|
210
|
-
- Text: `#ffffff`
|
|
211
|
-
- Padding: 3px 12px 6px 16px (asymmetric)
|
|
212
|
-
- Radius: 16.5px (pill-like, much rounder than HDS 4px)
|
|
213
|
-
- Height: 33px
|
|
214
|
-
- Font: 15px / weight **425** / sohne-var (note: 425 is between regular and medium)
|
|
215
|
-
- Use: Product-page primary CTA on stripe.com/payments — "Start accepting payments", "Start now"
|
|
216
|
-
|
|
217
|
-
**Sessions Link**
|
|
218
|
-
- Background: transparent
|
|
219
|
-
- Text: `#9966ff`
|
|
220
|
-
- Padding: 3px 0px 6px
|
|
221
|
-
- Radius: 16.5px
|
|
222
|
-
- Height: 33px
|
|
223
|
-
- Font: 15px / 425 / sohne-var
|
|
224
|
-
- Use: Inline link CTA — "Try the demo", "Explore full page", "Read the story"
|
|
225
|
-
|
|
226
|
-
**Sessions Quiet** (carousel)
|
|
227
|
-
- Background: transparent
|
|
228
|
-
- Text: `#000000`
|
|
229
|
-
- Padding: 1px 6px
|
|
230
|
-
- Radius: 14px
|
|
231
|
-
- Height: 28px
|
|
232
|
-
- Font: 13.3px / 400
|
|
233
|
-
- Use: Carousel prev/next arrows on product pages
|
|
234
|
-
|
|
235
|
-
### Cards & Containers
|
|
172
|
+
### Public Docs actions
|
|
173
|
+
|
|
174
|
+
**Search Prompt**
|
|
236
175
|
- Background: `#ffffff`
|
|
237
|
-
-
|
|
238
|
-
-
|
|
239
|
-
-
|
|
240
|
-
-
|
|
241
|
-
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
176
|
+
- Text: `#5469d4`
|
|
177
|
+
- Border: 0px `#5469d4`
|
|
178
|
+
- Radius: 8px
|
|
179
|
+
- Padding: 2px 8px
|
|
180
|
+
- Font: 14px / 400 / operating-system stack
|
|
181
|
+
- Hover: `#273951` text with `#95a4ba` border
|
|
182
|
+
- Pressed: `#f4f7fa` background with `#3c4f69` text and `#d4dee9` border
|
|
183
|
+
- Focus: captured without a distinct computed value
|
|
184
|
+
- Use: Docs home and Payments search-prompt action; selector `home::[data-omd-capture="2"]`.
|
|
185
|
+
|
|
186
|
+
**Secondary Action**
|
|
245
187
|
- Background: `#ffffff`
|
|
246
|
-
- Text: `#
|
|
247
|
-
-
|
|
248
|
-
- Radius:
|
|
249
|
-
-
|
|
250
|
-
- Font:
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
-
|
|
254
|
-
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
-
|
|
262
|
-
-
|
|
263
|
-
-
|
|
264
|
-
-
|
|
265
|
-
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
- Brand logotype left-aligned
|
|
271
|
-
- Links: sohne-var 14px weight 400, `#061b31` text with `"ss01"`
|
|
272
|
-
- Radius: 6px on nav container
|
|
273
|
-
- CTA: purple button right-aligned ("Sign in", "Start now")
|
|
274
|
-
- Mobile: hamburger toggle with 6px radius
|
|
275
|
-
|
|
276
|
-
### Decorative Elements
|
|
277
|
-
**Dashed Borders**
|
|
278
|
-
- `1px dashed #362baa` (purple) for placeholder/drop zones
|
|
279
|
-
- `1px dashed #ffd7ef` (magenta) for magenta-themed decorative borders
|
|
280
|
-
|
|
281
|
-
**Gradient Accents**
|
|
282
|
-
- Ruby-to-magenta gradients (`#ea2261` to `#f96bee`) for hero decorations
|
|
283
|
-
- Brand dark sections use `#1c1e54` backgrounds with white text
|
|
188
|
+
- Text: `#50617a`
|
|
189
|
+
- Border: 0px `#d4dee9`
|
|
190
|
+
- Radius: 8px
|
|
191
|
+
- Padding: 6px 12px
|
|
192
|
+
- Font: 14px / 400 / 20px / operating-system stack
|
|
193
|
+
- Hover: `#273951` text with `#95a4ba` border
|
|
194
|
+
- Pressed: `#f4f7fa` background with `#3c4f69` text
|
|
195
|
+
- Focus: `#f4f7fa` background with `#50617a` text
|
|
196
|
+
- Use: Docs home and Payments compact action; selector `home::[data-omd-capture="4"]`.
|
|
197
|
+
|
|
198
|
+
### Public Docs navigation
|
|
199
|
+
|
|
200
|
+
**Content Tab**
|
|
201
|
+
- Text: `#414552`
|
|
202
|
+
- Border: 0px `#414552`
|
|
203
|
+
- Radius: 0px
|
|
204
|
+
- Padding: 0px
|
|
205
|
+
- Font: 14px / 400 / operating-system stack
|
|
206
|
+
- State: selected is present as a static ARIA-tab capture; no interaction transition was captured.
|
|
207
|
+
- Use: Docs home and Payments content tabs; selectors `home::[data-omd-capture="7"]` and `surface-2::[data-omd-capture="46"]`.
|
|
208
|
+
|
|
209
|
+
### Scope boundary
|
|
210
|
+
|
|
211
|
+
The supplied collector records `interactionCount: 0`. Hover, pressed, focus, and selected values above are only the individual static state samples retained in the artifact; no menu, dialog, toast, form-error, disabled, or authenticated-product variant is inferred. Low-confidence card/badge detections and Docs input styling are preserved in verification evidence but not promoted into canonical components.
|
|
284
212
|
|
|
285
213
|
---
|
|
286
|
-
|
|
287
|
-
**
|
|
288
|
-
**Tier
|
|
289
|
-
**
|
|
290
|
-
**Conflicts resolved:** Two-system split documented as intentional (not a conflict): HDS `#533afd` 4px sharp on marketing/home / Sessions `#9966ff` 16.5px pill 425-weight on product pages. Both retained as separate variant subgroups in §4.
|
|
291
|
-
**Earlier gap:** §4 had only HDS variants; Sessions `#9966ff` system was missing. Now added.
|
|
292
|
-
**Philosophy citations:** Wikipedia (Patrick + John Collison), YC Startup Library, KITRUM (Auctomatic prior exit), Founded.com ($159B valuation).
|
|
293
|
-
**`.verification.md`:** `web/references/stripe/.verification.md`
|
|
214
|
+
**Verified:** 2026-07-13
|
|
215
|
+
**Tier 1 sources:** https://docs.stripe.com/ ; https://docs.stripe.com/payments ; https://docs.stripe.com/api ; https://stripe.com/newsroom/information ; https://stripe.com/jobs/culture
|
|
216
|
+
**Tier 2 sources:** https://getdesign.md/stripe (independent analysis; no numeric token promoted); https://styles.refero.design/?q=stripe and https://styles.refero.design/style/48e5de76-05d5-4c4e-a269-c7c245b291ec (independent, older marketing-system record)
|
|
217
|
+
**Conflicts unresolved:** none
|
|
294
218
|
|
|
295
219
|
## 5. Layout Principles
|
|
296
220
|
|
|
297
|
-
|
|
298
|
-
- Base unit: 8px
|
|
299
|
-
- Scale: 1px, 2px, 4px, 6px, 8px, 10px, 11px, 12px, 14px, 16px, 18px, 20px
|
|
300
|
-
- Notable: The scale is dense at the small end (every 2px from 4-12), reflecting Stripe's precision-oriented UI for financial data
|
|
301
|
-
|
|
302
|
-
### Grid & Container
|
|
303
|
-
- Max content width: approximately 1080px
|
|
304
|
-
- Hero: centered single-column with generous padding, lightweight headlines
|
|
305
|
-
- Feature sections: 2-3 column grids for feature cards
|
|
306
|
-
- Full-width dark sections with `#1c1e54` background for brand immersion
|
|
307
|
-
- Code/dashboard previews as contained cards with blue-tinted shadows
|
|
308
|
-
|
|
309
|
-
### Whitespace Philosophy
|
|
310
|
-
- **Precision spacing**: Unlike the vast emptiness of minimalist systems, Stripe uses measured, purposeful whitespace. Every gap is a deliberate typographic choice.
|
|
311
|
-
- **Dense data, generous chrome**: Financial data displays (tables, charts) are tightly packed, but the UI chrome around them is generously spaced. This creates a sense of controlled density -- like a well-organized spreadsheet in a beautiful frame.
|
|
312
|
-
- **Section rhythm**: White sections alternate with dark brand sections (`#1c1e54`), creating a dramatic light/dark cadence that prevents monotony without introducing arbitrary color.
|
|
313
|
-
|
|
314
|
-
### Border Radius Scale
|
|
315
|
-
- Micro (1px): Fine-grained elements, subtle rounding
|
|
316
|
-
- Standard (4px): Buttons, inputs, badges, cards -- the workhorse
|
|
317
|
-
- Comfortable (5px): Standard card containers
|
|
318
|
-
- Relaxed (6px): Navigation, larger interactive elements
|
|
319
|
-
- Large (8px): Featured cards, hero elements
|
|
320
|
-
- Compound: `0px 0px 6px 6px` for bottom-rounded containers (tab panels, dropdown footers)
|
|
221
|
+
The capture supports documentation layout behavior only: Docs body/list text repeats at 14px, API-reference headings at 32px, and repeated gaps cluster at 4px, 6px, 8px, 12px, 16px, and 24px. Tabs, prompts, and compact actions use zero or low-radius chrome. It does not establish public marketing-grid, Dashboard, checkout, or mobile breakpoint rules.
|
|
321
222
|
|
|
322
223
|
## 6. Depth & Elevation
|
|
323
224
|
|
|
324
|
-
|
|
325
|
-
|-------|-----------|-----|
|
|
326
|
-
| Flat (Level 0) | No shadow | Page background, inline text |
|
|
327
|
-
| Ambient (Level 1) | `rgba(23,23,23,0.06) 0px 3px 6px` | Subtle card lift, hover hints |
|
|
328
|
-
| Standard (Level 2) | `rgba(23,23,23,0.08) 0px 15px 35px` | Standard cards, content panels |
|
|
329
|
-
| Elevated (Level 3) | `rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px` | Featured cards, dropdowns, popovers |
|
|
330
|
-
| Deep (Level 4) | `rgba(3,3,39,0.25) 0px 14px 21px -14px, rgba(0,0,0,0.1) 0px 8px 17px -8px` | Modals, floating panels |
|
|
331
|
-
| Ring (Accessibility) | `2px solid #533afd` outline | Keyboard focus ring |
|
|
332
|
-
|
|
333
|
-
**Shadow Philosophy**: Stripe's shadow system is built on a principle of chromatic depth. Where most design systems use neutral gray or black shadows, Stripe's primary shadow color (`rgba(50,50,93,0.25)`) is a deep blue-gray that echoes the brand's navy palette. This creates shadows that don't just add depth -- they add brand atmosphere. The multi-layer approach pairs this blue-tinted shadow with a pure black secondary layer (`rgba(0,0,0,0.1)`) at a different offset, creating a parallax-like depth where the branded shadow sits farther from the element and the neutral shadow sits closer. The negative spread values (-30px, -18px) ensure shadows don't extend beyond the element's footprint horizontally, keeping elevation vertical and controlled.
|
|
334
|
-
|
|
335
|
-
### Decorative Depth
|
|
336
|
-
- Dark brand sections (`#1c1e54`) create immersive depth through background color contrast
|
|
337
|
-
- Gradient overlays with ruby-to-magenta transitions for hero decorations
|
|
338
|
-
- Shadow color `rgba(0,55,112,0.08)` (`--hds-color-shadow-sm-top`) for top-edge shadows on sticky elements
|
|
225
|
+
Captured Docs controls are principally flat. The search prompt and secondary action use white `#ffffff`; their pressed/focused states use `#f4f7fa` and hairline values rather than a documented universal shadow scale. An API-only dark sample has a shadow, but a single route-local control is insufficient to publish an elevation system.
|
|
339
226
|
|
|
340
227
|
## 7. Do's and Don'ts
|
|
341
228
|
|
|
342
229
|
### Do
|
|
343
|
-
|
|
344
|
-
-
|
|
345
|
-
-
|
|
346
|
-
-
|
|
347
|
-
-
|
|
348
|
-
- Use `"tnum"` for any tabular/financial number display
|
|
349
|
-
- Layer shadows: blue-tinted far + neutral close for depth parallax
|
|
350
|
-
- Use `#533afd` purple as the primary interactive/CTA color
|
|
230
|
+
|
|
231
|
+
- Keep the captured Docs hierarchy compact: 14px public text/control samples and a 32px API h1 sample.
|
|
232
|
+
- Use `#5469d4` for the observed Docs prompt/link treatment and reserve `#533afd` for the captured API-reference accent context.
|
|
233
|
+
- Preserve selector/surface boundaries when using the 8px compact actions or zero-radius content tabs.
|
|
234
|
+
- Treat Söhne, Source Code Pro, and declared CJK faces according to their evidence class rather than loading a substitute.
|
|
351
235
|
|
|
352
236
|
### Don't
|
|
353
|
-
|
|
354
|
-
- Don't
|
|
355
|
-
- Don't
|
|
356
|
-
- Don't
|
|
357
|
-
- Don't
|
|
358
|
-
- Don't use warm accent colors (orange, yellow) for interactive elements -- purple is primary
|
|
359
|
-
- Don't apply positive letter-spacing at display sizes -- Stripe tracks tight
|
|
360
|
-
- Don't use the magenta/ruby accents for buttons or links -- they're decorative/gradient only
|
|
237
|
+
|
|
238
|
+
- Don't apply a marketing purple, gradient, shadow, font, or button treatment to Docs merely because it is associated with Stripe elsewhere.
|
|
239
|
+
- Don't claim menu, dialog, toast, error, disabled, or authenticated Dashboard states from this zero-interaction packet.
|
|
240
|
+
- Don't render the operating-system stack as though it were a named Stripe typeface.
|
|
241
|
+
- Don't turn a low-confidence generic card/badge detection into a reusable component token.
|
|
361
242
|
|
|
362
243
|
## 8. Responsive Behavior
|
|
363
244
|
|
|
364
|
-
|
|
365
|
-
| Name | Width | Key Changes |
|
|
366
|
-
|------|-------|-------------|
|
|
367
|
-
| Mobile | <640px | Single column, reduced heading sizes, stacked cards |
|
|
368
|
-
| Tablet | 640-1024px | 2-column grids, moderate padding |
|
|
369
|
-
| Desktop | 1024-1280px | Full layout, 3-column feature grids |
|
|
370
|
-
| Large Desktop | >1280px | Centered content with generous margins |
|
|
371
|
-
|
|
372
|
-
### Touch Targets
|
|
373
|
-
- Buttons use comfortable padding (8px-16px vertical)
|
|
374
|
-
- Navigation links at 14px with adequate spacing
|
|
375
|
-
- Badges have 6px horizontal padding minimum for tap targets
|
|
376
|
-
- Mobile nav toggle with 6px radius button
|
|
377
|
-
|
|
378
|
-
### Collapsing Strategy
|
|
379
|
-
- Hero: 56px display -> 32px on mobile, weight 300 maintained
|
|
380
|
-
- Navigation: horizontal links + CTAs -> hamburger toggle
|
|
381
|
-
- Feature cards: 3-column -> 2-column -> single column stacked
|
|
382
|
-
- Dark brand sections: maintain full-width treatment, reduce internal padding
|
|
383
|
-
- Financial data tables: horizontal scroll on mobile
|
|
384
|
-
- Section spacing: 64px+ -> 40px on mobile
|
|
385
|
-
- Typography scale compresses: 56px -> 48px -> 32px hero sizes across breakpoints
|
|
386
|
-
|
|
387
|
-
### Image Behavior
|
|
388
|
-
- Dashboard/product screenshots maintain blue-tinted shadow at all sizes
|
|
389
|
-
- Hero gradient decorations simplify on mobile
|
|
390
|
-
- Code blocks maintain `SourceCodePro` treatment, may horizontally scroll
|
|
391
|
-
- Card images maintain consistent 4px-6px border-radius
|
|
245
|
+
No mobile viewport or responsive transition was captured. The public Docs routes may be responsive, but this packet supports no breakpoint, collapsed-navigation, or touch-target specification.
|
|
392
246
|
|
|
393
247
|
## 9. Agent Prompt Guide
|
|
394
248
|
|
|
395
|
-
|
|
396
|
-
- Primary CTA: Stripe Purple (`#533afd`)
|
|
397
|
-
- CTA Hover: Purple Dark (`#4434d4`)
|
|
398
|
-
- Background: Pure White (`#ffffff`)
|
|
399
|
-
- Heading text: Deep Navy (`#061b31`)
|
|
400
|
-
- Body text: Slate (`#64748d`)
|
|
401
|
-
- Label text: Dark Slate (`#273951`)
|
|
402
|
-
- Border: Soft Blue (`#e5edf5`)
|
|
403
|
-
- Link: Stripe Purple (`#533afd`)
|
|
404
|
-
- Dark section: Brand Dark (`#1c1e54`)
|
|
405
|
-
- Success: Green (`#15be53`)
|
|
406
|
-
- Accent decorative: Ruby (`#ea2261`), Magenta (`#f96bee`)
|
|
407
|
-
|
|
408
|
-
### Example Component Prompts
|
|
409
|
-
- "Create a hero section on white background. Headline at 48px sohne-var weight 300, line-height 1.15, letter-spacing -0.96px, color #061b31, font-feature-settings 'ss01'. Subtitle at 18px weight 300, line-height 1.40, color #64748d. Purple CTA button (#533afd, 4px radius, 8px 16px padding, white text) and ghost button (transparent, 1px solid #b9b9f9, #533afd text, 4px radius)."
|
|
410
|
-
- "Design a card: white background, 1px solid #e5edf5 border, 6px radius. Shadow: rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18px. Title at 22px sohne-var weight 300, letter-spacing -0.22px, color #061b31, 'ss01'. Body at 16px weight 300, #64748d."
|
|
411
|
-
- "Build a success badge: rgba(21,190,83,0.2) background, #108c3d text, 4px radius, 1px 6px padding, 10px sohne-var weight 300, border 1px solid rgba(21,190,83,0.4)."
|
|
412
|
-
- "Create navigation: white sticky header with backdrop-filter blur(12px). sohne-var 14px weight 400 for links, #061b31 text, 'ss01'. Purple CTA 'Start now' right-aligned (#533afd bg, white text, 4px radius). Nav container 6px radius."
|
|
413
|
-
- "Design a dark brand section: #1c1e54 background, white text. Headline 32px sohne-var weight 300, letter-spacing -0.64px, 'ss01'. Body 16px weight 300, rgba(255,255,255,0.7). Cards inside use rgba(255,255,255,0.1) border with 6px radius."
|
|
414
|
-
|
|
415
|
-
### Iteration Guide
|
|
416
|
-
1. Always enable `font-feature-settings: "ss01"` on sohne-var text -- this is the brand's typographic DNA
|
|
417
|
-
2. Weight 300 is the default; use 400 only for buttons/links/navigation
|
|
418
|
-
3. Shadow formula: `rgba(50,50,93,0.25) 0px Y1 B1 -S1, rgba(0,0,0,0.1) 0px Y2 B2 -S2` where Y1/B1 are larger (far shadow) and Y2/B2 are smaller (near shadow)
|
|
419
|
-
4. Heading color is `#061b31` (deep navy), body is `#64748d` (slate), labels are `#273951` (dark slate)
|
|
420
|
-
5. Border-radius stays in the 4px-8px range -- never use pill shapes or large rounding
|
|
421
|
-
6. Use `"tnum"` for any numbers in tables, charts, or financial displays
|
|
422
|
-
7. Dark sections use `#1c1e54` -- not black, not gray, but a deep branded indigo
|
|
423
|
-
8. SourceCodePro for code at 12px/500 with 2.00 line-height (very generous for readability)
|
|
424
|
-
|
|
425
|
-
---
|
|
249
|
+
For a Docs-local reference implementation, use a white `#ffffff` canvas, `#414552` foreground text, 14px operating-system-stack controls, a `#5469d4` compact prompt action with an 8px radius, and `#d4dee9`/`#95a4ba` hairline states. Do not describe this as Stripe marketing, Dashboard, or checkout styling, and omit any named font specimen unless a future capture supplies computed usage plus FontFace/source corroboration.
|
|
426
250
|
|
|
427
251
|
## 10. Voice & Tone
|
|
428
252
|
|
|
429
|
-
Stripe
|
|
253
|
+
Stripe’s operating principles emphasize users first, craft and beauty, urgency and focus, egoless collaboration, talent, and curiosity. Its product-facing public copy can therefore be direct and concrete: state the capability, then the mechanism or next action. The supplied Docs capture supports documentation context but does not itself establish a complete marketing-copy corpus.
|
|
430
254
|
|
|
431
|
-
| Context |
|
|
255
|
+
| Context | Supported direction |
|
|
432
256
|
|---|---|
|
|
433
|
-
|
|
|
434
|
-
|
|
|
435
|
-
|
|
|
436
|
-
| API error messages | Structured as developer errors: error type + precise explanation + link to docs. |
|
|
437
|
-
| Docs / API reference | Dense, precise, respects reader as a peer. Examples precede explanations. |
|
|
438
|
-
| Marketing / enterprise | Slightly more formal register, same voice. Never shifts into sales-speak. |
|
|
439
|
-
| Careers / About | Confident but humble. Celebrates rigor, not scale. |
|
|
440
|
-
| Legal / compliance | Formal, reads like a carefully edited regulatory filing. |
|
|
441
|
-
| Changelog / release notes | Chronological, specific, engineer-to-engineer. |
|
|
442
|
-
|
|
443
|
-
**Forbidden phrases.** "Revolutionary", "game-changer", "unleash", "supercharge", "cutting-edge", "disrupt/disruption" as verbs. "Simply...", "Just...". Exclamation marks on routine CTAs. Emoji anywhere on marketing, product, docs, or developer surfaces. Performative hedging ("We're so excited to announce..."). Stacked adjectives on capabilities ("world-class, enterprise-grade, battle-tested payment infrastructure" — pick one, usually none).
|
|
257
|
+
| Product / Docs | Lead with the operation or capability; keep terminology precise. |
|
|
258
|
+
| Action labels | Use short, literal labels that name the next task. |
|
|
259
|
+
| Brand narrative | Connect financial infrastructure to what businesses can build, without inventing a product claim. |
|
|
444
260
|
|
|
445
261
|
## 11. Brand Narrative
|
|
446
262
|
|
|
447
|
-
Stripe
|
|
448
|
-
|
|
449
|
-
The founding rejection was of every incumbent payment processor that treated integration as a multi-week enterprise-sales procurement cycle. Stripe's first pitch was, essentially: *"what if it took seven lines of code instead."*
|
|
450
|
-
|
|
451
|
-
That developer-first framing shaped everything that came after: the API as the product, the docs as an interface, *"Growing the GDP of the internet"* as a mission statement that reads like an economist wrote it, and the company's obsession with reliability (99.999% uptime as a stated number, not a marketing claim). **Stripe Press** — the company's publishing imprint with the tagline *"Ideas for progress"* — makes the intellectual posture explicit: this is a company that takes ideas seriously enough to commission and print books about maintenance, scientific freedom, and efficiency.
|
|
452
|
-
|
|
453
|
-
What Stripe refuses: sales-driven UX (no "Request a demo" gating of basic functionality), hype-driven marketing (no "revolutionary" superlatives), and the visual aesthetics of legacy financial services (institutional blue, corporate stock photography). What it embraces: developer-readable prose, mathematically tight typography, blue-tinted chromatic shadows that feel like atmospheric depth rather than decoration, and a restraint that signals "we plan to be here for decades".
|
|
263
|
+
Stripe describes itself as a technology company building economic infrastructure for the internet. Its newsroom names Patrick Collison as co-founder and CEO and John Collison as co-founder and president, and says businesses from new startups to public companies use Stripe to accept payments and manage their businesses online. That current, first-party positioning is the basis for this reference; no unsupported origin story, valuation, customer, or historical milestone is added here.
|
|
454
264
|
|
|
455
265
|
## 12. Principles
|
|
456
266
|
|
|
457
|
-
1. **
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
9. **Numbers are first-class citizens.** `"tnum"` for every financial figure, every table, every chart axis. Numbers are typography with different rules, not body text that happens to be digits.
|
|
267
|
+
1. **Users first.** Work backwards from user needs; a Docs interface should make the next implementation decision easier to locate.
|
|
268
|
+
*UI implication:* preserve direct labels and source provenance instead of decorative ambiguity.
|
|
269
|
+
2. **Create with craft and beauty.** Stripe states that careful thought can make work surprisingly great.
|
|
270
|
+
*UI implication:* compact spacing and quiet hierarchy must remain legible, not merely minimal.
|
|
271
|
+
3. **Move with urgency and focus.** Speed should not erase the investment that makes later work faster.
|
|
272
|
+
*UI implication:* prefer predictable Docs controls and stable evidence boundaries over speculative variants.
|
|
273
|
+
4. **Stay curious.** Stripe describes its work as ongoing learning about businesses and the world.
|
|
274
|
+
*UI implication:* leave unknown font/state fields absent and make a future evidence need explicit.
|
|
466
275
|
|
|
467
276
|
## 13. Personas
|
|
468
277
|
|
|
469
|
-
|
|
278
|
+
The following are stakeholder groups, not synthetic user-satisfaction claims.
|
|
470
279
|
|
|
471
|
-
**
|
|
280
|
+
**Developer integrating Stripe.** Needs public Docs and API-reference navigation that exposes exact implementation information without pretending a marketing or Dashboard surface is the same system.
|
|
472
281
|
|
|
473
|
-
**
|
|
282
|
+
**Business operator evaluating Stripe.** Needs the first-party account of Stripe’s economic-infrastructure role and product breadth; detailed brand claims must remain tied to official context rather than inferred visual tokens.
|
|
474
283
|
|
|
475
|
-
**
|
|
476
|
-
|
|
477
|
-
**Arjun Menon, 27, Bangalore.** Founding engineer at a B2B fintech startup. Builds on Stripe Connect because it is the only realistic way to launch an embedded-payments product in under six months. Reads Stripe's engineering blog for reference implementations. Views the *"Growing the GDP of the internet"* tagline as earnest rather than grandiose — he believes the claim literally and that's why he chose Stripe.
|
|
284
|
+
**Design or documentation contributor.** Needs clear boundaries between current Docs chrome, brand assets, declared fonts, and unobserved product UI so a local reuse does not become a false Stripe clone.
|
|
478
285
|
|
|
479
286
|
## 14. States
|
|
480
287
|
|
|
481
|
-
|
|
482
|
-
|---|---|
|
|
483
|
-
| **Empty (dashboard, no transactions)** | White canvas. Single sentence in Deep Navy (`#061b31`) at 18px sohne-var weight 300: "No transactions yet." One Stripe Purple CTA: "Test a payment". No illustration. Honest about what the empty state means — no activity has happened yet. |
|
|
484
|
-
| **Empty (report, zero rows)** | Slate (`#64748d`) single line at 14px: "Nothing to show for this period." Filter summary visible above so user can adjust scope. Never an illustration, never "No data found". |
|
|
485
|
-
| **Loading (dashboard first paint)** | Skeleton blocks at exact final dimensions in Border Default (`#e5edf5`). 1.2s shimmer. Tabular-number skeletons use narrow bars matching `tnum` width — never wider than the final value. |
|
|
486
|
-
| **Loading (table in-place refresh)** | Subtle Stripe Purple 2px progress bar below the header. Previous content stays visible with previous values. Never block the table during refresh. |
|
|
487
|
-
| **Error (API call failed, dashboard)** | Inline banner below the action. Ruby-adjacent tone (Ruby `#ea2261` border, tinted background). Message = error type + one-line plain-English explanation + "View in logs" link. No generic "Something went wrong". |
|
|
488
|
-
| **Error (form validation)** | Field-level. Ruby border + 13px error text below field. The message describes what specifically is invalid and what would be valid — not just "Required". |
|
|
489
|
-
| **Error (payment declined)** | Dedicated state. Returns the decline code verbatim (`Card declined: insufficient_funds`) plus plain-language guidance for the end customer. Developer and customer both know exactly what happened. |
|
|
490
|
-
| **Success (payment succeeded)** | Brief inline confirmation. Success Green (`#15be53`, 0.2 alpha background) with `#108c3d` text: "Succeeded". Full transaction detail linked immediately below. No toast — the row itself shows the state. |
|
|
491
|
-
| **Success (action saved)** | 3s auto-dismiss toast at top-right. Sentence case, past tense: "Invoice saved." No emoji, no exclamation. |
|
|
492
|
-
| **Skeleton** | Border Default blocks at final dimensions. Blue-tinted shimmer (consistent with shadow system). Amount skeletons always narrower than the longest expected value — a wide skeleton that shrinks is disorienting. |
|
|
493
|
-
| **Disabled** | Opacity reduced on surface and text together. Purple actions become `rgba(83,58,253,0.3)` — faded purple, not switched to gray, to preserve brand read. |
|
|
494
|
-
| **API rate-limited (429)** | Banner surfaces the specific rate-limit category plus concrete retry-after guidance. Documented in the same voice as the docs — no apology, just mechanism. |
|
|
288
|
+
No reusable Docs state matrix is published from this packet. The only retained control-state observations are the search-prompt and secondary-action focus/hover/pressed samples and the static selected tab in §4. Error, loading, success, empty, disabled, menu, dialog, and toast states require a future selector-backed capture.
|
|
495
289
|
|
|
496
290
|
## 15. Motion & Easing
|
|
497
291
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
| Token | Value | Use |
|
|
501
|
-
|---|---|---|
|
|
502
|
-
| `motion-instant` | 0ms | State commits, selection ticks, focus rings |
|
|
503
|
-
| `motion-fast` | 120ms | Hover, focus, button press overlays |
|
|
504
|
-
| `motion-standard` | 200ms | Sheet, modal, dropdown, table-row expand |
|
|
505
|
-
| `motion-slow` | 320ms | Page-level transitions, rare hero reveals |
|
|
506
|
-
|
|
507
|
-
**Easings**:
|
|
508
|
-
|
|
509
|
-
| Token | Curve | Use |
|
|
510
|
-
|---|---|---|
|
|
511
|
-
| `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — sheets, dropdowns, floating panels |
|
|
512
|
-
| `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
|
|
513
|
-
| `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
|
|
514
|
-
|
|
515
|
-
**Explicitly forbidden.** No spring, no overshoot, no bounce. No `cubic-bezier` with a middle control value above `1.0` anywhere. Spring easings read as consumer-app delight; this is payments infrastructure. Infrastructure is steady.
|
|
516
|
-
|
|
517
|
-
**Signature motions.**
|
|
518
|
-
|
|
519
|
-
1. **Dashboard table row reveal.** New rows appearing during live event streams (webhook events, payment events) use `motion-standard / ease-enter` with a 3px fade-in-from-below. Never slide in from the side — the table's temporal order is always top-down and sideways motion would suggest a different meaning.
|
|
520
|
-
2. **Gradient decoration.** On marketing surfaces, the ruby-to-magenta gradient decoration shifts hue at slow 20-second cycles using `linear` easing. This is the one place non-standard timing lives — the gradient is ambient atmosphere, not interactive.
|
|
521
|
-
3. **Dark section transition.** On marketing pages, transitioning into a `#1c1e54` brand-dark section uses `motion-slow` background crossfade. Headlines do not move during the transition; the ambient light level is what changes. Cinematic-once, intentional.
|
|
522
|
-
4. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. The ambient gradient freezes. Table row reveals become instantaneous. The dashboard remains fully functional; there is no delightful motion at the cost of accessibility.
|
|
523
|
-
|
|
524
|
-
<!--
|
|
525
|
-
OmD v0.1 Sources — Philosophy Layer (sections 10–15)
|
|
526
|
-
|
|
527
|
-
Direct verification via WebFetch (2026-04-19):
|
|
528
|
-
- https://stripe.com/jobs — confirms Stripe's publicly stated operating principles
|
|
529
|
-
and values (verbatim):
|
|
530
|
-
"We focus on the details of everything we do, so businesses around the
|
|
531
|
-
world can focus on what's most important to them."
|
|
532
|
-
"Successful Stripes are rigorous thinkers who appreciate that things
|
|
533
|
-
worth doing are rarely simple."
|
|
534
|
-
"We try to embrace kindness while still encouraging Stripes to take
|
|
535
|
-
measured risks and act boldly."
|
|
536
|
-
"We need to get projects done today, while building infrastructure
|
|
537
|
-
that the internet will rely upon for decades."
|
|
538
|
-
Confirms mission phrase "Growing the GDP of the internet" and the Collison
|
|
539
|
-
brothers (John and Patrick) as founders/leadership on the page.
|
|
540
|
-
- https://stripe.com/about — confirms current core positioning "Financial
|
|
541
|
-
infrastructure to grow your revenue" and the published reliability number
|
|
542
|
-
("99.999% historical uptime").
|
|
543
|
-
- https://press.stripe.com/ — confirms Stripe Press tagline "Ideas for progress"
|
|
544
|
-
and stated purpose: "Stripe Press highlights ideas that we think can be
|
|
545
|
-
broadly useful." Catalog confirms the intellectual register of the imprint
|
|
546
|
-
(Tyler Cowen's Stubborn Attachments, Richard Hamming's Art of Doing Science
|
|
547
|
-
and Engineering, Will Larson's An Elegant Puzzle, Nadia Eghbal's
|
|
548
|
-
Working in Public, among others).
|
|
549
|
-
|
|
550
|
-
Base DESIGN.md (sections 1–9) is the source for all token-level claims
|
|
551
|
-
(Stripe Purple #533afd, Deep Navy #061b31, sohne-var with "ss01" stylistic set,
|
|
552
|
-
weight-300 signature, blue-tinted multi-layer shadows, 4–8px radius scale,
|
|
553
|
-
"tnum" for financial data).
|
|
554
|
-
|
|
555
|
-
Not independently verified via WebFetch — widely documented public facts used:
|
|
556
|
-
- Stripe was founded in 2010 by Patrick and John Collison (Irish brothers).
|
|
557
|
-
- Stripe is headquartered in San Francisco and Dublin.
|
|
558
|
-
- The company's original codename was "/dev/payments" before being renamed Stripe.
|
|
559
|
-
- Stripe Press is the company's publishing imprint (launched ~2018).
|
|
560
|
-
|
|
561
|
-
Personas (§13) are fictional archetypes informed by publicly observable Stripe
|
|
562
|
-
user segments (indie developers, startup founders, finance operations at
|
|
563
|
-
mid-market companies, enterprise engineers). Names are illustrative; they do
|
|
564
|
-
not refer to real people.
|
|
565
|
-
|
|
566
|
-
Interpretive claims (e.g., "the 4px radius is a typographic commitment, not
|
|
567
|
-
a visual preference", "developer-first framing as a founding rejection of
|
|
568
|
-
enterprise procurement cycles") are editorial readings connecting Stripe's
|
|
569
|
-
stated values to its design system, not directly sourced Stripe statements.
|
|
570
|
-
-->
|
|
571
|
-
|
|
292
|
+
No motion duration, easing curve, or reduced-motion behavior was measured in the supplied evidence. Omit motion tokens rather than inventing a Stripe motion system.
|