oh-my-design-cli 1.8.7 → 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.
Files changed (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -4,58 +4,126 @@ name: Hashicorp
4
4
  country: US
5
5
  category: backend-devops
6
6
  homepage: "https://www.hashicorp.com"
7
- primary_color: "#000000"
7
+ primary_color: "#1060ff"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: hashicorp
11
- verified: "2026-05-15"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: Helios
15
15
  url: "https://helios.hashicorp.design"
16
16
  type: system
17
- description: HashiCorp's design system documenting components and foundations.
17
+ description: HashiCorp's public design system for product foundations, content, components, and patterns.
18
+ verification_v2:
19
+ schema: 2
20
+ checked: "2026-07-13"
21
+ surfaces:
22
+ - { id: home, kind: marketing, url: "https://www.hashicorp.com/ko", inspected: "2026-07-13" }
23
+ - { id: pricing, kind: pricing, url: "https://www.hashicorp.com/ko/pricing", inspected: "2026-07-13" }
24
+ - { id: boundary, kind: product-marketing, url: "https://www.hashicorp.com/ko/products/boundary", inspected: "2026-07-13" }
25
+ sources:
26
+ - { id: home-live, kind: product-surface, url: "https://www.hashicorp.com/ko", captured: "2026-07-13" }
27
+ - { id: pricing-live, kind: product-surface, url: "https://www.hashicorp.com/ko/pricing", captured: "2026-07-13" }
28
+ - { id: boundary-live, kind: product-surface, url: "https://www.hashicorp.com/ko/products/boundary", captured: "2026-07-13" }
29
+ - { id: helios, kind: official-doc, url: "https://helios.hashicorp.design/", captured: "2026-07-13" }
30
+ - { id: font-announcement, kind: official-doc, url: "https://www.hashicorp.com/en/blog/introducing-hashicorp-sans", captured: "2026-07-13" }
31
+ - { id: typography-guideline, kind: brand-asset, url: "https://www.hashicorp.com/en/brand/hcp-product-typography", captured: "2026-07-13" }
32
+ - { id: terms, kind: license, url: "https://www.hashicorp.com/terms-of-service", captured: "2026-07-13" }
33
+ - { id: about, kind: official-doc, url: "https://www.hashicorp.com/en/about", captured: "2026-07-13" }
34
+ conflicts: []
35
+ claims:
36
+ "tokens.colors.boundary": &boundary { surface_id: boundary, source_id: boundary-live, method: live-inspect, captured: "2026-07-13" }
37
+ "tokens.colors.canvas": &home { surface_id: home, source_id: home-live, method: live-inspect, captured: "2026-07-13" }
38
+ "tokens.colors.foreground": *home
39
+ "tokens.colors.foreground-dark": *home
40
+ "tokens.colors.hairline": *home
41
+ "tokens.colors.muted": *home
42
+ "tokens.colors.on-dark": *home
43
+ "tokens.colors.on-primary": *home
44
+ "tokens.colors.primary": *home
45
+ "tokens.colors.primary-border": *home
46
+ "tokens.colors.primary-bright": &pricing { surface_id: pricing, source_id: pricing-live, method: live-inspect, captured: "2026-07-13" }
47
+ "tokens.colors.surface": *home
48
+ "tokens.colors.surface-dark": *home
49
+ "tokens.colors.surface-deep": *home
50
+ "tokens.colors.surface-muted": *home
51
+ "tokens.colors.terraform": *pricing
52
+ "tokens.components.card.bg": *home
53
+ "tokens.components.card.fg": *home
54
+ "tokens.components.card.radius": *home
55
+ "tokens.components.card.type": *home
56
+ "tokens.components.card.use": *home
57
+ "tokens.rounded.card": *home
58
+ "tokens.rounded.control": *home
59
+ "tokens.rounded.nav": *home
60
+ "tokens.rounded.sm": *home
61
+ "tokens.rounded.square": *home
62
+ "tokens.shadow.control": *home
63
+ "tokens.spacing.base": *home
64
+ "tokens.spacing.lg": *home
65
+ "tokens.spacing.md": *home
66
+ "tokens.spacing.sm": *home
67
+ "tokens.spacing.xl": *home
68
+ "tokens.spacing.xs": *home
69
+ "tokens.spacing.xxl": *home
70
+ "tokens.typography.body.lineHeight": *home
71
+ "tokens.typography.body.size": *home
72
+ "tokens.typography.body.use": *home
73
+ "tokens.typography.body.weight": *home
74
+ "tokens.typography.button.lineHeight": *home
75
+ "tokens.typography.button.size": *home
76
+ "tokens.typography.button.use": *home
77
+ "tokens.typography.button.weight": *home
78
+ "tokens.typography.display-hero.lineHeight": *home
79
+ "tokens.typography.display-hero.size": *home
80
+ "tokens.typography.display-hero.use": *home
81
+ "tokens.typography.display-hero.weight": *home
82
+ "tokens.typography.family.display": *home
83
+ "tokens.typography.family.ui": *home
84
+ "tokens.typography.heading.lineHeight": *home
85
+ "tokens.typography.heading.size": *home
86
+ "tokens.typography.heading.use": *home
87
+ "tokens.typography.heading.weight": *home
88
+ "tokens.typography.label.lineHeight": *boundary
89
+ "tokens.typography.label.size": *boundary
90
+ "tokens.typography.label.tracking": *boundary
91
+ "tokens.typography.label.use": *boundary
92
+ "tokens.typography.label.weight": *boundary
18
93
  tokens:
19
- source: prose-derived
20
- extracted: "2026-06-09"
94
+ source: live-extract
95
+ extracted: "2026-07-13"
96
+ note: "Only values observed in the supplied three-route capture are machine tokens; HashiCorp Sans is a loaded display family, while controls and body text use system stacks."
21
97
  colors:
22
- brand: "#000000"
23
- dark: "#15181e"
24
- dark-deep: "#0d0e12"
98
+ primary: "#1060ff"
99
+ primary-border: "#0c56e9"
100
+ primary-bright: "#2b89ff"
25
101
  canvas: "#ffffff"
26
- surface-light: "#f1f2f3"
27
- border: "#d5d7db"
28
- helper: "#656a76"
29
- body: "#3b3d45"
102
+ surface: "#fafafa"
103
+ surface-muted: "#f1f2f3"
104
+ surface-dark: "#15181e"
105
+ surface-deep: "#0d0e12"
106
+ foreground: "#3b3d45"
107
+ foreground-dark: "#d5d7db"
108
+ on-primary: "#ffffff"
30
109
  on-dark: "#efeff1"
31
- link: "#2264d6"
32
- link-on-dark: "#1060ff"
33
- link-bright: "#2b89ff"
110
+ muted: "#656a76"
111
+ hairline: "#b2b6bd"
34
112
  terraform: "#7b42bc"
35
- vault: "#ffcf25"
36
- waypoint: "#14c6cb"
37
- waypoint-hover: "#12b6bb"
38
- vagrant: "#1868f2"
39
- badge-bg: "#42225b"
113
+ boundary: "#f24c53"
40
114
  typography:
41
- family: { sans: "HashiCorp Sans", fallback: "system-ui, sans-serif" }
42
- display-hero: { size: 82, weight: 600, lineHeight: 1.17, use: "Hero headline, kern enabled" }
43
- heading: { size: 26, weight: 700, lineHeight: 1.19, use: "Card / product titles" }
44
- body: { size: 16, weight: 400, lineHeight: 1.63, use: "Standard reading text, system-ui" }
45
- label: { size: 13, weight: 600, tracking: 1.3, use: "Uppercase section labels, letter-spaced" }
46
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 64 }
47
- rounded: { sm: 2, md: 5, lg: 8, full: 9999 }
115
+ family: { ui: "system-ui", display: "HashiCorp Sans" }
116
+ display-hero: { size: 82, weight: 600, lineHeight: 1.17, use: "Loaded HashiCorp Sans H1 on captured public surfaces" }
117
+ heading: { size: 52, weight: 600, lineHeight: 1.19, use: "Loaded HashiCorp Sans H2 on captured public surfaces" }
118
+ body: { size: 16, weight: 400, lineHeight: 1.63, use: "Computed system-ui reading text" }
119
+ button: { size: 16, weight: 500, lineHeight: 1.69, use: "Computed system-ui primary and secondary control label" }
120
+ label: { size: 13, weight: 600, lineHeight: 1.69, tracking: 1.3, use: "Loaded HashiCorp Sans eyebrow observed on Boundary" }
121
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48 }
122
+ rounded: { square: 0, sm: 2, nav: 4, control: 5, card: 6 }
48
123
  shadow:
