@nurix/etna 0.19.11 → 0.19.12

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 (486) hide show
  1. package/data/harness-index.json +1 -1
  2. package/data/harnesses/code/harness.json +1 -1
  3. package/data/harnesses/code/rules/frontend.md +5 -5
  4. package/data/harnesses/code/skills/design/SKILL.md +70 -50
  5. package/data/harnesses/code/skills/design/components/charts.md +76 -0
  6. package/data/harnesses/code/skills/design/components/collections.md +132 -0
  7. package/data/harnesses/code/skills/design/components/feedback.md +47 -0
  8. package/data/harnesses/code/skills/design/components/hooks.md +35 -0
  9. package/data/harnesses/code/skills/design/components/index.md +143 -0
  10. package/data/harnesses/code/skills/design/components/inputs.md +327 -0
  11. package/data/harnesses/code/skills/design/components/layout.md +52 -0
  12. package/data/harnesses/code/skills/design/components/media.md +66 -0
  13. package/data/harnesses/code/skills/design/components/motion.md +82 -0
  14. package/data/harnesses/code/skills/design/components/navigation.md +29 -0
  15. package/data/harnesses/code/skills/design/components/overlays.md +72 -0
  16. package/data/harnesses/code/skills/design/components/setup.md +40 -0
  17. package/data/harnesses/code/skills/design/components/typography.md +46 -0
  18. package/data/harnesses/code/skills/design/components/utils.md +37 -0
  19. package/data/harnesses/code/skills/design/data/blueprints/browse.md +38 -0
  20. package/data/harnesses/code/skills/design/data/blueprints/creation-flow.md +38 -0
  21. package/data/harnesses/code/skills/design/data/blueprints/dashboard.md +38 -0
  22. package/data/harnesses/code/skills/design/data/blueprints/grid.md +38 -0
  23. package/data/harnesses/code/skills/design/data/blueprints/queue.md +38 -0
  24. package/data/harnesses/code/skills/design/data/blueprints/record-detail.md +38 -0
  25. package/data/harnesses/code/skills/design/data/blueprints/settings.md +38 -0
  26. package/data/harnesses/code/skills/design/data/chart-styling/Readme.md +33 -0
  27. package/data/harnesses/code/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +19 -0
  28. package/data/harnesses/code/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +19 -0
  29. package/data/harnesses/code/skills/design/data/chart-styling/datadog-classic-six-aligned.md +19 -0
  30. package/data/harnesses/code/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +19 -0
  31. package/data/harnesses/code/skills/design/data/chart-styling/econ-red-rule-horizontal.md +19 -0
  32. package/data/harnesses/code/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +19 -0
  33. package/data/harnesses/code/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +19 -0
  34. package/data/harnesses/code/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +19 -0
  35. package/data/harnesses/code/skills/design/data/chart-styling/material-rounded-explicit-label.md +19 -0
  36. package/data/harnesses/code/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +19 -0
  37. package/data/harnesses/code/skills/design/data/chart-styling/plot-currentcolor-inherit.md +19 -0
  38. package/data/harnesses/code/skills/design/data/chart-styling/saas-gradient-glow-area.md +19 -0
  39. package/data/harnesses/code/skills/design/data/chart-styling/shadcn-composable-css-vars.md +19 -0
  40. package/data/harnesses/code/skills/design/data/charts/census.csv +58 -0
  41. package/data/harnesses/code/skills/design/data/checklists/browse.md +21 -0
  42. package/data/harnesses/code/skills/design/data/checklists/creation-flow.md +20 -0
  43. package/data/harnesses/code/skills/design/data/checklists/dashboard.md +21 -0
  44. package/data/harnesses/code/skills/design/data/checklists/grid.md +21 -0
  45. package/data/harnesses/code/skills/design/data/checklists/queue.md +21 -0
  46. package/data/harnesses/code/skills/design/data/checklists/record-detail.md +21 -0
  47. package/data/harnesses/code/skills/design/data/checklists/settings.md +21 -0
  48. package/data/harnesses/code/skills/design/data/chrome/board-column.md +68 -0
  49. package/data/harnesses/code/skills/design/data/chrome/data-table.md +63 -0
  50. package/data/harnesses/code/skills/design/data/chrome/side-panel.md +60 -0
  51. package/data/harnesses/code/skills/design/data/chrome/sidebar.md +78 -0
  52. package/data/harnesses/code/skills/design/data/chrome/stat-cards.md +62 -0
  53. package/data/harnesses/code/skills/design/data/chrome/topbar.md +65 -0
  54. package/data/harnesses/code/skills/design/data/color/accent-presets.md +90 -0
  55. package/data/harnesses/code/skills/design/data/color/aesop-earth-mute.md +91 -0
  56. package/data/harnesses/code/skills/design/data/color/arc-peach-play.md +90 -0
  57. package/data/harnesses/code/skills/design/data/color/attio-hunter-teal.md +90 -0
  58. package/data/harnesses/code/skills/design/data/color/carbon-cyan-signal.md +90 -0
  59. package/data/harnesses/code/skills/design/data/color/clay-parchment.md +90 -0
  60. package/data/harnesses/code/skills/design/data/color/duolingo-feather.md +90 -0
  61. package/data/harnesses/code/skills/design/data/color/geist-mono-signal.md +90 -0
  62. package/data/harnesses/code/skills/design/data/color/linear-graphite-violet.md +90 -0
  63. package/data/harnesses/code/skills/design/data/color/mercury-onyx-cobalt.md +90 -0
  64. package/data/harnesses/code/skills/design/data/color/notion-paper-ink.md +90 -0
  65. package/data/harnesses/code/skills/design/data/color/radix-slate-iris.md +90 -0
  66. package/data/harnesses/code/skills/design/data/color/raycast-void-spectrum.md +90 -0
  67. package/data/harnesses/code/skills/design/data/color/spectrum-celery-fuchsia.md +90 -0
  68. package/data/harnesses/code/skills/design/data/color/stripe-blurple-ruby.md +90 -0
  69. package/data/harnesses/code/skills/design/data/color/superhuman-cod-picton.md +89 -0
  70. package/data/harnesses/code/skills/design/data/corpora/operations-review/companies.csv +15 -0
  71. package/data/harnesses/code/skills/design/data/corpora/operations-review/corpus.md +87 -0
  72. package/data/harnesses/code/skills/design/data/corpora/operations-review/people.csv +25 -0
  73. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/companies.csv +15 -0
  74. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/corpus.md +83 -0
  75. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/people.csv +25 -0
  76. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/companies.csv +15 -0
  77. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/corpus.md +89 -0
  78. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/people.csv +25 -0
  79. package/data/harnesses/code/skills/design/data/elevation/ant-design-directional-shadow.md +19 -0
  80. package/data/harnesses/code/skills/design/data/elevation/apple-liquid-glass-material.md +18 -0
  81. package/data/harnesses/code/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +20 -0
  82. package/data/harnesses/code/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +20 -0
  83. package/data/harnesses/code/skills/design/data/elevation/github-primer-sparing-shadow.md +19 -0
  84. package/data/harnesses/code/skills/design/data/elevation/ibm-carbon-layer-and-border.md +19 -0
  85. package/data/harnesses/code/skills/design/data/elevation/linear-dark-surface-ladder.md +17 -0
  86. package/data/harnesses/code/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +19 -0
  87. package/data/harnesses/code/skills/design/data/elevation/material-3-tonal-elevation.md +21 -0
  88. package/data/harnesses/code/skills/design/data/elevation/neobrutalist-hard-offset.md +19 -0
  89. package/data/harnesses/code/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +18 -0
  90. package/data/harnesses/code/skills/design/data/elevation/notion-warm-minimal-hairline.md +17 -0
  91. package/data/harnesses/code/skills/design/data/elevation/polaris-elevation-inset-bevel.md +21 -0
  92. package/data/harnesses/code/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +19 -0
  93. package/data/harnesses/code/skills/design/data/elevation/shadcn-neutral-derived-radius.md +19 -0
  94. package/data/harnesses/code/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +18 -0
  95. package/data/harnesses/code/skills/design/data/elevation/tailwind-default-utility-scale.md +19 -0
  96. package/data/harnesses/code/skills/design/data/elevation/vercel-geist-shadow-as-border.md +20 -0
  97. package/data/harnesses/code/skills/design/data/gradients/amber-attention-fill.md +16 -0
  98. package/data/harnesses/code/skills/design/data/gradients/cloud-shadow-wash.md +16 -0
  99. package/data/harnesses/code/skills/design/data/gradients/confident-lavender-wash.md +16 -0
  100. package/data/harnesses/code/skills/design/data/gradients/ember-ship-flare.md +18 -0
  101. package/data/harnesses/code/skills/design/data/gradients/full-metal-wash.md +16 -0
  102. package/data/harnesses/code/skills/design/data/gradients/indigo-ruby-cta-band.md +18 -0
  103. package/data/harnesses/code/skills/design/data/gradients/linear-graphite-wash.md +18 -0
  104. package/data/harnesses/code/skills/design/data/gradients/marble-quartz-wash.md +16 -0
  105. package/data/harnesses/code/skills/design/data/gradients/midnight-aurora-panel.md +16 -0
  106. package/data/harnesses/code/skills/design/data/gradients/neutral-volume-fill.md +16 -0
  107. package/data/harnesses/code/skills/design/data/gradients/revenue-uptrend-fill.md +16 -0
  108. package/data/harnesses/code/skills/design/data/gradients/risk-decline-fill.md +16 -0
  109. package/data/harnesses/code/skills/design/data/gradients/signal-blue-develop.md +18 -0
  110. package/data/harnesses/code/skills/design/data/gradients/slate-mist-wash.md +16 -0
  111. package/data/harnesses/code/skills/design/data/gradients/stripe-atmosphere-mesh.md +18 -0
  112. package/data/harnesses/code/skills/design/data/gradients/teal-signal-accent.md +16 -0
  113. package/data/harnesses/code/skills/design/data/gradients/violet-magenta-promo.md +16 -0
  114. package/data/harnesses/code/skills/design/data/iconography.md +199 -0
  115. package/data/harnesses/code/skills/design/data/motion/accordion-expand.md +18 -0
  116. package/data/harnesses/code/skills/design/data/motion/destructive-hold-confirm.md +18 -0
  117. package/data/harnesses/code/skills/design/data/motion/drag-dismiss-momentum.md +18 -0
  118. package/data/harnesses/code/skills/design/data/motion/empty-state-arrive.md +18 -0
  119. package/data/harnesses/code/skills/design/data/motion/hover-lift.md +18 -0
  120. package/data/harnesses/code/skills/design/data/motion/modal-center-arrive.md +18 -0
  121. package/data/harnesses/code/skills/design/data/motion/number-ticker-roll.md +18 -0
  122. package/data/harnesses/code/skills/design/data/motion/onboarding-bounce.md +18 -0
  123. package/data/harnesses/code/skills/design/data/motion/panel-slide.md +18 -0
  124. package/data/harnesses/code/skills/design/data/motion/press-feedback.md +18 -0
  125. package/data/harnesses/code/skills/design/data/motion/progress-linear-loop.md +18 -0
  126. package/data/harnesses/code/skills/design/data/motion/route-crossfade.md +18 -0
  127. package/data/harnesses/code/skills/design/data/motion/rubber-band-overscroll.md +18 -0
  128. package/data/harnesses/code/skills/design/data/motion/skeleton-shimmer.md +18 -0
  129. package/data/harnesses/code/skills/design/data/motion/stagger-arrive.md +18 -0
  130. package/data/harnesses/code/skills/design/data/motion/toast-enter-stack.md +18 -0
  131. package/data/harnesses/code/skills/design/data/motion/tooltip-chain-instant.md +18 -0
  132. package/data/harnesses/code/skills/design/data/motion/trigger-anchored-reveal.md +18 -0
  133. package/data/harnesses/code/skills/design/data/tells.csv +34 -0
  134. package/data/harnesses/code/skills/design/data/typography/anton-work-sans.md +17 -0
  135. package/data/harnesses/code/skills/design/data/typography/archivo-black-archivo.md +17 -0
  136. package/data/harnesses/code/skills/design/data/typography/bitter-karla.md +17 -0
  137. package/data/harnesses/code/skills/design/data/typography/dm-serif-dm-sans.md +17 -0
  138. package/data/harnesses/code/skills/design/data/typography/fraunces-inter.md +17 -0
  139. package/data/harnesses/code/skills/design/data/typography/geist-geist-mono.md +17 -0
  140. package/data/harnesses/code/skills/design/data/typography/hubot-sans-mona-sans.md +17 -0
  141. package/data/harnesses/code/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +17 -0
  142. package/data/harnesses/code/skills/design/data/typography/instrument-serif-instrument-sans.md +17 -0
  143. package/data/harnesses/code/skills/design/data/typography/inter-operator-single-family.md +17 -0
  144. package/data/harnesses/code/skills/design/data/typography/libre-baskerville-libre-franklin.md +17 -0
  145. package/data/harnesses/code/skills/design/data/typography/newsreader-inter.md +17 -0
  146. package/data/harnesses/code/skills/design/data/typography/playfair-display-source-sans.md +17 -0
  147. package/data/harnesses/code/skills/design/data/typography/public-sans-operator-single-family.md +17 -0
  148. package/data/harnesses/code/skills/design/data/typography/sohne-inter-fintech.md +17 -0
  149. package/data/harnesses/code/skills/design/data/typography/source-serif-source-sans.md +17 -0
  150. package/data/harnesses/code/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +17 -0
  151. package/data/harnesses/code/skills/design/data/typography/spectral-manrope.md +17 -0
  152. package/data/harnesses/code/skills/design/data/voices/bright-collaborator.md +29 -0
  153. package/data/harnesses/code/skills/design/data/voices/direct-operator.md +29 -0
  154. package/data/harnesses/code/skills/design/data/voices/earnest-helper.md +29 -0
  155. package/data/harnesses/code/skills/design/data/voices/editorial-composed.md +29 -0
  156. package/data/harnesses/code/skills/design/data/voices/quiet-concierge.md +29 -0
  157. package/data/harnesses/code/skills/design/data/voices/warm-guide.md +29 -0
  158. package/data/harnesses/code/skills/design/design-md/SCHEMA.md +179 -0
  159. package/data/harnesses/code/skills/design/design-md/index.csv +67 -0
  160. package/data/harnesses/code/skills/design/design-md/library/airbnb.md +207 -0
  161. package/data/harnesses/code/skills/design/design-md/library/airtable.md +205 -0
  162. package/data/harnesses/code/skills/design/design-md/library/anthropic-claude.md +203 -0
  163. package/data/harnesses/code/skills/design/design-md/library/apple.md +206 -0
  164. package/data/harnesses/code/skills/design/design-md/library/binance.md +210 -0
  165. package/data/harnesses/code/skills/design/design-md/library/bmw.md +210 -0
  166. package/data/harnesses/code/skills/design/design-md/library/cal.md +209 -0
  167. package/data/harnesses/code/skills/design/design-md/library/clay.md +204 -0
  168. package/data/harnesses/code/skills/design/design-md/library/clickhouse.md +205 -0
  169. package/data/harnesses/code/skills/design/design-md/library/cohere.md +205 -0
  170. package/data/harnesses/code/skills/design/design-md/library/coinbase.md +198 -0
  171. package/data/harnesses/code/skills/design/design-md/library/composio.md +198 -0
  172. package/data/harnesses/code/skills/design/design-md/library/cursor.md +197 -0
  173. package/data/harnesses/code/skills/design/design-md/library/elevenlabs.md +199 -0
  174. package/data/harnesses/code/skills/design/design-md/library/expo.md +200 -0
  175. package/data/harnesses/code/skills/design/design-md/library/figma.md +199 -0
  176. package/data/harnesses/code/skills/design/design-md/library/framer.md +202 -0
  177. package/data/harnesses/code/skills/design/design-md/library/hashicorp.md +205 -0
  178. package/data/harnesses/code/skills/design/design-md/library/ibm.md +205 -0
  179. package/data/harnesses/code/skills/design/design-md/library/intercom.md +204 -0
  180. package/data/harnesses/code/skills/design/design-md/library/kraken.md +200 -0
  181. package/data/harnesses/code/skills/design/design-md/library/linear-app.md +198 -0
  182. package/data/harnesses/code/skills/design/design-md/library/lovable.md +199 -0
  183. package/data/harnesses/code/skills/design/design-md/library/meta.md +204 -0
  184. package/data/harnesses/code/skills/design/design-md/library/minimax.md +204 -0
  185. package/data/harnesses/code/skills/design/design-md/library/mintlify.md +210 -0
  186. package/data/harnesses/code/skills/design/design-md/library/miro.md +209 -0
  187. package/data/harnesses/code/skills/design/design-md/library/mistral-ai.md +201 -0
  188. package/data/harnesses/code/skills/design/design-md/library/mongodb.md +201 -0
  189. package/data/harnesses/code/skills/design/design-md/library/notion.md +204 -0
  190. package/data/harnesses/code/skills/design/design-md/library/nvidia.md +215 -0
  191. package/data/harnesses/code/skills/design/design-md/library/ollama.md +213 -0
  192. package/data/harnesses/code/skills/design/design-md/library/opencode-ai.md +216 -0
  193. package/data/harnesses/code/skills/design/design-md/library/posthog.md +218 -0
  194. package/data/harnesses/code/skills/design/design-md/library/raycast.md +214 -0
  195. package/data/harnesses/code/skills/design/design-md/library/replicate.md +202 -0
  196. package/data/harnesses/code/skills/design/design-md/library/resend.md +203 -0
  197. package/data/harnesses/code/skills/design/design-md/library/revolut.md +203 -0
  198. package/data/harnesses/code/skills/design/design-md/library/runwayml.md +203 -0
  199. package/data/harnesses/code/skills/design/design-md/library/sanity.md +200 -0
  200. package/data/harnesses/code/skills/design/design-md/library/sentry.md +201 -0
  201. package/data/harnesses/code/skills/design/design-md/library/shopify.md +202 -0
  202. package/data/harnesses/code/skills/design/design-md/library/slack.md +202 -0
  203. package/data/harnesses/code/skills/design/design-md/library/spacex.md +206 -0
  204. package/data/harnesses/code/skills/design/design-md/library/spotify.md +206 -0
  205. package/data/harnesses/code/skills/design/design-md/library/stripe.md +196 -0
  206. package/data/harnesses/code/skills/design/design-md/library/supabase.md +196 -0
  207. package/data/harnesses/code/skills/design/design-md/library/superhuman.md +194 -0
  208. package/data/harnesses/code/skills/design/design-md/library/tesla.md +198 -0
  209. package/data/harnesses/code/skills/design/design-md/library/theverge.md +199 -0
  210. package/data/harnesses/code/skills/design/design-md/library/together-ai.md +193 -0
  211. package/data/harnesses/code/skills/design/design-md/library/uber.md +195 -0
  212. package/data/harnesses/code/skills/design/design-md/library/vercel.md +195 -0
  213. package/data/harnesses/code/skills/design/design-md/library/voltagent.md +197 -0
  214. package/data/harnesses/code/skills/design/design-md/library/warp.md +196 -0
  215. package/data/harnesses/code/skills/design/design-md/library/webflow.md +197 -0
  216. package/data/harnesses/code/skills/design/design-md/library/wired.md +197 -0
  217. package/data/harnesses/code/skills/design/design-md/library/wise.md +198 -0
  218. package/data/harnesses/code/skills/design/design-md/library/x-ai.md +199 -0
  219. package/data/harnesses/code/skills/design/design-md/library/zapier.md +198 -0
  220. package/data/harnesses/code/skills/design/design-md/nurix.md +214 -0
  221. package/data/harnesses/code/skills/design/design-md/variants/editorial-luxury.md +184 -0
  222. package/data/harnesses/code/skills/design/design-md/variants/expressive-saas.md +216 -0
  223. package/data/harnesses/code/skills/design/design-md/variants/quiet-premium.md +211 -0
  224. package/data/harnesses/code/skills/design/design-md/variants/terse-dense-operator.md +212 -0
  225. package/data/harnesses/code/skills/design/design-md/variants/warm-approachable.md +216 -0
  226. package/data/harnesses/code/skills/design/references/compose.md +23 -0
  227. package/data/harnesses/code/skills/design/references/content.md +28 -0
  228. package/data/harnesses/code/skills/design/references/emission.md +21 -0
  229. package/data/harnesses/code/skills/design/references/existing-apps.md +27 -0
  230. package/data/harnesses/code/skills/design/references/intake.md +36 -0
  231. package/data/harnesses/code/skills/design/references/object-pass.md +24 -0
  232. package/data/harnesses/code/skills/design/references/ship-gate.md +29 -0
  233. package/data/harnesses/code/skills/design/references/ux-patterns/Readme.md +195 -0
  234. package/data/harnesses/code/skills/design/references/ux-patterns/ai-layer.md +49 -0
  235. package/data/harnesses/code/skills/design/references/ux-patterns/attributes-lifecycle.md +43 -0
  236. package/data/harnesses/code/skills/design/references/ux-patterns/container-choice.md +44 -0
  237. package/data/harnesses/code/skills/design/references/ux-patterns/creation-paths.md +46 -0
  238. package/data/harnesses/code/skills/design/references/ux-patterns/dashboards.md +42 -0
  239. package/data/harnesses/code/skills/design/references/ux-patterns/modes.md +42 -0
  240. package/data/harnesses/code/skills/design/references/ux-patterns/object-model.md +46 -0
  241. package/data/harnesses/code/skills/design/references/ux-patterns/page-archetype.md +48 -0
  242. package/data/harnesses/code/skills/design/references/ux-patterns/promotion-demotion.md +37 -0
  243. package/data/harnesses/code/skills/design/references/ux-patterns/settings.md +42 -0
  244. package/data/harnesses/code/skills/design/references/ux-patterns/standard-pages.md +46 -0
  245. package/data/harnesses/code/skills/design/references/ux-patterns/state-matrix.md +41 -0
  246. package/data/harnesses/code/skills/design/references/ux-patterns/table-mechanics.md +48 -0
  247. package/data/harnesses/code/skills/design/references/ux-patterns/verbs.md +45 -0
  248. package/data/harnesses/code/skills/design/references/ux-patterns/viewer-context.md +40 -0
  249. package/data/harnesses/code/skills/design/scripts/README-validator.md +27 -0
  250. package/data/harnesses/code/skills/design/scripts/select-chart.mjs +596 -0
  251. package/data/harnesses/code/skills/design/scripts/validate-design-md.mjs +1198 -0
  252. package/package.json +1 -1
  253. package/data/harnesses/code/skills/design/data/catalog/rules.csv +0 -137
  254. package/data/harnesses/code/skills/design/data/combinations/Readme.md +0 -33
  255. package/data/harnesses/code/skills/design/data/combinations/accent-presets.md +0 -113
  256. package/data/harnesses/code/skills/design/data/combinations/charts.csv +0 -33
  257. package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +0 -448
  258. package/data/harnesses/code/skills/design/data/combinations/icons.csv +0 -157
  259. package/data/harnesses/code/skills/design/data/combinations/landing.csv +0 -38
  260. package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +0 -2001
  261. package/data/harnesses/code/skills/design/data/combinations/manifest.json +0 -330
  262. package/data/harnesses/code/skills/design/data/combinations/motion.csv +0 -10
  263. package/data/harnesses/code/skills/design/data/combinations/palettes.csv +0 -92
  264. package/data/harnesses/code/skills/design/data/combinations/product-router.csv +0 -80
  265. package/data/harnesses/code/skills/design/data/combinations/styles.csv +0 -67
  266. package/data/harnesses/code/skills/design/data/combinations/typography.csv +0 -64
  267. package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +0 -106
  268. package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +0 -154
  269. package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +0 -151
  270. package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +0 -139
  271. package/data/harnesses/code/skills/design/data/design-md/library/apple.md +0 -139
  272. package/data/harnesses/code/skills/design/data/design-md/library/binance.md +0 -140
  273. package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +0 -140
  274. package/data/harnesses/code/skills/design/data/design-md/library/cal.md +0 -140
  275. package/data/harnesses/code/skills/design/data/design-md/library/clay.md +0 -139
  276. package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +0 -139
  277. package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +0 -147
  278. package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +0 -156
  279. package/data/harnesses/code/skills/design/data/design-md/library/composio.md +0 -138
  280. package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +0 -138
  281. package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +0 -137
  282. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -148
  283. package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -141
  284. package/data/harnesses/code/skills/design/data/design-md/library/framer.md +0 -156
  285. package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +0 -140
  286. package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +0 -153
  287. package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +0 -158
  288. package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +0 -156
  289. package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -122
  290. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +0 -140
  291. package/data/harnesses/code/skills/design/data/design-md/library/meta.md +0 -139
  292. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +0 -139
  293. package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +0 -139
  294. package/data/harnesses/code/skills/design/data/design-md/library/miro.md +0 -153
  295. package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +0 -140
  296. package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +0 -155
  297. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +0 -140
  298. package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +0 -141
  299. package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +0 -145
  300. package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +0 -142
  301. package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +0 -152
  302. package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +0 -137
  303. package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +0 -140
  304. package/data/harnesses/code/skills/design/data/design-md/library/resend.md +0 -170
  305. package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +0 -145
  306. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -137
  307. package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +0 -168
  308. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +0 -163
  309. package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +0 -147
  310. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +0 -158
  311. package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +0 -171
  312. package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +0 -166
  313. package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +0 -160
  314. package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +0 -173
  315. package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +0 -145
  316. package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +0 -153
  317. package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +0 -167
  318. package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +0 -140
  319. package/data/harnesses/code/skills/design/data/design-md/library/uber.md +0 -140
  320. package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +0 -140
  321. package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +0 -130
  322. package/data/harnesses/code/skills/design/data/design-md/library/warp.md +0 -140
  323. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +0 -140
  324. package/data/harnesses/code/skills/design/data/design-md/library/wired.md +0 -139
  325. package/data/harnesses/code/skills/design/data/design-md/library/wise.md +0 -137
  326. package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +0 -138
  327. package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +0 -158
  328. package/data/harnesses/code/skills/design/data/design-md/nurix.md +0 -138
  329. package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +0 -695
  330. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +0 -20
  331. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +0 -1272
  332. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +0 -20
  333. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +0 -1268
  334. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +0 -20
  335. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +0 -1273
  336. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +0 -20
  337. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +0 -1262
  338. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +0 -20
  339. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +0 -1257
  340. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +0 -20
  341. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +0 -1270
  342. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +0 -20
  343. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +0 -1270
  344. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +0 -20
  345. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +0 -1261
  346. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +0 -20
  347. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +0 -1268
  348. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +0 -20
  349. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +0 -1281
  350. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +0 -20
  351. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +0 -1262
  352. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +0 -20
  353. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +0 -1271
  354. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +0 -20
  355. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +0 -1276
  356. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +0 -20
  357. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +0 -1293
  358. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +0 -20
  359. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +0 -1270
  360. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +0 -20
  361. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +0 -1276
  362. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +0 -20
  363. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +0 -1267
  364. package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +0 -251
  365. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +0 -20
  366. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +0 -1273
  367. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +0 -20
  368. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +0 -1286
  369. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +0 -20
  370. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +0 -1290
  371. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +0 -20
  372. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +0 -1270
  373. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +0 -23
  374. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +0 -599
  375. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +0 -1272
  376. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +0 -20
  377. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +0 -1267
  378. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +0 -20
  379. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +0 -1289
  380. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +0 -20
  381. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +0 -1258
  382. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +0 -20
  383. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +0 -1284
  384. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +0 -20
  385. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +0 -1291
  386. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +0 -20
  387. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +0 -1263
  388. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +0 -20
  389. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +0 -1270
  390. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +0 -20
  391. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +0 -1261
  392. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +0 -20
  393. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +0 -1209
  394. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +0 -20
  395. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +0 -1265
  396. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +0 -20
  397. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +0 -1253
  398. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +0 -20
  399. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +0 -1268
  400. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +0 -20
  401. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +0 -1261
  402. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +0 -20
  403. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +0 -1263
  404. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +0 -20
  405. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +0 -1266
  406. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +0 -23
  407. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +0 -623
  408. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +0 -1276
  409. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +0 -20
  410. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +0 -1264
  411. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +0 -20
  412. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +0 -1268
  413. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +0 -20
  414. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +0 -1270
  415. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +0 -20
  416. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +0 -1288
  417. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +0 -20
  418. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +0 -1272
  419. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +0 -20
  420. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +0 -1265
  421. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +0 -20
  422. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +0 -1287
  423. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +0 -20
  424. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +0 -1286
  425. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +0 -20
  426. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +0 -1285
  427. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +0 -20
  428. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +0 -1287
  429. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +0 -20
  430. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +0 -1278
  431. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +0 -20
  432. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +0 -1269
  433. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +0 -20
  434. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +0 -1285
  435. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +0 -20
  436. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +0 -1303
  437. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +0 -20
  438. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +0 -1274
  439. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +0 -20
  440. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +0 -1296
  441. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +0 -23
  442. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +0 -612
  443. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +0 -1282
  444. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +0 -20
  445. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +0 -1287
  446. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +0 -20
  447. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +0 -1268
  448. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +0 -20
  449. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +0 -1276
  450. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +0 -20
  451. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +0 -1273
  452. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +0 -20
  453. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +0 -1296
  454. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +0 -20
  455. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +0 -1286
  456. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +0 -249
  457. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +0 -249
  458. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +0 -225
  459. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +0 -249
  460. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +0 -224
  461. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +0 -249
  462. package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +0 -88
  463. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +0 -132
  464. package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +0 -76
  465. package/data/harnesses/code/skills/design/references/create.md +0 -173
  466. package/data/harnesses/code/skills/design/references/diagnosis.md +0 -108
  467. package/data/harnesses/code/skills/design/references/hard-rules.md +0 -177
  468. package/data/harnesses/code/skills/design/references/improve.md +0 -116
  469. package/data/harnesses/code/skills/design/references/interaction.md +0 -77
  470. package/data/harnesses/code/skills/design/references/introspect.md +0 -100
  471. package/data/harnesses/code/skills/design/references/lifecycle.md +0 -73
  472. package/data/harnesses/code/skills/design/references/personality.md +0 -575
  473. package/data/harnesses/code/skills/design/references/structure.md +0 -159
  474. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +0 -1312
  475. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +0 -1498
  476. package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +0 -551
  477. package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +0 -1092
  478. package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +0 -26
  479. package/data/harnesses/code/skills/design/scripts/lib/vocabulary.mjs +0 -65
  480. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +0 -538
  481. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +0 -312
  482. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +0 -890
  483. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +0 -769
  484. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +0 -675
  485. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +0 -164
  486. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +0 -439
