getrelay 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/bin/relay.js +362 -0
  4. package/design-md/airbnb/DESIGN.md +545 -0
  5. package/design-md/airbnb/README.md +5 -0
  6. package/design-md/airtable/DESIGN.md +554 -0
  7. package/design-md/airtable/README.md +5 -0
  8. package/design-md/apple/DESIGN.md +562 -0
  9. package/design-md/apple/README.md +5 -0
  10. package/design-md/binance/DESIGN.md +634 -0
  11. package/design-md/binance/README.md +5 -0
  12. package/design-md/bmw/DESIGN.md +544 -0
  13. package/design-md/bmw/README.md +5 -0
  14. package/design-md/bmw-m/DESIGN.md +503 -0
  15. package/design-md/bmw-m/README.md +5 -0
  16. package/design-md/bugatti/DESIGN.md +454 -0
  17. package/design-md/bugatti/README.md +5 -0
  18. package/design-md/cal/DESIGN.md +542 -0
  19. package/design-md/cal/README.md +5 -0
  20. package/design-md/claude/DESIGN.md +589 -0
  21. package/design-md/claude/README.md +5 -0
  22. package/design-md/clay/DESIGN.md +541 -0
  23. package/design-md/clay/README.md +5 -0
  24. package/design-md/clickhouse/DESIGN.md +544 -0
  25. package/design-md/clickhouse/README.md +5 -0
  26. package/design-md/cohere/DESIGN.md +451 -0
  27. package/design-md/cohere/README.md +5 -0
  28. package/design-md/coinbase/DESIGN.md +570 -0
  29. package/design-md/coinbase/README.md +5 -0
  30. package/design-md/composio/DESIGN.md +506 -0
  31. package/design-md/composio/README.md +5 -0
  32. package/design-md/cursor/DESIGN.md +537 -0
  33. package/design-md/cursor/README.md +5 -0
  34. package/design-md/elevenlabs/DESIGN.md +504 -0
  35. package/design-md/elevenlabs/README.md +5 -0
  36. package/design-md/expo/DESIGN.md +526 -0
  37. package/design-md/expo/README.md +5 -0
  38. package/design-md/ferrari/DESIGN.md +531 -0
  39. package/design-md/ferrari/README.md +5 -0
  40. package/design-md/figma/DESIGN.md +578 -0
  41. package/design-md/figma/README.md +5 -0
  42. package/design-md/framer/DESIGN.md +544 -0
  43. package/design-md/framer/README.md +5 -0
  44. package/design-md/hashicorp/DESIGN.md +575 -0
  45. package/design-md/hashicorp/README.md +5 -0
  46. package/design-md/ibm/DESIGN.md +550 -0
  47. package/design-md/ibm/README.md +5 -0
  48. package/design-md/intercom/DESIGN.md +546 -0
  49. package/design-md/intercom/README.md +5 -0
  50. package/design-md/kraken/DESIGN.md +125 -0
  51. package/design-md/kraken/README.md +5 -0
  52. package/design-md/lamborghini/DESIGN.md +288 -0
  53. package/design-md/lamborghini/README.md +5 -0
  54. package/design-md/linear.app/DESIGN.md +548 -0
  55. package/design-md/linear.app/README.md +5 -0
  56. package/design-md/lovable/DESIGN.md +298 -0
  57. package/design-md/lovable/README.md +5 -0
  58. package/design-md/mastercard/DESIGN.md +365 -0
  59. package/design-md/mastercard/README.md +5 -0
  60. package/design-md/meta/DESIGN.md +683 -0
  61. package/design-md/meta/README.md +5 -0
  62. package/design-md/minimax/DESIGN.md +746 -0
  63. package/design-md/minimax/README.md +5 -0
  64. package/design-md/mintlify/DESIGN.md +852 -0
  65. package/design-md/mintlify/README.md +5 -0
  66. package/design-md/miro/DESIGN.md +825 -0
  67. package/design-md/miro/README.md +5 -0
  68. package/design-md/mistral.ai/DESIGN.md +773 -0
  69. package/design-md/mistral.ai/README.md +5 -0
  70. package/design-md/mongodb/DESIGN.md +767 -0
  71. package/design-md/mongodb/README.md +5 -0
  72. package/design-md/nike/DESIGN.md +575 -0
  73. package/design-md/nike/README.md +5 -0
  74. package/design-md/notion/DESIGN.md +821 -0
  75. package/design-md/notion/README.md +5 -0
  76. package/design-md/nvidia/DESIGN.md +640 -0
  77. package/design-md/nvidia/README.md +5 -0
  78. package/design-md/ollama/DESIGN.md +539 -0
  79. package/design-md/ollama/README.md +5 -0
  80. package/design-md/opencode.ai/DESIGN.md +521 -0
  81. package/design-md/opencode.ai/README.md +5 -0
  82. package/design-md/pinterest/DESIGN.md +597 -0
  83. package/design-md/pinterest/README.md +5 -0
  84. package/design-md/playstation/DESIGN.md +661 -0
  85. package/design-md/playstation/README.md +5 -0
  86. package/design-md/posthog/DESIGN.md +690 -0
  87. package/design-md/posthog/README.md +5 -0
  88. package/design-md/raycast/DESIGN.md +669 -0
  89. package/design-md/raycast/README.md +5 -0
  90. package/design-md/renault/DESIGN.md +589 -0
  91. package/design-md/renault/README.md +5 -0
  92. package/design-md/replicate/DESIGN.md +616 -0
  93. package/design-md/replicate/README.md +5 -0
  94. package/design-md/resend/DESIGN.md +585 -0
  95. package/design-md/resend/README.md +5 -0
  96. package/design-md/revolut/DESIGN.md +636 -0
  97. package/design-md/revolut/README.md +5 -0
  98. package/design-md/runwayml/DESIGN.md +244 -0
  99. package/design-md/runwayml/README.md +5 -0
  100. package/design-md/sanity/DESIGN.md +357 -0
  101. package/design-md/sanity/README.md +5 -0
  102. package/design-md/sentry/DESIGN.md +551 -0
  103. package/design-md/sentry/README.md +5 -0
  104. package/design-md/shopify/DESIGN.md +516 -0
  105. package/design-md/shopify/README.md +5 -0
  106. package/design-md/slack/DESIGN.md +482 -0
  107. package/design-md/spacex/DESIGN.md +363 -0
  108. package/design-md/spacex/README.md +5 -0
  109. package/design-md/spotify/DESIGN.md +246 -0
  110. package/design-md/spotify/README.md +5 -0
  111. package/design-md/starbucks/DESIGN.md +580 -0
  112. package/design-md/starbucks/README.md +5 -0
  113. package/design-md/stripe/DESIGN.md +487 -0
  114. package/design-md/stripe/README.md +5 -0
  115. package/design-md/supabase/DESIGN.md +462 -0
  116. package/design-md/supabase/README.md +5 -0
  117. package/design-md/superhuman/DESIGN.md +448 -0
  118. package/design-md/superhuman/README.md +5 -0
  119. package/design-md/tesla/DESIGN.md +286 -0
  120. package/design-md/tesla/README.md +5 -0
  121. package/design-md/theverge/DESIGN.md +339 -0
  122. package/design-md/theverge/README.md +5 -0
  123. package/design-md/together.ai/DESIGN.md +633 -0
  124. package/design-md/together.ai/README.md +5 -0
  125. package/design-md/uber/DESIGN.md +636 -0
  126. package/design-md/uber/README.md +5 -0
  127. package/design-md/vercel/DESIGN.md +736 -0
  128. package/design-md/vercel/README.md +5 -0
  129. package/design-md/vodafone/DESIGN.md +538 -0
  130. package/design-md/vodafone/README.md +5 -0
  131. package/design-md/voltagent/DESIGN.md +521 -0
  132. package/design-md/voltagent/README.md +5 -0
  133. package/design-md/warp/DESIGN.md +526 -0
  134. package/design-md/warp/README.md +5 -0
  135. package/design-md/webflow/DESIGN.md +588 -0
  136. package/design-md/webflow/README.md +5 -0
  137. package/design-md/wired/DESIGN.md +497 -0
  138. package/design-md/wired/README.md +5 -0
  139. package/design-md/wise/DESIGN.md +544 -0
  140. package/design-md/wise/README.md +5 -0
  141. package/design-md/x.ai/DESIGN.md +465 -0
  142. package/design-md/x.ai/README.md +5 -0
  143. package/design-md/zapier/DESIGN.md +537 -0
  144. package/design-md/zapier/README.md +5 -0
  145. package/package.json +31 -0