49
- micro: "rgba(97,104,117,0.05) 0px 1px 1px, rgba(97,104,117,0.05) 0px 2px 2px"
124
+ control: "rgba(101,104,118,0.05) 0px 1px 1px, rgba(101,104,118,0.05) 0px 2px 2px"
50
125
  components:
51
- button-primary: { type: button, bg: "#15181e", fg: "#d5d7db", radius: 5, padding: "9px 15px", use: "Primary dark CTA" }
52
- button-secondary: { type: button, bg: "#ffffff", fg: "#3b3d45", radius: 4, padding: "8px 12px", use: "Secondary white button" }
53
- button-terraform: { type: button, bg: "#7b42bc", fg: "#ffffff", radius: 5, use: "Terraform product button" }
54
- button-waypoint: { type: button, bg: "#14c6cb", fg: "#0d0e12", radius: 5, use: "Waypoint product button" }
55
- badge: { type: badge, bg: "#42225b", fg: "#efeff1", radius: 5, padding: "3px 7px", font: "16px", use: "Deep purple pill badge" }
56
- input-dark: { type: input, bg: "#0d0e12", fg: "#efeff1", radius: 5, padding: "11px", use: "Dark-mode text input" }
57
- card: { type: card, bg: "#ffffff", radius: 8, use: "Light card with micro-shadow elevation" }
58
- nav-link: { type: tab, fg: "#3b3d45", font: "15px weight 500", use: "Horizontal nav link, system-ui" }
126
+ card: { type: card, bg: "#ffffff", fg: "#3b3d45", radius: 6, use: "Home content card with a 1px rgba(101,104,118,0.2) outline shadow" }
59
127
  components_harvested: true
60
128
  ---
61
129
 
@@ -63,349 +131,236 @@ tokens:
63
131
 
64
132
  ## 1. Visual Theme & Atmosphere
65
133
 
66
- HashiCorp's website is enterprise infrastructure made tangible a design system that must communicate the complexity of cloud infrastructure management while remaining approachable. The visual language splits between two modes: a clean white light-mode for informational sections and a dramatic dark-mode (`#15181e`, `#0d0e12`) for hero areas and product showcases, creating a day/night duality that mirrors the "build in light, deploy in dark" developer workflow.
134
+ HashiCorp, now an IBM company, builds infrastructure and security software for multi-cloud and hybrid environments. Its current public expression puts a sober operational interface around that mission: white and near-white information surfaces sit beside deep charcoal sections, with blue as the shared action color and named product routes able to introduce their own accent. The 2024 Infrastructure Cloud brand launch also introduced HashiCorp Sans, a custom display typeface that ties the logotype and headlines together. In the captured public routes, that mix produces a clear division of labor: HashiCorp Sans carries large headings and eyebrow labels; system stacks carry reading text, navigation, controls, and cards.
67
135
 
68
- The typography is anchored by a custom brand font (HashiCorp Sans, loaded as `__hashicorpSans_96f0ca`) that carries substantial weight literally. Headings use 600–700 weights with tight line-heights (1.17–1.19), creating dense, authoritative text blocks that communicate enterprise confidence. The hero headline at 82px weight 600 with OpenType `"kern"` enabled is not decorative it's infrastructure-grade typography.
69
-
70
- What distinguishes HashiCorp is its multi-product color system. Each product in the portfolio has its own brand color — Terraform purple (`#7b42bc`), Vault yellow (`#ffcf25`), Waypoint teal (`#14c6cb`), Vagrant blue (`#1868f2`) — and these colors appear throughout as accent tokens via a CSS custom property system (`--mds-color-*`). This creates a design system within a design system: the parent brand is black-and-white with blue accents, while each child product injects its own chromatic identity.
71
-
72
- The component system uses the `mds` (Markdown Design System) prefix, indicating a systematic, token-driven approach where colors, spacing, and states are all managed through CSS variables. Shadows are remarkably subtle — dual-layer micro-shadows using `rgba(97, 104, 117, 0.05)` that are nearly invisible but provide just enough depth to separate interactive surfaces from the background.
136
+ The raw capture covers three public-facing domains within the company site, not a signed-in application: `/ko` is corporate marketing, `/ko/pricing` is commercial/pricing marketing, and `/ko/products/boundary` is a Boundary product-marketing route. No developer documentation chrome or authenticated product UI was captured, so this reference does not promote those domains into the shared token set. Helios is documented separately by HashiCorp as the public product design system.
73
137
 
