oh-my-design-cli 1.6.6 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +8 -8
  3. package/data/reference-fingerprints.json +1318 -10
  4. package/dist/bin/oh-my-design.js +1 -1
  5. package/dist/{install-skills-JNH66GOI.js → install-skills-YYHEC4CS.js} +5 -11
  6. package/dist/install-skills-YYHEC4CS.js.map +1 -0
  7. package/package.json +1 -1
  8. package/skills/claude-design/SKILL.md +7 -2
  9. package/web/references/11st/DESIGN.md +400 -0
  10. package/web/references/17live/DESIGN.md +43 -0
  11. package/web/references/29cm/DESIGN.md +41 -0
  12. package/web/references/91app/DESIGN.md +31 -0
  13. package/web/references/ably/DESIGN.md +54 -0
  14. package/web/references/airbnb/DESIGN.md +58 -0
  15. package/web/references/airtable/DESIGN.md +39 -0
  16. package/web/references/alipay/DESIGN.md +50 -0
  17. package/web/references/amazingtalker/DESIGN.md +434 -0
  18. package/web/references/appier/DESIGN.md +45 -0
  19. package/web/references/apple/DESIGN.md +47 -0
  20. package/web/references/baemin/DESIGN.md +142 -43
  21. package/web/references/banksalad/DESIGN.md +67 -0
  22. package/web/references/bilibili/DESIGN.md +45 -0
  23. package/web/references/bithumb/DESIGN.md +38 -0
  24. package/web/references/bmw/DESIGN.md +37 -0
  25. package/web/references/brandi/DESIGN.md +414 -0
  26. package/web/references/bunjang/DESIGN.md +47 -0
  27. package/web/references/cakeresume/DESIGN.md +29 -0
  28. package/web/references/cal/DESIGN.md +52 -0
  29. package/web/references/catchtable/DESIGN.md +79 -19
  30. package/web/references/cathay/DESIGN.md +432 -0
  31. package/web/references/channeltalk/DESIGN.md +48 -0
  32. package/web/references/class101/DESIGN.md +51 -0
  33. package/web/references/classting/DESIGN.md +41 -0
  34. package/web/references/classum/DESIGN.md +43 -0
  35. package/web/references/claude/DESIGN.md +157 -70
  36. package/web/references/clay/DESIGN.md +56 -0
  37. package/web/references/clickhouse/DESIGN.md +50 -0
  38. package/web/references/cloudflare/DESIGN.md +637 -0
  39. package/web/references/cohere/DESIGN.md +48 -0
  40. package/web/references/coinbase/DESIGN.md +139 -5
  41. package/web/references/coinone/DESIGN.md +39 -0
  42. package/web/references/composio/DESIGN.md +46 -0
  43. package/web/references/cookpad/DESIGN.md +37 -0
  44. package/web/references/coupang/DESIGN.md +57 -2
  45. package/web/references/cursor/DESIGN.md +44 -0
  46. package/web/references/dabang/DESIGN.md +57 -19
  47. package/web/references/dcard/DESIGN.md +57 -0
  48. package/web/references/dell/DESIGN.md +636 -0
  49. package/web/references/devsisters/DESIGN.md +29 -0
  50. package/web/references/discord/DESIGN.md +604 -0
  51. package/web/references/dji/DESIGN.md +39 -0
  52. package/web/references/drnow/DESIGN.md +52 -0
  53. package/web/references/duolingo/DESIGN.md +563 -0
  54. package/web/references/elevenlabs/DESIGN.md +39 -0
  55. package/web/references/expo/DESIGN.md +39 -0
  56. package/web/references/fastcampus/DESIGN.md +50 -0
  57. package/web/references/ferrari/DESIGN.md +47 -0
  58. package/web/references/figma/DESIGN.md +44 -0
  59. package/web/references/finda/DESIGN.md +413 -0
  60. package/web/references/flex/DESIGN.md +28 -0
  61. package/web/references/flo/DESIGN.md +43 -0
  62. package/web/references/framer/DESIGN.md +38 -0
  63. package/web/references/freee/DESIGN.md +48 -0
  64. package/web/references/fugle/DESIGN.md +41 -1
  65. package/web/references/gangnamunni/DESIGN.md +57 -1
  66. package/web/references/genie/DESIGN.md +415 -0
  67. package/web/references/github/DESIGN.md +727 -0
  68. package/web/references/gmarket/DESIGN.md +51 -0
  69. package/web/references/gogolook/DESIGN.md +25 -1
  70. package/web/references/gogoro/DESIGN.md +38 -0
  71. package/web/references/grip/DESIGN.md +39 -0
  72. package/web/references/hahow/DESIGN.md +26 -0
  73. package/web/references/hashicorp/DESIGN.md +42 -0
  74. package/web/references/hogangnono/DESIGN.md +41 -0
  75. package/web/references/hp/DESIGN.md +563 -0
  76. package/web/references/hyperconnect/DESIGN.md +393 -0
  77. package/web/references/hyundaicard/DESIGN.md +24 -0
  78. package/web/references/ibm/DESIGN.md +44 -0
  79. package/web/references/ichef/DESIGN.md +44 -0
  80. package/web/references/ikala/DESIGN.md +400 -0
  81. package/web/references/inflearn/DESIGN.md +38 -0
  82. package/web/references/intercom/DESIGN.md +38 -0
  83. package/web/references/jandi/DESIGN.md +382 -0
  84. package/web/references/jkopay/DESIGN.md +35 -1
  85. package/web/references/jobkorea/DESIGN.md +39 -0
  86. package/web/references/jumpit/DESIGN.md +37 -0
  87. package/web/references/kakao/DESIGN.md +64 -0
  88. package/web/references/kakaobank/DESIGN.md +55 -1
  89. package/web/references/kakaopay/DESIGN.md +59 -0
  90. package/web/references/kakaot/DESIGN.md +53 -0
  91. package/web/references/karrot/DESIGN.md +49 -0
  92. package/web/references/kbank/DESIGN.md +39 -0
  93. package/web/references/kdan/DESIGN.md +34 -1
  94. package/web/references/kintone/DESIGN.md +586 -0
  95. package/web/references/kkbox/DESIGN.md +22 -0
  96. package/web/references/kkday/DESIGN.md +47 -0
  97. package/web/references/kmong/DESIGN.md +427 -0
  98. package/web/references/krafton/DESIGN.md +37 -0
  99. package/web/references/kraken/DESIGN.md +44 -0
  100. package/web/references/krds/DESIGN.md +63 -0
  101. package/web/references/kream/DESIGN.md +32 -0
  102. package/web/references/kurly/DESIGN.md +38 -1
  103. package/web/references/laftel/DESIGN.md +40 -0
  104. package/web/references/lamborghini/DESIGN.md +54 -0
  105. package/web/references/layerx/DESIGN.md +615 -0
  106. package/web/references/lezhin/DESIGN.md +47 -0
  107. package/web/references/line/DESIGN.md +36 -0
  108. package/web/references/linear.app/DESIGN.md +182 -88
  109. package/web/references/loom/DESIGN.md +396 -0
  110. package/web/references/lovable/DESIGN.md +38 -0
  111. package/web/references/lunit/DESIGN.md +47 -19
  112. package/web/references/mastercard/DESIGN.md +587 -0
  113. package/web/references/meituan/DESIGN.md +42 -0
  114. package/web/references/melon/DESIGN.md +26 -0
  115. package/web/references/mercari/DESIGN.md +41 -0
  116. package/web/references/mercury/DESIGN.md +589 -0
  117. package/web/references/meta/DESIGN.md +615 -0
  118. package/web/references/millie/DESIGN.md +51 -0
  119. package/web/references/minimax/DESIGN.md +53 -0
  120. package/web/references/mintlify/DESIGN.md +45 -0
  121. package/web/references/miro/DESIGN.md +47 -0
  122. package/web/references/mistral.ai/DESIGN.md +37 -0
  123. package/web/references/momoshop/DESIGN.md +43 -0
  124. package/web/references/money-forward/DESIGN.md +42 -0
  125. package/web/references/mongodb/DESIGN.md +44 -0
  126. package/web/references/muji/DESIGN.md +605 -0
  127. package/web/references/musinsa/DESIGN.md +48 -0
  128. package/web/references/mustit/DESIGN.md +47 -1
  129. package/web/references/myrealtrip/DESIGN.md +49 -0
  130. package/web/references/naver/DESIGN.md +50 -1
  131. package/web/references/naverwebtoon/DESIGN.md +48 -0
  132. package/web/references/netflix/DESIGN.md +572 -0
  133. package/web/references/nexon/DESIGN.md +389 -0
  134. package/web/references/nhncloud/DESIGN.md +33 -0
  135. package/web/references/nike/DESIGN.md +588 -0
  136. package/web/references/note/DESIGN.md +28 -0
  137. package/web/references/notion/DESIGN.md +48 -0
  138. package/web/references/nvidia/DESIGN.md +50 -0
  139. package/web/references/ohouse/DESIGN.md +56 -0
  140. package/web/references/oliveyoung/DESIGN.md +47 -1
  141. package/web/references/ollama/DESIGN.md +40 -0
  142. package/web/references/openai/DESIGN.md +641 -0
  143. package/web/references/opencode.ai/DESIGN.md +37 -0
  144. package/web/references/payco/DESIGN.md +40 -0
  145. package/web/references/paypay/DESIGN.md +656 -0
  146. package/web/references/pchome/DESIGN.md +439 -0
  147. package/web/references/perplexity/DESIGN.md +546 -0
  148. package/web/references/piccollage/DESIGN.md +43 -0
  149. package/web/references/pinkoi/DESIGN.md +55 -0
  150. package/web/references/pinterest/DESIGN.md +44 -0
  151. package/web/references/pixiv/DESIGN.md +613 -0
  152. package/web/references/pixnet/DESIGN.md +430 -0
  153. package/web/references/posthog/DESIGN.md +50 -0
  154. package/web/references/publy/DESIGN.md +52 -0
  155. package/web/references/qanda/DESIGN.md +49 -1
  156. package/web/references/ragic/DESIGN.md +444 -0
  157. package/web/references/ramp/DESIGN.md +634 -0
  158. package/web/references/rayark/DESIGN.md +22 -0
  159. package/web/references/raycast/DESIGN.md +45 -0
  160. package/web/references/remember/DESIGN.md +44 -0
  161. package/web/references/renault/DESIGN.md +42 -0
  162. package/web/references/replicate/DESIGN.md +39 -0
  163. package/web/references/resend/DESIGN.md +44 -0
  164. package/web/references/retool/DESIGN.md +645 -0
  165. package/web/references/revolut/DESIGN.md +46 -0
  166. package/web/references/richart/DESIGN.md +465 -0
  167. package/web/references/ridi/DESIGN.md +47 -0
  168. package/web/references/riiid/DESIGN.md +32 -0
  169. package/web/references/robinhood/DESIGN.md +604 -0
  170. package/web/references/runwayml/DESIGN.md +45 -0
  171. package/web/references/sanity/DESIGN.md +50 -0
  172. package/web/references/sansan/DESIGN.md +631 -0
  173. package/web/references/sendbird/DESIGN.md +46 -0
  174. package/web/references/sentry/DESIGN.md +48 -0
  175. package/web/references/shinhancard/DESIGN.md +421 -0
  176. package/web/references/shopline/DESIGN.md +431 -0
  177. package/web/references/slack/DESIGN.md +635 -0
  178. package/web/references/smarthr/DESIGN.md +48 -0
  179. package/web/references/smartnews/DESIGN.md +29 -0
  180. package/web/references/socar/DESIGN.md +35 -0
  181. package/web/references/soomgo/DESIGN.md +326 -0
  182. package/web/references/spacex/DESIGN.md +27 -0
  183. package/web/references/spoon/DESIGN.md +46 -0
  184. package/web/references/spotify/DESIGN.md +49 -0
  185. package/web/references/starbucks/DESIGN.md +597 -0
  186. package/web/references/stripe/DESIGN.md +46 -0
  187. package/web/references/studio/DESIGN.md +602 -0
  188. package/web/references/supabase/DESIGN.md +41 -0
  189. package/web/references/superhuman/DESIGN.md +39 -0
  190. package/web/references/surveycake/DESIGN.md +442 -0
  191. package/web/references/tada/DESIGN.md +51 -0
  192. package/web/references/tesla/DESIGN.md +36 -0
  193. package/web/references/theverge/DESIGN.md +500 -0
  194. package/web/references/together.ai/DESIGN.md +33 -0
  195. package/web/references/toss/DESIGN.md +43 -0
  196. package/web/references/toss-securities/DESIGN.md +54 -19
  197. package/web/references/tossbank/DESIGN.md +57 -0
  198. package/web/references/trenbe/DESIGN.md +41 -0
  199. package/web/references/triple/DESIGN.md +47 -0
  200. package/web/references/tumblbug/DESIGN.md +48 -0
  201. package/web/references/tving/DESIGN.md +40 -0
  202. package/web/references/uber/DESIGN.md +36 -0
  203. package/web/references/ubie/DESIGN.md +615 -0
  204. package/web/references/uniqlo/DESIGN.md +575 -0
  205. package/web/references/upbit/DESIGN.md +42 -0
  206. package/web/references/upstage/DESIGN.md +38 -0
  207. package/web/references/velog/DESIGN.md +28 -0
  208. package/web/references/vercel/DESIGN.md +44 -0
  209. package/web/references/voicetube/DESIGN.md +39 -0
  210. package/web/references/voltagent/DESIGN.md +44 -0
  211. package/web/references/wadiz/DESIGN.md +71 -19
  212. package/web/references/wanted/DESIGN.md +46 -0
  213. package/web/references/warp/DESIGN.md +37 -0
  214. package/web/references/watcha/DESIGN.md +40 -0
  215. package/web/references/wavve/DESIGN.md +43 -1
  216. package/web/references/wconcept/DESIGN.md +45 -0
  217. package/web/references/webflow/DESIGN.md +49 -0
  218. package/web/references/wired/DESIGN.md +572 -0
  219. package/web/references/wise/DESIGN.md +41 -0
  220. package/web/references/x.ai/DESIGN.md +31 -0
  221. package/web/references/xiaohongshu/DESIGN.md +39 -0
  222. package/web/references/yanolja/DESIGN.md +45 -0
  223. package/web/references/yeogiotte/DESIGN.md +42 -1
  224. package/web/references/yogiyo/DESIGN.md +50 -0
  225. package/web/references/yourator/DESIGN.md +453 -0
  226. package/web/references/zapier/DESIGN.md +41 -0
  227. package/web/references/zigbang/DESIGN.md +33 -0
  228. package/web/references/zigzag/DESIGN.md +62 -0
  229. package/web/references/zozotown/DESIGN.md +578 -0
  230. package/dist/install-skills-JNH66GOI.js.map +0 -1