@@ -0,0 +1,365 @@
1
+ # Design System Inspired by Mastercard
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Mastercard's experience reads like a warm, editorial magazine built from soft stone and signal orange. The canvas is a muted putty-cream (`#F3F0EE`) — not white, not gray, but a color that feels like the paper of a premium annual report. On top of that canvas, everything that matters is shaped like a stadium, a pill, or a perfect circle. The dominant visual gesture is the **oversized radius**: heroes carry 40-point corners, cards go fully pill-shaped, service images are cropped into circular orbits, and buttons either complete the pill or fit snugly at 20 points. There are almost no sharp corners anywhere on the page.
6
+
7
+ The second gesture is **orbit and trajectory**. Circular image masks don't sit still — they're connected by thin, hand-drawn-feeling orange arcs that span entire viewport widths, implying a constellation of services rather than a list. Each circle has a small attached "satellite" — a white micro-CTA holding an arrow icon — docked onto its perimeter like a moon. This is the most distinctive thing about Mastercard's current design language: the circles feel like they're in motion even though the page is still.
8
+
9
+ Typography is rendered entirely in **MarkForMC**, Mastercard's proprietary geometric sans. Headlines are set at a medium weight (500) with tight negative letter-spacing (-2%), giving them confidence without shouting. Body copy runs at the same family in a slightly lighter weight (450) — a weight you rarely see on the web, chosen because it reads softer than regular 400 without feeling thin. The whole system — warm cream surfaces, pill shapes, circular portraits, traced-orange orbits, black CTAs — feels simultaneously institutional (a 60-year-old payments network) and editorial (a modern brand magazine), which is exactly the tension Mastercard wants to hold.
10
+
11
+ **Key Characteristics:**
12
+ - Warm cream canvas (`#F3F0EE`) replaces traditional white — every surface is tinted, never sterile
13
+ - Extreme border-radius as design language: 40px, 99px, 1000px dominate; anything square is a cookie-banner third-party
14
+ - Circular image portraits with attached white satellite-CTAs and traced-orange orbital paths
15
+ - Ghost "watermark" headlines (cream-on-cream text at heading scale) layered behind circle portraits
16
+ - Black primary CTAs with 20px radius in the body — the cookie-banner orange is kept to consent flows
17
+ - Floating pill-shaped navigation that docks below the viewport top with rounded shoulders
18
+ - Eyebrow labels with a tiny accent dot + uppercase bold tracking — used as the section-category signal
19
+ - Dark warm-black footer (`#141413`) with four-column link layout and large conversational headline
20
+
21
+ ## 2. Color Palette & Roles
22
+
23
+ ### Primary
24
+ - **Mastercard Red** (`#EB001B`): The left circle of the Mastercard mark — used only in the brand logo, never as a UI color.
25
+ - **Mastercard Yellow** (`#F79E1B`): The right circle of the Mastercard mark — used only in the brand logo, never as a UI color.
26
+ - **Ink Black** (`#141413`): The warm near-black used for primary CTAs, headline text on cream, and the footer surface. Slightly warm (the `13` blue value pulls toward the cream) so it never feels jet-black on the warm canvas.
27
+
28
+ ### Secondary & Accent
29
+ - **Signal Orange** (`#CF4500`): The burnt/rust CTA orange used on consent actions and eyebrow dots. Deeper than the brand yellow, brighter than ink — it's the page's single aggressive color and must be used sparingly.
30
+ - **Light Signal Orange** (`#F37338`): A lighter carroty orange used for carousel active indicators and decorative orbital arcs. Always acts as an attention cue, never as body color.
31
+ - **Clay Brown** (`#9A3A0A`): The deep rust used for secondary link-style buttons (e.g., cookie details). Sits between ink and signal orange.
32
+
33
+ ### Surface & Background
34
+ - **Canvas Cream** (`#F3F0EE`): The page canvas. Warm, putty-toned, the default body background. All editorial sections sit on this.
35
+ - **Lifted Cream** (`#FCFBFA`): One step lighter than canvas — used for nested "raised" sections that want to feel like paper laid on paper.
36
+ - **White** (`#FFFFFF`): Reserved for the floating navigation pill, modal cards, secondary button fills, and small satellite-CTA circles attached to image portraits.
37
+ - **Soft Bone** (`#F4F4F4`): A cool-gray alternative surface used inside a handful of component subregions.
38
+
39
+ ### Neutrals & Text
40
+ - **Ink Black** (`#141413`): Primary headline and body text color.
41
+ - **Charcoal** (`#262627`): A slightly softer black used for some text alternates.
42
+ - **Slate Gray** (`#696969`): Muted secondary text — eyebrow label alternative, disabled states, "Privacy Choices" bottom-row text.
43
+ - **Granite** (`#555555`) and **Graphite** (`#565656`): Deeper gray for inline body accents and link alternates.
44
+ - **Dust Taupe** (`#D1CDC7`): Very muted cream-gray used for disabled or "whisper" text (e.g., placeholder-like empty state labels). Low contrast on cream; use only for subdued content.
45
+
46
+ ### Semantic & Accent
47
+ - **Link Blue** (`#3860BE`): A deep, slightly dusty blue used for inline links and informational callouts. Saturated enough to read as a link without being neon.
48
+ - **Priceless Red + Yellow**: The full-color Mastercard logo mark is the only place the brand's red and yellow appear together; they lock the identity to the page without acting as a UI palette.
49
+
50
+ ### Gradient System
51
+ Mastercard uses no programmatic gradients in the core UI. The visual impression of "gradient" comes from two places:
52
+ - **Circular image portraits** where a warm-orange photo subject (a card, a sunflower, a beverage) fades to the cream canvas at its edge
53
+ - **Deep card shadows** on elevated content (`rgba(0,0,0,0.08) 0px 24px 48px`) that create a soft halo beneath pill-shaped media
54
+
55
+ ## 3. Typography Rules
56
+
57
+ ### Font Family
58
+ - **Primary**: `MarkForMC` — Mastercard's proprietary geometric sans. Every headline, body paragraph, button, nav link, and footer link on the page.
59
+ - **Secondary**: `MarkOffcForMC` — an "Official" cut used in a minority of contexts (legal text, some forms).
60
+ - **Fallback stack**: `SofiaSans, Arial, sans-serif` — Sofia Sans is a reasonable open-source stand-in; Arial is the final web-safe fallback.
61
+
62
+ ### Hierarchy
63
+
64
+ | Role | Size | Weight | Line Height | Letter Spacing | Notes |
65
+ |------|------|--------|-------------|----------------|-------|
66
+ | H1 (hero) | 64px | 500 | 64px | -1.28px (-2%) | Set to `1:1` line-height for very tight vertical rhythm on multi-line hero |
67
+ | H2 (section) | 36px | 500 | 44px | -0.72px (-2%) | Used in ghost-watermark headline treatments and section titles |
68
+ | H3 (card title) | 24px | 500 | 28.8px (1.2) | -0.48px (-2%) | Titles inside service/solution cards |
69
+ | H4 (subhead) | 14px | 700 | 18.2px (1.3) | normal | Rarely used in marketing surfaces |
70
+ | Eyebrow (H5) | 14px | 700 | 14px | 0.56px (+4%) | Uppercase, paired with a tiny accent dot (e.g., "• SERVICES") |
71
+ | Body paragraph | 16px | 450 | 22.4px (1.4) | normal | The half-step 450 weight is MarkForMC's signature — softer than 500, firmer than 400 |
72
+ | Nav link / Button label | 16px | 500 | 16px | -0.48px (-3%) | Tight, compact, no text-transform |
73
+ | Footer link | 14px | 450 | ~20px | normal | Lighter weight on dark footer for airier density |
74
+ | Footer column header | 12–14px | 700 | 14px | 0.56px (+4%) | Uppercase, muted gray, short tracking |
75
+
76
+ ### Principles
77
+ - **Weight 450 is load-bearing**. Most brands use 400/500/700; Mastercard uses 450 for body copy, which creates an unusually soft reading tone. Replacing it with 400 flattens the identity.
78
+ - **Tight negative tracking on headlines** (-2%) gives display text its editorial density — the words lock together rather than breathe.
79
+ - **Uppercase tracking only on the eyebrow scale** (14px / 700 / +4% tracking). Don't use uppercase anywhere else; no shouty section titles.
80
+ - **One-font system**. Resist the urge to add a second typeface for contrast. The contrast comes from scale, weight, and letter-spacing, not from a serif or display accent.
81
+ - **Line-height ratio drops with size**. H1 is 1:1, H3 is 1.2, body is 1.4. Tight display, comfortable reading.
82
+
83
+ ### Note on Font Substitutes
84
+ MarkForMC is proprietary and licensed. When rebuilding a matching aesthetic without access to the original:
85
+ - **Sofia Sans** (Google Fonts) is the closest open-source match — it's already in Mastercard's declared fallback stack.
86
+ - **Inter** at weights 450/500/700 works as a generic stand-in; expect slightly taller x-height and looser letter shapes.
87
+ - **Neue Haas Grotesk** or **Geist** can approximate the geometric feel for commercial projects.
88
+ - Whichever substitute is used, preserve the **-2% letter-spacing on headlines** and the **450 body weight** (use `font-weight: 450` with variable fonts, or substitute `font-weight: 400` and tighten the letter-spacing by ~-0.5% to compensate).
89
+
90
+ ## 4. Component Stylings
91
+
92
+ ### Buttons
93
+
94
+ **Primary — Ink Pill**
95
+ - Background: Ink Black (`#141413`)
96
+ - Text: Canvas Cream (`#F3F0EE`) — not pure white
97
+ - Border: 1.5px solid Ink Black (same as bg, creates crisp edge)
98
+ - Radius: 20px
99
+ - Padding: 6px 24px
100
+ - Font: MarkForMC 16px / weight 500 / letter-spacing -0.32px
101
+ - Default: as above; solid warm-black pill on cream canvas
102
+ - Active / pressed: subtle inward-shrink or 2px offset (not a hover variant)
103
+ - Use for: all marketing CTAs in the page body ("Learn more", "Explore", "Discover")
104
+
105
+ **Secondary — Outlined Pill**
106
+ - Background: White (`#FFFFFF`)
107
+ - Text: Ink Black (`#141413`)
108
+ - Border: 1.5px solid Ink Black
109
+ - Radius: 20px
110
+ - Padding: 6px 24px
111
+ - Font: MarkForMC 16px / weight 450 / line-height 20.8px
112
+ - Default: white-on-cream pill with crisp ink outline
113
+ - Active / pressed: subtle compression
114
+ - Use for: secondary actions paired with a primary, or standalone utility CTAs
115
+
116
+ **Consent / Signal — Orange Pill**
117
+ - Background: Signal Orange (`#CF4500`)
118
+ - Text: White (`#FFFFFF`)
119
+ - Border: 0
120
+ - Radius: 24px
121
+ - Padding: 1px 30px (very tight vertical, wide horizontal)
122
+ - Font: MarkForMC 13px / weight 400 / letter-spacing 0.13px
123
+ - Default: as above; bright rust pill with white text
124
+ - Use for: cookie consent, privacy preference, and other legally-distinct confirmations. **Do not** use this orange for marketing CTAs — it reads as a compliance color.
125
+
126
+ **Satellite — Circular Micro-CTA**
127
+ - Background: White (`#FFFFFF`)
128
+ - Icon: Ink Black arrow (`→`) at ~20px
129
+ - Border: none
130
+ - Radius: 50% (perfect circle)
131
+ - Size: ~50–60px diameter
132
+ - Shadow: none or very subtle (the portrait's shadow carries the elevation)
133
+ - Default: docks onto the bottom-right edge of a circular portrait, protruding partway outside the portrait's circle
134
+ - Use for: the primary entry point into service/solution cards; always paired with a circular portrait
135
+
136
+ **Icon-Only Circle Button (carousel, play/pause)**
137
+ - Background: transparent or white
138
+ - Icon: 10–20px centered
139
+ - Border: 1px solid Ink Black (when on cream) or none (when over media)
140
+ - Radius: 50%
141
+ - Size: 40px diameter minimum for carousel controls; 80px for hero video play
142
+ - Use for: carousel pagination/play-pause, hero video play, search toggle
143
+
144
+ ### Cards & Containers
145
+
146
+ **Hero Media Frame (Stadium)**
147
+ - Background: Dark video or full-bleed imagery (typically black `#000000` or `#2B2B2B` behind video)
148
+ - Radius: 40px all corners (creates a stadium shape on wide viewports)
149
+ - Width: ~full viewport minus ~48px gutter on each side
150
+ - Height: ~60–70% of viewport
151
+ - Shadow: none (sits directly on canvas)
152
+ - Corners: the extreme 40px radius on a media element is the most iconic Mastercard gesture — do not round less
153
+
154
+ **Service / Solution Portrait Card**
155
+ - Shape: Perfect circle (radius 50%) or ellipse (radius 999px / 1000px)
156
+ - Diameter: 260–340px desktop; ~220px mobile
157
+ - Image crop: square source, cropped to circle
158
+ - Attached element: White satellite circular CTA (see above) docked bottom-right, ~40% outside the portrait
159
+ - Eyebrow below: accent dot + uppercase label (e.g., "• SERVICES", "• SOLUTIONS")
160
+ - Title below: H3 (24px / weight 500 / -2% tracking), 1–2 lines max
161
+ - Decorative orbit: thin ~1px Light Signal Orange curved line spanning from this card outward to the next, implying connection
162
+
163
+ **Pill Carousel Card**
164
+ - Radius: 1000px (full pill) or 40px corners (rounded stadium)
165
+ - Width: ~40–60% of viewport
166
+ - Height: ~380–420px (portrait-pill orientation)
167
+ - Content: full-bleed photography with small overlaid chip labels
168
+ - Chip inside: White pill (~ 999px radius), Ink Black text, padding 8px 20px, used for category tags like "Story"
169
+ - Large inline CTA inside: Ink Pill button, oversized (padding 16px 40px, radius 40px)
170
+
171
+ **Ghost Watermark Text Block**
172
+ - Font: MarkForMC 72–128px / weight 500 / tight -2% tracking
173
+ - Color: Canvas Cream slightly darkened (`#E8E2DA` or similar — cream-on-cream)
174
+ - Position: layered behind portrait circles, bleeding off the viewport edge
175
+ - Purpose: sets section theme without competing with foreground copy
176
+
177
+ ### Inputs & Forms
178
+ Minimal form surface on the marketing page. The search input in the nav header is:
179
+ - Initial state: a 48px circular button with a magnifier icon
180
+ - Expanded state: horizontal input field, border `1px solid` Ink Black at ~50% opacity, radius 999px, padding 12px 24px, white background
181
+
182
+ **Country/language selector (footer)**
183
+ - Background: Ink Black (same as footer)
184
+ - Text: White
185
+ - Border: 1px solid `rgba(255,255,255,0.4)`
186
+ - Radius: 999px (full pill)
187
+ - Icon: downward chevron on the right
188
+
189
+ ### Navigation
190
+
191
+ **Floating Nav Pill (desktop)**
192
+ - Container: white-to-translucent-white pill floating below the very top of the viewport with a ~24px top margin
193
+ - Radius: 999px / 1000px (full pill)
194
+ - Padding: ~16px 40px internal
195
+ - Shadow: very soft (`rgba(0, 0, 0, 0.04) 0px 4px 24px 0px`) — just enough to lift it off the cream canvas
196
+ - Content: Mastercard logo left, primary link group center ("For you", "For business", "For the world", "For innovators", "News and trends"), search icon right
197
+ - Link spacing: ~48–56px gap between primary links
198
+ - Link style: Ink Black, weight 500, 16px, no underline, no pill surround until active
199
+
200
+ **Mobile Nav**
201
+ - The same pill shape but collapsed to: logo + hamburger menu button + search icon only
202
+ - Menu opens into a full-screen overlay with the primary links stacked vertically
203
+
204
+ ### Image Treatment
205
+
206
+ - **Aspect ratios used**: 1:1 (all service portraits — cropped to circle), ~3:4 or ~4:5 (carousel pill cards), 16:9 or wider (hero video frame)
207
+ - **Full-bleed vs padded**: Hero is viewport-wide with gutters; service portraits are always centered in their column with generous whitespace around; footer imagery is rare
208
+ - **Masking**: Aggressive circular masking is the defining treatment — square source images are cropped to perfect circles of matching diameter. Never use rectangular service imagery.
209
+ - **Lazy loading**: Standard `loading="lazy"` with a soft blur-up transition from a cream-tinted placeholder, preserving the warm palette during load
210
+
211
+ ### Decorative Orbital Lines
212
+
213
+ A signature motif: thin (~1–1.5px) single-weight curved lines in Light Signal Orange (`#F37338`) tracing arcs between circular portraits. These lines:
214
+ - Imply connection between service cards without literal arrows
215
+ - Span widths from ~200px up to full-viewport arcs
216
+ - Feel hand-drawn (subtle irregularity) rather than perfect CSS curves
217
+ - Appear only in sections with circular portrait content — never on pill sections, never in the footer
218
+
219
+ ### Footer
220
+
221
+ - Background: Ink Black (`#141413`)
222
+ - Text: White
223
+ - Padding: 48px horizontal 100px / bottom 148px (very tall bottom space)
224
+ - Structure: large conversational H2 ("We're always here when you need us") left-aligned, then a 4-column link grid below
225
+ - Column headers: uppercase, muted, weight 700, letter-spacing +4%
226
+ - Link rows: white, weight 450, 14px; entries prefixed with a small icon (support bubble, card, map pin, question mark) for the "NEED HELP?" column
227
+ - External link marker: a small upper-right arrow (`↗`) after link text
228
+ - Bottom row (below a 1px white-at-opacity divider): copyright + privacy small-print + country-language pill dropdown + four social icons (LinkedIn, Facebook, X, YouTube)
229
+
230
+ ## 5. Layout Principles
231
+
232
+ ### Spacing System
233
+ - **Base unit**: 8px (confirmed by dembrandt extraction and computed styles)
234
+ - **Scale**: 8 / 16 / 24 / 32 / 48 / 64 / 96 / 128 (powers of 8)
235
+ - **Section vertical padding**: ~96–128px between major sections on desktop; ~48–64px on mobile
236
+ - **Card internal padding**: 32–40px on desktop, ~24px on mobile
237
+ - **Nav top margin**: ~24px from viewport top (the pill floats, doesn't touch)
238
+
239
+ ### Grid & Container
240
+ - **Max content width**: ~1200–1280px centered, with ~48–100px horizontal gutter
241
+ - **Column pattern**: 12-column implied, but practical layouts use 2-up asymmetric (large headline left, supporting text right), 1-up full-bleed (hero, video), or staggered single-portrait placement (service cards sit in varying grid positions creating the "constellation" feel)
242
+ - **Footer grid**: 4 equal columns on desktop, collapses to single column accordion on mobile
243
+
244
+ ### Whitespace Philosophy
245
+ Mastercard treats whitespace as structure, not absence. A typical service section has:
246
+ - A ghost headline occupying the top ~40% of the section (mostly empty cream)
247
+ - A single circular portrait positioned ~60% down, asymmetric to left or right
248
+ - ~300–500px of blank canvas between the portrait and the next section
249
+ This deliberate emptiness tells the eye "slow down, read one thing at a time" — the opposite of dense dashboard UIs.
250
+
251
+ ### Border Radius Scale
252
+
253
+ | Radius | Use |
254
+ |--------|-----|
255
+ | 3–6px | Tiny decorative elements, cookie banner micro-chips |
256
+ | 20px | Primary and secondary body CTAs (the signature button radius) |
257
+ | 24px | Consent/orange pill buttons, modal inner chips |
258
+ | 40px | Hero media frames, large section container corners, H2 pill labels |
259
+ | 50% | Circular portraits, icon-only buttons, satellite CTAs |
260
+ | 99px / 999px / 1000px | Full pill shapes — navigation, carousel cards, footer country selector, primary inline chips |
261
+
262
+ The scale is unusual: most systems use 4/8/12/16. Mastercard skips those and commits to **either small (≤6), medium-large (20–40), or full-pill (99+)**. The middle ground of 8–12 is absent, which is why the UI feels either "precise and utility" or "soft and editorial" with no in-between.
263
+
264
+ ## 6. Depth & Elevation
265
+
266
+ | Level | Treatment | Use |
267
+ |-------|-----------|-----|
268
+ | 0 | No shadow | The default — 95% of surfaces sit directly on cream canvas |
269
+ | 1 | `rgba(0, 0, 0, 0.04) 0px 4px 24px 0px` | Floating nav pill — barely-there lift |
270
+ | 2 | `rgba(0, 0, 0, 0.08) 0px 24px 48px 0px` | Hero media frames, elevated cards — a soft large-radius halo rather than a hard drop |
271
+ | 3 | `rgba(0, 0, 0, 0.25) 0px 70px 110px 0px` | Rare; dramatic elevation on a feature tile |
272
+
273
+ ### Shadow Philosophy
274
+ Mastercard uses shadows as **atmospheric cushioning**, not directional light. The Level 2 shadow has a 48px spread and only 8% opacity — it barely exists as dark pixels but creates a "the card is breathing above the canvas" feel. There are almost no hard-edged, tight shadows anywhere in the system. Border lines are preferred over shadows for functional delineation (form inputs, footer divider).
275
+
276
+ ### Decorative Depth
277
+ - **Orbital arcs** (Light Signal Orange, ~1px): trace connective paths across sections
278
+ - **Ghost watermark headlines**: cream-on-cream text gives sections an almost-pressed-paper quality
279
+ - **Circle-image fade**: warm-toned photography at the edge of circular portraits dissolves into the canvas, implying soft atmospheric depth
280
+
281
+ ## 7. Do's and Don'ts
282
+
283
+ ### Do
284
+ - Use Canvas Cream (`#F3F0EE`) as the default body background — never pure white
285
+ - Mask service/feature imagery as perfect circles, not rectangles or rounded rectangles
286
+ - Attach a white satellite CTA to the bottom-right of each circular portrait
287
+ - Set headlines in MarkForMC weight 500 with -2% letter-spacing
288
+ - Use weight 450 (not 400) for body paragraphs
289
+ - Keep primary CTAs as Ink Black pills (20px radius) with cream text
290
+ - Use Signal Orange only on consent, legal, or compliance actions
291
+ - Float the nav as a rounded white pill below the viewport top, not flush at y=0
292
+ - Build page rhythm from three surface tones: canvas cream → lifted cream → ink footer
293
+ - Use thin Light Signal Orange arcs between service cards to imply connection
294
+
295
+ ### Don't
296
+ - Don't use pure white as a page background — it breaks the warm editorial tone
297
+ - Don't round image frames at 8–16px — Mastercard either uses full-pill, 40px, or full-circle. In-between radii look generic
298
+ - Don't use Signal Orange for marketing CTAs — it reads as cookie-consent orange and dilutes the legal color signal
299
+ - Don't mix typefaces — no serif accent, no script, no secondary display font
300
+ - Don't crowd the nav with more than six top-level links — the pill is meant to feel airy
301
+ - Don't drop hard shadows — all elevation should use 48px+ spread and ≤10% opacity
302
+ - Don't use uppercase for anything larger than the 14px eyebrow label
303
+ - Don't omit the tiny accent dot before eyebrow labels — it's the identity
304
+ - Don't place circular portraits on a grid — their magic comes from asymmetric placement
305
+
306
+ ## 8. Responsive Behavior
307
+
308
+ ### Breakpoints
309
+
310
+ | Name | Width | Key Changes |
311
+ |------|-------|-------------|
312
+ | Mobile | ≤ 767px | Nav pill shows logo + menu + search only; primary links hide behind hamburger; service portraits stack single-column centered; hero headline drops from 64px to ~40px; footer columns collapse into a vertical accordion |
313
+ | Tablet | 768–1023px | Nav pill shows 2–3 primary links truncated; service portraits arrange 2-up; hero headline ~48px |
314
+ | Desktop | ≥ 1024px | Full nav with 5 primary links centered; service portraits asymmetrically placed with decorative orbital lines; hero headline 64px |
315
+ | Wide | ≥ 1440px | Content max-width caps at ~1280px; gutters grow symmetrically; orbital lines extend further |
316
+
317
+ ### Touch Targets
318
+ All interactive elements comfortably exceed 44×44px. The satellite CTA (circle + arrow) is ~50–60px. The nav pill buttons are ~48px tall. Mobile hamburger and search are 48×48px. No link or button drops below 40px in any breakpoint.
319
+
320
+ ### Collapsing Strategy
321
+ - **Nav**: full pill → compact pill with hamburger. Pill shape is preserved across breakpoints — always rounded, always floating.
322
+ - **Service grid**: asymmetric constellation → 2-up → 1-up stack. Orbital arcs are removed on mobile (they only work with asymmetric placement).
323
+ - **Spacing**: section vertical padding compresses from 128px to 48px on mobile.
324
+ - **Content**: two-column hero (headline left / supporting text right) becomes stacked (headline on top, supporting text below).
325
+ - **Footer**: 4 columns → 1 column accordion with chevron toggles per section.
326
+
327
+ ### Image Behavior
328
+ Circular portraits scale proportionally (maintaining the perfect circle at every size). Hero video frames maintain their 40px radius at every breakpoint, but the frame itself shrinks with the viewport. Lazy loading is standard with a cream-tinted blur-up placeholder, preserving the palette during load.
329
+
330
+ ## 9. Agent Prompt Guide
331
+
332
+ ### Quick Color Reference
333
+ - Primary CTA: "Ink Black (`#141413`) — the warm near-black used for primary pill buttons and footer"
334
+ - Background: "Canvas Cream (`#F3F0EE`) — warm putty body canvas, never pure white"
335
+ - Lifted surface: "Lifted Cream (`#FCFBFA`) — one step lighter than canvas for nested sections"
336
+ - Heading text: "Ink Black (`#141413`)"
337
+ - Body text: "Ink Black (`#141413`) at weight 450"
338
+ - Muted text: "Slate Gray (`#696969`)"
339
+ - Signal / Consent: "Signal Orange (`#CF4500`) — reserve for cookie consent and legal actions"
340
+ - Accent arc: "Light Signal Orange (`#F37338`) — orbital decorative lines only"
341
+ - Border / Outline: "Ink Black at 1.5px for pill buttons; 1px at low opacity elsewhere"
342
+ - Footer: "Ink Black (`#141413`) with White text"
343
+
344
+ ### Example Component Prompts
345
+ - "Create a circular portrait card 300px in diameter, with a square photograph cropped to a perfect circle. Attach a 56px white satellite button with a dark arrow icon at the bottom-right, so it protrudes ~40% outside the portrait. Below the portrait, add an eyebrow label with a Light Signal Orange dot and uppercase 'SERVICES' text in MarkForMC weight 700 at 14px. Below the eyebrow, set a 24px / weight 500 title in Ink Black."
346
+ - "Design a primary CTA button: Ink Black (`#141413`) background, Canvas Cream (`#F3F0EE`) text, 20px border-radius, 6px vertical and 24px horizontal padding, MarkForMC font at 16px weight 500 with -2% letter-spacing."
347
+ - "Build a floating navigation pill: white background with `rgba(0, 0, 0, 0.04) 0px 4px 24px 0px` shadow, 999px border-radius, ~16px vertical and 40px horizontal internal padding. Position it 24px below the viewport top, centered, with the Mastercard logo at the left, five primary links centered with 48px gap, and a circular 48px search button at the right."
348
+ - "Create a hero media frame: 40px border-radius on all corners, full viewport width minus 48px gutters, ~60% viewport height, dark background for video content. Place it directly on the cream canvas with no shadow."
349
+ - "Design a footer: Ink Black (`#141413`) background, white text, 4-column link grid with uppercase muted column headers at 14px weight 700 +4% tracking. Include a large conversational H2 above the grid, a 1px white-at-30%-opacity horizontal divider below, and a bottom row with copyright, legal small-print links, a pill-shaped country selector, and four social icons."
350
+
351
+ ### Iteration Guide
352
+ When refining existing screens generated with this design system:
353
+ 1. Focus on ONE component at a time — don't redesign multiple surfaces in parallel
354
+ 2. Reference specific color names AND hex codes from this document
355
+ 3. Use natural language ("warm putty cream", "stadium pill", "circular portrait with satellite CTA") alongside technical values
356
+ 4. Describe the desired "feel" (editorial, soft, institutional) alongside specific measurements
357
+ 5. When in doubt, reach for one of three radii: 20px (buttons), 40px (hero/stadium), or 999px (pill/nav)
358
+ 6. Default backgrounds to Canvas Cream (`#F3F0EE`), not white — this single change shifts the entire mood toward Mastercard
359
+
360
+ ### Known Gaps
361
+ - The live page uses MarkForMC, a proprietary licensed typeface. Sofia Sans is the closest open-source substitute and is listed in Mastercard's own fallback stack.
362
+ - Tablet breakpoint specifics (768–1023px) were inferred from desktop and mobile captures; intermediate layouts may vary per section.
363
+ - The exact "whisper" cream tone used for ghost-watermark headlines behind circular portraits reads between `#E8E2DA` and `#D1CDC7` in captures; the precise value varies per section.
364
+ - Third-party consent orange (`#CF4500`) is Mastercard's documented consent signal and should not be confused with any marketing CTA color.
365
+ - The Mastercard logo mark (red `#EB001B` + yellow `#F79E1B`) is a brand asset, not a UI palette entry.
@@ -0,0 +1,5 @@
1
+ # Mastercard Inspired Design System
2
+
3
+ Design system details have been moved to: https://getdesign.md/mastercard/design-md
4
+
5
+ You can also view previews, dark mode examples, and download options on getdesign.md.