74
138
  **Key Characteristics:**
75
- - Dual-mode: clean white sections + dramatic dark (`#15181e`) hero/product areas
76
- - Custom HashiCorp Sans font with 600–700 weights and `"kern"` feature
77
- - Multi-product color system via `--mds-color-*` CSS custom properties
78
- - Product brand colors: Terraform purple, Vault yellow, Waypoint teal, Vagrant blue
79
- - Uppercase letter-spaced captions (13px, weight 600, 1.3px letter-spacing)
80
- - Micro-shadows: dual-layer at 0.05 opacity — depth through whisper, not shout
81
- - Token-driven `mds` component system with semantic variable names
82
- - Tight border radius: 2px–8px, nothing pill-shaped or circular
83
- - System-ui fallback stack for secondary text
139
+ - White, near-white, deep-charcoal, and near-black surfaces are all observed in the capture
140
+ - Shared actions use `#1060ff`; a Terraform-labelled control and a Boundary-labelled control use their observed route-specific colors
141
+ - Loaded HashiCorp Sans appears in headings and a Boundary eyebrow; system-ui dominates visible UI text
142
+ - Controls use small 4–5px corners; the captured home card uses 6px
84
143
 
85
144
  ## 2. Color Palette & Roles
86
145
 
87
- ### Brand Primary
88
- - **Black** (`#000000`): Primary brand color, text on light surfaces, `--mds-color-hcp-brand`
89
- - **Dark Charcoal** (`#15181e`): Dark mode backgrounds, hero sections
90
- - **Near Black** (`#0d0e12`): Deepest dark mode surface, form inputs on dark
91
-
92
- ### Neutral Scale
93
- - **Light Gray** (`#f1f2f3`): Light backgrounds, subtle surfaces
94
- - **Mid Gray** (`#d5d7db`): Borders, button text on dark
95
- - **Cool Gray** (`#b2b6bd`): Border accents (at 0.1–0.4 opacity)
96
- - **Dark Gray** (`#656a76`): Helper text, secondary labels, `--mds-form-helper-text-color`
97
- - **Charcoal** (`#3b3d45`): Secondary text on light, button borders
98
- - **Near White** (`#efeff1`): Primary text on dark surfaces
99
-
100
- ### Product Brand Colors
101
- - **Terraform Purple** (`#7b42bc`): `--mds-color-terraform-button-background`
102
- - **Vault Yellow** (`#ffcf25`): `--mds-color-vault-button-background`
103
- - **Waypoint Teal** (`#14c6cb`): `--mds-color-waypoint-button-background-focus`
104
- - **Waypoint Teal Hover** (`#12b6bb`): `--mds-color-waypoint-button-background-hover`
105
- - **Vagrant Blue** (`#1868f2`): `--mds-color-vagrant-brand`
106
- - **Purple Accent** (`#911ced`): `--mds-color-palette-purple-300`
107
- - **Visited Purple** (`#a737ff`): `--mds-color-foreground-action-visited`
108
-
109
- ### Semantic Colors
110
- - **Action Blue** (`#1060ff`): Primary action links on dark
111
- - **Link Blue** (`#2264d6`): Primary links on light
112
- - **Bright Blue** (`#2b89ff`): Active links, hover accent
113
- - **Amber** (`#bb5a00`): `--mds-color-palette-amber-200`, warning states
114
- - **Amber Light** (`#fbeabf`): `--mds-color-palette-amber-100`, warning backgrounds
115
- - **Vault Faint Yellow** (`#fff9cf`): `--mds-color-vault-radar-gradient-faint-stop`
116
- - **Orange** (`#a9722e`): `--mds-color-unified-core-orange-6`
117
- - **Red** (`#731e25`): `--mds-color-unified-core-red-7`, error states
118
- - **Navy** (`#101a59`): `--mds-color-unified-core-blue-7`
119
-
120
- ### Shadows
121
- - **Micro Shadow** (`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`): Default card/button elevation
122
- - **Focus Outline**: `3px solid var(--mds-color-focus-action-external)` — systematic focus ring
146
+ ### Shared live surfaces
147
+ - **Shared primary** (`#1060ff`): blue primary CTA background, with observed border `#0c56e9`
148
+ - **Bright blue** (`#2b89ff`): selected pricing-tab foreground
149
+ - **Canvas** (`#ffffff`): navigation and light card background
150
+ - **Secondary surface** (`#fafafa`): secondary CTA background
151
+ - **Muted surface** (`#f1f2f3`): observed badge and alert background
152
+ - **Deep surfaces** (`#15181e`, `#0d0e12`): dark toggle and dark pricing-card/input backgrounds
153
+ - **Light foreground** (`#3b3d45`): secondary CTA, navigation, and light-card text
154
+ - **Dark-surface foreground** (`#d5d7db`, `#efeff1`): dark-route text and dark input text
155
+ - **Muted text** (`#656a76`) and **hairline** (`#b2b6bd`): observed supporting text and borders
156
+
157
+ ### Route-specific live variants
158
+ - **Terraform** (`#7b42bc`): one `color-terraform` CTA observed on `/ko/pricing`
159
+ - **Boundary** (`#f24c53`): one `color-boundary` CTA observed on `/ko/products/boundary`
160
+
161
+ No other product-color variant is included: it was not present in the supplied capture.
123
162
 
124
163
  ## 3. Typography Rules
125
164
 
