@nurix/etna 0.19.10 → 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 (491) 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/data/harnesses/discussion/CLAUDE.md +1 -1
  253. package/data/harnesses/discussion/agents/discussion-baseline.md +27 -2
  254. package/data/harnesses/discussion/harness.json +2 -2
  255. package/data/harnesses/discussion/rules/artifacts.md +2 -0
  256. package/data/harnesses/discussion/rules/method.md +5 -1
  257. package/package.json +1 -1
  258. package/data/harnesses/code/skills/design/data/catalog/rules.csv +0 -137
  259. package/data/harnesses/code/skills/design/data/combinations/Readme.md +0 -33
  260. package/data/harnesses/code/skills/design/data/combinations/accent-presets.md +0 -113
  261. package/data/harnesses/code/skills/design/data/combinations/charts.csv +0 -33
  262. package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +0 -448
  263. package/data/harnesses/code/skills/design/data/combinations/icons.csv +0 -157
  264. package/data/harnesses/code/skills/design/data/combinations/landing.csv +0 -38
  265. package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +0 -2001
  266. package/data/harnesses/code/skills/design/data/combinations/manifest.json +0 -330
  267. package/data/harnesses/code/skills/design/data/combinations/motion.csv +0 -10
  268. package/data/harnesses/code/skills/design/data/combinations/palettes.csv +0 -92
  269. package/data/harnesses/code/skills/design/data/combinations/product-router.csv +0 -80
  270. package/data/harnesses/code/skills/design/data/combinations/styles.csv +0 -67
  271. package/data/harnesses/code/skills/design/data/combinations/typography.csv +0 -64
  272. package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +0 -106
  273. package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +0 -154
  274. package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +0 -151
  275. package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +0 -139
  276. package/data/harnesses/code/skills/design/data/design-md/library/apple.md +0 -139
  277. package/data/harnesses/code/skills/design/data/design-md/library/binance.md +0 -140
  278. package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +0 -140
  279. package/data/harnesses/code/skills/design/data/design-md/library/cal.md +0 -140
  280. package/data/harnesses/code/skills/design/data/design-md/library/clay.md +0 -139
  281. package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +0 -139
  282. package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +0 -147
  283. package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +0 -156
  284. package/data/harnesses/code/skills/design/data/design-md/library/composio.md +0 -138
  285. package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +0 -138
  286. package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +0 -137
  287. package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -148
  288. package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -141
  289. package/data/harnesses/code/skills/design/data/design-md/library/framer.md +0 -156
  290. package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +0 -140
  291. package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +0 -153
  292. package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +0 -158
  293. package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +0 -156
  294. package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -122
  295. package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +0 -140
  296. package/data/harnesses/code/skills/design/data/design-md/library/meta.md +0 -139
  297. package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +0 -139
  298. package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +0 -139
  299. package/data/harnesses/code/skills/design/data/design-md/library/miro.md +0 -153
  300. package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +0 -140
  301. package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +0 -155
  302. package/data/harnesses/code/skills/design/data/design-md/library/notion.md +0 -140
  303. package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +0 -141
  304. package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +0 -145
  305. package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +0 -142
  306. package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +0 -152
  307. package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +0 -137
  308. package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +0 -140
  309. package/data/harnesses/code/skills/design/data/design-md/library/resend.md +0 -170
  310. package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +0 -145
  311. package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -137
  312. package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +0 -168
  313. package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +0 -163
  314. package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +0 -147
  315. package/data/harnesses/code/skills/design/data/design-md/library/slack.md +0 -158
  316. package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +0 -171
  317. package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +0 -166
  318. package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +0 -160
  319. package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +0 -173
  320. package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +0 -145
  321. package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +0 -153
  322. package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +0 -167
  323. package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +0 -140
  324. package/data/harnesses/code/skills/design/data/design-md/library/uber.md +0 -140
  325. package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +0 -140
  326. package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +0 -130
  327. package/data/harnesses/code/skills/design/data/design-md/library/warp.md +0 -140
  328. package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +0 -140
  329. package/data/harnesses/code/skills/design/data/design-md/library/wired.md +0 -139
  330. package/data/harnesses/code/skills/design/data/design-md/library/wise.md +0 -137
  331. package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +0 -138
  332. package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +0 -158
  333. package/data/harnesses/code/skills/design/data/design-md/nurix.md +0 -138
  334. package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +0 -695
  335. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +0 -20
  336. package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +0 -1272
  337. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +0 -20
  338. package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +0 -1268
  339. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +0 -20
  340. package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +0 -1273
  341. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +0 -20
  342. package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +0 -1262
  343. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +0 -20
  344. package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +0 -1257
  345. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +0 -20
  346. package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +0 -1270
  347. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +0 -20
  348. package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +0 -1270
  349. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +0 -20
  350. package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +0 -1261
  351. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +0 -20
  352. package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +0 -1268
  353. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +0 -20
  354. package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +0 -1281
  355. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +0 -20
  356. package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +0 -1262
  357. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +0 -20
  358. package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +0 -1271
  359. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +0 -20
  360. package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +0 -1276
  361. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +0 -20
  362. package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +0 -1293
  363. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +0 -20
  364. package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +0 -1270
  365. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +0 -20
  366. package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +0 -1276
  367. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +0 -20
  368. package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +0 -1267
  369. package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +0 -251
  370. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +0 -20
  371. package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +0 -1273
  372. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +0 -20
  373. package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +0 -1286
  374. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +0 -20
  375. package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +0 -1290
  376. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +0 -20
  377. package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +0 -1270
  378. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +0 -23
  379. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +0 -599
  380. package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +0 -1272
  381. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +0 -20
  382. package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +0 -1267
  383. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +0 -20
  384. package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +0 -1289
  385. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +0 -20
  386. package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +0 -1258
  387. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +0 -20
  388. package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +0 -1284
  389. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +0 -20
  390. package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +0 -1291
  391. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +0 -20
  392. package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +0 -1263
  393. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +0 -20
  394. package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +0 -1270
  395. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +0 -20
  396. package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +0 -1261
  397. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +0 -20
  398. package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +0 -1209
  399. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +0 -20
  400. package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +0 -1265
  401. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +0 -20
  402. package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +0 -1253
  403. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +0 -20
  404. package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +0 -1268
  405. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +0 -20
  406. package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +0 -1261
  407. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +0 -20
  408. package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +0 -1263
  409. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +0 -20
  410. package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +0 -1266
  411. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +0 -23
  412. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +0 -623
  413. package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +0 -1276
  414. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +0 -20
  415. package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +0 -1264
  416. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +0 -20
  417. package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +0 -1268
  418. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +0 -20
  419. package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +0 -1270
  420. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +0 -20
  421. package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +0 -1288
  422. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +0 -20
  423. package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +0 -1272
  424. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +0 -20
  425. package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +0 -1265
  426. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +0 -20
  427. package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +0 -1287
  428. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +0 -20
  429. package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +0 -1286
  430. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +0 -20
  431. package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +0 -1285
  432. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +0 -20
  433. package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +0 -1287
  434. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +0 -20
  435. package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +0 -1278
  436. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +0 -20
  437. package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +0 -1269
  438. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +0 -20
  439. package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +0 -1285
  440. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +0 -20
  441. package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +0 -1303
  442. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +0 -20
  443. package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +0 -1274
  444. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +0 -20
  445. package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +0 -1296
  446. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +0 -23
  447. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +0 -612
  448. package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +0 -1282
  449. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +0 -20
  450. package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +0 -1287
  451. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +0 -20
  452. package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +0 -1268
  453. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +0 -20
  454. package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +0 -1276
  455. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +0 -20
  456. package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +0 -1273
  457. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +0 -20
  458. package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +0 -1296
  459. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +0 -20
  460. package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +0 -1286
  461. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +0 -249
  462. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +0 -249
  463. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +0 -225
  464. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +0 -249
  465. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +0 -224
  466. package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +0 -249
  467. package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +0 -88
  468. package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +0 -132
  469. package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +0 -76
  470. package/data/harnesses/code/skills/design/references/create.md +0 -173
  471. package/data/harnesses/code/skills/design/references/diagnosis.md +0 -108
  472. package/data/harnesses/code/skills/design/references/hard-rules.md +0 -177
  473. package/data/harnesses/code/skills/design/references/improve.md +0 -116
  474. package/data/harnesses/code/skills/design/references/interaction.md +0 -77
  475. package/data/harnesses/code/skills/design/references/introspect.md +0 -100
  476. package/data/harnesses/code/skills/design/references/lifecycle.md +0 -73
  477. package/data/harnesses/code/skills/design/references/personality.md +0 -575
  478. package/data/harnesses/code/skills/design/references/structure.md +0 -159
  479. package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +0 -1312
  480. package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +0 -1498
  481. package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +0 -551
  482. package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +0 -1092
  483. package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +0 -26
  484. package/data/harnesses/code/skills/design/scripts/lib/vocabulary.mjs +0 -65
  485. package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +0 -538
  486. package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +0 -312
  487. package/data/harnesses/code/skills/design/scripts/render-rung.mjs +0 -890
  488. package/data/harnesses/code/skills/design/scripts/scaffold.mjs +0 -769
  489. package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +0 -675
  490. package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +0 -164
  491. package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +0 -439