@@ -0,0 +1,199 @@
1
+ ---
2
+ schema: design-md/v2
3
+ id: figma
4
+ tier: brand
5
+ segments: [design-tools, collaboration, creative]
6
+ keywords: [monochrome, black-white, magenta, flat, warm-paper, mono-labels]
7
+ sourced: 2026-07-12
8
+ sources: "design-md/v1 figma entry (2026-07-04); 2026-07-12 re-audit of Figma public brand; Inter substitutes the proprietary Figma Sans (matching its fine variable-weight axis); Space Mono substitutes Figma Mono; light destructive deepened one step for body contrast"
9
+ license: open
10
+ ---
11
+
12
+ # figma — an architect's white drafting table with one magenta sticky tab
13
+
14
+ ## 1 Visual Theme
15
+ An architect's drafting table: white sheet, pure black fineliner, warm off-white trace
16
+ paper for the panels, and a single magenta sticky tab marking the live drawing. Light by
17
+ default; emphatically flat — hierarchy is hairline `border`, type weight, and the
18
+ black/white contrast itself, never heavy shadow. Monochrome spine, joyful edges: the
19
+ pastels are demoted to chart encodings. The dark theme is the studio's night board —
20
+ warm-neutral charcoal rungs, the fineliner flipped to white, the magenta tab unmoved.
21
+
22
+ ## 2 Color Roles
23
+ Black ink `foreground` on the white `background`, warm off-white for `muted` and the
24
+ `sidebar` ground. `primary` fills black — the brand's own primary is achromatic — so
25
+ magenta stays a single-shot pop: the focus `ring`, active indicators, and the pale
26
+ `accent` selection tint. The pastel color blocks are marketing surfaces, reappearing only
27
+ as `chart-*`. Status hues speak only status; the light `destructive` is the brand red
28
+ deepened one step for body contrast.
29
+
30
+ ## 3 Typography
31
+ Inter (the open substitute for Figma Sans, matching its fine variable-weight axis) over
32
+ Space Mono (the open substitute for Figma Mono — IDs, codes, timestamps, and the
33
+ uppercase eyebrow labels, never body). One voice that flexes by weight, not a
34
+ multi-family stack; the poster-scale display and its aggressive tracking stay behind.
35
+ Register scope: display register for page titles, empty states, and auth; mono for data
36
+ and eyebrow labels; numeric columns `tabular-nums`.
37
+
38
+ ## 4 Component Stylings
39
+ Buttons `radius-sm` (6px), black `primary` fill, no pill — but icon-only buttons stay
40
+ circular, the one marketing shape that carries. Inputs on `background` with hairline;
41
+ focus draws the magenta `ring` at 2px, no fill change. Cards on hairline, large feature
42
+ cards may take `radius-lg`. Table rows with `muted` hover, selection tinting `accent`
43
+ with a magenta ring indicator. Detail opens in the side panel; badges take hairline,
44
+ `muted` or status fills, uppercase mono captions — never `primary`, never magenta.
45
+
46
+ ## 5 Layout
47
+ 8px base (Figma's grid); sidebar 240/48px on the warm off-white ground; topbar 56px (the
48
+ brand's own nav height); side panel 440/640px; content max 1360px. Density standard,
49
+ stepping denser per archetype; the 96px section rhythm stays behind.
50
+
51
+ ## 6 Depth
52
+ Light: the surface ladder, hairlines, and black/white contrast carry rank; overlays earn
53
+ the one soft warm-tinted tier. Dark: the surface ladder does depth — `background` 0.18 L,
54
+ `surface-raised` +0.05, `surface-overlay` +0.10, warm-neutral hue held near 100. The 2px
55
+ magenta `ring` is the one chromatic depth signal, constantly visible to keyboard users.
56
+
57
+ ## 7 Motion
58
+ Precise, tool-like. Named moments: `tab-flick` (selection indicator slide, 120ms),
59
+ `panel-slide` (side panel, 220ms, interruptible), `board-fade` (page content, 140ms).
60
+ Physicality is granted only to auth and first-run empty states; canvas-like surfaces
61
+ never bounce; nothing animates on keyboard-initiated actions.
62
+
63
+ ## 8 Iconography & Charts
64
+ Lucide, 1.5px stroke, 16/20px grid, `muted-foreground` default; icon-only buttons
65
+ circular. Charts: hairline axes, no gridline fills; the categorical ramp spends the
66
+ demoted marketing pastels as encodings — lilac, mint, coral, navy, pink (`chart-1..5`);
67
+ tooltips on `surface-overlay` with mono numerals.
68
+
69
+ ## 9 Voice
70
+ Friendly precision — a tool that likes its users but respects their time. "New project" ·
71
+ "All caught up — 4 files updated today" · "You can't move this file; ask an editor for
72
+ access."
73
+
74
+ ## 10 Do's & Don'ts
75
+ Do wear the spine: black on white, warm off-white panels, hairline depth. Do keep magenta
76
+ single-shot — the focus ring and small active indicators, never a fill or body text. Do
77
+ keep icon-only buttons circular. Don't reach for the pastel blocks as chrome — charts
78
+ only. Don't pill the CTA — pills stay on the marketing site. Don't introduce a second
79
+ chromatic accent or signal elevation with heavy shadows.
80
+
81
+ ## 11 Responsive
82
+ 375: sidebar → off-canvas drawer; side panel → full sheet; density holds. 768: sidebar
83
+ collapses to the icon rail; tables scroll their overflow. 1024: two-pane list+detail
84
+ holds. 1440: forms cap; tables and dashboards use the full width.
85
+
86
+ ## 12 Agent Prompt Guide
87
+ Primary action fills black; if two things want the black fill, one is not primary.
88
+ Magenta is single-shot: ring and active indicators only. Weight, not scale, carries
89
+ hierarchy — bump one step, never resize. Eyebrows are uppercase mono. The pastels live
90
+ only in charts. Dark is authored — consult the block, never invert the drafting sheet.
91
+
92
+ ```yaml design-values
93
+ color:
94
+ light:
95
+ background: oklch(0.99 0.005 100)
96
+ foreground: oklch(0.15 0.005 100)
97
+ card: oklch(0.995 0.005 100)
98
+ card-foreground: oklch(0.15 0.005 100)
99
+ popover: oklch(0.995 0.005 100)
100
+ popover-foreground: oklch(0.15 0.005 100)
101
+ primary: oklch(0.15 0.005 100)
102
+ primary-foreground: oklch(0.99 0.005 100)
103
+ secondary: oklch(0.965 0.005 106)
104
+ secondary-foreground: oklch(0.15 0.005 100)
105
+ muted: oklch(0.965 0.005 106)
106
+ muted-foreground: oklch(0.5 0.006 100)
107
+ accent: oklch(0.944 0.033 351)
108
+ accent-foreground: oklch(0.38 0.16 2)
109
+ destructive: oklch(0.577 0.205 25)
110
+ destructive-foreground: oklch(0.98 0.008 25)
111
+ success: oklch(0.636 0.172 149)
112
+ warning: oklch(0.76 0.142 60)
113
+ border: oklch(0.925 0.005 100)
114
+ input: oklch(0.925 0.005 100)
115
+ ring: oklch(0.673 0.233 2)
116
+ surface-raised: oklch(0.985 0.005 100)
117
+ surface-overlay: oklch(0.995 0.005 100)
118
+ chart-1: oklch(0.62 0.13 300)
119
+ chart-2: oklch(0.7 0.11 165)
120
+ chart-3: oklch(0.68 0.14 35)
121
+ chart-4: oklch(0.45 0.1 265)
122
+ chart-5: oklch(0.7 0.18 2)
123
+ sidebar: oklch(0.976 0.005 106)
124
+ sidebar-foreground: oklch(0.15 0.005 100)
125
+ sidebar-primary: oklch(0.15 0.005 100)
126
+ sidebar-primary-foreground: oklch(0.99 0.005 100)
127
+ sidebar-accent: oklch(0.944 0.033 351)
128
+ sidebar-accent-foreground: oklch(0.3 0.1 2)
129
+ sidebar-border: oklch(0.925 0.005 100)
130
+ sidebar-ring: oklch(0.673 0.233 2)
131
+ dark:
132
+ background: oklch(0.18 0.005 100)
133
+ foreground: oklch(0.95 0.005 100)
134
+ card: oklch(0.22 0.006 100)
135
+ card-foreground: oklch(0.95 0.005 100)
136
+ popover: oklch(0.28 0.006 100)
137
+ popover-foreground: oklch(0.95 0.005 100)
138
+ primary: oklch(0.95 0.005 100)
139
+ primary-foreground: oklch(0.18 0.005 100)
140
+ secondary: oklch(0.26 0.006 100)
141
+ secondary-foreground: oklch(0.92 0.005 100)
142
+ muted: oklch(0.25 0.006 100)
143
+ muted-foreground: oklch(0.72 0.008 100)
144
+ accent: oklch(0.32 0.05 355)
145
+ accent-foreground: oklch(0.95 0.01 355)
146
+ destructive: oklch(0.64 0.19 25)
147
+ destructive-foreground: oklch(0.14 0.02 25)
148
+ success: oklch(0.7 0.15 152)
149
+ warning: oklch(0.78 0.13 65)
150
+ border: oklch(0.29 0.006 100)
151
+ input: oklch(0.29 0.006 100)
152
+ ring: oklch(0.71 0.21 2)
153
+ surface-raised: oklch(0.23 0.006 100)
154
+ surface-overlay: oklch(0.28 0.006 100)
155
+ chart-1: oklch(0.7 0.13 300)
156
+ chart-2: oklch(0.76 0.11 165)
157
+ chart-3: oklch(0.74 0.13 35)
158
+ chart-4: oklch(0.62 0.1 265)
159
+ chart-5: oklch(0.75 0.19 2)
160
+ sidebar: oklch(0.16 0.005 100)
161
+ sidebar-foreground: oklch(0.92 0.005 100)
162
+ sidebar-primary: oklch(0.95 0.005 100)
163
+ sidebar-primary-foreground: oklch(0.18 0.005 100)
164
+ sidebar-accent: oklch(0.3 0.045 355)
165
+ sidebar-accent-foreground: oklch(0.94 0.01 355)
166
+ sidebar-border: oklch(0.25 0.006 100)
167
+ sidebar-ring: oklch(0.71 0.21 2)
168
+ typography:
169
+ display: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [600] }
170
+ sans: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [400, 500, 600] }
171
+ mono: { family: "Space Mono", fallback: "ui-monospace, monospace", weights: [400, 700] }
172
+ ramp:
173
+ display: { size: 28px, line: 36px, weight: 600, family: display, tracking: -0.015em }
174
+ h1: { size: 24px, line: 31px, weight: 600, family: sans, tracking: -0.01em }
175
+ h2: { size: 18px, line: 24px, weight: 600, family: sans, tracking: -0.01em }
176
+ body: { size: 14px, line: 20px, weight: 400, family: sans }
177
+ small: { size: 13px, line: 18px, weight: 400, family: sans }
178
+ caption: { size: 12px, line: 16px, weight: 400, family: mono, tracking: 0.05em, transform: uppercase }
179
+ data: { size: 13px, line: 19px, weight: 400, family: mono, features: [tnum] }
180
+ register-scope: { display: [page-title, empty-state, auth], sans: [chrome, controls, body], mono: [data, ids, timestamps, eyebrow-labels] }
181
+ elevation:
182
+ radius: { sm: 6px, md: 8px, lg: 12px }
183
+ hairline: border
184
+ shadow:
185
+ overlay: "0 8px 28px oklch(0.25 0.01 100 / 0.1)"
186
+ popover: "0 4px 16px oklch(0.25 0.01 100 / 0.06)"
187
+ dark-ladder: { background: 0.18, raised: 0.23, overlay: 0.28, hue-held: 100 }
188
+ motion:
189
+ duration: { press: 120ms, fade: 140ms, panel: 220ms }
190
+ easing: { standard: "cubic-bezier(0.2, 0, 0, 1)", exit: "cubic-bezier(0.4, 0, 1, 1)" }
191
+ entrance-never: ease-in
192
+ identity-moments: [auth, first-run-empty]
193
+ iconography: { set: lucide, stroke: 1.5px, grid: [16px, 20px] }
194
+ charts:
195
+ categorical: [chart-1, chart-2, chart-3, chart-4, chart-5]
196
+ sequential: { from: background, to: chart-4 }
197
+ diverging: { negative: destructive, mid: muted, positive: chart-2 }
198
+ layout: { base: 8px, sidebar: [240px, 48px], topbar: 56px, side-panel: [440px, 640px], content-max: 1360px }
199
+ ```
@@ -0,0 +1,202 @@
1
+ ---
2
+ schema: design-md/v2
3
+ id: framer
4
+ tier: brand
5
+ segments: [design-tools, web-builders, creative]
6
+ keywords: [dark, black, artboard, blue-signal, poster, tight-tracking]
7
+ sourced: 2026-07-12
8
+ sources: "design-md/v1 framer entry (2026-07-04); 2026-07-12 re-audit of Framer public brand; Inter (with its cv/ss character variants) is the brand's operator body voice, standing in for the hero-scale GT Walsheim; Geist Mono for data; the brand ships dark-only — the light theme here is the authored opt-in counterpart"
9
+ license: open
10
+ ---
11
+
12
+ # framer — a blacked-out photo studio with one blue status light
13
+
14
+ ## 1 Visual Theme
15
+ A photographer's blacked-out studio: near-black walls swallowing the edges, one white
16
+ poster pinned dead center, and a single blue status LED that means *recording*. Dark by
17
+ default and dark by identity — the brand ships no light mode; the light theme in the
18
+ block is the authored opt-in counterpart, a gallery print of the same poster. Hierarchy
19
+ rises through a three-step surface ladder — canvas, surface-1, surface-2 — with hairlines
20
+ and white ink against gray; never heavy shadow. Selection is lift, not color.
21
+
22
+ ## 2 Color Roles
23
+ Pure-white ink `foreground` on the near-black `background`; hierarchy is binary — ink or
24
+ `muted-foreground`, no mid-tones between. `primary` is the high-contrast white button,
25
+ one per surface. Framer Blue lives in `ring`, links, and active indicators — a signal,
26
+ never a fill. `accent` is the surface-2 lift for hover and selection. The gradient hues
27
+ (violet, magenta, orange, coral) carry no chrome role — chart series only. Status hues
28
+ speak only status.
29
+
30
+ ## 3 Typography
31
+ Inter (body, UI, headings — with its `cv01/cv05/cv09/cv11/ss03/ss07` character variants
32
+ on; they are the brand's body voice) over Geist Mono (IDs, codes, timestamps, logs). The
33
+ signature is tight tracking: headings run tighter-than-neutral, never the hero's -5%
34
+ extreme; the GT Walsheim display stays behind. Register scope: display register for page
35
+ titles, empty states, and auth; mono for data; numeric columns `tabular-nums` (Inter
36
+ carries `tnum`).
37
+
38
+ ## 4 Component Stylings
39
+ Buttons `radius-sm` (8px), white `primary` fill on the dark shell, no pill; secondary on
40
+ surface-1 with hairline. Inputs on `card` with hairline; focus draws the blue `ring` at
41
+ 2px — the one chromatic moment in the field. Cards on surface-1 with hairline; a faint
42
+ light top-edge plus soft drop only when one truly floats. Table rows lift to `accent`
43
+ (surface-2) on selection, never a colored fill. Detail opens in the side panel; badges
44
+ take hairline with status fills — never `primary`, never the blue.
45
+
46
+ ## 5 Layout
47
+ 4px base (the marketing 5px rhythm normalizes to the operator ramp); sidebar 248/56px;
48
+ topbar 56px (the brand's nav height); side panel 440/640px; content max 1400px — the
49
+ poster composure kept, not terminal density.
50
+
51
+ ## 6 Depth
52
+ The charcoal ladder is the depth system: `background` 0.15 L, `surface-raised` +0.06,
53
+ `surface-overlay` +0.12, cool hue held at 250; overlays add a light top-edge and one soft
54
+ blue-tinted drop against the near-black. No level stacks a heavier shadow to signal rank.
55
+ Focus is the 2px blue `ring` — the only chromatic depth signal; three z-levels: content,
56
+ chrome, overlay.
57
+
58
+ ## 7 Motion
59
+ Poster-confident but brief — the tool that sells motion must not fidget. Named moments:
60
+ `surface-lift` (hover/selection rung step, 120ms), `panel-slide` (side panel, 260ms,
61
+ interruptible), `publish-press` (primary-action press, 120ms). Physicality is granted
62
+ only to auth and first-run empty states; nothing animates in tables or on any
63
+ keyboard-initiated action.
64
+
65
+ ## 8 Iconography & Charts
66
+ Lucide, 1.5px stroke, 16/20px grid, `muted-foreground` default. Charts: hairline axes on
67
+ the dark canvas, no gridline fills; the categorical ramp spends the demoted gradient
68
+ atmosphere as data — blue, violet, magenta, orange, coral (`chart-1..5`); tooltips on
69
+ `surface-overlay` with mono numerals.
70
+
71
+ ## 9 Voice
72
+ Poster-terse: few words, high confidence, no exclamation. "Publish" · "Nothing queued —
73
+ the site is live" · "This breakpoint has unlinked overrides; review before publishing."
74
+
75
+ ## 10 Do's & Don'ts
76
+ Do keep the base dark — the near-black canvas is the identity. Do keep Framer Blue a
77
+ signal: ring, links, active indicators; if the blue becomes a fill, the brand is
78
+ drifting. Do mark selection by surface lift, not tint. Do keep hierarchy binary — ink or
79
+ ink-muted, nothing between. Don't wash any section in a gradient — gradients were
80
+ marketing atmosphere. Don't pill operator buttons. Don't open detail in a modal when the
81
+ side panel fits.
82
+
83
+ ## 11 Responsive
84
+ 375: sidebar → off-canvas drawer; side panel → full sheet; density holds. 768: sidebar
85
+ collapses to the icon rail; tables scroll their overflow. 1024: two-pane queue+detail
86
+ holds. 1440: forms cap; tables and dashboards use the full width. The dark theme holds at
87
+ every width.
88
+
89
+ ## 12 Agent Prompt Guide
90
+ Build dark on the charcoal ladder — canvas, surface-1, surface-2 — with white ink and
91
+ gray muted. The one primary action is a white button. Blue only as signal. Track headings
92
+ tight; keep Inter's character variants on; every ID and timestamp in Geist Mono. Selected
93
+ is lift, not color. Light is the authored opt-in — consult the block, never invert.
94
+
95
+ ```yaml design-values
96
+ color:
97
+ light:
98
+ background: oklch(0.985 0.005 250)
99
+ foreground: oklch(0.17 0.005 250)
100
+ card: oklch(0.995 0.005 250)
101
+ card-foreground: oklch(0.17 0.005 250)
102
+ popover: oklch(0.995 0.005 250)
103
+ popover-foreground: oklch(0.17 0.005 250)
104
+ primary: oklch(0.17 0.005 250)
105
+ primary-foreground: oklch(0.985 0.005 250)
106
+ secondary: oklch(0.945 0.006 250)
107
+ secondary-foreground: oklch(0.22 0.006 250)
108
+ muted: oklch(0.955 0.005 250)
109
+ muted-foreground: oklch(0.48 0.01 250)
110
+ accent: oklch(0.93 0.007 250)
111
+ accent-foreground: oklch(0.2 0.006 250)
112
+ destructive: oklch(0.577 0.21 25)
113
+ destructive-foreground: oklch(0.98 0.008 25)
114
+ success: oklch(0.63 0.17 150)
115
+ warning: oklch(0.66 0.15 70)
116
+ border: oklch(0.9 0.006 250)
117
+ input: oklch(0.9 0.006 250)
118
+ ring: oklch(0.62 0.18 249)
119
+ surface-raised: oklch(0.99 0.005 250)
120
+ surface-overlay: oklch(0.995 0.005 250)
121
+ chart-1: oklch(0.55 0.18 249)
122
+ chart-2: oklch(0.55 0.2 295)
123
+ chart-3: oklch(0.6 0.22 340)
124
+ chart-4: oklch(0.66 0.15 55)
125
+ chart-5: oklch(0.62 0.18 25)
126
+ sidebar: oklch(0.97 0.005 250)
127
+ sidebar-foreground: oklch(0.2 0.006 250)
128
+ sidebar-primary: oklch(0.17 0.005 250)
129
+ sidebar-primary-foreground: oklch(0.985 0.005 250)
130
+ sidebar-accent: oklch(0.93 0.007 250)
131
+ sidebar-accent-foreground: oklch(0.2 0.006 250)
132
+ sidebar-border: oklch(0.9 0.006 250)
133
+ sidebar-ring: oklch(0.62 0.18 249)
134
+ dark:
135
+ background: oklch(0.15 0.005 250)
136
+ foreground: oklch(0.97 0.005 250)
137
+ card: oklch(0.2 0.006 250)
138
+ card-foreground: oklch(0.97 0.005 250)
139
+ popover: oklch(0.27 0.007 250)
140
+ popover-foreground: oklch(0.95 0.005 250)
141
+ primary: oklch(0.97 0.005 250)
142
+ primary-foreground: oklch(0.15 0.005 250)
143
+ secondary: oklch(0.24 0.006 250)
144
+ secondary-foreground: oklch(0.93 0.005 250)
145
+ muted: oklch(0.24 0.006 250)
146
+ muted-foreground: oklch(0.7 0.008 250)
147
+ accent: oklch(0.27 0.007 250)
148
+ accent-foreground: oklch(0.95 0.005 250)
149
+ destructive: oklch(0.637 0.208 25)
150
+ destructive-foreground: oklch(0.14 0.02 25)
151
+ success: oklch(0.723 0.192 150)
152
+ warning: oklch(0.769 0.165 70)
153
+ border: oklch(0.28 0.007 250)
154
+ input: oklch(0.28 0.007 250)
155
+ ring: oklch(0.669 0.184 249)
156
+ surface-raised: oklch(0.21 0.006 250)
157
+ surface-overlay: oklch(0.27 0.007 250)
158
+ chart-1: oklch(0.669 0.184 249)
159
+ chart-2: oklch(0.6 0.2 295)
160
+ chart-3: oklch(0.65 0.22 340)
161
+ chart-4: oklch(0.72 0.16 55)
162
+ chart-5: oklch(0.68 0.18 25)
163
+ sidebar: oklch(0.13 0.005 250)
164
+ sidebar-foreground: oklch(0.93 0.005 250)
165
+ sidebar-primary: oklch(0.97 0.005 250)
166
+ sidebar-primary-foreground: oklch(0.15 0.005 250)
167
+ sidebar-accent: oklch(0.22 0.006 250)
168
+ sidebar-accent-foreground: oklch(0.92 0.005 250)
169
+ sidebar-border: oklch(0.24 0.006 250)
170
+ sidebar-ring: oklch(0.669 0.184 249)
171
+ typography:
172
+ display: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [600] }
173
+ sans: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [400, 600] }
174
+ mono: { family: "Geist Mono Variable", fallback: "ui-monospace, monospace", weights: [400] }
175
+ ramp:
176
+ display: { size: 28px, line: 33px, weight: 600, family: display, tracking: -0.025em }
177
+ h1: { size: 24px, line: 29px, weight: 600, family: sans, tracking: -0.02em }
178
+ h2: { size: 20px, line: 25px, weight: 600, family: sans, tracking: -0.015em }
179
+ body: { size: 15px, line: 21px, weight: 400, family: sans }
180
+ small: { size: 14px, line: 20px, weight: 400, family: sans }
181
+ caption: { size: 13px, line: 16px, weight: 400, family: sans, tracking: 0.01em }
182
+ data: { size: 13px, line: 20px, weight: 400, family: mono, features: [tnum] }
183
+ register-scope: { display: [page-title, empty-state, auth], sans: [chrome, controls, body], mono: [data, ids, codes, timestamps, logs] }
184
+ elevation:
185
+ radius: { sm: 8px, md: 10px, lg: 14px }
186
+ hairline: border
187
+ shadow:
188
+ overlay: "0 10px 32px oklch(0.05 0.01 250 / 0.55)"
189
+ popover: "0 4px 16px oklch(0.05 0.01 250 / 0.4)"
190
+ dark-ladder: { background: 0.15, raised: 0.21, overlay: 0.27, hue-held: 250 }
191
+ motion:
192
+ duration: { press: 120ms, fade: 160ms, panel: 260ms }
193
+ easing: { standard: "cubic-bezier(0.2, 0, 0, 1)", exit: "cubic-bezier(0.4, 0, 1, 1)" }
194
+ entrance-never: ease-in
195
+ identity-moments: [auth, first-run-empty]
196
+ iconography: { set: lucide, stroke: 1.5px, grid: [16px, 20px] }
197
+ charts:
198
+ categorical: [chart-1, chart-2, chart-3, chart-4, chart-5]
199
+ sequential: { from: background, to: chart-1 }
200
+ diverging: { negative: destructive, mid: muted, positive: success }
201
+ layout: { base: 4px, sidebar: [248px, 56px], topbar: 56px, side-panel: [440px, 640px], content-max: 1400px }
202
+ ```
@@ -0,0 +1,205 @@
1
+ ---
2
+ schema: design-md/v2
3
+ id: hashicorp
4
+ tier: brand
5
+ segments: [infra, devops, enterprise]
6
+ keywords: [pure-black, charcoal, engineered, blue, multi-product, flat]
7
+ sourced: 2026-07-12
8
+ sources: "design-md/v1 hashicorp entry (2026-07-04); 2026-07-12 re-audit of HashiCorp public brand; Inter substitutes the licensed HashiCorp Sans; JetBrains Mono for data; the pure-black canvas is the brand's recorded override of the no-pure-black floor; the blue action fill carries near-black ink at operator contrast (marketing white-on-blue is large-text scale)"
9
+ license: open
10
+ ---
11
+
12
+ # hashicorp — a midnight data-center corridor of matte black racks
13
+
14
+ ## 1 Visual Theme
15
+ A data-center corridor at night: matte pure-black racks in ordered rows, charcoal panel
16
+ faces one lift above the void, felt-thin seams between them, and a single blue status LED
17
+ per rack meaning *healthy*. Dark by default — and literally pure black: the `background`
18
+ is `#000000` by recorded brand override (the doctrine's no-pure-black floor yields to the
19
+ brand token; noted plainly here, and the neutral-tint rule yields with it). Emphatically
20
+ flat: the charcoal ladder, hairlines, weight, and white-on-black contrast carry
21
+ everything — never shadow. The light theme is the opt-in counterpart, drawn from the
22
+ brand's light documentation surfaces.
23
+
24
+ ## 2 Color Roles
25
+ White ink `foreground` on the pure-black `background`; `card` is the charcoal surface-1
26
+ lift, `secondary`/`accent` the surface-2 rung for hover and selection, `muted` the faint
27
+ inset well *below* the canvas. `primary` accent-blue is the one product-neutral chromatic
28
+ hue — the primary action, the focus `ring`, active nav; on the fill it carries near-black
29
+ ink at operator contrast (the marketing white-on-blue lives at large-text scale). The
30
+ per-product palette — Terraform purple, Vault yellow, Waypoint cyan, Nomad green,
31
+ Boundary coral — carries no UI role; it draws the chart ramp. Status hues speak status.
32
+
33
+ ## 3 Typography
34
+ Inter (the open substitute for the geometric-humanist HashiCorp Sans) — one family across
35
+ the whole hierarchy, headings at 600 with tight tracking, the 700 display weights left
36
+ behind — over JetBrains Mono, the operator's reclaim for IDs, codes, timestamps, and log
37
+ lines. Register scope: display register for page titles, empty states, and auth; the
38
+ uppercase eyebrow above meaningful sections; numeric columns `tabular-nums`.
39
+
40
+ ## 4 Component Stylings
41
+ Buttons `radius-sm` (6px), blue `primary` fill with ink label, never a pill; secondary on
42
+ the surface-2 charcoal with hairline; the brand's white-on-black CTA is a legitimate
43
+ monochrome variant for a lone hero action. Inputs on `background` with the strong
44
+ hairline; focus draws the blue `ring` at 2px. Cards are the charcoal lift off black on a
45
+ hairline — the lift is the depth. Table rows hover to `accent` with a blue left
46
+ indicator on selection. Detail opens in the side panel; badges take hairline with status
47
+ fills, uppercase captions; pill radius is badges-only.
48
+
49
+ ## 5 Layout
50
+ 8px base; sidebar 256/56px; topbar 64px (the brand's nav height); side panel 440/640px;
51
+ content max 1440px. Density standard, stepping denser per archetype; the 96px marketing
52
+ rhythm and full-bleed CTA banners stay behind.
53
+
54
+ ## 6 Depth
55
+ Shadowless. The ladder is the system: `background` pure black, `card` surface-1 at 0.21
56
+ L, `secondary` surface-2 at 0.26, hairline charcoal-3 seams, hue held at 264 — the
57
+ `muted` well recesses below the canvas. Overlays earn only the faintest blue-tinted lift
58
+ above a scrim. Focus is the 2px blue `ring`; three z-levels: content, chrome, overlay.
59
+
60
+ ## 7 Motion
61
+ Machine-room steady. Named moments: `rack-lift` (hover/selection rung step, 100ms),
62
+ `panel-slide` (side panel, 220ms, interruptible), `plan-press` (primary-action press,
63
+ 120ms). Physicality is granted only to auth and first-run empty states; run queues and
64
+ log streams update without animation; nothing moves on keyboard-initiated actions.
65
+
66
+ ## 8 Iconography & Charts
67
+ Lucide, 1.5px stroke, 16/20px grid, `muted-foreground` default. Charts: hairline axes on
68
+ black, no gridline fills; the categorical ramp is the per-product palette's one
69
+ legitimate home — Terraform purple, Vault yellow, Waypoint cyan, Nomad green, Boundary
70
+ coral (`chart-1..5`); tooltips on `surface-overlay` with mono numerals.
71
+
72
+ ## 9 Voice
73
+ Infrastructure formal: precise nouns, states named exactly, no exclamation. "Queue plan" ·
74
+ "No drift detected — 42 workspaces healthy" · "Apply blocked: this policy check requires
75
+ a soft-mandatory override."
76
+
77
+ ## 10 Do's & Don'ts
78
+ Do anchor on the pure-black canvas — it is deliberate, not a near-black to be softened.
79
+ Do spend blue once per surface: primary action, focus ring, active nav. Do reclaim mono
80
+ for every ID, code, timestamp, and log line. Do draw chart series from the product
81
+ palette — the one place multiple hues are legitimate. Don't rebuild the per-product
82
+ accent system as chrome or fill a surface with a product hue. Don't pill controls. Don't
83
+ signal elevation with shadows, and never pair a display-only face with a different body
84
+ family — this brand is one family across the hierarchy.
85
+
86
+ ## 11 Responsive
87
+ 375: sidebar → off-canvas drawer; side panel → full sheet; density holds. 768: sidebar
88
+ collapses to the icon rail; tables scroll their overflow. 1024: two-pane queue+detail
89
+ holds. 1440: forms cap; tables and dashboards use the full width.
90
+
91
+ ## 12 Agent Prompt Guide
92
+ Wear the pure-black canvas by default; cards are the charcoal lift, not white. Spend blue
93
+ once — if two things want it, one is not primary. Headings at 600 with tight tracking,
94
+ one family; eyebrows uppercase above sections. The product palette exists only inside
95
+ charts. Depth is the ladder plus hairlines, never shadow. Both themes are authored —
96
+ consult the block, never derive.
97
+
98
+ ```yaml design-values
99
+ color:
100
+ light:
101
+ background: oklch(0.99 0.005 264)
102
+ foreground: oklch(0.2 0.01 264)
103
+ card: oklch(0.995 0.005 264)
104
+ card-foreground: oklch(0.2 0.01 264)
105
+ popover: oklch(0.995 0.005 264)
106
+ popover-foreground: oklch(0.2 0.01 264)
107
+ primary: oklch(0.53 0.22 259)
108
+ primary-foreground: oklch(0.98 0.005 264)
109
+ secondary: oklch(0.945 0.007 264)
110
+ secondary-foreground: oklch(0.24 0.01 264)
111
+ muted: oklch(0.955 0.006 264)
112
+ muted-foreground: oklch(0.5 0.015 266)
113
+ accent: oklch(0.93 0.01 260)
114
+ accent-foreground: oklch(0.22 0.01 264)
115
+ destructive: oklch(0.55 0.21 29)
116
+ destructive-foreground: oklch(0.98 0.008 29)
117
+ success: oklch(0.6 0.14 163)
118
+ warning: oklch(0.75 0.15 91)
119
+ border: oklch(0.89 0.008 264)
120
+ input: oklch(0.89 0.008 264)
121
+ ring: oklch(0.53 0.22 259)
122
+ surface-raised: oklch(0.985 0.005 264)
123
+ surface-overlay: oklch(0.995 0.005 264)
124
+ chart-1: oklch(0.511 0.184 302)
125
+ chart-2: oklch(0.72 0.15 91)
126
+ chart-3: oklch(0.6 0.11 198)
127
+ chart-4: oklch(0.58 0.14 163)
128
+ chart-5: oklch(0.6 0.19 22)
129
+ sidebar: oklch(0.965 0.006 264)
130
+ sidebar-foreground: oklch(0.24 0.01 264)
131
+ sidebar-primary: oklch(0.53 0.22 259)
132
+ sidebar-primary-foreground: oklch(0.98 0.005 264)
133
+ sidebar-accent: oklch(0.93 0.01 260)
134
+ sidebar-accent-foreground: oklch(0.22 0.01 264)
135
+ sidebar-border: oklch(0.89 0.008 264)
136
+ sidebar-ring: oklch(0.53 0.22 259)
137
+ dark:
138
+ background: oklch(0 0 0)
139
+ foreground: oklch(0.97 0.005 264)
140
+ card: oklch(0.21 0.013 264)
141
+ card-foreground: oklch(0.97 0.005 264)
142
+ popover: oklch(0.26 0.016 264)
143
+ popover-foreground: oklch(0.95 0.005 264)
144
+ primary: oklch(0.639 0.195 257)
145
+ primary-foreground: oklch(0.12 0.01 257)
146
+ secondary: oklch(0.26 0.016 264)
147
+ secondary-foreground: oklch(0.93 0.006 264)
148
+ muted: oklch(0.16 0.009 264)
149
+ muted-foreground: oklch(0.775 0.011 262)
150
+ accent: oklch(0.26 0.016 264)
151
+ accent-foreground: oklch(0.95 0.005 264)
152
+ destructive: oklch(0.57 0.21 29)
153
+ destructive-foreground: oklch(0.98 0.008 29)
154
+ success: oklch(0.742 0.16 163)
155
+ warning: oklch(0.872 0.171 91)
156
+ border: oklch(0.36 0.014 274)
157
+ input: oklch(0.36 0.014 274)
158
+ ring: oklch(0.639 0.195 257)
159
+ surface-raised: oklch(0.21 0.013 264)
160
+ surface-overlay: oklch(0.26 0.016 264)
161
+ chart-1: oklch(0.62 0.18 302)
162
+ chart-2: oklch(0.872 0.171 91)
163
+ chart-3: oklch(0.751 0.126 198)
164
+ chart-4: oklch(0.742 0.16 163)
165
+ chart-5: oklch(0.652 0.202 22)
166
+ sidebar: oklch(0.12 0.009 264)
167
+ sidebar-foreground: oklch(0.93 0.006 264)
168
+ sidebar-primary: oklch(0.639 0.195 257)
169
+ sidebar-primary-foreground: oklch(0.12 0.01 257)
170
+ sidebar-accent: oklch(0.21 0.013 264)
171
+ sidebar-accent-foreground: oklch(0.95 0.005 264)
172
+ sidebar-border: oklch(0.26 0.014 264)
173
+ sidebar-ring: oklch(0.639 0.195 257)
174
+ typography:
175
+ display: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [600] }
176
+ sans: { family: "Inter Variable", fallback: "system-ui, sans-serif", weights: [400, 500, 600] }
177
+ mono: { family: "JetBrains Mono Variable", fallback: "ui-monospace, monospace", weights: [400] }
178
+ ramp:
179
+ display: { size: 28px, line: 34px, weight: 600, family: display, tracking: -0.02em }
180
+ h1: { size: 24px, line: 30px, weight: 600, family: sans, tracking: -0.015em }
181
+ h2: { size: 18px, line: 24px, weight: 600, family: sans, tracking: -0.01em }
182
+ body: { size: 14px, line: 21px, weight: 400, family: sans }
183
+ small: { size: 13px, line: 18px, weight: 400, family: sans }
184
+ caption: { size: 12px, line: 17px, weight: 600, family: sans, tracking: 0.05em, transform: uppercase }
185
+ data: { size: 13px, line: 20px, weight: 400, family: mono, features: [tnum] }
186
+ register-scope: { display: [page-title, empty-state, auth], sans: [chrome, controls, body], mono: [data, ids, codes, timestamps, logs] }
187
+ elevation:
188
+ radius: { sm: 6px, md: 8px, lg: 12px }
189
+ hairline: border
190
+ shadow:
191
+ overlay: "0 10px 32px oklch(0.1 0.015 264 / 0.55)"
192
+ popover: "0 4px 16px oklch(0.1 0.015 264 / 0.4)"
193
+ dark-ladder: { background: 0.0, raised: 0.21, overlay: 0.26, hue-held: 264 }
194
+ motion:
195
+ duration: { press: 120ms, fade: 150ms, panel: 220ms }
196
+ easing: { standard: "cubic-bezier(0.2, 0, 0, 1)", exit: "cubic-bezier(0.4, 0, 1, 1)" }
197
+ entrance-never: ease-in
198
+ identity-moments: [auth, first-run-empty]
199
+ iconography: { set: lucide, stroke: 1.5px, grid: [16px, 20px] }
200
+ charts:
201
+ categorical: [chart-1, chart-2, chart-3, chart-4, chart-5]
202
+ sequential: { from: background, to: chart-3 }
203
+ diverging: { negative: destructive, mid: muted, positive: chart-4 }
204
+ layout: { base: 8px, sidebar: [256px, 56px], topbar: 64px, side-panel: [440px, 640px], content-max: 1440px }
205
+ ```