126
- ### Font Families
127
- - **Primary Brand**: `__hashicorpSans_96f0ca` (HashiCorp Sans), with fallback: `__hashicorpSans_Fallback_96f0ca`
128
- - **System UI**: `system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial`
129
-
130
- ### Hierarchy
131
-
132
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
133
- |------|------|------|--------|-------------|----------------|-------|
134
- | Display Hero | HashiCorp Sans | 82px (5.13rem) | 600 | 1.17 (tight) | normal | `"kern"` enabled |
135
- | Section Heading | HashiCorp Sans | 52px (3.25rem) | 600 | 1.19 (tight) | normal | `"kern"` enabled |
136
- | Feature Heading | HashiCorp Sans | 42px (2.63rem) | 700 | 1.19 (tight) | -0.42px | Negative tracking |
137
- | Sub-heading | HashiCorp Sans | 34px (2.13rem) | 600–700 | 1.18 (tight) | normal | Feature blocks |
138
- | Card Title | HashiCorp Sans | 26px (1.63rem) | 700 | 1.19 (tight) | normal | Card and panel headings |
139
- | Small Title | HashiCorp Sans | 19px (1.19rem) | 700 | 1.21 (tight) | normal | Compact headings |
140
- | Body Emphasis | HashiCorp Sans | 17px (1.06rem) | 600–700 | 1.18–1.35 | normal | Bold body text |
141
- | Body Large | system-ui | 20px (1.25rem) | 400–600 | 1.50 | normal | Hero descriptions |
142
- | Body | system-ui | 16px (1.00rem) | 400–500 | 1.63–1.69 (relaxed) | normal | Standard body text |
143
- | Nav Link | system-ui | 15px (0.94rem) | 500 | 1.60 (relaxed) | normal | Navigation items |
144
- | Small Body | system-ui | 14px (0.88rem) | 400–500 | 1.29–1.71 | normal | Secondary content |
145
- | Caption | system-ui | 13px (0.81rem) | 400–500 | 1.23–1.69 | normal | Metadata, footer links |
146
- | Uppercase Label | HashiCorp Sans | 13px (0.81rem) | 600 | 1.69 (relaxed) | 1.3px | `text-transform: uppercase` |
147
-
148
- ### Principles
149
- - **Brand/System split**: HashiCorp Sans for headings and brand-critical text; system-ui for body, navigation, and functional text. The brand font carries the weight, system-ui carries the words.
150
- - **Kern always on**: All HashiCorp Sans text enables OpenType `"kern"` — letterfitting is non-negotiable.
151
- - **Tight headings**: Every heading uses 1.17–1.21 line-height, creating dense, stacked text blocks that feel infrastructural — solid, load-bearing.
152
- - **Relaxed body**: Body text uses 1.50–1.69 line-height (notably generous), creating comfortable reading rhythm beneath the dense headings.
153
- - **Uppercase labels as wayfinding**: 13px uppercase with 1.3px letter-spacing serves as the systematic category/section marker — always HashiCorp Sans weight 600.
165
+ ### Evidence classes
166
+
167
+ - **Official brand/product use:** HashiCorp’s 2024 font announcement describes HashiCorp Sans as a display typeface used across corporate and product logos and headlines. Its brand typography guidance directs HashiCorp Sans to headlines, sub-headlines, and titles; it separately names Metro Sans Book for brand-material body copy. That guidance is not evidence that Metro Sans is loaded on the captured Korean marketing routes.
168
+ - **Live computed and loaded:** the capture records `__hashicorpSans_96f0ca` on 21 visible heading/eyebrow nodes and a site-hosted WOFF2 source (`d29050812a1756cf-s.p.woff2`). The family is therefore represented as **HashiCorp Sans** for display use, not as the UI family.
169
+ - **Live system use:** `system-ui` is the computed high-confidence family on 713 visible body, button, card, tab, and badge nodes. Arial appears only on the captured embedded marketing form controls.
170
+ - **Declared-only assets:** `__dejavuSansMono_7cac6c` and `dejavu-sans-mono-web` have declared sources but no visible usage in this capture; they are not a UI or code token.
171
+ - **License boundary:** the official typography guidance directs access requests to the Brand Studio, while the site terms say no license to proprietary interests is implied. Neither source grants reusable webfont distribution or substitution rights; do not treat the captured WOFF2 source as such permission.
172
+
173
+ ### Observed hierarchy
174
+
175
+ | Role | Family / evidence | Size | Weight | Line height | Captured use |
176
+ |------|-------------------|------|--------|-------------|--------------|
177
+ | Display hero | HashiCorp Sans, loaded | 82px | 600 | 96px | H1 |
178
+ | Heading | HashiCorp Sans, loaded | 52px | 600 | 62px | H2 |
179
+ | Heading variant | HashiCorp Sans, loaded | 42px | 700 | 50px | H2 |
180
+ | Eyebrow | HashiCorp Sans, loaded | 13px | 600 | 22px | Boundary label, 1.3px tracking |
181
+ | Body / card | system-ui | 16px | 400 | 26px | visible reading and card text |
182
+ | Controls | system-ui | 16px | 500 | 26–27px | shared CTAs and tabs |
183
+ | Navigation | system-ui | 15.008px | 500 | 24.013px | top navigation trigger |
154
184
 
155
185
  ## 4. Component Stylings
156
186
 
187
+ All values below are raw computed values from the supplied 2026-07-13 capture. Selector and route provenance are retained in `.verification.md`. The capture reports zero interaction events, so hover, focus, pressed, modal, menu, and error variants are intentionally omitted.
188
+
157
189
  ### Buttons
158
190
 
159
- **Primary Dark**
160
- - Background: `#15181e`
161
- - Text: `#d5d7db`
162
- - Padding: 9px 9px 9px 15px (asymmetric, more left padding)
163
- - Radius: 5px
164
- - Border: `1px solid rgba(178, 182, 189, 0.4)`
191
+ **Shared Primary CTA**
192
+ - Background: `#1060ff`
193
+ - Text: `#ffffff`
194
+ - Border: `1px solid #0c56e9`
195
+ - Radius: `5px`
196
+ - Padding: `9px 15px`
197
+ - Shadow: `rgba(101, 106, 118, 0.05) 0px 1px 1px, rgba(101, 106, 118, 0.05) 0px 2px 2px`
198
+ - Font: `16px / 500 / system-ui`
199
+ - Use: `.button__gOWvd.color-primary__rWbwp` on home, pricing, and Boundary routes
200
+ - Disabled: one icon-only primary instance used `#fafafa` background, `#8c909c` text, and `rgba(101, 106, 118, 0.2)` border
201
+
202
+ **Shared Secondary CTA — medium**
203
+ - Background: `#fafafa`
204
+ - Text: `#3b3d45`
205
+ - Border: `1px solid rgba(59, 61, 69, 0.4)`
206
+ - Radius: `5px`
207
+ - Padding: `9px 15px`
208
+ - Shadow: `rgba(101, 106, 118, 0.05) 0px 1px 1px, rgba(101, 106, 118, 0.05) 0px 2px 2px`
209
+ - Font: `16px / 500 / system-ui`
210
+ - Use: `.button__gOWvd.size-medium__HxMcm.color-secondary-white__AseI0` on all three routes
211
+
212
+ **Shared Secondary CTA — large**
213
+ - Background: `#fafafa`
214
+ - Text: `#3b3d45`
215
+ - Border: `1px solid rgba(59, 61, 69, 0.4)`
216
+ - Radius: `5px`
217
+ - Padding: `11px 19px`
218
+ - Shadow: `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`
219
+ - Font: `16px / 500 / system-ui`
220
+ - Use: `.button__gOWvd.size-large__MEpK3.color-secondary-high-contrast__3bxg3` on all three routes
221
+
222
+ **Terraform-labelled CTA**
223
+ - Background: `#7b42bc`
224
+ - Text: `#ffffff`
225
+ - Border: `1px solid rgba(178, 182, 189, 0.2)`
226
+ - Radius: `5px`
227
+ - Padding: `9px 15px`
165
228
  - Shadow: `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`