@@ -1,64 +0,0 @@
1
- id,pairing,tier,heading_family,body_family,mono_family,contrast,mood,best_for,heading_weights,body_weights,google_fonts_css,notes,css-import,tailwind-config,display-size-hint
2
- 1,Minimal Swiss,operator-active,Inter,Inter,JetBrains Mono,sans+sans,"minimal, neutral, functional, legible, systematic","dashboards, admin panels, data tables, design systems, internal tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap,"One neutral grotesque carries the whole hierarchy through weight alone, which is the safest default for a dense operator console.",@import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Inter', 'sans-serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
3
- 2,Friendly SaaS,operator-active,Plus Jakarta Sans,Plus Jakarta Sans,JetBrains Mono,sans+sans,"approachable, modern, warm, professional, versatile","SaaS consoles, B2B web apps, settings pages, productivity tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap,Plus Jakarta Sans keeps a single-family setup readable while adding a touch more warmth than Inter for softer product surfaces.,@import '@fontsource/plus-jakarta-sans/400.css'; @import '@fontsource/plus-jakarta-sans/500.css'; @import '@fontsource/plus-jakarta-sans/600.css'; @import '@fontsource/plus-jakarta-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Plus Jakarta Sans', 'sans-serif'], body: ['Plus Jakarta Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
4
- 3,Financial Trust,operator-active,IBM Plex Sans,IBM Plex Sans,IBM Plex Mono,sans+sans,"trustworthy, corporate, precise, serious, tabular","banking back-office, fintech admin, ledgers, reporting, enterprise apps",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,"IBM Plex Sans reads calmly at small sizes and pairs cleanly with its own mono for figure columns, so numbers and labels feel of one voice.",@import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['IBM Plex Sans', 'sans-serif'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
5
- 4,Modern Neutral,operator-active,Manrope,Manrope,JetBrains Mono,sans+sans,"clean, contemporary, premium, balanced, quiet","product dashboards, analytics UIs, marketing-adjacent consoles, portals",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap,"Manrope splits the difference between geometric and humanist, giving a crisp yet friendly single-family system for polished internal products.",@import '@fontsource/manrope/400.css'; @import '@fontsource/manrope/500.css'; @import '@fontsource/manrope/600.css'; @import '@fontsource/manrope/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Manrope', 'sans-serif'], body: ['Manrope', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
6
- 5,Premium Sans,operator-active,DM Sans,DM Sans,Space Mono,sans+sans,"premium, tidy, geometric, understated, modern","startup consoles, low-chrome apps, forms, focused single-column tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap,"DM Sans stays compact and even in color, so long forms and settings screens hold together without a second family.",@import '@fontsource/dm-sans/400.css'; @import '@fontsource/dm-sans/500.css'; @import '@fontsource/dm-sans/600.css'; @import '@fontsource/dm-sans/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['DM Sans', 'sans-serif'], body: ['DM Sans', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
7
- 6,Source Workhorse,operator-active,Source Sans 3,Source Sans 3,Source Code Pro,sans+sans,"utilitarian, readable, open-source, dependable, plain","documentation UIs, content admins, help centers, ticketing back-ends",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap,Source Sans 3 is an unfussy reading sans that scales from field labels to paragraph help text within one file.,@import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/source-code-pro/400.css'; @import '@fontsource/source-code-pro/500.css';,"fontFamily: { heading: ['Source Sans 3', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['Source Code Pro', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
8
- 7,Material Console,operator-active,Roboto,Roboto,Roboto Mono,sans+sans,"familiar, android, systematic, adaptive, plain","Android-adjacent tools, cross-platform admin, MD3 apps, embedded dashboards",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap,"Roboto is the Material default operators already recognize, and pairing it with Roboto Mono keeps data cells in the same family.",@import '@fontsource/roboto/400.css'; @import '@fontsource/roboto/500.css'; @import '@fontsource/roboto/600.css'; @import '@fontsource/roboto/700.css'; @import '@fontsource/roboto-mono/400.css'; @import '@fontsource/roboto-mono/500.css';,"fontFamily: { heading: ['Roboto', 'sans-serif'], body: ['Roboto', 'sans-serif'], mono: ['Roboto Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
9
- 8,Accessibility First,operator-active,Atkinson Hyperlegible,Atkinson Hyperlegible,IBM Plex Mono,sans+sans,"accessible, legible, inclusive, high-clarity, plain","accessibility-critical tools, healthcare, government back-office, inclusive design",700,400;700,https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&display=swap,"Atkinson Hyperlegible pulls apart easily confused letterforms, which matters when operators scan identifiers and codes all day.",@import '@fontsource/atkinson-hyperlegible/400.css'; @import '@fontsource/atkinson-hyperlegible/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Atkinson Hyperlegible', 'sans-serif'], body: ['Atkinson Hyperlegible', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
10
- 9,Modern Professional,operator-active,Poppins,Open Sans,JetBrains Mono,sans+sans,"professional, friendly, corporate, clean, approachable","corporate apps, business dashboards, professional services, portals",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Open+Sans:wght@400;500;600;700&display=swap,Geometric Poppins headings sit above humanist Open Sans body so section titles get presence without hurting long-run readability.,@import '@fontsource/poppins/500.css'; @import '@fontsource/poppins/600.css'; @import '@fontsource/poppins/700.css'; @import '@fontsource/open-sans/400.css'; @import '@fontsource/open-sans/500.css'; @import '@fontsource/open-sans/600.css'; @import '@fontsource/open-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Poppins', 'sans-serif'], body: ['Open Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
11
- 10,Tech Startup,operator-active,Space Grotesk,DM Sans,JetBrains Mono,sans+sans,"technical, modern, distinctive, product, confident","developer products, technical dashboards, SaaS consoles, data tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap,Space Grotesk lends headings a little engineered character while DM Sans keeps the body plain and dense-friendly.,@import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/dm-sans/400.css'; @import '@fontsource/dm-sans/500.css'; @import '@fontsource/dm-sans/600.css'; @import '@fontsource/dm-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['DM Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
12
- 11,Geometric Modern,operator-active,Outfit,Work Sans,JetBrains Mono,sans+sans,"geometric, contemporary, balanced, versatile, clean","general admin, internal portals, catalog tools, landing-adjacent consoles",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700&family=Work+Sans:wght@400;500;600;700&display=swap,"Outfit gives crisp geometric headings and Work Sans supplies a slightly warmer, workmanlike body underneath.",@import '@fontsource/outfit/500.css'; @import '@fontsource/outfit/600.css'; @import '@fontsource/outfit/700.css'; @import '@fontsource/work-sans/400.css'; @import '@fontsource/work-sans/500.css'; @import '@fontsource/work-sans/600.css'; @import '@fontsource/work-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Outfit', 'sans-serif'], body: ['Work Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
13
- 12,Corporate Trust,operator-active,Lexend,Source Sans 3,IBM Plex Mono,sans+sans,"readable, accessible, corporate, calm, dependable","enterprise apps, finance, healthcare, accessibility-focused back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Lexend:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap,"Lexend was tuned to ease reading speed, so it earns the heading role over a plain Source Sans 3 body in text-heavy consoles.",@import '@fontsource/lexend/500.css'; @import '@fontsource/lexend/600.css'; @import '@fontsource/lexend/700.css'; @import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Lexend', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
14
- 13,Medical Clean,operator-active,Figtree,Noto Sans,IBM Plex Mono,sans+sans,"clean, clinical, accessible, calm, professional","healthcare admin, clinical tools, records systems, patient portals",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Figtree:wght@500;600;700&family=Noto+Sans:wght@400;500;600;700&display=swap,Figtree stays neutral and clear for headings while Noto Sans covers the wide glyph range clinical data tends to demand.,@import '@fontsource/figtree/500.css'; @import '@fontsource/figtree/600.css'; @import '@fontsource/figtree/700.css'; @import '@fontsource/noto-sans/400.css'; @import '@fontsource/noto-sans/500.css'; @import '@fontsource/noto-sans/600.css'; @import '@fontsource/noto-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Figtree', 'sans-serif'], body: ['Noto Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
15
- 14,Commerce Clean,operator-active,Rubik,Nunito Sans,JetBrains Mono,sans+sans,"friendly, retail, clean, approachable, orderly","back-office commerce, order management, catalog admin, fulfillment tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Rubik:wght@500;600;700&family=Nunito+Sans:wght@400;500;600;700&display=swap,Rubik's rounded corners give order screens a little friendliness while Nunito Sans keeps line items quietly legible.,@import '@fontsource/rubik/500.css'; @import '@fontsource/rubik/600.css'; @import '@fontsource/rubik/700.css'; @import '@fontsource/nunito-sans/400.css'; @import '@fontsource/nunito-sans/500.css'; @import '@fontsource/nunito-sans/600.css'; @import '@fontsource/nunito-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Rubik', 'sans-serif'], body: ['Nunito Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
16
- 15,Minimalist Portfolio,operator-active,Space Grotesk,Archivo,Space Mono,sans+sans,"minimal, editorial, crisp, design-forward, restrained","design tooling, asset managers, internal editors, review consoles",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Archivo:wght@400;500;600;700&display=swap,Space Grotesk headings stay distinctive against Archivo's tighter grotesque body for tools that want a designed feel.,@import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/archivo/400.css'; @import '@fontsource/archivo/500.css'; @import '@fontsource/archivo/600.css'; @import '@fontsource/archivo/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['Archivo', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
17
- 16,Government Public,operator-active,Public Sans,Source Sans 3,IBM Plex Mono,sans+sans,"civic, neutral, accessible, plain, official","government dashboards, public-sector admin, compliance tools, records",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Public+Sans:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap,"Public Sans carries a civic, standards-driven tone for headings that Source Sans 3 supports without drawing attention.",@import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; @import '@fontsource/public-sans/700.css'; @import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Public Sans', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
18
- 17,Technical Data,operator-active,Exo,IBM Plex Sans,Roboto Mono,sans+sans,"technical, engineered, precise, data, modern","engineering dashboards, monitoring, telemetry consoles, ops tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Exo:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,Exo adds a subtle engineered edge to headings while IBM Plex Sans keeps dense telemetry labels grounded and readable.,@import '@fontsource/exo/500.css'; @import '@fontsource/exo/600.css'; @import '@fontsource/exo/700.css'; @import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css'; @import '@fontsource/roboto-mono/400.css'; @import '@fontsource/roboto-mono/500.css';,"fontFamily: { heading: ['Exo', 'sans-serif'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['Roboto Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
19
- 18,Condensed Dense,operator-active,Barlow Condensed,Barlow,JetBrains Mono,sans+sans,"condensed, dense, efficient, compact, utilitarian","space-tight dashboards, dense tables, control panels, logistics tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Barlow:wght@400;500;600;700&display=swap,Barlow Condensed packs long headings into narrow columns and shares a family with Barlow body so the two never clash.,@import '@fontsource/barlow-condensed/500.css'; @import '@fontsource/barlow-condensed/600.css'; @import '@fontsource/barlow-condensed/700.css'; @import '@fontsource/barlow/400.css'; @import '@fontsource/barlow/500.css'; @import '@fontsource/barlow/600.css'; @import '@fontsource/barlow/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Barlow Condensed', 'sans-serif'], body: ['Barlow', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3-3.5rem/600-700/0/lh1.05; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
20
- 19,Developer Mono,operator-active,JetBrains Mono,IBM Plex Sans,JetBrains Mono,mono+sans,"developer, technical, precise, code, functional","developer tools, CI dashboards, config editors, log viewers",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,JetBrains Mono headings and labels signal a code context while IBM Plex Sans keeps surrounding prose comfortable to read.,@import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css'; @import '@fontsource/jetbrains-mono/700.css'; @import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css';,"fontFamily: { heading: ['JetBrains Mono', 'monospace'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2-2.5rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
21
- 20,Dashboard Data,operator-active,Fira Code,Fira Sans,Fira Code,mono+sans,"analytics, technical, data, precise, cohesive","analytics dashboards, metric consoles, query tools, observability",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Fira+Code:wght@500;600;700&family=Fira+Sans:wght@400;500;600;700&display=swap,"The Fira family shares proportions across mono and sans, so figures in Fira Code sit naturally beside Fira Sans labels.",@import '@fontsource/fira-code/400.css'; @import '@fontsource/fira-code/500.css'; @import '@fontsource/fira-code/600.css'; @import '@fontsource/fira-code/700.css'; @import '@fontsource/fira-sans/400.css'; @import '@fontsource/fira-sans/500.css'; @import '@fontsource/fira-sans/600.css'; @import '@fontsource/fira-sans/700.css';,"fontFamily: { heading: ['Fira Code', 'monospace'], body: ['Fira Sans', 'sans-serif'], mono: ['Fira Code', 'monospace'] }",display 2-2.5rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
22
- 21,Academic Research,operator-active,Crimson Pro,Atkinson Hyperlegible,IBM Plex Mono,serif+sans,"scholarly, readable, accessible, considered, literate","research admin, academic tools, knowledge bases, review systems",500;600;700,400;700,https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@500;600;700&family=Atkinson+Hyperlegible:wght@400;700&display=swap,Crimson Pro gives headings a scholarly serif voice while Atkinson Hyperlegible keeps the body maximally clear for long reading.,@import '@fontsource/crimson-pro/500.css'; @import '@fontsource/crimson-pro/600.css'; @import '@fontsource/crimson-pro/700.css'; @import '@fontsource/atkinson-hyperlegible/400.css'; @import '@fontsource/atkinson-hyperlegible/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Crimson Pro', 'serif'], body: ['Atkinson Hyperlegible', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
23
- 22,News Editorial,operator-active,Newsreader,Roboto,Roboto Mono,serif+sans,"editorial, journalistic, readable, trustworthy, content-rich","content moderation, CMS back-ends, editorial dashboards, review queues",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Newsreader:wght@500;600;700&family=Roboto:wght@400;500;600;700&display=swap,"Newsreader is a text serif rather than a display face, so it heads content-heavy screens without tiring the reader, over a Roboto body.",@import '@fontsource/newsreader/500.css'; @import '@fontsource/newsreader/600.css'; @import '@fontsource/newsreader/700.css'; @import '@fontsource/roboto/400.css'; @import '@fontsource/roboto/500.css'; @import '@fontsource/roboto/600.css'; @import '@fontsource/roboto/700.css'; @import '@fontsource/roboto-mono/400.css'; @import '@fontsource/roboto-mono/500.css';,"fontFamily: { heading: ['Newsreader', 'serif'], body: ['Roboto', 'sans-serif'], mono: ['Roboto Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
24
- 23,Legal Records,operator-active,EB Garamond,Lato,IBM Plex Mono,serif+sans,"formal, authoritative, records, considered, traditional","legal ops tools, contract admin, records systems, compliance consoles",500;600;700,400;700,https://fonts.googleapis.com/css2?family=EB+Garamond:wght@500;600;700&family=Lato:wght@400;700&display=swap,"EB Garamond lends record screens a formal, document-like authority in headings that Lato keeps plainly readable in the body.",@import '@fontsource/eb-garamond/500.css'; @import '@fontsource/eb-garamond/600.css'; @import '@fontsource/eb-garamond/700.css'; @import '@fontsource/lato/400.css'; @import '@fontsource/lato/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['EB Garamond', 'serif'], body: ['Lato', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
25
- 24,Vietnamese Locale,operator-active,Be Vietnam Pro,Noto Sans,JetBrains Mono,sans+sans,"multilingual, vietnamese, readable, clean, localized","Vietnamese-market tools, multilingual admin, localized back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@500;600;700&family=Noto+Sans:wght@400;500;600;700&display=swap,Be Vietnam Pro handles full Vietnamese diacritics cleanly with Noto Sans as a broad fallback for mixed-script data.,@import '@fontsource/be-vietnam-pro/500.css'; @import '@fontsource/be-vietnam-pro/600.css'; @import '@fontsource/be-vietnam-pro/700.css'; @import '@fontsource/noto-sans/400.css'; @import '@fontsource/noto-sans/500.css'; @import '@fontsource/noto-sans/600.css'; @import '@fontsource/noto-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Be Vietnam Pro', 'sans-serif'], body: ['Noto Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
26
- 25,Japanese Locale,operator-active,Noto Serif JP,Noto Sans JP,JetBrains Mono,serif+sans,"japanese, multilingual, legible, localized, considered","Japanese-market admin, localized consoles, bilingual tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap,Noto Serif JP heads Japanese screens with a settled tone while Noto Sans JP keeps dense kana and kanji body text even.,@import '@fontsource/noto-serif-jp/500.css'; @import '@fontsource/noto-serif-jp/600.css'; @import '@fontsource/noto-serif-jp/700.css'; @import '@fontsource/noto-sans-jp/400.css'; @import '@fontsource/noto-sans-jp/500.css'; @import '@fontsource/noto-sans-jp/600.css'; @import '@fontsource/noto-sans-jp/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Serif JP', 'serif'], body: ['Noto Sans JP', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
27
- 26,Korean Locale,operator-active,Noto Sans KR,Noto Sans KR,JetBrains Mono,sans+sans,"korean, multilingual, clean, localized, readable","Korean-market tools, localized admin, bilingual back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&display=swap,A single Noto Sans KR system keeps Hangul hierarchy consistent across headings and body without a second face to tune.,@import '@fontsource/noto-sans-kr/400.css'; @import '@fontsource/noto-sans-kr/500.css'; @import '@fontsource/noto-sans-kr/600.css'; @import '@fontsource/noto-sans-kr/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans KR', 'sans-serif'], body: ['Noto Sans KR', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
28
- 27,Chinese Simplified Locale,operator-active,Noto Sans SC,Noto Sans SC,JetBrains Mono,sans+sans,"chinese, simplified, multilingual, clean, localized","mainland-market admin, localized consoles, bilingual tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap,"Noto Sans SC gives simplified-Chinese operators a full, even glyph set from labels to paragraphs in one family.",@import '@fontsource/noto-sans-sc/400.css'; @import '@fontsource/noto-sans-sc/500.css'; @import '@fontsource/noto-sans-sc/600.css'; @import '@fontsource/noto-sans-sc/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans SC', 'sans-serif'], body: ['Noto Sans SC', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
29
- 28,Arabic Locale,operator-active,Noto Naskh Arabic,Noto Sans Arabic,JetBrains Mono,serif+sans,"arabic, rtl, multilingual, localized, readable","Arabic-market admin, RTL dashboards, bilingual back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@500;600;700&family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap,Noto Naskh Arabic heads RTL screens with a traditional voice while Noto Sans Arabic keeps body and UI text modern and clear.,@import '@fontsource/noto-naskh-arabic/500.css'; @import '@fontsource/noto-naskh-arabic/600.css'; @import '@fontsource/noto-naskh-arabic/700.css'; @import '@fontsource/noto-sans-arabic/400.css'; @import '@fontsource/noto-sans-arabic/500.css'; @import '@fontsource/noto-sans-arabic/600.css'; @import '@fontsource/noto-sans-arabic/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Naskh Arabic', 'serif'], body: ['Noto Sans Arabic', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.3; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
30
- 29,Hebrew Locale,operator-active,Noto Sans Hebrew,Noto Sans Hebrew,JetBrains Mono,sans+sans,"hebrew, rtl, multilingual, localized, clean","Hebrew-market tools, RTL admin, bilingual back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+Hebrew:wght@400;500;600;700&display=swap,One Noto Sans Hebrew system keeps RTL hierarchy consistent and legible for Israeli-market internal tools.,@import '@fontsource/noto-sans-hebrew/400.css'; @import '@fontsource/noto-sans-hebrew/500.css'; @import '@fontsource/noto-sans-hebrew/600.css'; @import '@fontsource/noto-sans-hebrew/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans Hebrew', 'sans-serif'], body: ['Noto Sans Hebrew', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
31
- 30,Thai Locale,operator-active,Noto Sans Thai,Noto Sans Thai,JetBrains Mono,sans+sans,"thai, multilingual, readable, localized, clean","Thai-market admin, localized consoles, SEA back-office",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&display=swap,"Noto Sans Thai renders looped Thai script clearly at UI sizes, carrying both heading and body in one dependable family.",@import '@fontsource/noto-sans-thai/400.css'; @import '@fontsource/noto-sans-thai/500.css'; @import '@fontsource/noto-sans-thai/600.css'; @import '@fontsource/noto-sans-thai/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Sans Thai', 'sans-serif'], body: ['Noto Sans Thai', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.3; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
32
- 31,Chinese Traditional Locale,operator-active,Noto Serif TC,Noto Sans TC,JetBrains Mono,serif+sans,"chinese, traditional, multilingual, localized, considered","Taiwan and Hong Kong market admin, localized consoles, bilingual tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap,Noto Serif TC gives traditional-Chinese headings a measured tone with Noto Sans TC handling denser body text.,@import '@fontsource/noto-serif-tc/500.css'; @import '@fontsource/noto-serif-tc/600.css'; @import '@fontsource/noto-serif-tc/700.css'; @import '@fontsource/noto-sans-tc/400.css'; @import '@fontsource/noto-sans-tc/500.css'; @import '@fontsource/noto-sans-tc/600.css'; @import '@fontsource/noto-sans-tc/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Noto Serif TC', 'serif'], body: ['Noto Sans TC', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.2; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
33
- 32,Rounded Legible,operator-active,Nunito Sans,Nunito Sans,JetBrains Mono,sans+sans,"rounded, friendly, legible, calm, approachable","support consoles, CRM back-office, help desks, customer-facing admin",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&display=swap,Nunito Sans softens a support console's tone with gently rounded terminals while staying legible enough for all-day use.,@import '@fontsource/nunito-sans/400.css'; @import '@fontsource/nunito-sans/500.css'; @import '@fontsource/nunito-sans/600.css'; @import '@fontsource/nunito-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Nunito Sans', 'sans-serif'], body: ['Nunito Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
34
- 33,Grotesque Utility,operator-active,Karla,Karla,Space Mono,sans+sans,"grotesque, utilitarian, compact, plain, efficient","utility dashboards, config panels, small-footprint tools, forms",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Karla:wght@400;500;600;700&display=swap,"Karla is a tidy grotesque whose narrow set width fits more label text per row, useful when screen real estate is tight.",@import '@fontsource/karla/400.css'; @import '@fontsource/karla/500.css'; @import '@fontsource/karla/600.css'; @import '@fontsource/karla/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Karla', 'sans-serif'], body: ['Karla', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
35
- 34,Classic Elegant,operator-active,Playfair Display,Inter,JetBrains Mono,serif+sans,"elegant, luxury, editorial, high-contrast, premium","wealth and private-banking consoles, luxury commerce admin, premium client portals, editorial CMS",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap,"Playfair Display appears only at H1 and H2 over a working Inter body, giving premium verticals a confident display serif without costing table legibility.",@import '@fontsource/playfair-display/500.css'; @import '@fontsource/playfair-display/600.css'; @import '@fontsource/playfair-display/700.css'; @import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Playfair Display', 'serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
36
- 35,Playful Creative,operator-active,Fredoka,Nunito,Space Mono,display+sans,"playful, friendly, fun, rounded, warm","education platform admin, classroom management tools, kids-product back-office, learning dashboards",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Nunito:wght@400;500;600;700&display=swap,Rounded Fredoka headings keep an education product's operator surfaces on brand while the Nunito body stays legible through long grading and roster screens.,@import '@fontsource/fredoka/500.css'; @import '@fontsource/fredoka/600.css'; @import '@fontsource/fredoka/700.css'; @import '@fontsource/nunito/400.css'; @import '@fontsource/nunito/500.css'; @import '@fontsource/nunito/600.css'; @import '@fontsource/nunito/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Fredoka', 'sans-serif'], body: ['Nunito', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
37
- 36,Wellness Calm,operator-active,Lora,Raleway,IBM Plex Mono,serif+sans,"calm, wellness, organic, gentle, natural","wellness platform admin, clinic and spa back-office, care coordination tools, patient program consoles",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Raleway:wght@400;500;600;700&display=swap,Lora is a sturdy text serif that keeps wellness operators' headings calm while Raleway carries labels and body copy cleanly at UI sizes.,@import '@fontsource/lora/500.css'; @import '@fontsource/lora/600.css'; @import '@fontsource/lora/700.css'; @import '@fontsource/raleway/400.css'; @import '@fontsource/raleway/500.css'; @import '@fontsource/raleway/600.css'; @import '@fontsource/raleway/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Lora', 'serif'], body: ['Raleway', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
38
- 37,Fashion Forward,operator-active,Syne,Manrope,JetBrains Mono,sans+sans,"avant-garde, artistic, edgy, creative, bold","design tool consoles, creative agency admin, brand asset managers, review and approval tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Syne:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap,Syne's engineered quirk gives creative-tool headings an art-directed voice while Manrope keeps the working body plain and dense-friendly.,@import '@fontsource/syne/500.css'; @import '@fontsource/syne/600.css'; @import '@fontsource/syne/700.css'; @import '@fontsource/manrope/400.css'; @import '@fontsource/manrope/500.css'; @import '@fontsource/manrope/600.css'; @import '@fontsource/manrope/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Syne', 'sans-serif'], body: ['Manrope', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
39
- 38,SaaS Boutique,operator-active,Calistoga,Inter,JetBrains Mono,serif+sans,"boutique, warm, editorial, bold, characterful","boutique SaaS dashboards, analytics consoles, billing and usage surfaces, marketing ops tools",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Calistoga:wght@400&family=Inter:wght@400;500;600;700&display=swap,"Calistoga's warm single-weight display carries H1 and H2 personality while the full Inter system does the operator work underneath, a boutique-SaaS look that survives dense screens.",@import '@fontsource/calistoga/400.css'; @import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Calistoga', 'serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/400/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
40
- 39,Web3 Fintech,operator-active,Space Grotesk,Inter,JetBrains Mono,sans+sans,"crypto, fintech, technical, precise, confident","DeFi and wallet consoles, trading dashboards, token analytics, blockchain ops tools",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap,Space Grotesk headings give crypto consoles their engineered edge while Inter body and JetBrains Mono figures keep balances and hashes rigorously legible.,@import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/inter/400.css'; @import '@fontsource/inter/500.css'; @import '@fontsource/inter/600.css'; @import '@fontsource/inter/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['Inter', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/-0.02em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
41
- 40,Editorial Classic,dormant-marketing,Cormorant Garamond,Libre Baskerville,IBM Plex Mono,serif+serif,"editorial, literary, traditional, refined, bookish","publishing, literary magazines, long-form editorial, book sites",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Libre+Baskerville:wght@400;500;600;700&display=swap,"An all-serif pairing leans fully literary, which suits editorial publishing but is too low-contrast for scanning operator data.",@import '@fontsource/cormorant-garamond/500.css'; @import '@fontsource/cormorant-garamond/600.css'; @import '@fontsource/cormorant-garamond/700.css'; @import '@fontsource/libre-baskerville/400.css'; @import '@fontsource/libre-baskerville/500.css'; @import '@fontsource/libre-baskerville/600.css'; @import '@fontsource/libre-baskerville/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cormorant Garamond', 'serif'], body: ['Libre Baskerville', 'serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
42
- 41,Bold Statement,dormant-marketing,Bebas Neue,Source Sans 3,JetBrains Mono,display+sans,"bold, impactful, headline, dramatic, loud","marketing heroes, event pages, agencies, campaign landing",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=Source+Sans+3:wght@400;500;600;700&display=swap,"Bebas Neue is an all-caps display face for oversized headlines only, which is why it lives in the marketing pack, not the operator set.",@import '@fontsource/bebas-neue/400.css'; @import '@fontsource/source-sans-3/400.css'; @import '@fontsource/source-sans-3/500.css'; @import '@fontsource/source-sans-3/600.css'; @import '@fontsource/source-sans-3/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Bebas Neue', 'sans-serif'], body: ['Source Sans 3', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3.5-4rem/400/+0.02em/lh1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
43
- 42,Retro Vintage,dormant-marketing,Abril Fatface,Merriweather,Space Mono,serif+serif,"retro, vintage, dramatic, decorative, nostalgic","vintage brands, breweries, restaurants, poster-style marketing",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Abril+Fatface:wght@400&family=Merriweather:wght@400;500;600;700&display=swap,"Abril Fatface's heavy Didone hairlines make a striking vintage hero serif reserved for headlines, paired with Merriweather body.",@import '@fontsource/abril-fatface/400.css'; @import '@fontsource/merriweather/400.css'; @import '@fontsource/merriweather/500.css'; @import '@fontsource/merriweather/600.css'; @import '@fontsource/merriweather/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Abril Fatface', 'serif'], body: ['Merriweather', 'serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/400/0/lh1.05; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
44
- 43,Luxury Serif,dormant-marketing,Cormorant,Montserrat,IBM Plex Mono,serif+sans,"luxury, fashion, refined, premium, high-end","fashion houses, jewelry, luxury e-commerce, premium services",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Cormorant:wght@500;600;700&family=Montserrat:wght@400;500;600;700&display=swap,Cormorant's delicate high-contrast forms read as luxury marketing and would wash out in the small sizes operator tables use.,@import '@fontsource/cormorant/500.css'; @import '@fontsource/cormorant/600.css'; @import '@fontsource/cormorant/700.css'; @import '@fontsource/montserrat/400.css'; @import '@fontsource/montserrat/500.css'; @import '@fontsource/montserrat/600.css'; @import '@fontsource/montserrat/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cormorant', 'serif'], body: ['Montserrat', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
45
- 44,Handwritten Charm,dormant-marketing,Caveat,Quicksand,Space Mono,display+sans,"handwritten, personal, casual, warm, charming","personal brands, invitations, lifestyle marketing, creative portfolios",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&family=Quicksand:wght@400;500;600;700&display=swap,"Caveat is a script accent for personality-driven marketing, unusable as working type but kept for the campaign pack.",@import '@fontsource/caveat/500.css'; @import '@fontsource/caveat/600.css'; @import '@fontsource/caveat/700.css'; @import '@fontsource/quicksand/400.css'; @import '@fontsource/quicksand/500.css'; @import '@fontsource/quicksand/600.css'; @import '@fontsource/quicksand/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Caveat', 'cursive'], body: ['Quicksand', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/0/lh1.15; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
46
- 45,Soft Rounded,dormant-marketing,Varela Round,Nunito Sans,JetBrains Mono,sans+sans,"soft, rounded, friendly, gentle, warm","kids and pet brands, wellness marketing, soft consumer UI",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Varela+Round:wght@400&family=Nunito+Sans:wght@400;500;600;700&display=swap,Fully rounded Varela Round headings set a soft consumer mood aimed at friendly marketing rather than dense operator work.,@import '@fontsource/varela-round/400.css'; @import '@fontsource/nunito-sans/400.css'; @import '@fontsource/nunito-sans/500.css'; @import '@fontsource/nunito-sans/600.css'; @import '@fontsource/nunito-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Varela Round', 'sans-serif'], body: ['Nunito Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/400/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
47
- 46,Magazine Style,dormant-marketing,Libre Bodoni,Public Sans,IBM Plex Mono,serif+sans,"magazine, editorial, print, refined, journalistic","online magazines, editorial features, publishing marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Libre+Bodoni:wght@500;600;700&family=Public+Sans:wght@400;500;600;700&display=swap,Libre Bodoni's print-magazine contrast makes expressive feature headings that suit publishing marketing over back-office reading.,@import '@fontsource/libre-bodoni/500.css'; @import '@fontsource/libre-bodoni/600.css'; @import '@fontsource/libre-bodoni/700.css'; @import '@fontsource/public-sans/400.css'; @import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; @import '@fontsource/public-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Libre Bodoni', 'serif'], body: ['Public Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
48
- 47,Cyberpunk Web3,dormant-marketing,Orbitron,Exo 2,JetBrains Mono,display+sans,"futuristic, crypto, neon, sci-fi, technical","crypto and web3 marketing, NFT sites, gaming, futuristic brands",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700&family=Exo+2:wght@400;500;600;700&display=swap,"Orbitron's wide sci-fi caps brand crypto and gaming marketing pages, a decorative look kept clear of real data screens.",@import '@fontsource/orbitron/500.css'; @import '@fontsource/orbitron/600.css'; @import '@fontsource/orbitron/700.css'; @import '@fontsource/exo-2/400.css'; @import '@fontsource/exo-2/500.css'; @import '@fontsource/exo-2/600.css'; @import '@fontsource/exo-2/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Orbitron', 'sans-serif'], body: ['Exo 2', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.5-3rem/600-700/+0.04em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
49
- 48,Gaming Bold,dormant-marketing,Russo One,Chakra Petch,Space Mono,display+sans,"gaming, bold, esports, energetic, competitive","gaming and esports marketing, tournaments, entertainment brands",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Russo+One:wght@400&family=Chakra+Petch:wght@400;500;600;700&display=swap,"Russo One's blocky impact suits esports headlines while Chakra Petch adds a techy body, a pairing tuned for hype not throughput.",@import '@fontsource/russo-one/400.css'; @import '@fontsource/chakra-petch/400.css'; @import '@fontsource/chakra-petch/500.css'; @import '@fontsource/chakra-petch/600.css'; @import '@fontsource/chakra-petch/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Russo One', 'sans-serif'], body: ['Chakra Petch', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/400/0/lh1.05; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
50
- 49,Real Estate Luxury,dormant-marketing,Cinzel,Josefin Sans,IBM Plex Mono,serif+sans,"luxury, architectural, refined, premium, elegant","luxury real estate, architecture, interiors, premium property marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Josefin+Sans:wght@400;500;600;700&display=swap,"Cinzel's engraved Roman capitals evoke premium property branding, a display serif meant for hero titles rather than dense listings.",@import '@fontsource/cinzel/500.css'; @import '@fontsource/cinzel/600.css'; @import '@fontsource/cinzel/700.css'; @import '@fontsource/josefin-sans/400.css'; @import '@fontsource/josefin-sans/500.css'; @import '@fontsource/josefin-sans/600.css'; @import '@fontsource/josefin-sans/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cinzel', 'serif'], body: ['Josefin Sans', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/+0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
51
- 50,Luxury Minimalist,dormant-marketing,Bodoni Moda,Jost,IBM Plex Mono,serif+sans,"luxury, minimalist, high-contrast, refined, premium","high-end fashion, premium minimal brands, luxury product marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Bodoni+Moda:wght@500;600;700&family=Jost:wght@400;500;600;700&display=swap,"Bodoni Moda's extreme contrast reads as minimalist luxury in headlines, paired with geometric Jost, and stays in the marketing pack.",@import '@fontsource/bodoni-moda/500.css'; @import '@fontsource/bodoni-moda/600.css'; @import '@fontsource/bodoni-moda/700.css'; @import '@fontsource/jost/400.css'; @import '@fontsource/jost/500.css'; @import '@fontsource/jost/600.css'; @import '@fontsource/jost/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Bodoni Moda', 'serif'], body: ['Jost', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
52
- 51,Neubrutalist Bold,dormant-marketing,Lexend Mega,Public Sans,JetBrains Mono,display+sans,"neubrutalist, loud, geometric, bold, quirky","neubrutalist marketing, Gen Z brands, bold campaign pages",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Lexend+Mega:wght@500;600;700&family=Public+Sans:wght@400;500;600;700&display=swap,"Lexend Mega's ultra-wide tracking is a deliberately loud neubrutalist statement for campaigns, not a workaday heading face.",@import '@fontsource/lexend-mega/500.css'; @import '@fontsource/lexend-mega/600.css'; @import '@fontsource/lexend-mega/700.css'; @import '@fontsource/public-sans/400.css'; @import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; @import '@fontsource/public-sans/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Lexend Mega', 'sans-serif'], body: ['Public Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.25-2.75rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
53
- 52,Gen Z Brutal,dormant-marketing,Anton,Epilogue,JetBrains Mono,display+sans,"brutal, loud, streetwear, meme, bold","streetwear, viral campaigns, Gen Z marketing, sticker packs",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Epilogue:wght@400;500;600;700&display=swap,"Anton's condensed black weight shouts for streetwear and meme campaigns, an intentionally aggressive display voice kept dormant.",@import '@fontsource/anton/400.css'; @import '@fontsource/epilogue/400.css'; @import '@fontsource/epilogue/500.css'; @import '@fontsource/epilogue/600.css'; @import '@fontsource/epilogue/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Anton', 'sans-serif'], body: ['Epilogue', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3.5-4rem/400/+0.01em/lh1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
54
- 53,Bauhaus Geometric,dormant-marketing,Outfit,Outfit,JetBrains Mono,sans+sans,"bauhaus, geometric, constructivist, poster, architectural","design-forward brand marketing, art and culture, poster-style sites",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap,"A single Outfit set at heavy uppercase weights makes a Bauhaus poster system that is expressive branding, not operator hierarchy.",@import '@fontsource/outfit/400.css'; @import '@fontsource/outfit/500.css'; @import '@fontsource/outfit/600.css'; @import '@fontsource/outfit/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Outfit', 'sans-serif'], body: ['Outfit', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3-3.5rem/600-700/-0.02em/lh1.05; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
55
- 54,Monochrome Editorial,dormant-marketing,Playfair Display,Source Serif 4,JetBrains Mono,serif+serif,"monochrome, editorial, austere, high-contrast, typographic","luxury fashion editorial, digital exhibitions, portfolio marketing",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Source+Serif+4:wght@400;500;600;700&display=swap,"Playfair Display over Source Serif 4 makes an austere all-serif editorial statement built for display, not for scanning records.",@import '@fontsource/playfair-display/500.css'; @import '@fontsource/playfair-display/600.css'; @import '@fontsource/playfair-display/700.css'; @import '@fontsource/source-serif-4/400.css'; @import '@fontsource/source-serif-4/500.css'; @import '@fontsource/source-serif-4/600.css'; @import '@fontsource/source-serif-4/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Playfair Display', 'serif'], body: ['Source Serif 4', 'serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.05; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
56
- 55,Kinetic Brutalism,dormant-marketing,Space Grotesk,Space Grotesk,Space Mono,sans+sans,"kinetic, brutalist, oversized, street, high-energy","music and culture marketing, sports brands, flagship campaign pages",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap,"Pushed to oversized uppercase weights, a single Space Grotesk becomes a high-energy brutalist system tuned for motion-heavy marketing.",@import '@fontsource/space-grotesk/400.css'; @import '@fontsource/space-grotesk/500.css'; @import '@fontsource/space-grotesk/600.css'; @import '@fontsource/space-grotesk/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Space Grotesk', 'sans-serif'], body: ['Space Grotesk', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/600-700/-0.02em/lh1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
57
- 56,Terminal CLI,dormant-marketing,JetBrains Mono,IBM Plex Sans,JetBrains Mono,mono+sans,"terminal, hacker, retro-future, technical, aesthetic","hacker-aesthetic marketing, web3 landing, security-brand campaigns",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap,An all-mono terminal aesthetic reads as a stylistic hacker brand for marketing; the sans body keeps it from becoming unreadable at length.,@import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css'; @import '@fontsource/jetbrains-mono/700.css'; @import '@fontsource/ibm-plex-sans/400.css'; @import '@fontsource/ibm-plex-sans/500.css'; @import '@fontsource/ibm-plex-sans/600.css'; @import '@fontsource/ibm-plex-sans/700.css';,"fontFamily: { heading: ['JetBrains Mono', 'monospace'], body: ['IBM Plex Sans', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 2-2.5rem/600-700/0/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
58
- 57,Art Deco,dormant-marketing,Poiret One,Didact Gothic,JetBrains Mono,display+sans,"art-deco, vintage, 1920s, decorative, elegant","art-deco event marketing, luxury hotels, period-themed brands",400,400,https://fonts.googleapis.com/css2?family=Poiret+One:wght@400&family=Didact+Gothic:wght@400&display=swap,"Poiret One's thin geometric Deco lines evoke the 1920s for themed marketing, a decorative heading unfit for functional density.",@import '@fontsource/poiret-one/400.css'; @import '@fontsource/didact-gothic/400.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Poiret One', 'sans-serif'], body: ['Didact Gothic', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3-3.5rem/400/+0.04em/lh1.1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
59
- 58,Restaurant Menu,dormant-marketing,Playfair Display SC,Karla,IBM Plex Mono,serif+sans,"culinary, hospitality, elegant, menu, refined","restaurant and cafe marketing, food brands, hospitality sites",700,400;500;600;700,https://fonts.googleapis.com/css2?family=Playfair+Display+SC:wght@700&family=Karla:wght@400;500;600;700&display=swap,"Small-caps Playfair sets refined menu headers over a plain Karla body, a hospitality-marketing look rather than an operator surface.",@import '@fontsource/playfair-display-sc/700.css'; @import '@fontsource/karla/400.css'; @import '@fontsource/karla/500.css'; @import '@fontsource/karla/600.css'; @import '@fontsource/karla/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Playfair Display SC', 'serif'], body: ['Karla', 'sans-serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.5-3rem/700/+0.02em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
60
- 59,Kids Education,dormant-marketing,Baloo 2,Nunito,Space Mono,display+sans,"playful, education, colorful, friendly, learning","children's education marketing, kids apps, learning brands",500;600;700,400;500;600;700,https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700&family=Nunito:wght@400;500;600;700&display=swap,"Chunky rounded Baloo 2 headings signal a kid-friendly product for education marketing, with Nunito supplying a legible playful body.",@import '@fontsource/baloo-2/500.css'; @import '@fontsource/baloo-2/600.css'; @import '@fontsource/baloo-2/700.css'; @import '@fontsource/nunito/400.css'; @import '@fontsource/nunito/500.css'; @import '@fontsource/nunito/600.css'; @import '@fontsource/nunito/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Baloo 2', 'sans-serif'], body: ['Nunito', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/600-700/0/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
61
- 60,Indie Craft,dormant-marketing,Amatic SC,Cabin,JetBrains Mono,display+sans,"indie, craft, handmade, artisan, organic","craft and artisan marketing, handmade goods, indie brands",700,400;500;600;700,https://fonts.googleapis.com/css2?family=Amatic+SC:wght@700&family=Cabin:wght@400;500;600;700&display=swap,"Amatic SC's thin hand-drawn caps give artisan marketing a handmade feel, a decorative accent paired with a steady Cabin body.",@import '@fontsource/amatic-sc/700.css'; @import '@fontsource/cabin/400.css'; @import '@fontsource/cabin/500.css'; @import '@fontsource/cabin/600.css'; @import '@fontsource/cabin/700.css'; @import '@fontsource/jetbrains-mono/400.css'; @import '@fontsource/jetbrains-mono/500.css'; @import '@fontsource/jetbrains-mono/600.css';,"fontFamily: { heading: ['Amatic SC', 'sans-serif'], body: ['Cabin', 'sans-serif'], mono: ['JetBrains Mono', 'monospace'] }",display 3.5-4rem/700/+0.02em/lh1; kpi mono 1.75-2.5rem/500-600/lh1 tabular-nums
62
- 61,Music Entertainment,dormant-marketing,Righteous,Poppins,Space Mono,display+sans,"music, entertainment, energetic, bold, festive","music and event marketing, festivals, entertainment brands",400,400;500;600;700,https://fonts.googleapis.com/css2?family=Righteous:wght@400&family=Poppins:wght@400;500;600;700&display=swap,"Righteous's rounded retro display suits music and festival headlines, an energetic marketing voice over a Poppins body.",@import '@fontsource/righteous/400.css'; @import '@fontsource/poppins/400.css'; @import '@fontsource/poppins/500.css'; @import '@fontsource/poppins/600.css'; @import '@fontsource/poppins/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Righteous', 'sans-serif'], body: ['Poppins', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 3-3.5rem/400/0/lh1.05; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
63
- 62,Scholarly Archive,dormant-marketing,Cormorant Garamond,Crimson Pro,IBM Plex Mono,serif+serif,"scholarly, antique, prestige, literary, traditional","heritage and library brands, scholarly reading apps, cultural platforms, archive-themed marketing",500;600;700,500;600;700,https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Crimson+Pro:wght@500;600;700&display=swap,"Cormorant Garamond over a Crimson Pro book serif reads like a private library for heritage marketing, an all-serif stack too delicate for scanning operator data.",@import '@fontsource/cormorant-garamond/500.css'; @import '@fontsource/cormorant-garamond/600.css'; @import '@fontsource/cormorant-garamond/700.css'; @import '@fontsource/crimson-pro/500.css'; @import '@fontsource/crimson-pro/600.css'; @import '@fontsource/crimson-pro/700.css'; @import '@fontsource/ibm-plex-mono/400.css'; @import '@fontsource/ibm-plex-mono/500.css';,"fontFamily: { heading: ['Cormorant Garamond', 'serif'], body: ['Crimson Pro', 'serif'], mono: ['IBM Plex Mono', 'monospace'] }",display 2.75-3.25rem/600-700/-0.01em/lh1.1; kpi mono 1.75-2.5rem/500/lh1 tabular-nums
64
- 63,Clay Playful,dormant-marketing,Nunito,DM Sans,Space Mono,sans+sans,"clay, bubbly, tactile, playful, soft","children's education marketing, teen social apps, mascot-led brands, gamified consumer products",700,400;500;600;700,https://fonts.googleapis.com/css2?family=Nunito:wght@700&family=DM+Sans:wght@400;500;600;700&display=swap,"Heavy rounded Nunito headings over a plain DM Sans body give claymorphic consumer surfaces their bubbly voice, a look built for playful marketing rather than dense operator work.",@import '@fontsource/nunito/700.css'; @import '@fontsource/dm-sans/400.css'; @import '@fontsource/dm-sans/500.css'; @import '@fontsource/dm-sans/600.css'; @import '@fontsource/dm-sans/700.css'; @import '@fontsource/space-mono/400.css'; @import '@fontsource/space-mono/700.css';,"fontFamily: { heading: ['Nunito', 'sans-serif'], body: ['DM Sans', 'sans-serif'], mono: ['Space Mono', 'monospace'] }",display 2.5-3rem/700/-0.01em/lh1.1; kpi mono 1.75-2.25rem/700/lh1 tabular-nums
@@ -1,106 +0,0 @@
1
- # design.md — the library's documentation format (`design-md/v1`)
2
-
3
- A `design.md` is one operator UI's brand document: nine prose sections that describe the look for a
4
- human reader and the emitting agent. It is **documentation, not transport** — the machine contract
5
- lives in the design-tokens artifact ([`../design-tokens/SCHEMA.md`](../design-tokens/SCHEMA.md)):
6
- every library entry's derivable values sit in its token twin at `data/design-tokens/<slug>/`
7
- (slug = the entry's filename without `.md`), and look resolution, precedence, provenance, hints,
8
- and validation are all defined there. No script parses a `design.md`.
9
-
10
- The prose earns its place by carrying what tokens cannot: the identity a stranger could repeat,
11
- usage rules ("indigo only on the primary action"), the scarce judgments the Agent Prompt Guide
12
- hands the emitting agent verbatim. A good entry is concrete and checkable, not adjectival.
13
-
14
- ---
15
-
16
- ## Frontmatter
17
-
18
- ```yaml
19
- ---
20
- schema: design-md/v1
21
- product: Meridian
22
- provenance: library # retained for lineage; the machine path reads only the token artifact's payload
23
- sourced: 2026-07-04
24
- ---
25
- ```
26
-
27
- | Field | Required | Value |
28
- | --- | --- | --- |
29
- | `schema` | yes | Literal `design-md/v1`. |
30
- | `product` | yes | The product name; matches the token twin's payload `product`. |
31
- | `provenance` | yes | Lineage note. Authoritative provenance is the token artifact's payload field. |
32
- | `sourced` | yes | ISO date the document was authored or last re-sourced. |
33
-
34
- ---
35
-
36
- ## The nine prose sections
37
-
38
- Fixed order. Each is human-facing narration; cite roles and token names, never bare literals in the
39
- component/layout prose (the values live in the token twin).
40
-
41
- | # | Section | What belongs · what a good entry looks like |
42
- | --- | --- | --- |
43
- | 1 | **Visual Theme** | The one-paragraph identity a stranger could repeat: surface polarity (light default; dark opt-in), material feel (flat vs lifted), accent discipline, density posture. Names its anchor surface and its single accent — not a mood board. |
44
- | 2 | **Color Roles** | Every color by role — background, ink/foreground, the one accent, the status hues — with its value and where it is *allowed*. Reads `role → value → usage rule`; light values first; states the one-accent default. |
45
- | 3 | **Typography** | The sans/mono families, the size·weight·tracking ramp, and where tabular figures apply. Names each ramp step with its numbers; states that numeric columns render `tabular-nums`. |
46
- | 4 | **Component Stylings** | How the shared primitives render on the recurring operator components — button, input, card, table row, side panel, badge: fill, radius, border, padding. Each line cites token roles, no literal hex. |
47
- | 5 | **Layout** | Spacing base unit and scale, the shell dimensions (sidebar expanded/collapsed, topbar, side panel, form/table), grid and container widths, density posture. The dimensions map one-to-one to the layout primitives. |
48
- | 6 | **Depth** | The elevation strategy: surface ladder vs shadow, hairline discipline, the focus-ring treatment, the z-index scale. Names levels `0..n` with treatment and use; states whether shadow or surface carries hierarchy. |
49
- | 7 | **Do's & Don'ts** | The enforceable taste rules unique to this brand — reserve the accent, never pill the CTA, never a second chromatic accent. Imperative bullets, each checkable; every don't names the specific off-brand move. |
50
- | 8 | **Responsive** | Breakpoints and the collapse strategy across the operator sweep (375 / 768 / 1024 / 1440): nav collapse, grid re-flow, side-panel → sheet, density steps. Reads `breakpoint → what changes`. |
51
- | 9 | **Agent Prompt Guide** | Directives the emitting agent follows verbatim: what to reach for first, the invariants, the scarce elements the token artifact can't carry (e.g. "lead every queue with the table; accent only on the primary action"). |
52
-
53
- ---
54
-
55
- ## The token twin
56
-
57
- Every library entry pairs with a design-tokens artifact at `data/design-tokens/<slug>/` — the
58
- derivable half: primitives, the 34 color roles, the typography ramp, dials, traits, and the lever
59
- manifest, with per-value rationale carried in each token's `$description`.
60
- [`convert-design-md.mjs`](../../scripts/convert-design-md.mjs) generated the twins from the corpus;
61
- a **new** library entry authors both halves — the token artifact against the token schema (validated
62
- by `derive-personality.mjs <dir> --check`), and this document for the reader. When the two could
63
- disagree, the token artifact is canonical.
64
-
65
- ---
66
-
67
- ## Worked example — Meridian (fictional fraud-review console)
68
-
69
- Prose sketched to one line per section for brevity; Meridian's derivable values would live in its
70
- token twin.
71
-
72
- ```markdown
73
- ---
74
- schema: design-md/v1
75
- product: Meridian
76
- provenance: project
77
- sourced: 2026-07-04
78
- ---
79
-
80
- ## 1 Visual Theme
81
- Light, flat, cool-slate operator console; a single indigo accent; dense on purpose.
82
-
83
- ## 2 Color Roles
84
- Ink #0f172a on #ffffff; indigo #4f46e5 is the only accent; red/green/amber for status only.
85
-
86
- ## 3 Typography
87
- Inter for text, JetBrains Mono for IDs and amounts; body 14px/400, headings 600, tabular-nums on every numeric column.
88
-
89
- ## 4 Component Stylings
90
- Buttons `radius`/`primary`, no pill; inputs 1px `border`; table rows `table-row-height`; case detail opens in the side panel.
91
-
92
- ## 5 Layout
93
- 4px base; sidebar 248/56px, topbar 52px, side panel 420/640px, tables full-width.
94
-
95
- ## 6 Depth
96
- Surface ladder over shadow; hairline `border`; 2px `ring` focus outline; three z-levels.
97
-
98
- ## 7 Do's & Don'ts
99
- Do reserve indigo for the primary action. Don't pill the CTA; don't add a second chromatic accent.
100
-
101
- ## 8 Responsive
102
- 375 stacks to a sheet; 768 collapses the sidebar; 1024/1440 hold the two-pane queue+detail.
103
-
104
- ## 9 Agent Prompt Guide
105
- Lead with the queue table; accent only the primary action; keep the case panel beside the work, never a modal.
106
- ```
@@ -1,154 +0,0 @@
1
- ---
2
- schema: design-md/v1
3
- product: Airbnb
4
- provenance: library
5
- sourced: 2026-07-04
6
- ---
7
-
8
- # Airbnb — the operator reading
9
-
10
- The warm marketplace brand rendered for internal tools. Airbnb's public surfaces are photography-led
11
- and generous; an operator surface wearing this brand keeps the palette, the single warm voltage, the
12
- soft corners, and the modest type voice, but leaves the marketing chrome behind — the pill search
13
- bar, the 64px rating hero, the 80px nav, and the hand-illustrated product glyphs do not follow the
14
- brand into a queue or a console. What carries is the feel: pure-white canvas, near-black ink (never
15
- pure black), one Rausch accent used scarcely, flat depth with a single soft shadow tier, and rounded
16
- everything.
17
-
18
- ## 1 Visual Theme
19
-
20
- Light only — Airbnb ships no dark mode on the public web, so light is the default and dark is a
21
- foreign opt-in, not a native mode. Flat: depth comes from white-on-white surface separation, hairline
22
- `border`, and rounded-corner clipping, not from layered shadows (there is exactly one soft shadow
23
- tier). A single accent, Rausch (`primary`, brand `#ff385c`), carries the one action that matters on a
24
- surface and nothing else. Ink is a deep near-black slate (`foreground`, brand `#222222`), never pure
25
- `#000000`. The anchor surface is a pure-white content canvas beside a faintly warm-gray `sidebar`.
26
- Corners are soft throughout — `radius` on buttons and inputs, a larger step on cards, pill on badges —
27
- there is no hard corner except the body grid. Density is `standard` with a generous per-dimension lean:
28
- the brand breathes, but marketplace pages already run tighter than SaaS marketing, so the operator
29
- reading holds standard rather than airy.
30
-
31
- ## 2 Color Roles
32
-
33
- Light values. One accent: Rausch is the only chromatic hue that carries meaning; status hues speak
34
- only status.
35
-
36
- | Role | Value | Allowed where |
37
- | --- | --- | --- |
38
- | `background` / `card` / `popover` | white `#ffffff` | page, cards, and overlays — the dominant surface |
39
- | `foreground` | ink `#222222` | all primary ink; never pure black |
40
- | `muted` | soft gray `#f7f7f7` | hover rows, disabled fields, subtle fills |
41
- | `muted-foreground` | mid gray `#6a6a6a` | labels, captions, secondary text, inactive tabs |
42
- | `secondary` | stronger gray `#f2f2f2` | secondary buttons, circular icon-button surfaces |
43
- | `border` / `input` | hairline `#dddddd` | every separator, grid line, and field edge |
44
- | `primary` | Rausch `#ff385c` | the one primary action; active nav; the single warm voltage |
45
- | `accent` | pale Rausch `#ffe8ec` | selected/hovered rows and nav — a whisper of brand warmth |
46
- | `ring` | ink `#222222` | the focus outline — Airbnb focuses with ink, not a colored glow |
47
- | `destructive` | error red `#c13515` | destructive actions and error text only — distinct from Rausch |
48
- | `success` / `warning` | green / amber | status signalling only, never chrome |
49
-
50
- Luxe purple (`#460479`), Plus magenta (`#92174d`), and the legal-link blue (`#428bff`) are sub-brand
51
- graces — they carry no operator role and never become a second accent (see §7). Star ratings render in
52
- ink, not gold, and that carries over: numbers are ink, not a yellow accent.
53
-
54
- ## 3 Typography
55
-
56
- One sans, one mono. `font-sans` is Airbnb Cereal VF (with Circular and Inter as the licensed/open
57
- fallbacks — Inter is the closest open substitute); the whole ramp rides it, display voice carried by
58
- size and modest weight, not a second family. Airbnb runs deliberately modest weights — `font-weight-strong`
59
- stops at 600, never the 700+ that fintech and enterprise systems lean on. `font-mono` is derived: Airbnb
60
- ships no monospace, but operator IDs, codes, and timestamps need one. Numeric columns render
61
- `tabular-nums` so figures align down a column.
62
-
63
- | Step | Role | Size · line | Weight · tracking |
64
- | --- | --- | --- | --- |
65
- | h1 | page title | 22px / 1.2 | `font-weight-strong` · `heading-tracking` |
66
- | h2 | section head | 18px / 1.3 | `font-weight-strong` · `heading-tracking` |
67
- | h3 | card / group head | 16px / 1.35 | `font-weight-strong` |
68
- | body | UI + prose | 14px / 1.45 | `font-weight-normal` |
69
- | small | labels, meta, dense table | 13px / 1.3 | `font-weight-normal` |
70
- | caption | uppercase eyebrow | 12px / 1.2 | `font-weight-strong`, `+0.02em`, uppercase |
71
-
72
- The 64px rating display and the 28px marketing hero stay behind — that peak-scale typographic moment is
73
- a marketing trust signal, not operator chrome. Bump weight one step for emphasis; never reach past 600.
74
-
75
- ## 4 Component Stylings
76
-
77
- Every recurring operator component composes from the primitives — no literal values.
78
-
79
- - **Button** — `primary`: filled `primary` on `primary-foreground`, `radius`, no pill (the pill CTA is a
80
- marketing form and stays behind). Secondary: `card` fill, 1px `border`, `foreground`. Ghost:
81
- transparent, `accent` on hover.
82
- - **Input** — `card` fill, 1px `border` (`border-weight`), `radius`; on focus the border thickens toward
83
- 2px and flips to `ring` (ink) — no glow, no colored ring, the signature Airbnb focus.
84
- - **Card** — `card` surface, 1px `border`, a larger corner step from the radius scale, one soft shadow
85
- only when floated (`shadow-intensity`); inset by `density-inset`.
86
- - **Table row** — height `table-row-height`; `border` grid lines; `muted` on hover; `tabular-nums` on
87
- numeric columns; row selection tints `accent`.
88
- - **Side panel** — detail and edit open in the side panel (`side-panel-width`, `side-panel-width-rich`
89
- for content-heavy), beside the work, not over it.
90
- - **Badge** — pill (the largest radius step), hairline `border`, `muted`/status fill, uppercase caption;
91
- status badges take `success` / `warning` / `destructive`, never `primary`.
92
-
93
- ## 5 Layout
94
-
95
- Base spacing unit 4px (with a 2px micro-step); the on-scale ramp is `2 · 4 · 8 · 12 · 16 · 24 · 32 · 48
96
- · 64`. Shell dimensions map one-to-one to the layout primitives: sidebar `sidebar-width-expanded` /
97
- `sidebar-width-collapsed`, topbar `topbar-height`, side panel `side-panel-width` /
98
- `side-panel-width-rich`, modal cap `modal-width-max`, forms `form-max-width`, tables full-width. Card
99
- internal padding runs generous (24px on rich cards, 16px on meta blocks). Density is governed globally
100
- by `density-tier` and stepped per archetype by the surface catalog — never by absolute overrides.
101
-
102
- ## 6 Depth
103
-
104
- Flat. Hierarchy comes from the surface ladder, hairlines, and rounded-corner clipping — not shadow:
105
-
106
- - **0 — canvas** `background`, no border.
107
- - **1 — panel / card** `card` on a 1px `border`; the one soft shadow tier only when a card must float off
108
- the canvas.
109
- - **2 — overlay** `popover` / side panel / modal — the same single soft shadow, over a black scrim at 50%
110
- opacity for modals. No level stacks a heavier shadow to signal rank; rank is border and position.
111
-
112
- Focus is a 2px `ring` outline in ink (never a glow, never a colored ring), visible on every interactive
113
- element. Three z-levels: content, sticky chrome, overlay.
114
-
115
- ## 7 Do's & Don'ts
116
-
117
- - **Do** reserve `primary` (Rausch) for the single most important action on a surface; everything else is
118
- neutral or status. Most surfaces are 90% white + ink with one Rausch moment.
119
- - **Do** keep corners soft — `radius` on interactive elements, the larger step on cards, pill on badges.
120
- - **Do** render numbers and ratings in ink, and apply `tabular-nums` to every numeric column; use
121
- `font-mono` for IDs, codes, and timestamps.
122
- - **Don't** promote a second chromatic accent. Luxe purple, Plus magenta, and the legal-link blue stay
123
- sub-brand-decorative; status uses `success` / `warning` / `destructive`.
124
- - **Don't** focus with a colored ring or a glow — Airbnb focuses by thickening the border to ink.
125
- - **Don't** use pure black `#000000` for ink; ink is `#222222`.
126
- - **Don't** pull the pill search bar, the 64px rating hero, or the 80px marketing nav into operator chrome.
127
-
128
- ## 8 Responsive
129
-
130
- The operator sweep is 375 / 768 / 1024 / 1440. Grids reduce column counts cleanly at each step — never
131
- reflow rows.
132
-
133
- | Breakpoint | What changes |
134
- | --- | --- |
135
- | 375 | sidebar → off-canvas drawer; two-pane list+detail stacks; side panel → full sheet; sticky detail collapses to a bottom bar carrying the primary action |
136
- | 768 | sidebar collapses to the icon rail (`sidebar-width-collapsed`); tables scroll their overflow; card grids drop to 2-up |
137
- | 1024 | sidebar expands; two-pane queue+detail holds side by side; card grids 3-up |
138
- | 1440 | content caps for forms at `form-max-width`; tables and dashboards use the full width; card grids 4-up |
139
-
140
- ## 9 Agent Prompt Guide
141
-
142
- Directives the emitting agent follows verbatim. This brand is warm and generous; keep it restrained for
143
- operator work.
144
-
145
- - Lead every list surface with its table; lead every entity with its primary read, not its chrome.
146
- - Accent only the primary action with Rausch (`primary`). If two things want the accent, one is not primary.
147
- - Stay flat — surface separation, hairlines, and rounded clipping before shadow. Reach for the one soft
148
- shadow tier only for a real float or overlay.
149
- - Focus with ink (`ring`), not a colored glow. Render numbers and ratings in ink, never gold.
150
- - Keep corners soft: `radius` on buttons and inputs, the larger step on cards, pill on badges. No hard corners.
151
- - Type stays modest — Cereal/Inter, `font-weight-strong` at 600, never 700+. Mono for IDs, codes, timestamps.
152
- - One accent. Luxe, Plus, and legal-blue are not operator colors here.
153
- - Leave marketing behind: the pill search bar, the 64px rating hero, the 80px nav, hand-illustrated
154
- glyphs, and gradients do not follow the brand into a console. Light only — dark is a foreign opt-in.