@@ -0,0 +1,634 @@
1
+ ---
2
+ id: ramp
3
+ name: Ramp
4
+ country: US
5
+ category: fintech
6
+ homepage: "https://ramp.com"
7
+ primary_color: "#E5FE54"
8
+ logo:
9
+ type: favicon
10
+ slug: "https://www.google.com/s2/favicons?domain=ramp.com&sz=128"
11
+ verified: "2026-06-06"
12
+ added: "2026-06-06"
13
+ omd: "0.1"
14
+ tokens:
15
+ source: prose-derived
16
+ extracted: "2026-06-09"
17
+ colors:
18
+ primary: "#e5fe54"
19
+ lime-hover: "#d4ed3f"
20
+ lime-100: "#f4fcc9"
21
+ lime-50: "#fbfee8"
22
+ ink: "#1c1b17"
23
+ ink-700: "#3d3c37"
24
+ ink-600: "#56554f"
25
+ canvas: "#f7f7f5"
26
+ surface: "#ffffff"
27
+ grey-500: "#74726b"
28
+ grey-400: "#9c9a92"
29
+ grey-300: "#c9c7bf"
30
+ grey-200: "#e3e1da"
31
+ grey-100: "#efeee9"
32
+ success: "#1a7f4b"
33
+ error: "#d93f3f"
34
+ warning: "#e08a1e"
35
+ info: "#2f6fe0"
36
+ on-primary: "#1c1b17"
37
+ typography:
38
+ family: { sans: "Lausanne", serif: "Burgess", mono: "Lausanne Mono" }
39
+ display-hero: { size: 72, weight: 400, lineHeight: 1.06, tracking: -0.02, use: "Marketing hero headlines (Burgess serif)" }
40
+ display-lg: { size: 52, weight: 400, lineHeight: 1.12, tracking: -0.02, use: "Section openers, editorial (serif)" }
41
+ heading-1: { size: 40, weight: 500, lineHeight: 1.15, tracking: -0.015, use: "Page titles in product" }
42
+ heading-2: { size: 30, weight: 500, lineHeight: 1.27, tracking: -0.01, use: "Section headers" }
43
+ heading-3: { size: 22, weight: 500, lineHeight: 1.36, tracking: -0.01, use: "Card titles, sub-sections" }
44
+ subtitle: { size: 18, weight: 500, lineHeight: 1.44, use: "Navigation, list headers" }
45
+ body-lg: { size: 17, weight: 400, lineHeight: 1.59, use: "Marketing body, descriptions" }
46
+ body: { size: 15, weight: 400, lineHeight: 1.53, use: "Standard UI reading text" }
47
+ body-sm: { size: 13, weight: 400, lineHeight: 1.46, use: "Secondary info, table cells" }
48
+ caption: { size: 12, weight: 400, lineHeight: 1.33, tracking: 0.01, use: "Timestamps, fine print, labels" }
49
+ overline: { size: 11, weight: 600, lineHeight: 1.27, tracking: 0.08, use: "Eyebrow labels, uppercase section tags" }
50
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
51
+ rounded: { sm: 6, md: 8, lg: 16, full: 9999 }
52
+ shadow:
53
+ ambient: "rgba(28,27,23,0.05) 0px 1px 2px"
54
+ standard: "rgba(28,27,23,0.18) 0px 8px 24px"
55
+ elevated: "rgba(28,27,23,0.18) 0px 12px 40px"
56
+ components:
57
+ button-primary: { type: button, bg: "#e5fe54", fg: "#1c1b17", radius: 8, padding: "0 20px", font: "15px / 500", use: "Primary CTA — Get started, Get a demo (44px)" }
58
+ button-ink: { type: button, bg: "#1c1b17", fg: "#ffffff", radius: 8, padding: "0 20px", font: "15px / 500", use: "Strong action on light surfaces, default product CTA" }
59
+ button-secondary: { type: button, bg: "#ffffff", fg: "#1c1b17", radius: 8, padding: "0 20px", font: "15px / 500", use: "Secondary action, 1px #c9c7bf border" }
60
+ button-ghost: { type: button, fg: "#3d3c37", radius: 8, padding: "0 12px", font: "15px / 500", use: "Low-emphasis inline (Cancel, Back)" }
61
+ button-danger: { type: button, bg: "#d93f3f", fg: "#ffffff", radius: 8, padding: "0 20px", font: "15px / 500", use: "Destructive confirmation" }
62
+ input: { type: input, bg: "#ffffff", fg: "#1c1b17", radius: 8, padding: "11px 14px", font: "15px / 400", use: "Standard form input, 1px #c9c7bf border, lime focus ring" }
63
+ input-filled: { type: input, bg: "#f7f7f5", fg: "#1c1b17", radius: 8, padding: "11px 14px", font: "15px / 400", use: "Dense forms, search bars" }
64
+ card: { type: card, bg: "#ffffff", radius: 12, padding: "24px", use: "Workhorse surface — metrics, lists, panels, 1px #e3e1da border" }
65
+ card-savings: { type: card, bg: "#f4fcc9", radius: 12, padding: "24px", use: "Savings callout, lime-tinted, 1px #e5fe54 border" }
66
+ card-dark: { type: card, bg: "#1c1b17", fg: "#ffffff", radius: 16, padding: "32px", use: "Marketing feature card, lime accents pop on black" }
67
+ badge-lime: { type: badge, bg: "#e5fe54", fg: "#1c1b17", radius: 6, padding: "3px 8px", font: "12px / 600", use: "NEW / AI brand-emphasis tags" }
68
+ badge-success: { type: badge, fg: "#1a7f4b", radius: 6, padding: "3px 8px", font: "12px / 600", use: "Approved, reconciled, savings confirmed" }
69
+ badge-neutral: { type: badge, bg: "#efeee9", fg: "#56554f", radius: 6, padding: "3px 8px", font: "12px / 600", use: "Categories, metadata, default status" }
70
+ tab: { type: tab, fg: "#74726b", font: "15px / 500", use: "In-page section switching", active: "#1c1b17 text, 2px bottom border #1c1b17" }
71
+ segmented: { type: tab, bg: "#efeee9", radius: 8, padding: "6px 14px", font: "14px / 500", use: "View toggles (Month / Quarter / Year)", active: "#ffffff bg, #1c1b17 text" }
72
+ toast: { type: toast, bg: "#1c1b17", fg: "#ffffff", radius: 10, padding: "12px 16px", font: "14px / 500", use: "Transient confirmation, lime accent" }
73
+ dialog: { type: dialog, bg: "#ffffff", radius: 16, padding: "28px", use: "Confirmations, create-card flow, approval prompts" }
74
+ toggle: { type: toggle, bg: "#1c1b17", radius: 9999, use: "Boolean settings, white thumb, off #c9c7bf" }
75
+ components_harvested: true
76
+ ---
77
+
78
+ # Design System Inspiration of Ramp
79
+
80
+ ## 1. Visual Theme & Atmosphere
81
+
82
+ Ramp is the corporate-card and spend-management platform that made expense software feel like a premium productivity tool rather than an accounting chore. The brand's entire visual thesis is built on one audacious contrast: a near-black ink (`#1C1B17`) set against an electric lime-yellow (`#E5FE54`) so saturated it almost vibrates. This is not the cautious navy-and-grey of legacy fintech. It's confident, almost aggressive — a color that says "we move fast and we save you money," paired with typography that reads like an editorial business magazine.
83
+
84
+ The page opens on a clean off-white canvas (`#F7F7F5`) or pure black hero sections, with the lime accent deployed sparingly and with intent — never as decoration, always as a signal of action or savings. Ramp's design language borrows from Swiss editorial design and modern brand studios: generous whitespace, tight type, oversized numerals announcing dollar amounts saved, and a serif/sans pairing that gives the brand a literary, considered voice unusual in the SaaS-fintech space.
85
+
86
+ The custom typeface stack is the brand's quiet engine. **Lausanne** (a clean, neo-grotesque sans by Nizar Kazan / Weltkern) carries the UI, navigation, and body — precise, neutral, Helvetica-adjacent but warmer. **Burgess** (a contemporary serif) appears in display headlines and editorial moments, giving Ramp a high-end, almost magazine-cover gravitas. The pairing communicates the brand's positioning: finance software that is both rigorous (sans) and intelligent (serif).
87
+
88
+ **Key Characteristics:**
89
+ - Lime-yellow (`#E5FE54`) as the signature accent — high-voltage, used only for CTAs and savings signals
90
+ - Near-black ink (`#1C1B17`) as the dominant brand color — warm, slightly green-tinted black
91
+ - Lausanne (sans) for UI/body + Burgess (serif) for editorial display headlines
92
+ - Off-white canvas (`#F7F7F5`) with high-contrast black hero sections
93
+ - Oversized numerals announcing dollar savings — money as the hero element
94
+ - Editorial Swiss layout: generous whitespace, tight tracking, asymmetric grids
95
+ - Restrained color — black, off-white, lime, and a few muted neutrals; no rainbow palettes
96
+
97
+ ## 2. Color Palette & Roles
98
+
99
+ ### Primary
100
+ - **Ramp Lime** (`#E5FE54`): The signature accent. Primary CTAs, savings highlights, active selection, hover fills, brand moments. Electric yellow-green — the single most recognizable Ramp asset. Used sparingly and only where it signals action or value.
101
+ - **Ramp Ink** (`#1C1B17`): The dominant brand color. Primary text, black hero backgrounds, dark buttons, footer. A warm near-black with a subtle green undertone (RGB 28, 27, 23) — never pure `#000000`.
102
+ - **Off-White Canvas** (`#F7F7F5`): Page background, light surfaces. A soft, warm paper-white that reduces glare and reads premium against the black sections.
103
+ - **Pure White** (`#FFFFFF`): Card surfaces, elevated panels, input fills on light backgrounds.
104
+
105
+ ### Lime Scale
106
+ - **Lime 500** (`#E5FE54`): Core brand lime — CTA fills, key accents.
107
+ - **Lime 600** (`#D4ED3F`): Hover/pressed state for lime CTAs — slightly deeper.
108
+ - **Lime 100** (`#F4FCC9`): Soft lime-tinted background for highlight cards, savings callouts.
109
+ - **Lime 50** (`#FBFEE8`): Faintest lime wash for subtle section backgrounds.
110
+
111
+ ### Neutral Scale
112
+ - **Ink 900** (`#1C1B17`): Primary text, strongest headings.
113
+ - **Ink 700** (`#3D3C37`): Emphasized body text, sub-headings.
114
+ - **Ink 600** (`#56554F`): Standard body text on light surfaces.
115
+ - **Grey 500** (`#74726B`): Secondary text, captions, metadata.
116
+ - **Grey 400** (`#9C9A92`): Placeholder text, disabled labels.
117
+ - **Grey 300** (`#C9C7BF`): Default borders, dividers.
118
+ - **Grey 200** (`#E3E1DA`): Subtle dividers, input backgrounds, hover surfaces.
119
+ - **Grey 100** (`#EFEEE9`): Section background tint, disabled surfaces.
120
+ - **Off-White** (`#F7F7F5`): Page canvas.
121
+
122
+ ### Semantic
123
+ - **Success Green** (`#1A7F4B`): Positive financial indicators, savings confirmed, approved states. Deliberately distinct from the brand lime so it reads as "status" not "brand."
124
+ - **Error Red** (`#D93F3F`): Errors, declined transactions, destructive actions, overspend warnings.
125
+ - **Warning Amber** (`#E08A1E`): Pending approvals, attention-needed, budget threshold alerts.
126
+ - **Info Blue** (`#2F6FE0`): Informational accents, links in dense documentation contexts.
127
+
128
+ ### Surface & Borders
129
+ - **Border Default**: `#E3E1DA` (grey200). Standard card borders, dividers.
130
+ - **Border Strong**: `#C9C7BF` (grey300). Emphasized borders, active input outlines.
131
+ - **Border on Dark**: `rgba(255,255,255,0.12)`. Dividers on black hero/footer sections.
132
+ - **Overlay Scrim**: `rgba(28,27,23,0.6)`. Modal backdrop — warm ink-tinted dark.
133
+
134
+ ## 3. Typography Rules
135
+
136
+ ### Font Family
137
+ - **Display/Headlines (serif)**: `"Burgess", "Times New Roman", Georgia, serif` — editorial display moments, hero headlines, large pull-quotes.
138
+ - **UI/Body (sans)**: `"Lausanne", "Helvetica Neue", Helvetica, Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif` — navigation, body, buttons, tables, the entire product UI.
139
+ - **Monospace/Numeric**: `"Lausanne Mono", "SF Mono", SFMono-Regular, Menlo, Consolas, monospace` — financial figures in dense tables, ledger views (tabular alignment).
140
+
141
+ ### Hierarchy
142
+
143
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
144
+ |------|------|------|--------|-------------|----------------|-------|
145
+ | Display Hero | Burgess (serif) | 72px | 400 | 76px (1.06) | -0.02em | Marketing hero headlines |
146
+ | Display Large | Burgess (serif) | 52px | 400 | 58px (1.12) | -0.02em | Section openers, editorial |
147
+ | Heading 1 | Lausanne | 40px | 500 | 46px (1.15) | -0.015em | Page titles in product |
148
+ | Heading 2 | Lausanne | 30px | 500 | 38px (1.27) | -0.01em | Section headers |
149
+ | Heading 3 | Lausanne | 22px | 500 | 30px (1.36) | -0.01em | Card titles, sub-sections |
150
+ | Subtitle | Lausanne | 18px | 500 | 26px (1.44) | normal | Navigation, list headers |
151
+ | Body Large | Lausanne | 17px | 400 | 27px (1.59) | normal | Marketing body, descriptions |
152
+ | Body | Lausanne | 15px | 400 | 23px (1.53) | normal | Standard UI reading text |
153
+ | Body Small | Lausanne | 13px | 400 | 19px (1.46) | normal | Secondary info, table cells |
154
+ | Caption | Lausanne | 12px | 400 | 16px (1.33) | 0.01em | Timestamps, fine print, labels |
155
+ | Overline | Lausanne | 11px | 600 | 14px (1.27) | 0.08em (UPPERCASE) | Eyebrow labels, section tags |
156
+ | Number Display | Lausanne | 56px+ | 500 | tight (1.0) | -0.02em | Dollar savings — tabular nums |
157
+
158
+ ### Principles
159
+ - **Serif for story, sans for system**: Burgess serif headlines carry the brand narrative on marketing surfaces; Lausanne sans carries the entire functional product. Never use serif inside dense product tables.
160
+ - **Tight tracking on display**: Large headlines use negative letter-spacing (-0.015 to -0.02em) for a crisp editorial feel. Body text stays at normal tracking.
161
+ - **Numbers as heroes**: Dollar amounts (savings, balances) use oversized Lausanne 500 with tabular numerals, right-aligned in tables, often the largest element on a marketing screen.
162
+ - **Uppercase overlines**: Eyebrow/section labels use 11px uppercase Lausanne with 0.08em tracking — a recurring editorial signature.
163
+ - **Restraint in weight**: Lausanne ships many weights; the UI uses 400 (body), 500 (headings/emphasis), and 600 (overlines, strong labels). Bold 700 is rare.
164
+
165
+ ## 4. Component Stylings
166
+
167
+ ### Buttons
168
+
169
+ Ramp buttons are flat, confident, and tightly spaced. Radius is moderate (8px) — neither pill nor sharp. The lime CTA is the brand's hero element and uses ink-colored text for maximum contrast on the bright fill.
170
+
171
+ **Primary (Lime)**
172
+ - Background: `#E5FE54`
173
+ - Text: `#1C1B17`
174
+ - Border: none
175
+ - Radius: 8px
176
+ - Padding: 0 20px
177
+ - Font: 15px / 500 / Lausanne
178
+ - Height: 44px
179
+ - Hover: background `#D4ED3F`
180
+ - Pressed: background `#C7DF34`
181
+ - Disabled: background `#EFEEE9`, text `#9C9A92`
182
+ - Use: Primary CTA — "Get started", "Get a demo". The single most important action on a screen.
183
+
184
+ **Primary (Ink)**
185
+ - Background: `#1C1B17`
186
+ - Text: `#FFFFFF`
187
+ - Border: none
188
+ - Radius: 8px
189
+ - Padding: 0 20px
190
+ - Font: 15px / 500 / Lausanne
191
+ - Height: 44px
192
+ - Hover: background `#3D3C37`
193
+ - Use: Strong action on light surfaces where lime would be too loud; default product CTA.
194
+
195
+ **Secondary (Outline)**
196
+ - Background: transparent
197
+ - Text: `#1C1B17`
198
+ - Border: 1px solid `#C9C7BF`
199
+ - Radius: 8px
200
+ - Padding: 0 20px
201
+ - Font: 15px / 500 / Lausanne
202
+ - Height: 44px
203
+ - Hover: background `#EFEEE9`, border `#1C1B17`
204
+ - Use: Secondary action paired with a Primary button.
205
+
206
+ **Tertiary (Ghost)**
207
+ - Background: transparent
208
+ - Text: `#3D3C37`
209
+ - Border: none
210
+ - Radius: 8px
211
+ - Padding: 0 12px
212
+ - Font: 15px / 500 / Lausanne
213
+ - Hover: background `#EFEEE9`
214
+ - Use: Low-emphasis inline action (Cancel, Back, table-row actions).
215
+
216
+ **On-Dark (Lime on Black)**
217
+ - Background: `#E5FE54`
218
+ - Text: `#1C1B17`
219
+ - Radius: 8px
220
+ - Font: 15px / 500 / Lausanne
221
+ - Use: CTA inside black hero/footer sections — the brand's signature hero button.
222
+
223
+ **Danger**
224
+ - Background: `#D93F3F`
225
+ - Text: `#FFFFFF`
226
+ - Radius: 8px
227
+ - Padding: 0 20px
228
+ - Font: 15px / 500 / Lausanne
229
+ - Use: Destructive confirmation (delete card, revoke access).
230
+
231
+ Size scale (height · font · radius): `small` 32px · 13px / 500 · 6px; `medium` (default) 44px · 15px / 500 · 8px; `large` 52px · 17px / 500 · 10px.
232
+
233
+ ### Inputs
234
+
235
+ **Default**
236
+ - Background: `#FFFFFF`
237
+ - Text: `#1C1B17`
238
+ - Border: 1px solid `#C9C7BF`
239
+ - Radius: 8px
240
+ - Padding: 11px 14px
241
+ - Font: 15px / 400 / Lausanne
242
+ - Placeholder: `#9C9A92`
243
+ - Focus: border `#1C1B17`, ring `0 0 0 3px rgba(229,254,84,0.4)` (lime focus glow)
244
+ - Use: Standard form input — most-used variant.
245
+
246
+ **Filled (subtle)**
247
+ - Background: `#F7F7F5`
248
+ - Text: `#1C1B17`
249
+ - Border: 1px solid transparent
250
+ - Radius: 8px
251
+ - Padding: 11px 14px
252
+ - Font: 15px / 400 / Lausanne
253
+ - Focus: background `#FFFFFF`, border `#1C1B17`
254
+ - Use: Dense forms, search bars, settings panels.
255
+
256
+ **Error**
257
+ - Background: `#FFFFFF`
258
+ - Text: `#1C1B17`
259
+ - Border: 1px solid `#D93F3F`
260
+ - Radius: 8px
261
+ - Padding: 11px 14px
262
+ - Font: 15px / 400 / Lausanne
263
+ - Use: Validation failure — paired with inline help text in `#D93F3F` 13px.
264
+
265
+ ### Cards
266
+
267
+ **Standard**
268
+ - Background: `#FFFFFF`
269
+ - Border: 1px solid `#E3E1DA`
270
+ - Radius: 12px
271
+ - Padding: 24px
272
+ - Shadow: `0 1px 2px rgba(28,27,23,0.05)`
273
+ - Use: The workhorse surface — metrics, lists, settings panels.
274
+
275
+ **Savings Highlight**
276
+ - Background: `#F4FCC9` (lime100)
277
+ - Border: 1px solid `#E5FE54`
278
+ - Radius: 12px
279
+ - Padding: 24px
280
+ - Shadow: none
281
+ - Use: Savings callouts, "you saved $X" moments — the lime-tinted hero card.
282
+
283
+ **Dark Feature**
284
+ - Background: `#1C1B17`
285
+ - Text: `#FFFFFF`
286
+ - Border: none
287
+ - Radius: 16px
288
+ - Padding: 32px
289
+ - Shadow: `0 8px 24px rgba(28,27,23,0.18)`
290
+ - Use: Marketing feature cards, premium product highlights — lime accents pop on black.
291
+
292
+ **Compact (list item)**
293
+ - Background: `#FFFFFF`
294
+ - Border: 1px solid `#E3E1DA`
295
+ - Radius: 8px
296
+ - Padding: 14px 16px
297
+ - Shadow: none
298
+ - Use: Transaction rows, dense list items.
299
+
300
+ ### Badges
301
+
302
+ **Lime (Brand)**
303
+ - Background: `#E5FE54`
304
+ - Text: `#1C1B17`
305
+ - Radius: 6px
306
+ - Padding: 3px 8px
307
+ - Font: 12px / 600 / Lausanne
308
+ - Use: "NEW", "AI", brand-emphasis tags.
309
+
310
+ **Success**
311
+ - Background: `rgba(26,127,75,0.12)`
312
+ - Text: `#1A7F4B`
313
+ - Radius: 6px
314
+ - Padding: 3px 8px
315
+ - Font: 12px / 600 / Lausanne
316
+ - Use: Approved, reconciled, savings confirmed.
317
+
318
+ **Warning**
319
+ - Background: `rgba(224,138,30,0.14)`
320
+ - Text: `#B36E14`
321
+ - Radius: 6px
322
+ - Padding: 3px 8px
323
+ - Font: 12px / 600 / Lausanne
324
+ - Use: Pending approval, threshold alert.
325
+
326
+ **Error**
327
+ - Background: `rgba(217,63,63,0.12)`
328
+ - Text: `#C23434`
329
+ - Radius: 6px
330
+ - Padding: 3px 8px
331
+ - Font: 12px / 600 / Lausanne
332
+ - Use: Declined, over budget, flagged.
333
+
334
+ **Neutral**
335
+ - Background: `#EFEEE9`
336
+ - Text: `#56554F`
337
+ - Radius: 6px
338
+ - Padding: 3px 8px
339
+ - Font: 12px / 600 / Lausanne
340
+ - Use: Categories, metadata, default status.
341
+
342
+ ### Tabs
343
+
344
+ **Underline (default)**
345
+ - Container: bottom border 1px `#E3E1DA`
346
+ - Inactive: text `#74726B`, 15px / 500
347
+ - Active: text `#1C1B17`, 2px bottom border `#1C1B17`
348
+ - Use: In-page section switching (Transactions / Cards / Reports).
349
+
350
+ **Segmented**
351
+ - Background: `#EFEEE9`
352
+ - Radius: 8px
353
+ - Padding: 4px (track) / 6px 14px (item)
354
+ - Inactive: text `#74726B`
355
+ - Active: background `#FFFFFF`, text `#1C1B17`, shadow `0 1px 2px rgba(28,27,23,0.08)`
356
+ - Font: 14px / 500 / Lausanne
357
+ - Use: View toggles (Month / Quarter / Year).
358
+
359
+ ### Toasts
360
+
361
+ **Default**
362
+ - Background: `#1C1B17`
363
+ - Text: `#FFFFFF`
364
+ - Radius: 10px
365
+ - Padding: 12px 16px
366
+ - Shadow: `0 8px 24px rgba(28,27,23,0.2)`
367
+ - Font: 14px / 500 / Lausanne
368
+ - Accent: lime `#E5FE54` icon or left-bar for success
369
+ - Use: Transient confirmation ("Card created", "Receipt matched").
370
+
371
+ ### Dialogs
372
+
373
+ **Centered Modal**
374
+ - Background: `#FFFFFF`
375
+ - Radius: 16px
376
+ - Padding: 28px
377
+ - Shadow: `0 12px 40px rgba(28,27,23,0.18)`
378
+ - Backdrop: `rgba(28,27,23,0.6)`
379
+ - Use: Confirmations, create-card flow, approval prompts.
380
+
381
+ ### Toggles
382
+
383
+ **Default**
384
+ - Track: `#1C1B17` (on) / `#C9C7BF` (off)
385
+ - Thumb: `#FFFFFF` 18px circle, shadow `0 1px 2px rgba(28,27,23,0.2)`
386
+ - Radius: 9999px
387
+ - Note: "on" uses ink-black, not lime — lime is reserved for primary actions, not stateful settings.
388
+ - Use: Boolean settings (auto-approve, notifications).
389
+
390
+
391
+ **Tier 1 sources:** https://ramp.com (live production site, verified via live DOM getComputedStyle).
392
+
393
+ ## 5. Layout Principles
394
+
395
+ ### Spacing System
396
+ - Base unit: 4px
397
+ - Common values: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px, 128px
398
+ - Section vertical rhythm: 96-128px between marketing sections (generous editorial breathing room)
399
+ - Card internal padding: 24px standard, 32px for feature cards
400
+
401
+ ### Grid & Container
402
+ - Max content width: 1200px (marketing), 1440px (product app shell)
403
+ - Marketing: 12-column grid, 24px gutters, asymmetric editorial layouts encouraged
404
+ - Product: persistent left sidebar (~240px) + fluid content area
405
+ - Horizontal page padding: 24px mobile, 64px+ desktop
406
+
407
+ ### Whitespace Philosophy
408
+ - **Editorial generosity**: Marketing pages use magazine-level whitespace — headlines breathe, sections are widely separated. The opposite of dense legacy fintech.
409
+ - **Product density when earned**: Transaction tables and ledger views are dense and tabular; the app trusts power users with information.
410
+ - **Numbers get room**: Large dollar figures are surrounded by deliberate negative space to land with impact.
411
+
412
+ ### Border Radius Scale
413
+ - Compact (6px): Badges, small chips, inline tags
414
+ - Standard (8px): Buttons, inputs, compact cards, segmented controls
415
+ - Comfortable (12px): Standard cards, list containers
416
+ - Large (16px): Modals, dark feature cards
417
+ - Pill (9999px): Toggles, filter chips, avatar groups
418
+
419
+ ## 6. Depth & Elevation
420
+
421
+ | Level | Treatment | Use |
422
+ |-------|-----------|-----|
423
+ | Flat (Level 0) | No shadow, 1px border | Page background, bordered cards, inputs |
424
+ | Subtle (Level 1) | `0 1px 2px rgba(28,27,23,0.05)` | Standard cards, slight lift |
425
+ | Standard (Level 2) | `0 4px 12px rgba(28,27,23,0.08)` | Dropdowns, popovers, hover-lifted cards |
426
+ | Elevated (Level 3) | `0 8px 24px rgba(28,27,23,0.18)` | Dark feature cards, floating panels, toasts |
427
+ | Modal (Level 4) | `0 12px 40px rgba(28,27,23,0.18)` | Dialogs, modals, command palette |
428
+
429
+ **Shadow Philosophy**: Ramp shadows are warm (ink-tinted, never pure black) and restrained. On light surfaces, the brand prefers a crisp 1px border over a soft shadow — flatness reads as precision and modernity. Depth is reserved for genuinely floating elements. The drama in Ramp's design comes from color contrast (lime on black), not from elevation stacks.
430
+
431
+ ### Blur Effects
432
+ - Sticky nav applies subtle backdrop blur (`backdrop-filter: blur(12px)`) with semi-opaque off-white on scroll.
433
+ - Command palette / search overlays use a light backdrop blur over the scrim.
434
+
435
+ ## 7. Do's and Don'ts
436
+
437
+ ### Do
438
+ - Use lime `#E5FE54` only for primary CTAs and savings/value signals — keep it rare and intentional
439
+ - Pair lime fills with ink `#1C1B17` text, never white text (contrast + brand consistency)
440
+ - Use ink `#1C1B17` (warm near-black), never pure `#000000`, for text and dark surfaces
441
+ - Pair Burgess serif headlines with Lausanne sans body for editorial gravitas
442
+ - Right-align and use tabular numerals for all financial figures
443
+ - Prefer 1px borders over shadows on light cards
444
+ - Use uppercase Lausanne overlines (11px, 0.08em tracking) for section eyebrows
445
+
446
+ ### Don't
447
+ - Don't scatter lime across the UI — it loses its signal value if overused
448
+ - Don't use lime as a background for long text (poor legibility) or for stateful toggles
449
+ - Don't use white text on lime fills — always ink text
450
+ - Don't use Burgess serif inside dense product tables — Lausanne only
451
+ - Don't use pure black `#000000` — the brand black is warm `#1C1B17`
452
+ - Don't add heavy multi-layer shadows — Ramp's depth is flat and border-driven
453
+ - Don't use the brand lime as a semantic "success" color — success is `#1A7F4B`
454
+
455
+ ## 8. Responsive Behavior
456
+
457
+ ### Breakpoints
458
+ | Name | Width | Key Changes |
459
+ |------|-------|-------------|
460
+ | Mobile | <640px | Single column, stacked sections, 24px padding, hamburger nav |
461
+ | Tablet | 640-1024px | 2-column grids, condensed sidebar, larger touch targets |
462
+ | Desktop | 1024-1440px | Full 12-col grid, persistent sidebar, editorial layouts |
463
+ | Wide | >1440px | Centered 1200-1440px max-width, expanded whitespace |
464
+
465
+ ### Touch Targets
466
+ - Buttons: minimum 44px height on touch devices
467
+ - Table rows: minimum 48px row height for tap-friendly transaction lists
468
+ - Nav/menu items: minimum 44px tap height
469
+
470
+ ### Collapsing Strategy
471
+ - Product sidebar collapses to icon-rail then off-canvas drawer on tablet/mobile
472
+ - Multi-column dashboards stack to single column below 640px
473
+ - Dense data tables become card-stacked rows on mobile (label-value pairs)
474
+ - Sticky bottom CTA bar on mobile marketing pages
475
+
476
+ ### Image Behavior
477
+ - Card product shots and screenshots: full-width, maintain aspect ratio, rounded 12-16px corners
478
+ - Customer logos: greyscale `#74726B`, uniform height (~28px), in a logo strip
479
+ - Hero imagery often replaced by oversized typographic numerals rather than photos
480
+
481
+ ## 9. Agent Prompt Guide
482
+
483
+ ### Quick Color Reference
484
+ - Primary CTA: Ramp Lime (`#E5FE54`) with ink text (`#1C1B17`)
485
+ - CTA Hover: Lime 600 (`#D4ED3F`)
486
+ - Dark CTA / strong action: Ink (`#1C1B17`), white text
487
+ - Page background: Off-White (`#F7F7F5`)
488
+ - Card surface: White (`#FFFFFF`)
489
+ - Heading text: Ink (`#1C1B17`)
490
+ - Body text: Ink 600 (`#56554F`)
491
+ - Caption/secondary: Grey 500 (`#74726B`)
492
+ - Placeholder: Grey 400 (`#9C9A92`)
493
+ - Border: Grey 200 (`#E3E1DA`)
494
+ - Success: Green (`#1A7F4B`)
495
+ - Error: Red (`#D93F3F`)
496
+ - Warning: Amber (`#E08A1E`)
497
+
498
+ ### Example Component Prompts
499
+ - "Create a savings card: lime100 (`#F4FCC9`) bg, 1px lime (`#E5FE54`) border, 12px radius, 24px padding. Overline 'TOTAL SAVED' 11px uppercase Lausanne 600, 0.08em tracking, #56554F. Amount '$1.2M' 56px Lausanne 500, #1C1B17, tabular numerals. No shadow."
500
+ - "Build a primary CTA: lime `#E5FE54` bg, ink `#1C1B17` text, 15px Lausanne 500, 44px height, 8px radius, 0 20px padding. Hover: bg `#D4ED3F`."
501
+ - "Design a transaction row: white bg, 1px `#E3E1DA` border, 8px radius, 48px min-height, 14px 16px padding. Left: 28px merchant logo + name (15px Lausanne 500, #1C1B17) + category badge (neutral, #EFEEE9). Right: amount (15px Lausanne 500, tabular, right-aligned, #1C1B17)."
502
+ - "Create a dark feature card: ink `#1C1B17` bg, 16px radius, 32px padding. Serif Burgess headline 30px #FFFFFF. Body 17px Lausanne 400 rgba(255,255,255,0.7). Lime `#E5FE54` text-link CTA."
503
+ - "Design an input with lime focus: white bg, 1px `#C9C7BF` border, 8px radius, 11px 14px padding, 15px Lausanne. Focus: border `#1C1B17` + ring 0 0 0 3px rgba(229,254,84,0.4)."
504
+
505
+ ### Iteration Guide
506
+ 1. Lime `#E5FE54` is precious — use it only for the single primary action or a savings signal
507
+ 2. All blacks are warm ink `#1C1B17`, never `#000000`
508
+ 3. Headlines on marketing can be Burgess serif; all product UI is Lausanne sans
509
+ 4. Financial numbers: Lausanne 500, tabular numerals, right-aligned
510
+ 5. Prefer 1px borders to shadows on light surfaces; reserve shadow for floating elements
511
+ 6. Section eyebrows: 11px uppercase Lausanne 600, 0.08em tracking
512
+ 7. Default radius 8px (controls), 12px (cards), 16px (modals/dark cards)
513
+
514
+ ## 10. Voice & Tone
515
+
516
+ Ramp speaks like a sharp, time-respecting finance operator: direct, metric-driven, confident, never fluffy. The brand sells time and money saved, so copy leads with numbers ("close books 75% faster", "save an average of 5%"). Sentences are short and declarative. No exclamation marks, no startup-cute. There's a dry confidence — the product is assumed to be obviously better, so the copy states outcomes rather than pleading.
517
+
518
+ | Context | Tone |
519
+ |---|---|
520
+ | CTAs | Imperative, two words ("Get started", "Get a demo", "Book a call"). |
521
+ | Headlines | Outcome-led, often a number ("Save more. Close faster."). Serif, editorial. |
522
+ | Success toasts | Past-tense, single clause ("Card created", "Receipt matched"). |
523
+ | Error messages | Specific, blameless, actionable ("This card is over its monthly limit. Increase the limit or use another card."). |
524
+ | Empty states | One line explaining the value, one action ("No transactions yet. Issue a card to get started."). |
525
+ | Savings moments | Lead with the dollar figure, large and bold. The number is the message. |
526
+ | Legal / compliance | Plain, precise, no jargon padding — but formal where regulation requires. |
527
+
528
+ **Forbidden tone.** No "Oops!", no exclamation-heavy enthusiasm, no vague "powerful, seamless, robust" filler adjectives. Never bury the number. Avoid hedging ("approximately", "up to" when an exact figure is known on the user's own data).
529
+
530
+ ## 11. Brand Narrative
531
+
532
+ Ramp was founded in 2019 by **Eric Glyman** and **Karim Atiyeh** (who had previously built and sold Paribus to Capital One). The founding insight inverted the entire corporate-card industry: every incumbent card issuer made more money when customers spent more, so their "rewards" quietly incentivized waste. Ramp built the opposite — a corporate card and spend-management platform whose explicit product goal is to help companies **spend less**. The brand promise is encoded in the name: Ramp helps you ramp *down* costs and ramp *up* efficiency.
533
+
534
+ That contrarian thesis shapes the entire visual system. The electric lime `#E5FE54` is the color of "found money" — energetic, slightly disruptive, impossible to ignore — set against a serious editorial ink-and-serif foundation that signals Ramp is a rigorous financial tool, not a toy. The design rejects two clichés simultaneously: the cold navy institutionalism of legacy finance (Amex, Concur, SAP) and the rounded pastel friendliness of consumer fintech. Ramp occupies a distinct middle — premium, editorial, fast, and confident.
535
+
536
+ Ramp grew explosively, becoming one of the fastest-growing SaaS companies in history and reaching a multi-billion-dollar valuation within a few years, backed by investors including Founders Fund, Stripe, Thrive Capital, and Sequoia. By 2024-2025 the brand leaned hard into AI — "Ramp Intelligence" — positioning itself as the platform where finance work gets automated away. The design absorbed this without changing its core: the lime still means action, the serif still means intelligence, and the numbers still tell the story.
537
+
538
+ What Ramp refuses: the apologetic, dense, jargon-laden UX of legacy ERP/expense tools; the playful illustration-heavy style of consumer apps; and any design move that hides the dollar figure. In Ramp's world, the savings number is always the hero.
539
+
540
+ ## 12. Principles
541
+
542
+ 1. **The number is the hero.** Dollar amounts saved or moved are the largest, most deliberate element on any screen. Never bury a financial figure in body text.
543
+ 2. **Lime is a signal, not a color.** `#E5FE54` appears only where it means "act here" or "value found." Used everywhere, it means nothing. Restraint is what makes it powerful.
544
+ 3. **Warm black, never cold.** The brand black is `#1C1B17`. Pure `#000000` reads as default and cheap; the warm ink reads as considered.
545
+ 4. **Serif for intelligence, sans for system.** Burgess carries the brand's editorial voice; Lausanne carries the functional product. Mixing them wrongly (serif in a table) breaks the system.
546
+ 5. **Flat is precise.** Prefer 1px borders to shadows. Depth is earned only by genuinely floating elements. Flatness communicates modernity and rigor.
547
+ 6. **Editorial whitespace on marketing, earned density in product.** Marketing breathes like a magazine; the app trusts power users with dense, tabular data.
548
+ 7. **State outcomes, don't sell them.** The copy assumes the product wins. It reports results ("75% faster") rather than persuading.
549
+ 8. **Contrast over decoration.** The brand's drama comes from lime-on-black contrast, not gradients, illustrations, or shadow stacks.
550
+
551
+ ## 13. Personas
552
+
553
+ *Personas below are fictional archetypes informed by publicly described corporate-spend-management user segments, not individual people.*
554
+
555
+ **Maya, 34, San Francisco.** VP of Finance at a 200-person Series B startup. Lives in the Ramp dashboard during month-end close. Cares about one thing: closing the books faster with fewer manual reconciliations. She wants dense, scannable transaction tables, fast filtering, and clear approval queues. Editorial flourishes are wasted on her — but the "you saved $X this month" number genuinely lands, because she reports it to the CFO. Power user; keyboard shortcuts; impatient with latency.
556
+
557
+ **Daniel, 41, Austin.** Operations lead at a fast-growing logistics company. Issues and manages dozens of employee cards. Needs to set spending limits, see who spent what, and freeze a card in two clicks. Doesn't think of himself as a "finance person" — he needs the UI to be obvious and the dangerous actions (freeze, revoke) to be clearly destructive-styled. Trusts the lime CTA to be the "right next step."
558
+
559
+ **Priya, 29, New York.** Marketing manager who is just a *spender* on the platform — she submits receipts and requests card limits. Touches Ramp a few times a week, mostly on mobile. Wants the receipt-upload and reimbursement flow to be frictionless and fast. The brand's polish (serif headlines, clean cards) makes her trust that the expense process won't be a nightmare. Judges the whole product by how painless one receipt upload is.
560
+
561
+ ## 14. States
562
+
563
+ | State | Treatment |
564
+ |---|---|
565
+ | **Empty (first use)** | Single line of `#56554F` body text explaining the value, plus one primary action. ("No cards yet. Issue your first card to start tracking spend." + lime/ink CTA.) Never a cartoon illustration; a simple line icon at most. |
566
+ | **Empty (filter cleared)** | One line of `#74726B` caption ("No transactions match these filters."). A ghost "Clear filters" link, no big button. |
567
+ | **Loading (first paint)** | Skeleton blocks at `#EFEEE9` matching final layout. Financial figures render as `—` until resolved, never as skeleton bars. |
568
+ | **Loading (refresh)** | Subtle top progress bar in lime `#E5FE54`. Content stays visible with prior values. Non-blocking. |
569
+ | **Error (inline field)** | `#D93F3F` 1px border on input, helper text below in `#D93F3F` 13px. One actionable sentence. |
570
+ | **Error (toast)** | Ink `#1C1B17` background, white 14px text, red `#D93F3F` left-bar accent, 4s auto-dismiss. |
571
+ | **Error (screen-blocking)** | Reserved for outages. Off-white screen, centered `#1C1B17` 18px/500 message, ink retry button. No illustration. |
572
+ | **Success (inline)** | Brief `#F4FCC9` (lime100) flash behind the updated row, 300ms fade. For routine confirmations like a saved setting. |
573
+ | **Success (action confirmed)** | Toast with lime `#E5FE54` checkmark icon, ink background, white text. For card-created, receipt-matched. |
574
+ | **Savings milestone** | Dedicated celebratory card — lime100 bg, oversized dollar figure (56px Lausanne 500), one line of context. The brand's signature positive moment. |
575
+ | **Skeleton** | `#EFEEE9` blocks at exact final dimensions, 1.2s shimmer with 6% white highlight, rounded at component radius. Never on dollar figures (show `—`). |
576
+ | **Disabled** | Buttons drop to `#EFEEE9` bg / `#9C9A92` text. Inputs keep their `#C9C7BF` border so geometry is stable if re-enabled. |
577
+ | **Destructive confirm** | Red `#D93F3F` button required to confirm freeze/revoke/delete; the action is never the default-focused button in the dialog. |
578
+
579
+ ## 15. Motion & Easing
580
+
581
+ **Durations:**
582
+
583
+ | Token | Value | Use |
584
+ |---|---|---|
585
+ | `motion-instant` | 0ms | Toggle flips, checkbox state |
586
+ | `motion-fast` | 120ms | Hover, focus rings, button press |
587
+ | `motion-standard` | 220ms | Default — dropdowns, card hover-lift, tab switches |
588
+ | `motion-slow` | 360ms | Emphasized — modal open, savings number count-up start |
589
+ | `motion-page` | 300ms | Route transitions, sidebar navigation |
590
+
591
+ **Easings:**
592
+
593
+ | Token | Curve | Use |
594
+ |---|---|---|
595
+ | `ease-enter` | `cubic-bezier(0.16, 1, 0.3, 1)` | Things appearing — modals, dropdowns, toasts (soft decelerate) |
596
+ | `ease-exit` | `cubic-bezier(0.4, 0, 1, 1)` | Things leaving — dismissals, collapses |
597
+ | `ease-standard` | `cubic-bezier(0.4, 0, 0.2, 1)` | Two-way — hover-lift, tab content, accordions |
598
+ | `ease-emphasis` | `cubic-bezier(0.22, 1, 0.36, 1)` | Savings number count-up, milestone reveals (smooth, confident) |
599
+
600
+ **Signature motions.**
601
+
602
+ 1. **Savings count-up.** Dollar figures animate by counting up from a lower value to the final number over `motion-slow` with `ease-emphasis`. The number arriving is the emotional payoff — the single most important animation in the brand. Tabular numerals keep the layout stable during count-up.
603
+ 2. **Card hover-lift.** On hover, interactive cards lift with a `0 4px 12px rgba(28,27,23,0.08)` shadow and a 1px translateY over `motion-standard / ease-standard`. Subtle, premium, never bouncy.
604
+ 3. **Lime CTA press.** The primary lime button darkens to `#C7DF34` and scales to 0.98 over `motion-fast` — a crisp, tactile commit, no overshoot.
605
+ 4. **Modal entrance.** Modals scale from 0.96 to 1.0 and fade in over `motion-slow / ease-enter`, backdrop scrim fades `rgba(28,27,23,0)` → `rgba(28,27,23,0.6)` in sync.
606
+ 5. **Reduce motion.** Under `prefers-reduced-motion: reduce`, all `motion-*` tokens collapse to `motion-instant`. The savings count-up snaps directly to the final figure; crossfades replace slides. Fully usable, just static.
607
+
608
+ <!--
609
+ OmD v0.1 Sources — Ramp
610
+
611
+ Token grounding:
612
+ - Brand lime/yellow-green #E5FE54: Ramp's signature accent, widely documented brand
613
+ asset and consistent with the catalog brief hint (#E5FE54-ish). Lime scale steps
614
+ (600/100/50) are interpolated for a usable system.
615
+ - Brand black #1C1B17 (RGB 28,27,23): verified via brandcolorcode.com/ramp
616
+ (2026-06-06) as Ramp's listed brand black — a warm, slightly green-tinted near-black.
617
+ - Typography Lausanne (sans) + Burgess (serif): verified via WebSearch / Fonts In Use
618
+ (fontsinuse.com "Ramp identity") — "Ramp uses Lausanne and Burgess fonts in their
619
+ visual identity, applied on the card, the website, the application, and videos."
620
+ - Voice/tone: grounded in ramp.com marketing copy (WebFetch 2026-06-06) — metric-led,
621
+ outcome-driven, "close books 75% faster", AI-automation positioning.
622
+
623
+ Founders (Eric Glyman, Karim Atiyeh, ex-Paribus/Capital One), 2019 founding, and
624
+ investor list (Founders Fund, Stripe, Thrive, Sequoia) are widely documented public
625
+ facts used for narrative context, not Ramp design-system statements.
626
+
627
+ Neutral scale, semantic colors, component geometry (radii, paddings, heights),
628
+ elevation tokens, and motion tokens are an internally consistent system synthesized
629
+ to match Ramp's observable editorial-fintech aesthetic; exact in-app token values
630
+ were not published by Ramp and should be treated as a faithful reconstruction.
631
+
632
+ Personas (§13) are fictional archetypes informed by publicly described corporate
633
+ spend-management user segments. Any resemblance to specific individuals is unintended.
634
+ -->
@@ -10,6 +10,28 @@ logo:
10
10
  slug: "https://www.google.com/s2/favicons?domain=rayark.com&sz=128"
11
11
  verified: "2026-06-01"
12
12
  omd: "0.1"
13
+ tokens:
14
+ source: prose-derived
15
+ extracted: "2026-06-09"
16
+ colors:
17
+ ground: "#1a1c1d"
18
+ accent: "#5fe0ee"
19
+ on-dark: "#ffffff"
20
+ on-accent: "#000000"
21
+ typography:
22
+ family: { sans: "Noto Sans", mono: "Noto Sans" }
23
+ nav: { size: 20, weight: 400, use: "Navigation links, white on dark" }
24
+ body: { size: 16, weight: 400, use: "Running text" }
25
+ button: { size: 16, weight: 700, use: "Primary CTA label" }
26
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
27
+ rounded: { sm: 3, md: 3, lg: 3, full: 9999 }
28
+ shadow:
29
+ none: "none"
30
+ components:
31
+ button-primary: { type: button, bg: "#5fe0ee", fg: "#000000", radius: 3, padding: "0 16px", font: "16/700", use: "Primary CTA 'Play Now', 2px solid #ffffff border, 40px height" }
32
+ nav-top: { type: tab, bg: "transparent", fg: "#ffffff", font: "20/400", use: "Transparent header, white nav links, 70px height" }
33
+ surface: { type: card, bg: "#1a1c1d", fg: "#ffffff", font: "16/400", use: "Near-black page canvas" }
34
+ components_harvested: true
13
35
  ---
14
36
  # Design System Inspiration of Rayark
15
37