166
- - Focus: `3px solid var(--mds-color-focus-action-external)`
167
- - Hover: uses `--mds-color-surface-interactive` token
229
+ - Font: `16px / 500 / system-ui`
230
+ - Use: `.button__gOWvd.color-terraform__DQMD5` on pricing; only this Terraform-labelled variant was captured
231
+
232
+ **Boundary-labelled CTA**
233
+ - Background: `#f24c53`
234
+ - Text: `#0c0c0e`
235
+ - Border: `1px solid rgba(178, 182, 189, 0.2)`
236
+ - Radius: `5px`
237
+ - Padding: `11px 19px`
238
+ - Shadow: `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`
239
+ - Font: `16px / 500 / system-ui`
240
+ - Use: `.button__gOWvd.color-boundary__xJtzy` on the Boundary route; only this Boundary-labelled variant was captured
241
+
242
+ ### Navigation and tabs
168
243
 
169
- **Secondary White**
244
+ **Top navigation trigger**
170
245
  - Background: `#ffffff`
171
246
  - Text: `#3b3d45`
172
- - Padding: 8px 12px
173
- - Radius: 4px
174
- - Hover: `--mds-color-surface-interactive` + low-shadow elevation
175
- - Focus: `3px solid transparent` outline
176
- - Clean, minimal appearance
177
-
178
- **Product-Colored Buttons**
179
- - Terraform: background `#7b42bc`
180
- - Vault: background `#ffcf25` (dark text)
181
- - Waypoint: background `#14c6cb`, hover `#12b6bb`
182
- - Each product button follows the same structural pattern but uses its brand color
183
-
184
- ### Badges / Pills
185
- - Background: `#42225b` (deep purple)
186
- - Text: `#efeff1`
187
- - Padding: 3px 7px
188
- - Radius: 5px
189
- - Border: `1px solid rgb(180, 87, 255)`
190
- - Font: 16px
247
+ - Radius: `4px`
248
+ - Padding: `8px 12px`
249
+ - Font: `15.008px / 500 / system-ui`
250
+ - Use: `.style_navItemTrigger__65Jsv` on all three routes
251
+
252
+ **Pricing tab — selected**
253
+ - Text: `#2b89ff`
254
+ - Radius: `5px`
255
+ - Font: `16px / 500 / system-ui`
256
+ - Use: `.tab-button__qI9wt` with `aria-selected="true"` on pricing
257
+
258
+ **Pricing tab — unselected**
259
+ - Text: `#d5d7db`
260
+ - Radius: `5px`
261
+ - Font: `16px / 500 / system-ui`
262
+ - Use: `.tab-button__qI9wt` with `aria-selected="false"` on pricing
191
263
 
192
- ### Inputs
264
+ ### Form control
193
265
 
194
- **Text Input (Dark Mode)**
266
+ **Dark email field**
195
267
  - Background: `#0d0e12`
196
268
  - Text: `#efeff1`
197
- - Border: `1px solid rgb(97, 104, 117)`
198
- - Padding: 11px
199
- - Radius: 5px
200
- - Focus: `3px solid var(--mds-color-focus-action-external)` outline
269
+ - Border: `1px solid #616875`
270
+ - Radius: `5px`
271
+ - Padding: `11px`
272
+ - Shadow: `rgba(97, 104, 117, 0.1) 0px 1px 2px 1px inset`
273
+ - Font: `16px / 400 / Arial`
274
+ - Use: `.mktoField.mktoEmailField.mktoRequired` in the shared marketing form on all three routes
201
275
 
202
- **Checkbox**
203
- - Background: `#0d0e12`
204
- - Border: `1px solid rgb(97, 104, 117)`
205
- - Radius: 3px
206
-
207
- ### Links
208
- - **Action Blue on Light**: `#2264d6`, hover blue-600 variable, underline on hover
209
- - **Action Blue on Dark**: `#1060ff` or `#2b89ff`, underline on hover
210
- - **White on Dark**: `#ffffff`, transparent underline → visible underline on hover
211
- - **Neutral on Light**: `#3b3d45`, transparent underline → visible underline on hover
212
- - **Light on Dark**: `#efeff1`, similar hover pattern
213
- - All links use `var(--wpl-blue-600)` as hover color
214
-
215
- ### Cards & Containers
216
- - Light mode: white background, micro-shadow elevation
217
- - Dark mode: `#15181e` or darker surfaces
218
- - Radius: 8px for cards and containers
219
- - Product showcase cards with gradient borders or accent lighting
220
-
221
- ### Navigation
222
- - Clean horizontal nav with mega-menu dropdowns
223
- - HashiCorp logo left-aligned
224
- - system-ui 15px weight 500 for links
225
- - Product categories organized by lifecycle management group
226
- - "Get started" and "Contact us" CTAs in header
227
- - Dark mode variant for hero sections
276
+ ### Cards and badge
277
+
278
+ **Light content card**
279
+ - Background: `#ffffff`
280
+ - Text: `#3b3d45`
281
+ - Radius: `6px`
282
+ - Shadow: `rgba(101, 106, 118, 0.2) 0px 0px 0px 1px`
283
+ - Font: `16px / 400 / system-ui`
284
+ - Use: `.card__HomZw` on home
285
+
286
+ **Neutral filled badge**
287
+ - Background: `#f1f2f3`
288
+ - Text: `#3b3d45`
289
+ - Border: `1px solid transparent`
290
+ - Radius: `5px`
291
+ - Padding: `3px 7px`
292
+ - Font: `16px / 400 / system-ui`
293
+ - Use: `.badge__zns82.type-filled__ZaWsu.color-neutral__6Csf4` on home
228
294
 
229
295
  ## 5. Layout Principles
230
296
 
231
- ### Spacing System
232
- - Base unit: 8px
233
- - Scale: 2px, 3px, 4px, 6px, 7px, 8px, 9px, 11px, 12px, 16px, 20px, 24px, 32px, 40px, 48px
234
-
235
- ### Grid & Container
236
- - Max content width: ~1150px (xl breakpoint)
237
- - Full-width dark hero sections with contained content
238
- - Card grids: 2–3 column layouts
239
- - Generous horizontal padding at desktop scale
240
-
241
- ### Breakpoints
242
- | Name | Width | Key Changes |
243
- |------|-------|-------------|
244
- | Mobile Small | <375px | Tight single column |
245
- | Mobile | 375–480px | Standard mobile |
246
- | Small Tablet | 480–600px | Minor adjustments |
247
- | Tablet | 600–768px | 2-column grids begin |
248
- | Small Desktop | 768–992px | Full nav visible |
249
- | Desktop | 992–1120px | Standard layout |
250
- | Large Desktop | 1120–1440px | Max-width content |
251
- | Ultra-wide | >1440px | Centered, generous margins |
252
-
253
- ### Whitespace Philosophy
254
- - **Enterprise breathing room**: Generous vertical spacing between sections (48px–80px+) communicates stability and seriousness.
255
- - **Dense headings, spacious body**: Tight line-height headings sit above relaxed body text, creating visual "weight at the top" of each section.
256
- - **Dark as canvas**: Dark hero sections use extra vertical padding to let 3D illustrations and gradients breathe.
257
-
258
- ### Border Radius Scale
259
- - Minimal (2px): Links, small inline elements
260
- - Subtle (3px): Checkboxes, small inputs
261
- - Standard (4px): Secondary buttons
262
- - Comfortable (5px): Primary buttons, badges, inputs
263
- - Card (8px): Cards, containers, images
297
+ The capture records a recurring 4/8/12/16/24/32/48px spacing rhythm. Its high-frequency visible corners are 0px, 4px, 5px, and 6px; the only captured 8px radius is not promoted as the card standard. No responsive breakpoint, container-width, or grid behavior was measured in this packet.
264
298
 
265
299
  ## 6. Depth & Elevation
266
300
 
267
- | Level | Treatment | Use |
268
- |-------|-----------|-----|
269
- | Flat (Level 0) | No shadow | Default surfaces, text blocks |
270
- | Whisper (Level 1) | `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px` | Cards, buttons, interactive surfaces |
271
- | Focus (Level 2) | `3px solid var(--mds-color-focus-action-external)` outline | Focus rings — color-matched to context |
272
-
273
- **Shadow Philosophy**: HashiCorp uses arguably the subtlest shadow system in modern web design. The dual-layer shadows at 5% opacity are nearly invisible — they exist not to create visual depth but to signal interactivity. If you can see the shadow, it's too strong. This restraint communicates the enterprise value of stability — nothing floats, nothing is uncertain.
301
+ - **Control shadow:** the primary, secondary, Terraform, and Boundary CTAs use a two-layer 5% shadow, with the exact values recorded in §4.
302
+ - **Light-card outline:** home cards use `rgba(101, 106, 118, 0.2) 0px 0px 0px 1px`.
303
+ - **Dark-input inset:** the captured email field uses `rgba(97, 104, 117, 0.1) 0px 1px 2px 1px inset`.
274
304
 
275
305
  ## 7. Do's and Don'ts
276
306
 
277
307
  ### Do
278
- - Use HashiCorp Sans for headings and brand text, system-ui for body and UI text
279
- - Enable `"kern"` on all HashiCorp Sans text
280
- - Use product brand colors ONLY for their respective products (Terraform = purple, Vault = yellow, etc.)
281
- - Apply uppercase labels at 13px weight 600 with 1.3px letter-spacing for section markers
282
- - Keep shadows at the "whisper" level (0.05 opacity dual-layer)
283
- - Use the `--mds-color-*` token system for consistent color application
284
- - Maintain the tight-heading / relaxed-body rhythm (1.17–1.21 vs 1.50–1.69 line-heights)
285
- - Use `3px solid` focus outlines for accessibility
308
+ - Use HashiCorp Sans only where the official brand describes display/logo/headline use and where it can actually be loaded.
309
+ - Use system-ui for the captured body and control treatments.
310
+ - Keep shared primary, Terraform, and Boundary CTA treatments attached to the route/context in which they were observed.
286
311
 
287
312
  ### Don't
288
- - Don't use product brand colors outside their product context (no Terraform purple on Vault content)
289
- - Don't increase shadow opacity above 0.1 the whisper level is intentional
290
- - Don't use pill-shaped buttons (>8px radius) the sharp, minimal radius is structural
291
- - Don't skip the `"kern"` feature on headings — the font requires it
292
- - Don't use HashiCorp Sans for small body text — it's designed for 17px+ heading use
293
- - Don't mix product colors in the same component — each product has one color
294
- - Don't use pure black (`#000000`) for dark backgrounds — use `#15181e` or `#0d0e12`
295
- - Don't forget the asymmetric button padding — 9px 9px 9px 15px is intentional
313
+ - Don't substitute a system font while labelling it HashiCorp Sans.
314
+ - Don't infer unobserved product colors, hover states, focus rings, or component variants from class names or adjacent routes.
315
+ - Don't treat declared DejaVu Sans Mono assets as a live code-font token.
296
316
 
297
317
  ## 8. Responsive Behavior
298
318
 
299
- ### Breakpoints
300
- | Name | Width | Key Changes |
301
- |------|-------|-------------|
302
- | Mobile | <768px | Single column, hamburger nav, stacked CTAs |
303
- | Tablet | 768–992px | 2-column grids, nav begins expanding |
304
- | Desktop | 992–1150px | Full layout, mega-menu nav |
305
- | Large | >1150px | Max-width centered, generous margins |
306
-
307
- ### Collapsing Strategy
308
- - Hero: 82px → 52px → 42px heading sizes
309
- - Navigation: mega-menu → hamburger
310
- - Product cards: 3-column → 2-column → stacked
311
- - Dark sections maintain full-width but compress padding
312
- - Buttons: inline → full-width stacked on mobile
319
+ No responsive observations were collected in this packet. Do not infer breakpoint values or mobile transformations from the desktop-route evidence.
313
320
 
314
321
  ## 9. Agent Prompt Guide
315
322
 
316
- ### Quick Color Reference
317
- - Light bg: `#ffffff`, `#f1f2f3`
318
- - Dark bg: `#15181e`, `#0d0e12`
319
- - Text light: `#000000`, `#3b3d45`
320
- - Text dark: `#efeff1`, `#d5d7db`
321
- - Links: `#2264d6` (light), `#1060ff` (dark), `#2b89ff` (active)
322
- - Helper text: `#656a76`
323
- - Borders: `rgba(178, 182, 189, 0.4)`, `rgb(97, 104, 117)`
324
- - Focus: `3px solid` product-appropriate color
325
-
326
- ### Example Component Prompts
327
- - "Create a hero on dark background (#15181e). Headline at 82px HashiCorp Sans weight 600, line-height 1.17, kern enabled, white text. Sub-text at 20px system-ui weight 400, line-height 1.50, #d5d7db text. Two buttons: primary dark (#15181e, 5px radius, 9px 15px padding) and secondary white (#ffffff, 4px radius, 8px 12px padding)."
328
- - "Design a product card: white background, 8px radius, dual-layer shadow at rgba(97,104,117,0.05). Title at 26px HashiCorp Sans weight 700, body at 16px system-ui weight 400 line-height 1.63."
329
- - "Build an uppercase section label: 13px HashiCorp Sans weight 600, line-height 1.69, letter-spacing 1.3px, text-transform uppercase, #656a76 color."
330
- - "Create a product-specific CTA button: Terraform → #7b42bc background, Vault → #ffcf25 with dark text, Waypoint → #14c6cb. All: 5px radius, 500 weight text, 16px system-ui."
331
- - "Design a dark form: #0d0e12 input background, #efeff1 text, 1px solid rgb(97,104,117) border, 5px radius, 11px padding. Focus: 3px solid accent-color outline."
332
-
333
- ### Iteration Guide
334
- 1. Always start with the mode decision: light (white) for informational, dark (#15181e) for hero/product
335
- 2. HashiCorp Sans for headings only (17px+), system-ui for everything else
336
- 3. Shadows are at whisper level (0.05 opacity) — if visible, reduce
337
- 4. Product colors are sacred — each product owns exactly one color
338
- 5. Focus rings are always 3px solid, color-matched to product context
339
- 6. Uppercase labels are the systematic wayfinding pattern — 13px, 600, 1.3px tracking
323
+ Use the captured public-marketing pattern only: `#1060ff` shared primary CTA or `#fafafa` secondary CTA, 5px corners, 16px/500 system-ui labels, and the recorded low-opacity control shadow. Use the Terraform `#7b42bc` or Boundary `#f24c53` CTA only for those specifically observed route contexts. Treat all other product colors and states as unresolved.
340
324
 
341
325
  ## 10. Voice & Tone
342
326
 
343
- HashiCorp's voice is **infrastructure-engineer-fluent** speaks the language of platform teams who manage clouds, secrets, and clusters. Copy is capability-driven, with strong open-source narrative. Each product (Terraform, Vault, Consul, Nomad, Boundary, Packer, Waypoint) has its own micro-brand within the HashiCorp identity.
344
-
345
- | Context | Tone |
346
- |---|---|
347
- | CTA | Verb. "Try Terraform", "Get started", "Sign up" |
348
- | Marketing | Product-specific. Terraform copy ≠ Vault copy ≠ Consul copy |
349
- | Documentation | HCL/CLI heavy, deep code examples |
350
- | Error (apply) | Plan diff + specific resource error |
327
+ HashiCorp describes its work in operational, outcome-oriented terms: automate and secure multi-cloud and hybrid environments; focus on workflows rather than technologies; and keep source code freely available at the core of its offerings. The public marketing routes use short imperative actions.
351
328
 
352
329
  **Voice samples**
353
- - Marketing tagline (KR): *"혁신을 위한 인프라"* <!-- verified: hashicorp.com/ko homepage 2026-05 -->
354
-
355
- **Forbidden phrases.** Marketing superlatives without numbers. "Revolutionary infrastructure" framing.
330
+ - “Get started” shared marketing CTA, captured on `/ko`
331
+ - “Contact us” — shared marketing CTA, captured on `/ko`
332
+ - “The Infrastructure Cloud” official company positioning
356
333
 
357
334
  ## 11. Brand Narrative
358
335
 
359
- HashiCorp was founded **2012** in San Francisco by **Mitchell Hashimoto** and **Armon Dadgar** classmates at the **University of Washington's Paul G. Allen School of Computer Science**, where they met **2008** working on a research project to make then-emerging Amazon/Microsoft public-cloud tech accessible to scientists ([HashiCorp — Origin Story](https://www.hashicorp.com/en/about/origin-story), [HashiCorp Wikipedia](https://en.wikipedia.org/wiki/HashiCorp)). Hashimoto was already running open-source **Vagrant**; he created **Terraform**, which became the de-facto standard for infrastructure-as-code. The product family expanded to **Vault** (secrets), **Consul** (service mesh), **Nomad** (orchestration), **Boundary**, **Packer**, and **Waypoint**. **NASDAQ IPO 2021-12-09** under ticker **HCP**, priced at **$80/share** (above $68-72 range), valuing HashiCorp at **~$13B**. **IBM announced acquisition April 24 2024 for $6.4B**; deal **closed February 27 2025** after regulatory review, bringing HashiCorp into IBM's hybrid cloud strategy ([IBM acquisition closed — HashiCorp blog](https://www.hashicorp.com/en/blog/hashicorp-officially-joins-the-ibm-family), [Logan Bartlett podcast — Dadgar 48hrs after IBM sale](https://www.theloganbartlettshow.com/archive/ep-102-armon-dadgar-hashicorp-co-founder-reflects-48-hours-after-selling-to-ibm)). **Hashimoto resigned December 2023** ahead of the IBM deal later launched **Ghostty** (GPU-accelerated terminal, public Dec 2024) and joined **Vercel's board March 2026** ([BusinessWire — Vercel + Hashimoto](https://www.businesswire.com/news/home/20260318957008/en/Vercel-Appoints-Mitchell-Hashimoto-Co-Founder-of-HashiCorp-and-Creator-of-Terraform-to-Board-of-Directors)). The brand voice retains its open-source-first, platform-engineering register.
336
+ Mitchell Hashimoto and Armon Dadgar met at the University of Washington in 2008 while working on a research project to make public-cloud technologies available to scientists. Hashimoto started HashiCorp in November 2012 and Dadgar joined as co-founder in 2013. Their early view was that organizations using multiple clouds would need a consistent, reliable set of automation tools for combinations of cloud and on-premises environments.
337
+
338
+ The present company describes itself as an IBM company that helps organizations automate and secure multi-cloud and hybrid environments through The Infrastructure Cloud. In April 2024 it introduced that brand chapter and HashiCorp Sans; in February 2025 it officially joined IBM. These facts describe the corporate/brand domain and should not be read as a claim about the captured public UI’s runtime tokens.
360
339
 
361
340
  ## 12. Principles
362
341
 
363
- 1. **Infrastructure as code.** Every product expects HCL or equivalent declarative input. *UI implication:* CLI-first; UI dashboards exist but never replace HCL primacy.
364
- 2. **Multi-cloud is the default.** *UI implication:* every concept is provider-agnostic in copy; specific provider logos appear only in integration grids.
365
- 3. **Each product has a color, none are loud.** Terraform `#7B42BC` purple, Vault `#FFEC6E` yellow-green, Consul `#E03875` magenta but used sparingly. *UI implication:* product-specific brand color appears only on hero + product nav.
366
- 4. **3px focus rings, color-matched.** *UI implication:* don't use generic blue focus; match to the active product theme.
367
- 5. **Uppercase labels for wayfinding.** *UI implication:* tab labels and section dividers can use uppercase 13px / 600 / 1.3px tracking — systematic, never decorative.
342
+ 1. **Workflows, not technologies.** The company frames its offering around real-world operator workflows. *UI implication:* lead with the task or outcome before product mechanics.
343
+ 2. **Multi-cloud and hybrid operations.** The public mission is to automate and secure these environments. *UI implication:* avoid implying that a single provider is the default context.
344
+ 3. **Open source at the core.** HashiCorp describes source-available projects and a practitioner community as foundational. *UI implication:* make technical learning and implementation paths legible alongside commercial paths.
345
+ 4. **Pragmatic beauty.** The font announcement links “beauty works better” with pragmatism. *UI implication:* use distinctive display typography deliberately while keeping functional UI plain and readable.
368
346
 
369
347
  ## 13. Personas
370
348
 
371
- *Personas are fictional archetypes informed by HashiCorp user segments (platform engineers, DevOps leads, security architects), not individual people.*
372
-
373
- **Sergey Volkov, 38, Berlin.** Senior platform engineer. Manages Terraform state for 120+ AWS accounts. Vault for production secrets.
374
-
375
- **Priya Krishnan, 31, Bengaluru.** SRE at fintech. Consul service mesh + Nomad orchestration replacing K8s for specific workloads.
376
-
377
- **Marcus Davies, 45, London.** Security architect. Vault is the entire reason their compliance audit passed.
349
+ The official company material identifies technical and business teams, IT operators, practitioners, users, customers, and partners as stakeholders. This reference does not invent named or demographic personas; use those verified stakeholder groups as the starting point for task research.
378
350
 
379
351
  ## 14. States
380
352
 
381
- | State | Treatment |
382
- |---|---|
383
- | **Empty (no resources)** | "Define resources in your `.tf` file" + sample HCL block |
384
- | **Empty (no secrets)** | "Add your first secret" CTA + CLI command |
385
- | **Loading (terraform apply)** | Plan diff visible + apply progress per resource |
386
- | **Loading (state)** | Per-resource spinner |
387
- | **Error (plan)** | HCL line:column + specific resource + recommended fix |
388
- | **Error (apply)** | Resource-level rollback option |
389
- | **Success (apply)** | Resource list + state-locked indicator clear |
390
- | **Success (rotate)** | Vault rotation timestamp + next-rotation due date |
391
- | **Skeleton (resource list)** | Dark cards with charcoal borders |
392
- | **Disabled (locked state)** | Lock icon + "State locked by user@team" |
393
- | **Loading (long apply)** | Real-time per-resource progress |
353
+ The supplied capture records one disabled icon-only primary button and selected/unselected pricing tabs. It records no interaction events, loading, error, success, empty, skeleton, dialog, or toast state transitions, so those treatments are intentionally unresolved.
394
354
 
395
355
  ## 15. Motion & Easing
396
356
 
397
- | Token | Value | Use |
398
- |---|---|---|
399
- | `motion-instant` | 0ms | Toggle |
400
- | `motion-fast` | 150ms | Hover |
401
- | `motion-standard` | 250ms | Modal, panel |
402
-
403
- Standard cubic-bezier; no bounce. **Focus rings** never animate — appear instant for accessibility. `prefers-reduced-motion: reduce` removes panel slide-ins.
357
+ No motion duration, easing value, or reduced-motion behavior was measured in this packet. Keep motion tokens unresolved.
404
358
 
405
359
  ---
406
360
 
407
- **Verified:** 2026-05-08 (omd:migrate run 27 — Apple-tier)
408
- **Tier 1 sources:** hashicorp.com/en home + /en/products/terraform (live DOM via playwright Shared Primary **`#1060ff`** HC Blue 5px / 36-48px / 16px·500; Light Secondary `#fafafa`/`#3b3d45` 5px; nav 4px sub-distinction; **per-product accent system** confirmed via Terraform Purple `#7b42bc`).
409
- **Tier 2 sources:** styles.refero.design / getdesign.md no record.
410
- **Tier 2 (Philosophy/IPO/IBM):** Wikipedia (HashiCorp), HashiCorp Origin Story, Mayfield (UW Allen School origin), HashiCorp blog (IBM close 2025-02), BusinessWire (Hashimoto Vercel board 2026-03), Logan Bartlett Show ep 102 (Dadgar 48hrs post-sale).
411
- **Style ref:** `stripe`. **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer captured nav-only — canonical Primary is `#1060ff` HC Blue with documented per-product-accent pattern (Terraform Purple).
361
+ **Verified:** 2026-07-13
362
+ **Tier 1 sources:** supplied live capture of `https://www.hashicorp.com/ko`, `https://www.hashicorp.com/ko/pricing`, and `https://www.hashicorp.com/ko/products/boundary`; [Helios](https://helios.hashicorp.design/); [HashiCorp Sans announcement](https://www.hashicorp.com/en/blog/introducing-hashicorp-sans); [official typography guideline](https://www.hashicorp.com/en/brand/hcp-product-typography); [official terms of service](https://www.hashicorp.com/terms-of-service); [About](https://www.hashicorp.com/en/about); [Origin story](https://www.hashicorp.com/en/about/origin-story); [IBM-family announcement](https://www.hashicorp.com/en/blog/hashicorp-officially-joins-the-ibm-family).
363
+ **Tier 2 sources:** [getdesign.md/hashicorp](https://getdesign.md/hashicorp) directory metadata only; [Refero’s HashiCorp style](https://styles.refero.design/style/834ce97f-61f2-4b12-bf5c-e9fad2544456) cross-check. Its 4px-control and 8px-card claims conflict with the supplied raw capture, so the Tier 1 values remain canonical.
364
+ **Conflicts unresolved:** none
365
+
366
+ Refero’s differing radii and active-blue account are documented in `.verification.md` and resolved to the supplied computed evidence; unobserved prior claims for Vault, Waypoint, Vagrant, focus/hover behavior, responsive behavior, and motion remain omitted.