@nurix/etna 0.19.49 → 0.19.51

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 (436) hide show
  1. package/data/harness-index.json +1 -1
  2. package/data/harnesses/apollo/harness.json +2 -2
  3. package/data/harnesses/apollo/hooks/hooks.json +3 -1
  4. package/data/harnesses/apollo/skills/design/SKILL.md +55 -29
  5. package/data/harnesses/apollo/skills/design/references/compose.md +8 -4
  6. package/data/harnesses/apollo/skills/design/references/content.md +5 -5
  7. package/data/harnesses/apollo/skills/design/references/existing-apps.md +1 -1
  8. package/data/harnesses/apollo/skills/design/references/intake.md +11 -7
  9. package/data/harnesses/apollo/skills/design/references/object-pass.md +1 -1
  10. package/data/harnesses/apollo/skills/design/references/ship-gate.md +3 -3
  11. package/data/harnesses/apollo/skills/design/scripts/select-chart.mjs +26 -6
  12. package/data/harnesses/code/harness.json +2 -2
  13. package/data/harnesses/code/hooks/hooks.json +3 -1
  14. package/data/harnesses/code/skills/design/SKILL.md +55 -29
  15. package/data/harnesses/code/skills/design/references/compose.md +8 -4
  16. package/data/harnesses/code/skills/design/references/content.md +5 -5
  17. package/data/harnesses/code/skills/design/references/existing-apps.md +1 -1
  18. package/data/harnesses/code/skills/design/references/intake.md +11 -7
  19. package/data/harnesses/code/skills/design/references/object-pass.md +1 -1
  20. package/data/harnesses/code/skills/design/references/ship-gate.md +3 -3
  21. package/data/harnesses/code/skills/design/scripts/select-chart.mjs +26 -6
  22. package/package.json +2 -2
  23. package/data/harnesses/apollo/skills/design/data/blueprints/browse.md +0 -38
  24. package/data/harnesses/apollo/skills/design/data/blueprints/creation-flow.md +0 -38
  25. package/data/harnesses/apollo/skills/design/data/blueprints/dashboard.md +0 -38
  26. package/data/harnesses/apollo/skills/design/data/blueprints/grid.md +0 -38
  27. package/data/harnesses/apollo/skills/design/data/blueprints/queue.md +0 -38
  28. package/data/harnesses/apollo/skills/design/data/blueprints/record-detail.md +0 -38
  29. package/data/harnesses/apollo/skills/design/data/blueprints/settings.md +0 -38
  30. package/data/harnesses/apollo/skills/design/data/chart-styling/Readme.md +0 -33
  31. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +0 -19
  32. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +0 -19
  33. package/data/harnesses/apollo/skills/design/data/chart-styling/datadog-classic-six-aligned.md +0 -19
  34. package/data/harnesses/apollo/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +0 -19
  35. package/data/harnesses/apollo/skills/design/data/chart-styling/econ-red-rule-horizontal.md +0 -19
  36. package/data/harnesses/apollo/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +0 -19
  37. package/data/harnesses/apollo/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +0 -19
  38. package/data/harnesses/apollo/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +0 -19
  39. package/data/harnesses/apollo/skills/design/data/chart-styling/material-rounded-explicit-label.md +0 -19
  40. package/data/harnesses/apollo/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +0 -19
  41. package/data/harnesses/apollo/skills/design/data/chart-styling/plot-currentcolor-inherit.md +0 -19
  42. package/data/harnesses/apollo/skills/design/data/chart-styling/saas-gradient-glow-area.md +0 -19
  43. package/data/harnesses/apollo/skills/design/data/chart-styling/shadcn-composable-css-vars.md +0 -19
  44. package/data/harnesses/apollo/skills/design/data/charts/census.csv +0 -58
  45. package/data/harnesses/apollo/skills/design/data/checklists/browse.md +0 -21
  46. package/data/harnesses/apollo/skills/design/data/checklists/creation-flow.md +0 -20
  47. package/data/harnesses/apollo/skills/design/data/checklists/dashboard.md +0 -21
  48. package/data/harnesses/apollo/skills/design/data/checklists/grid.md +0 -21
  49. package/data/harnesses/apollo/skills/design/data/checklists/queue.md +0 -21
  50. package/data/harnesses/apollo/skills/design/data/checklists/record-detail.md +0 -21
  51. package/data/harnesses/apollo/skills/design/data/checklists/settings.md +0 -21
  52. package/data/harnesses/apollo/skills/design/data/chrome/board-column.md +0 -68
  53. package/data/harnesses/apollo/skills/design/data/chrome/data-table.md +0 -63
  54. package/data/harnesses/apollo/skills/design/data/chrome/side-panel.md +0 -60
  55. package/data/harnesses/apollo/skills/design/data/chrome/sidebar.md +0 -78
  56. package/data/harnesses/apollo/skills/design/data/chrome/stat-cards.md +0 -62
  57. package/data/harnesses/apollo/skills/design/data/chrome/topbar.md +0 -65
  58. package/data/harnesses/apollo/skills/design/data/color/accent-presets.md +0 -90
  59. package/data/harnesses/apollo/skills/design/data/color/aesop-earth-mute.md +0 -91
  60. package/data/harnesses/apollo/skills/design/data/color/arc-peach-play.md +0 -90
  61. package/data/harnesses/apollo/skills/design/data/color/attio-hunter-teal.md +0 -90
  62. package/data/harnesses/apollo/skills/design/data/color/carbon-cyan-signal.md +0 -90
  63. package/data/harnesses/apollo/skills/design/data/color/clay-parchment.md +0 -90
  64. package/data/harnesses/apollo/skills/design/data/color/duolingo-feather.md +0 -90
  65. package/data/harnesses/apollo/skills/design/data/color/geist-mono-signal.md +0 -90
  66. package/data/harnesses/apollo/skills/design/data/color/linear-graphite-violet.md +0 -90
  67. package/data/harnesses/apollo/skills/design/data/color/mercury-onyx-cobalt.md +0 -90
  68. package/data/harnesses/apollo/skills/design/data/color/notion-paper-ink.md +0 -90
  69. package/data/harnesses/apollo/skills/design/data/color/radix-slate-iris.md +0 -90
  70. package/data/harnesses/apollo/skills/design/data/color/raycast-void-spectrum.md +0 -90
  71. package/data/harnesses/apollo/skills/design/data/color/spectrum-celery-fuchsia.md +0 -90
  72. package/data/harnesses/apollo/skills/design/data/color/stripe-blurple-ruby.md +0 -90
  73. package/data/harnesses/apollo/skills/design/data/color/superhuman-cod-picton.md +0 -89
  74. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/companies.csv +0 -15
  75. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/corpus.md +0 -87
  76. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/people.csv +0 -25
  77. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/companies.csv +0 -15
  78. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/corpus.md +0 -83
  79. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/people.csv +0 -25
  80. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/companies.csv +0 -15
  81. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/corpus.md +0 -89
  82. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/people.csv +0 -25
  83. package/data/harnesses/apollo/skills/design/data/elevation/ant-design-directional-shadow.md +0 -19
  84. package/data/harnesses/apollo/skills/design/data/elevation/apple-liquid-glass-material.md +0 -18
  85. package/data/harnesses/apollo/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +0 -20
  86. package/data/harnesses/apollo/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +0 -20
  87. package/data/harnesses/apollo/skills/design/data/elevation/github-primer-sparing-shadow.md +0 -19
  88. package/data/harnesses/apollo/skills/design/data/elevation/ibm-carbon-layer-and-border.md +0 -19
  89. package/data/harnesses/apollo/skills/design/data/elevation/linear-dark-surface-ladder.md +0 -17
  90. package/data/harnesses/apollo/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +0 -19
  91. package/data/harnesses/apollo/skills/design/data/elevation/material-3-tonal-elevation.md +0 -21
  92. package/data/harnesses/apollo/skills/design/data/elevation/neobrutalist-hard-offset.md +0 -19
  93. package/data/harnesses/apollo/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +0 -18
  94. package/data/harnesses/apollo/skills/design/data/elevation/notion-warm-minimal-hairline.md +0 -17
  95. package/data/harnesses/apollo/skills/design/data/elevation/polaris-elevation-inset-bevel.md +0 -21
  96. package/data/harnesses/apollo/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +0 -19
  97. package/data/harnesses/apollo/skills/design/data/elevation/shadcn-neutral-derived-radius.md +0 -19
  98. package/data/harnesses/apollo/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +0 -18
  99. package/data/harnesses/apollo/skills/design/data/elevation/tailwind-default-utility-scale.md +0 -19
  100. package/data/harnesses/apollo/skills/design/data/elevation/vercel-geist-shadow-as-border.md +0 -20
  101. package/data/harnesses/apollo/skills/design/data/gradients/amber-attention-fill.md +0 -16
  102. package/data/harnesses/apollo/skills/design/data/gradients/cloud-shadow-wash.md +0 -16
  103. package/data/harnesses/apollo/skills/design/data/gradients/confident-lavender-wash.md +0 -16
  104. package/data/harnesses/apollo/skills/design/data/gradients/ember-ship-flare.md +0 -18
  105. package/data/harnesses/apollo/skills/design/data/gradients/full-metal-wash.md +0 -16
  106. package/data/harnesses/apollo/skills/design/data/gradients/indigo-ruby-cta-band.md +0 -18
  107. package/data/harnesses/apollo/skills/design/data/gradients/linear-graphite-wash.md +0 -18
  108. package/data/harnesses/apollo/skills/design/data/gradients/marble-quartz-wash.md +0 -16
  109. package/data/harnesses/apollo/skills/design/data/gradients/midnight-aurora-panel.md +0 -16
  110. package/data/harnesses/apollo/skills/design/data/gradients/neutral-volume-fill.md +0 -16
  111. package/data/harnesses/apollo/skills/design/data/gradients/revenue-uptrend-fill.md +0 -16
  112. package/data/harnesses/apollo/skills/design/data/gradients/risk-decline-fill.md +0 -16
  113. package/data/harnesses/apollo/skills/design/data/gradients/signal-blue-develop.md +0 -18
  114. package/data/harnesses/apollo/skills/design/data/gradients/slate-mist-wash.md +0 -16
  115. package/data/harnesses/apollo/skills/design/data/gradients/stripe-atmosphere-mesh.md +0 -18
  116. package/data/harnesses/apollo/skills/design/data/gradients/teal-signal-accent.md +0 -16
  117. package/data/harnesses/apollo/skills/design/data/gradients/violet-magenta-promo.md +0 -16
  118. package/data/harnesses/apollo/skills/design/data/iconography.md +0 -199
  119. package/data/harnesses/apollo/skills/design/data/motion/accordion-expand.md +0 -18
  120. package/data/harnesses/apollo/skills/design/data/motion/destructive-hold-confirm.md +0 -18
  121. package/data/harnesses/apollo/skills/design/data/motion/drag-dismiss-momentum.md +0 -18
  122. package/data/harnesses/apollo/skills/design/data/motion/empty-state-arrive.md +0 -18
  123. package/data/harnesses/apollo/skills/design/data/motion/hover-lift.md +0 -18
  124. package/data/harnesses/apollo/skills/design/data/motion/modal-center-arrive.md +0 -18
  125. package/data/harnesses/apollo/skills/design/data/motion/number-ticker-roll.md +0 -18
  126. package/data/harnesses/apollo/skills/design/data/motion/onboarding-bounce.md +0 -18
  127. package/data/harnesses/apollo/skills/design/data/motion/panel-slide.md +0 -18
  128. package/data/harnesses/apollo/skills/design/data/motion/press-feedback.md +0 -18
  129. package/data/harnesses/apollo/skills/design/data/motion/progress-linear-loop.md +0 -18
  130. package/data/harnesses/apollo/skills/design/data/motion/route-crossfade.md +0 -18
  131. package/data/harnesses/apollo/skills/design/data/motion/rubber-band-overscroll.md +0 -18
  132. package/data/harnesses/apollo/skills/design/data/motion/skeleton-shimmer.md +0 -18
  133. package/data/harnesses/apollo/skills/design/data/motion/stagger-arrive.md +0 -18
  134. package/data/harnesses/apollo/skills/design/data/motion/toast-enter-stack.md +0 -18
  135. package/data/harnesses/apollo/skills/design/data/motion/tooltip-chain-instant.md +0 -18
  136. package/data/harnesses/apollo/skills/design/data/motion/trigger-anchored-reveal.md +0 -18
  137. package/data/harnesses/apollo/skills/design/data/tells.csv +0 -34
  138. package/data/harnesses/apollo/skills/design/data/typography/anton-work-sans.md +0 -17
  139. package/data/harnesses/apollo/skills/design/data/typography/archivo-black-archivo.md +0 -17
  140. package/data/harnesses/apollo/skills/design/data/typography/bitter-karla.md +0 -17
  141. package/data/harnesses/apollo/skills/design/data/typography/dm-serif-dm-sans.md +0 -17
  142. package/data/harnesses/apollo/skills/design/data/typography/fraunces-inter.md +0 -17
  143. package/data/harnesses/apollo/skills/design/data/typography/geist-geist-mono.md +0 -17
  144. package/data/harnesses/apollo/skills/design/data/typography/hubot-sans-mona-sans.md +0 -17
  145. package/data/harnesses/apollo/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +0 -17
  146. package/data/harnesses/apollo/skills/design/data/typography/instrument-serif-instrument-sans.md +0 -17
  147. package/data/harnesses/apollo/skills/design/data/typography/inter-operator-single-family.md +0 -17
  148. package/data/harnesses/apollo/skills/design/data/typography/libre-baskerville-libre-franklin.md +0 -17
  149. package/data/harnesses/apollo/skills/design/data/typography/newsreader-inter.md +0 -17
  150. package/data/harnesses/apollo/skills/design/data/typography/playfair-display-source-sans.md +0 -17
  151. package/data/harnesses/apollo/skills/design/data/typography/public-sans-operator-single-family.md +0 -17
  152. package/data/harnesses/apollo/skills/design/data/typography/sohne-inter-fintech.md +0 -17
  153. package/data/harnesses/apollo/skills/design/data/typography/source-serif-source-sans.md +0 -17
  154. package/data/harnesses/apollo/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +0 -17
  155. package/data/harnesses/apollo/skills/design/data/typography/spectral-manrope.md +0 -17
  156. package/data/harnesses/apollo/skills/design/data/voices/bright-collaborator.md +0 -29
  157. package/data/harnesses/apollo/skills/design/data/voices/direct-operator.md +0 -29
  158. package/data/harnesses/apollo/skills/design/data/voices/earnest-helper.md +0 -29
  159. package/data/harnesses/apollo/skills/design/data/voices/editorial-composed.md +0 -29
  160. package/data/harnesses/apollo/skills/design/data/voices/quiet-concierge.md +0 -29
  161. package/data/harnesses/apollo/skills/design/data/voices/warm-guide.md +0 -29
  162. package/data/harnesses/apollo/skills/design/design-md/SCHEMA.md +0 -179
  163. package/data/harnesses/apollo/skills/design/design-md/index.csv +0 -67
  164. package/data/harnesses/apollo/skills/design/design-md/library/airbnb.md +0 -207
  165. package/data/harnesses/apollo/skills/design/design-md/library/airtable.md +0 -205
  166. package/data/harnesses/apollo/skills/design/design-md/library/anthropic-claude.md +0 -203
  167. package/data/harnesses/apollo/skills/design/design-md/library/apple.md +0 -206
  168. package/data/harnesses/apollo/skills/design/design-md/library/binance.md +0 -210
  169. package/data/harnesses/apollo/skills/design/design-md/library/bmw.md +0 -210
  170. package/data/harnesses/apollo/skills/design/design-md/library/cal.md +0 -209
  171. package/data/harnesses/apollo/skills/design/design-md/library/clay.md +0 -204
  172. package/data/harnesses/apollo/skills/design/design-md/library/clickhouse.md +0 -205
  173. package/data/harnesses/apollo/skills/design/design-md/library/cohere.md +0 -205
  174. package/data/harnesses/apollo/skills/design/design-md/library/coinbase.md +0 -198
  175. package/data/harnesses/apollo/skills/design/design-md/library/composio.md +0 -198
  176. package/data/harnesses/apollo/skills/design/design-md/library/cursor.md +0 -197
  177. package/data/harnesses/apollo/skills/design/design-md/library/elevenlabs.md +0 -199
  178. package/data/harnesses/apollo/skills/design/design-md/library/expo.md +0 -200
  179. package/data/harnesses/apollo/skills/design/design-md/library/figma.md +0 -199
  180. package/data/harnesses/apollo/skills/design/design-md/library/framer.md +0 -202
  181. package/data/harnesses/apollo/skills/design/design-md/library/hashicorp.md +0 -205
  182. package/data/harnesses/apollo/skills/design/design-md/library/ibm.md +0 -205
  183. package/data/harnesses/apollo/skills/design/design-md/library/intercom.md +0 -204
  184. package/data/harnesses/apollo/skills/design/design-md/library/kraken.md +0 -200
  185. package/data/harnesses/apollo/skills/design/design-md/library/linear-app.md +0 -198
  186. package/data/harnesses/apollo/skills/design/design-md/library/lovable.md +0 -199
  187. package/data/harnesses/apollo/skills/design/design-md/library/meta.md +0 -204
  188. package/data/harnesses/apollo/skills/design/design-md/library/minimax.md +0 -204
  189. package/data/harnesses/apollo/skills/design/design-md/library/mintlify.md +0 -210
  190. package/data/harnesses/apollo/skills/design/design-md/library/miro.md +0 -209
  191. package/data/harnesses/apollo/skills/design/design-md/library/mistral-ai.md +0 -201
  192. package/data/harnesses/apollo/skills/design/design-md/library/mongodb.md +0 -201
  193. package/data/harnesses/apollo/skills/design/design-md/library/notion.md +0 -204
  194. package/data/harnesses/apollo/skills/design/design-md/library/nvidia.md +0 -215
  195. package/data/harnesses/apollo/skills/design/design-md/library/ollama.md +0 -213
  196. package/data/harnesses/apollo/skills/design/design-md/library/opencode-ai.md +0 -216
  197. package/data/harnesses/apollo/skills/design/design-md/library/posthog.md +0 -218
  198. package/data/harnesses/apollo/skills/design/design-md/library/raycast.md +0 -214
  199. package/data/harnesses/apollo/skills/design/design-md/library/replicate.md +0 -202
  200. package/data/harnesses/apollo/skills/design/design-md/library/resend.md +0 -203
  201. package/data/harnesses/apollo/skills/design/design-md/library/revolut.md +0 -203
  202. package/data/harnesses/apollo/skills/design/design-md/library/runwayml.md +0 -203
  203. package/data/harnesses/apollo/skills/design/design-md/library/sanity.md +0 -200
  204. package/data/harnesses/apollo/skills/design/design-md/library/sentry.md +0 -201
  205. package/data/harnesses/apollo/skills/design/design-md/library/shopify.md +0 -202
  206. package/data/harnesses/apollo/skills/design/design-md/library/slack.md +0 -202
  207. package/data/harnesses/apollo/skills/design/design-md/library/spacex.md +0 -206
  208. package/data/harnesses/apollo/skills/design/design-md/library/spotify.md +0 -206
  209. package/data/harnesses/apollo/skills/design/design-md/library/stripe.md +0 -196
  210. package/data/harnesses/apollo/skills/design/design-md/library/supabase.md +0 -196
  211. package/data/harnesses/apollo/skills/design/design-md/library/superhuman.md +0 -194
  212. package/data/harnesses/apollo/skills/design/design-md/library/tesla.md +0 -198
  213. package/data/harnesses/apollo/skills/design/design-md/library/theverge.md +0 -199
  214. package/data/harnesses/apollo/skills/design/design-md/library/together-ai.md +0 -193
  215. package/data/harnesses/apollo/skills/design/design-md/library/uber.md +0 -195
  216. package/data/harnesses/apollo/skills/design/design-md/library/vercel.md +0 -195
  217. package/data/harnesses/apollo/skills/design/design-md/library/voltagent.md +0 -197
  218. package/data/harnesses/apollo/skills/design/design-md/library/warp.md +0 -196
  219. package/data/harnesses/apollo/skills/design/design-md/library/webflow.md +0 -197
  220. package/data/harnesses/apollo/skills/design/design-md/library/wired.md +0 -197
  221. package/data/harnesses/apollo/skills/design/design-md/library/wise.md +0 -198
  222. package/data/harnesses/apollo/skills/design/design-md/library/x-ai.md +0 -199
  223. package/data/harnesses/apollo/skills/design/design-md/library/zapier.md +0 -198
  224. package/data/harnesses/apollo/skills/design/design-md/nurix.md +0 -214
  225. package/data/harnesses/apollo/skills/design/design-md/variants/editorial-luxury.md +0 -184
  226. package/data/harnesses/apollo/skills/design/design-md/variants/expressive-saas.md +0 -216
  227. package/data/harnesses/apollo/skills/design/design-md/variants/quiet-premium.md +0 -211
  228. package/data/harnesses/apollo/skills/design/design-md/variants/terse-dense-operator.md +0 -212
  229. package/data/harnesses/apollo/skills/design/design-md/variants/warm-approachable.md +0 -216
  230. package/data/harnesses/code/skills/design/data/blueprints/browse.md +0 -38
  231. package/data/harnesses/code/skills/design/data/blueprints/creation-flow.md +0 -38
  232. package/data/harnesses/code/skills/design/data/blueprints/dashboard.md +0 -38
  233. package/data/harnesses/code/skills/design/data/blueprints/grid.md +0 -38
  234. package/data/harnesses/code/skills/design/data/blueprints/queue.md +0 -38
  235. package/data/harnesses/code/skills/design/data/blueprints/record-detail.md +0 -38
  236. package/data/harnesses/code/skills/design/data/blueprints/settings.md +0 -38
  237. package/data/harnesses/code/skills/design/data/chart-styling/Readme.md +0 -33
  238. package/data/harnesses/code/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +0 -19
  239. package/data/harnesses/code/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +0 -19
  240. package/data/harnesses/code/skills/design/data/chart-styling/datadog-classic-six-aligned.md +0 -19
  241. package/data/harnesses/code/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +0 -19
  242. package/data/harnesses/code/skills/design/data/chart-styling/econ-red-rule-horizontal.md +0 -19
  243. package/data/harnesses/code/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +0 -19
  244. package/data/harnesses/code/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +0 -19
  245. package/data/harnesses/code/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +0 -19
  246. package/data/harnesses/code/skills/design/data/chart-styling/material-rounded-explicit-label.md +0 -19
  247. package/data/harnesses/code/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +0 -19
  248. package/data/harnesses/code/skills/design/data/chart-styling/plot-currentcolor-inherit.md +0 -19
  249. package/data/harnesses/code/skills/design/data/chart-styling/saas-gradient-glow-area.md +0 -19
  250. package/data/harnesses/code/skills/design/data/chart-styling/shadcn-composable-css-vars.md +0 -19
  251. package/data/harnesses/code/skills/design/data/charts/census.csv +0 -58
  252. package/data/harnesses/code/skills/design/data/checklists/browse.md +0 -21
  253. package/data/harnesses/code/skills/design/data/checklists/creation-flow.md +0 -20
  254. package/data/harnesses/code/skills/design/data/checklists/dashboard.md +0 -21
  255. package/data/harnesses/code/skills/design/data/checklists/grid.md +0 -21
  256. package/data/harnesses/code/skills/design/data/checklists/queue.md +0 -21
  257. package/data/harnesses/code/skills/design/data/checklists/record-detail.md +0 -21
  258. package/data/harnesses/code/skills/design/data/checklists/settings.md +0 -21
  259. package/data/harnesses/code/skills/design/data/chrome/board-column.md +0 -68
  260. package/data/harnesses/code/skills/design/data/chrome/data-table.md +0 -63
  261. package/data/harnesses/code/skills/design/data/chrome/side-panel.md +0 -60
  262. package/data/harnesses/code/skills/design/data/chrome/sidebar.md +0 -78
  263. package/data/harnesses/code/skills/design/data/chrome/stat-cards.md +0 -62
  264. package/data/harnesses/code/skills/design/data/chrome/topbar.md +0 -65
  265. package/data/harnesses/code/skills/design/data/color/accent-presets.md +0 -90
  266. package/data/harnesses/code/skills/design/data/color/aesop-earth-mute.md +0 -91
  267. package/data/harnesses/code/skills/design/data/color/arc-peach-play.md +0 -90
  268. package/data/harnesses/code/skills/design/data/color/attio-hunter-teal.md +0 -90
  269. package/data/harnesses/code/skills/design/data/color/carbon-cyan-signal.md +0 -90
  270. package/data/harnesses/code/skills/design/data/color/clay-parchment.md +0 -90
  271. package/data/harnesses/code/skills/design/data/color/duolingo-feather.md +0 -90
  272. package/data/harnesses/code/skills/design/data/color/geist-mono-signal.md +0 -90
  273. package/data/harnesses/code/skills/design/data/color/linear-graphite-violet.md +0 -90
  274. package/data/harnesses/code/skills/design/data/color/mercury-onyx-cobalt.md +0 -90
  275. package/data/harnesses/code/skills/design/data/color/notion-paper-ink.md +0 -90
  276. package/data/harnesses/code/skills/design/data/color/radix-slate-iris.md +0 -90
  277. package/data/harnesses/code/skills/design/data/color/raycast-void-spectrum.md +0 -90
  278. package/data/harnesses/code/skills/design/data/color/spectrum-celery-fuchsia.md +0 -90
  279. package/data/harnesses/code/skills/design/data/color/stripe-blurple-ruby.md +0 -90
  280. package/data/harnesses/code/skills/design/data/color/superhuman-cod-picton.md +0 -89
  281. package/data/harnesses/code/skills/design/data/corpora/operations-review/companies.csv +0 -15
  282. package/data/harnesses/code/skills/design/data/corpora/operations-review/corpus.md +0 -87
  283. package/data/harnesses/code/skills/design/data/corpora/operations-review/people.csv +0 -25
  284. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/companies.csv +0 -15
  285. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/corpus.md +0 -83
  286. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/people.csv +0 -25
  287. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/companies.csv +0 -15
  288. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/corpus.md +0 -89
  289. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/people.csv +0 -25
  290. package/data/harnesses/code/skills/design/data/elevation/ant-design-directional-shadow.md +0 -19
  291. package/data/harnesses/code/skills/design/data/elevation/apple-liquid-glass-material.md +0 -18
  292. package/data/harnesses/code/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +0 -20
  293. package/data/harnesses/code/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +0 -20
  294. package/data/harnesses/code/skills/design/data/elevation/github-primer-sparing-shadow.md +0 -19
  295. package/data/harnesses/code/skills/design/data/elevation/ibm-carbon-layer-and-border.md +0 -19
  296. package/data/harnesses/code/skills/design/data/elevation/linear-dark-surface-ladder.md +0 -17
  297. package/data/harnesses/code/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +0 -19
  298. package/data/harnesses/code/skills/design/data/elevation/material-3-tonal-elevation.md +0 -21
  299. package/data/harnesses/code/skills/design/data/elevation/neobrutalist-hard-offset.md +0 -19
  300. package/data/harnesses/code/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +0 -18
  301. package/data/harnesses/code/skills/design/data/elevation/notion-warm-minimal-hairline.md +0 -17
  302. package/data/harnesses/code/skills/design/data/elevation/polaris-elevation-inset-bevel.md +0 -21
  303. package/data/harnesses/code/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +0 -19
  304. package/data/harnesses/code/skills/design/data/elevation/shadcn-neutral-derived-radius.md +0 -19
  305. package/data/harnesses/code/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +0 -18
  306. package/data/harnesses/code/skills/design/data/elevation/tailwind-default-utility-scale.md +0 -19
  307. package/data/harnesses/code/skills/design/data/elevation/vercel-geist-shadow-as-border.md +0 -20
  308. package/data/harnesses/code/skills/design/data/gradients/amber-attention-fill.md +0 -16
  309. package/data/harnesses/code/skills/design/data/gradients/cloud-shadow-wash.md +0 -16
  310. package/data/harnesses/code/skills/design/data/gradients/confident-lavender-wash.md +0 -16
  311. package/data/harnesses/code/skills/design/data/gradients/ember-ship-flare.md +0 -18
  312. package/data/harnesses/code/skills/design/data/gradients/full-metal-wash.md +0 -16
  313. package/data/harnesses/code/skills/design/data/gradients/indigo-ruby-cta-band.md +0 -18
  314. package/data/harnesses/code/skills/design/data/gradients/linear-graphite-wash.md +0 -18
  315. package/data/harnesses/code/skills/design/data/gradients/marble-quartz-wash.md +0 -16
  316. package/data/harnesses/code/skills/design/data/gradients/midnight-aurora-panel.md +0 -16
  317. package/data/harnesses/code/skills/design/data/gradients/neutral-volume-fill.md +0 -16
  318. package/data/harnesses/code/skills/design/data/gradients/revenue-uptrend-fill.md +0 -16
  319. package/data/harnesses/code/skills/design/data/gradients/risk-decline-fill.md +0 -16
  320. package/data/harnesses/code/skills/design/data/gradients/signal-blue-develop.md +0 -18
  321. package/data/harnesses/code/skills/design/data/gradients/slate-mist-wash.md +0 -16
  322. package/data/harnesses/code/skills/design/data/gradients/stripe-atmosphere-mesh.md +0 -18
  323. package/data/harnesses/code/skills/design/data/gradients/teal-signal-accent.md +0 -16
  324. package/data/harnesses/code/skills/design/data/gradients/violet-magenta-promo.md +0 -16
  325. package/data/harnesses/code/skills/design/data/iconography.md +0 -199
  326. package/data/harnesses/code/skills/design/data/motion/accordion-expand.md +0 -18
  327. package/data/harnesses/code/skills/design/data/motion/destructive-hold-confirm.md +0 -18
  328. package/data/harnesses/code/skills/design/data/motion/drag-dismiss-momentum.md +0 -18
  329. package/data/harnesses/code/skills/design/data/motion/empty-state-arrive.md +0 -18
  330. package/data/harnesses/code/skills/design/data/motion/hover-lift.md +0 -18
  331. package/data/harnesses/code/skills/design/data/motion/modal-center-arrive.md +0 -18
  332. package/data/harnesses/code/skills/design/data/motion/number-ticker-roll.md +0 -18
  333. package/data/harnesses/code/skills/design/data/motion/onboarding-bounce.md +0 -18
  334. package/data/harnesses/code/skills/design/data/motion/panel-slide.md +0 -18
  335. package/data/harnesses/code/skills/design/data/motion/press-feedback.md +0 -18
  336. package/data/harnesses/code/skills/design/data/motion/progress-linear-loop.md +0 -18
  337. package/data/harnesses/code/skills/design/data/motion/route-crossfade.md +0 -18
  338. package/data/harnesses/code/skills/design/data/motion/rubber-band-overscroll.md +0 -18
  339. package/data/harnesses/code/skills/design/data/motion/skeleton-shimmer.md +0 -18
  340. package/data/harnesses/code/skills/design/data/motion/stagger-arrive.md +0 -18
  341. package/data/harnesses/code/skills/design/data/motion/toast-enter-stack.md +0 -18
  342. package/data/harnesses/code/skills/design/data/motion/tooltip-chain-instant.md +0 -18
  343. package/data/harnesses/code/skills/design/data/motion/trigger-anchored-reveal.md +0 -18
  344. package/data/harnesses/code/skills/design/data/tells.csv +0 -34
  345. package/data/harnesses/code/skills/design/data/typography/anton-work-sans.md +0 -17
  346. package/data/harnesses/code/skills/design/data/typography/archivo-black-archivo.md +0 -17
  347. package/data/harnesses/code/skills/design/data/typography/bitter-karla.md +0 -17
  348. package/data/harnesses/code/skills/design/data/typography/dm-serif-dm-sans.md +0 -17
  349. package/data/harnesses/code/skills/design/data/typography/fraunces-inter.md +0 -17
  350. package/data/harnesses/code/skills/design/data/typography/geist-geist-mono.md +0 -17
  351. package/data/harnesses/code/skills/design/data/typography/hubot-sans-mona-sans.md +0 -17
  352. package/data/harnesses/code/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +0 -17
  353. package/data/harnesses/code/skills/design/data/typography/instrument-serif-instrument-sans.md +0 -17
  354. package/data/harnesses/code/skills/design/data/typography/inter-operator-single-family.md +0 -17
  355. package/data/harnesses/code/skills/design/data/typography/libre-baskerville-libre-franklin.md +0 -17
  356. package/data/harnesses/code/skills/design/data/typography/newsreader-inter.md +0 -17
  357. package/data/harnesses/code/skills/design/data/typography/playfair-display-source-sans.md +0 -17
  358. package/data/harnesses/code/skills/design/data/typography/public-sans-operator-single-family.md +0 -17
  359. package/data/harnesses/code/skills/design/data/typography/sohne-inter-fintech.md +0 -17
  360. package/data/harnesses/code/skills/design/data/typography/source-serif-source-sans.md +0 -17
  361. package/data/harnesses/code/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +0 -17
  362. package/data/harnesses/code/skills/design/data/typography/spectral-manrope.md +0 -17
  363. package/data/harnesses/code/skills/design/data/voices/bright-collaborator.md +0 -29
  364. package/data/harnesses/code/skills/design/data/voices/direct-operator.md +0 -29
  365. package/data/harnesses/code/skills/design/data/voices/earnest-helper.md +0 -29
  366. package/data/harnesses/code/skills/design/data/voices/editorial-composed.md +0 -29
  367. package/data/harnesses/code/skills/design/data/voices/quiet-concierge.md +0 -29
  368. package/data/harnesses/code/skills/design/data/voices/warm-guide.md +0 -29
  369. package/data/harnesses/code/skills/design/design-md/SCHEMA.md +0 -179
  370. package/data/harnesses/code/skills/design/design-md/index.csv +0 -67
  371. package/data/harnesses/code/skills/design/design-md/library/airbnb.md +0 -207
  372. package/data/harnesses/code/skills/design/design-md/library/airtable.md +0 -205
  373. package/data/harnesses/code/skills/design/design-md/library/anthropic-claude.md +0 -203
  374. package/data/harnesses/code/skills/design/design-md/library/apple.md +0 -206
  375. package/data/harnesses/code/skills/design/design-md/library/binance.md +0 -210
  376. package/data/harnesses/code/skills/design/design-md/library/bmw.md +0 -210
  377. package/data/harnesses/code/skills/design/design-md/library/cal.md +0 -209
  378. package/data/harnesses/code/skills/design/design-md/library/clay.md +0 -204
  379. package/data/harnesses/code/skills/design/design-md/library/clickhouse.md +0 -205
  380. package/data/harnesses/code/skills/design/design-md/library/cohere.md +0 -205
  381. package/data/harnesses/code/skills/design/design-md/library/coinbase.md +0 -198
  382. package/data/harnesses/code/skills/design/design-md/library/composio.md +0 -198
  383. package/data/harnesses/code/skills/design/design-md/library/cursor.md +0 -197
  384. package/data/harnesses/code/skills/design/design-md/library/elevenlabs.md +0 -199
  385. package/data/harnesses/code/skills/design/design-md/library/expo.md +0 -200
  386. package/data/harnesses/code/skills/design/design-md/library/figma.md +0 -199
  387. package/data/harnesses/code/skills/design/design-md/library/framer.md +0 -202
  388. package/data/harnesses/code/skills/design/design-md/library/hashicorp.md +0 -205
  389. package/data/harnesses/code/skills/design/design-md/library/ibm.md +0 -205
  390. package/data/harnesses/code/skills/design/design-md/library/intercom.md +0 -204
  391. package/data/harnesses/code/skills/design/design-md/library/kraken.md +0 -200
  392. package/data/harnesses/code/skills/design/design-md/library/linear-app.md +0 -198
  393. package/data/harnesses/code/skills/design/design-md/library/lovable.md +0 -199
  394. package/data/harnesses/code/skills/design/design-md/library/meta.md +0 -204
  395. package/data/harnesses/code/skills/design/design-md/library/minimax.md +0 -204
  396. package/data/harnesses/code/skills/design/design-md/library/mintlify.md +0 -210
  397. package/data/harnesses/code/skills/design/design-md/library/miro.md +0 -209
  398. package/data/harnesses/code/skills/design/design-md/library/mistral-ai.md +0 -201
  399. package/data/harnesses/code/skills/design/design-md/library/mongodb.md +0 -201
  400. package/data/harnesses/code/skills/design/design-md/library/notion.md +0 -204
  401. package/data/harnesses/code/skills/design/design-md/library/nvidia.md +0 -215
  402. package/data/harnesses/code/skills/design/design-md/library/ollama.md +0 -213
  403. package/data/harnesses/code/skills/design/design-md/library/opencode-ai.md +0 -216
  404. package/data/harnesses/code/skills/design/design-md/library/posthog.md +0 -218
  405. package/data/harnesses/code/skills/design/design-md/library/raycast.md +0 -214
  406. package/data/harnesses/code/skills/design/design-md/library/replicate.md +0 -202
  407. package/data/harnesses/code/skills/design/design-md/library/resend.md +0 -203
  408. package/data/harnesses/code/skills/design/design-md/library/revolut.md +0 -203
  409. package/data/harnesses/code/skills/design/design-md/library/runwayml.md +0 -203
  410. package/data/harnesses/code/skills/design/design-md/library/sanity.md +0 -200
  411. package/data/harnesses/code/skills/design/design-md/library/sentry.md +0 -201
  412. package/data/harnesses/code/skills/design/design-md/library/shopify.md +0 -202
  413. package/data/harnesses/code/skills/design/design-md/library/slack.md +0 -202
  414. package/data/harnesses/code/skills/design/design-md/library/spacex.md +0 -206
  415. package/data/harnesses/code/skills/design/design-md/library/spotify.md +0 -206
  416. package/data/harnesses/code/skills/design/design-md/library/stripe.md +0 -196
  417. package/data/harnesses/code/skills/design/design-md/library/supabase.md +0 -196
  418. package/data/harnesses/code/skills/design/design-md/library/superhuman.md +0 -194
  419. package/data/harnesses/code/skills/design/design-md/library/tesla.md +0 -198
  420. package/data/harnesses/code/skills/design/design-md/library/theverge.md +0 -199
  421. package/data/harnesses/code/skills/design/design-md/library/together-ai.md +0 -193
  422. package/data/harnesses/code/skills/design/design-md/library/uber.md +0 -195
  423. package/data/harnesses/code/skills/design/design-md/library/vercel.md +0 -195
  424. package/data/harnesses/code/skills/design/design-md/library/voltagent.md +0 -197
  425. package/data/harnesses/code/skills/design/design-md/library/warp.md +0 -196
  426. package/data/harnesses/code/skills/design/design-md/library/webflow.md +0 -197
  427. package/data/harnesses/code/skills/design/design-md/library/wired.md +0 -197
  428. package/data/harnesses/code/skills/design/design-md/library/wise.md +0 -198
  429. package/data/harnesses/code/skills/design/design-md/library/x-ai.md +0 -199
  430. package/data/harnesses/code/skills/design/design-md/library/zapier.md +0 -198
  431. package/data/harnesses/code/skills/design/design-md/nurix.md +0 -214
  432. package/data/harnesses/code/skills/design/design-md/variants/editorial-luxury.md +0 -184
  433. package/data/harnesses/code/skills/design/design-md/variants/expressive-saas.md +0 -216
  434. package/data/harnesses/code/skills/design/design-md/variants/quiet-premium.md +0 -211
  435. package/data/harnesses/code/skills/design/design-md/variants/terse-dense-operator.md +0 -212
  436. package/data/harnesses/code/skills/design/design-md/variants/warm-approachable.md +0 -216
@@ -1,18 +0,0 @@
1
- ---
2
- id: onboarding-bounce
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (springs — bounce 0.1-0.3, reserved for playful moments) + improve-animations/AUDIT.md §1 (rare/first-time → delight)"
6
- license: open
7
- feel: "a springy overshoot on a first-run welcome card reads warm and considered; the same bounce on anything seen daily reads gimmicky"
8
- aliases: { gimmicky: "spring bounce applied outside a rare/first-time identity moment — the same overshoot on a daily-use control", overdone: "bounce pushed above the 0.1-0.3 range into cartoonish territory" }
9
- ---
10
- Onboarding welcome screens, first-run tours — rare, high-emotion, seen once or a handful of times ever. The scoped exception where springy/physical vocabulary is admissible; it does not license bounce anywhere else.
11
-
12
- ```yaml values
13
- duration: 500ms (spring; no fixed duration)
14
- easing: spring(bounce 0.3)
15
- element-class: identity-moment
16
- interruptible: n/a
17
- budget: { identity-moment: 400-600ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: panel-slide
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (--ease-drawer curve; duration table, modal/drawer row) + apple-design/SKILL.md §3 (interruption; velocity continuity)"
6
- license: open
7
- feel: "a 260ms slide on the iOS drawer curve reads native and grabbable; a keyframe slide that restarts on repeated taps reads broken"
8
- aliases: { broken: "keyframes restarting from zero instead of a transition/spring retargeting mid-slide", floaty: "duration pushed past the panel budget" }
9
- ---
10
- Side panels, drawers, bottom sheets. Must be interruptible and carry velocity on a gesture-driven close — grabbing a closing panel should follow the pointer, not fight it.
11
-
12
- ```yaml values
13
- duration: 260ms
14
- easing: cubic-bezier(0.32, 0.72, 0, 1)
15
- element-class: panel
16
- interruptible: required
17
- budget: { panel: 200-500ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: press-feedback
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (physicality — press feedback; duration table) + improve-animations/AUDIT.md §2-3"
6
- license: open
7
- feel: "160ms scale-to-0.97 on pointer-down reads tactile and instant; slower or absent reads dead under the finger"
8
- aliases: { dead: "no press feedback at all, or duration pushed above the 160ms control budget", mushy: "an easing softer than ease-out, delaying the visible response" }
9
- ---
10
- Any pressable control — buttons, icon buttons, tap-target rows. The canon prescribes this on every pressable element while forbidding animation on keyboard-initiated actions: it fires on pointer-down only (a tap affordance, not a state transition), and keyboard activation (Enter/Space) never replays it.
11
-
12
- ```yaml values
13
- duration: 160ms
14
- easing: cubic-bezier(0.23, 1, 0.32, 1)
15
- element-class: control
16
- interruptible: n/a
17
- budget: { control: 100-160ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: progress-linear-loop
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (easing decision order — constant motion → linear) + animation-vocabulary/SKILL.md (Loop; Marquee); Material's linear token agrees as secondary"
6
- license: open
7
- feel: "a constant linear sweep reads honest about an unknown wait; any easing that speeds up and slows down reads like a fake promise"
8
- aliases: { "fake-promise": "eased (non-linear) motion on an indeterminate progress indicator, implying a completion point that doesn't exist", twitchy: "loop cycle faster than ~1s, reading anxious rather than calm" }
9
- ---
10
- Indeterminate progress bars, loading spinners, marquees. Constant-speed motion only — the one place `linear` is correct and `ease` curves are wrong.
11
-
12
- ```yaml values
13
- duration: 1200ms (loop)
14
- easing: linear
15
- element-class: control
16
- interruptible: n/a
17
- budget: { control: 1000-1500ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: route-crossfade
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/animation-vocabulary/SKILL.md (Crossfade; Page transition) + review-animations/STANDARDS.md (sub-300ms rule; masking imperfect crossfades; easing decision order — opacity/color → ease)"
6
- license: open
7
- feel: "a single ~250ms crossfade between views reads like one continuous product; a staggered reveal of each panel on arrival reads like a slideshow"
8
- aliases: { slideshow: "child elements staggering in individually on route arrival instead of one crossfade", "double-exposed": "old and new view both fully visible mid-transition — mask with a subtle blur (~2px, never above 20px)" }
9
- ---
10
- Navigating between routes or top-level views — a same-place opacity morph, not a spatial entrance, so `ease` rather than the entrance curve. One crossfade only; never an orchestrated sequence of the destination's own elements arriving one by one. A product loads into a task, not a reveal.
11
-
12
- ```yaml values
13
- duration: 250ms
14
- easing: ease
15
- element-class: page
16
- interruptible: n/a
17
- budget: { page: 200-300ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: rubber-band-overscroll
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/animation-vocabulary/SKILL.md (Rubber-banding) + apple-design/SKILL.md §8 (boundary resistance) and spring cheat-sheet (critically-damped default)"
6
- license: open
7
- feel: "resistance that grows the further you pull, then a quick snap-back, reads alive and physical; a hard stop at the edge reads frozen"
8
- aliases: { frozen: "a hard stop at the scroll boundary instead of progressive resistance", overshoot: "snap-back overshoots past the origin instead of settling cleanly" }
9
- ---
10
- Scrollable containers and pull-to-refresh regions at their boundary. Resistance increases continuously with drag distance past the edge; release animates back with a critically-damped spring, never a linear tween.
11
-
12
- ```yaml values
13
- duration: 300ms (snap-back)
14
- easing: spring(damping increases near boundary)
15
- element-class: page
16
- interruptible: required
17
- budget: { page: 200-400ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: skeleton-shimmer
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/animation-vocabulary/SKILL.md (Skeleton/Shimmer) + review-animations/STANDARDS.md (easing decision order — constant motion → linear)"
6
- license: open
7
- feel: "a slow, continuous sheen reads like content is genuinely on its way; a fast or jittery shimmer reads anxious"
8
- aliases: { anxious: "shimmer cycle faster than ~1s, reading twitchy instead of calm", stuck: "a static placeholder with no shimmer at all, giving no sense of progress" }
9
- ---
10
- Loading placeholders for cards, rows, and detail panes before content resolves. Runs as a continuous ambient loop, exempt from the sub-300ms UI budget (constant-motion class); swap to real content with a quick crossfade, not a hard cut.
11
-
12
- ```yaml values
13
- duration: 1400ms (loop)
14
- easing: linear
15
- element-class: list-item
16
- interruptible: n/a
17
- budget: { list-item: 1200-1600ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: stagger-arrive
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (stagger — 30-80ms, decorative, never blocks interaction)"
6
- license: open
7
- feel: "a ~50ms cascade with a small upward drift reads considered; everything landing at once reads dumped, and gaps above 80ms read slow"
8
- aliases: { dumped: "no stagger at all on a multi-item entrance", draggy: "per-item stagger delay above the 80ms budget" }
9
- ---
10
- List and grid entrances for freshly-loaded content within a task (search results, new rows) — never on initial page load or route arrival (no orchestrated load sequences). Purely decorative — must never delay the list becoming interactive; keep the per-item delay inside 30-80ms so a ten-row list finishes well under half a second.
11
-
12
- ```yaml values
13
- duration: 300ms
14
- easing: cubic-bezier(0.23, 1, 0.32, 1)
15
- element-class: list-item
16
- interruptible: n/a
17
- budget: { list-item: 250-350ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: toast-enter-stack
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (interruptibility — toast transition example; cohesion — the Sonner register)"
6
- license: open
7
- feel: "a 400ms transition-based stack reads calm even when toasts pile up fast; a keyframe stack reads jumpy every time a new one lands"
8
- aliases: { jumpy: "@keyframes restarting already-stacked toasts instead of one continuous transition retargeting them", jarring: "no @starting-style/mount fallback, so the first toast snaps in with no entrance" }
9
- ---
10
- Toast/notification stacks. A new arrival must not restart the position transition of toasts already stacked — everything reflows on one continuous transition, never per-toast keyframes.
11
-
12
- ```yaml values
13
- duration: 400ms
14
- easing: ease
15
- element-class: overlay
16
- interruptible: required
17
- budget: { overlay: 300-450ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: tooltip-chain-instant
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/emil-design-eng/SKILL.md (tooltip-chaining example) + review-animations/STANDARDS.md (duration table, tooltip row; perceived performance)"
6
- license: open
7
- feel: "the first tooltip's 125ms fade-and-lift reads considered; every later tooltip in the same toolbar should read instant, with zero animation"
8
- aliases: { "laggy-toolbar": "every tooltip in a group replaying the full delay+animation instead of chaining to instant after the first", floaty: "duration above the small-popover budget" }
9
- ---
10
- Tooltips, especially adjacent ones in a toolbar. First open: full delay + animation. While the pointer stays within the tooltip group, later tooltips switch to 0ms — this is the frequency law being satisfied, not an exception to it.
11
-
12
- ```yaml values
13
- duration: 125ms
14
- easing: cubic-bezier(0.23, 1, 0.32, 1)
15
- element-class: control
16
- interruptible: n/a
17
- budget: { control: 0-200ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: trigger-anchored-reveal
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (physicality — origin-aware popovers; duration table, dropdown row) + improve-animations/AUDIT.md §3"
6
- license: open
7
- feel: "growing out of the trigger at ~200ms reads anchored and native; center-scale or scale(0) reads like a random popup"
8
- aliases: { disconnected: "transform-origin left at center instead of the trigger element", glitchy: "scale(0) start instead of scale(0.9-0.97) + opacity" }
9
- ---
10
- Popovers, dropdowns, select menus, tooltips. `transform-origin` follows the trigger (Radix/Base UI expose it as a CSS var); never centers. Rapid open/close/open must retarget, not restart.
11
-
12
- ```yaml values
13
- duration: 200ms
14
- easing: cubic-bezier(0.23, 1, 0.32, 1)
15
- element-class: overlay
16
- interruptible: required
17
- budget: { overlay: 150-250ms }
18
- ```
@@ -1,34 +0,0 @@
1
- id,tell,category,provenance,sourced,status
2
- tell-001,"every shadow set to zero and every border the same 1px gray — structure without a single elevation decision",wireframe-smell,"design-skill 01 §E5; impeccable detector registry",2026-07-12,active
3
- tell-002,"rounded-square icon tile stacked above the heading on every card — the universal generated feature-card template",template,"impeccable detector registry (icon-tile-stack)",2026-07-12,active
4
- tell-003,"cards nested inside cards — double borders and stacked radii standing in for hierarchy",card-abuse,"impeccable detector registry (nested-cards); design-skill 01 §E5",2026-07-12,active
5
- tell-004,"thick colored stripe down one edge of a card as the accent device",accent-abuse,"impeccable detector registry (side-tab); design-skill 01 §E5",2026-07-12,active
6
- tell-005,"accent border wrapped around a rounded card — the stripe fighting the corner radius",accent-abuse,"impeccable detector registry (border-accent-on-rounded)",2026-07-12,active
7
- tell-006,"hero-metric template — a row of identical stat tiles each icon + label + big number, with no comparison, trend, state, or door",template,"design-skill 01 §E5; b2b-ux-patterns dashboards chapter",2026-07-12,active
8
- tell-007,"cream or warm-beige page surface reached by reflex as the tasteful default",palette,"impeccable detector registry (cream-palette); taste-skill §9.A; design-skill 01 §A2 anti-cream guardband",2026-07-12,active
9
- tell-008,"ghost cards — bordered or shadowed containers wrapping a single short text run or nothing at all",card-abuse,"design-skill 01 §E5",2026-07-12,active
10
- tell-009,"purple-violet gradients and cyan-on-dark as the default accent scheme",palette,"impeccable detector registry (ai-color-palette)",2026-07-12,active
11
- tell-010,"dark theme expressed as colored box-shadow glows instead of a surface-lightness ladder",palette,"impeccable detector registry (dark-glow); design-skill 01 §A3 dark ladder",2026-07-12,active
12
- tell-011,"gradient fills on heading or metric text",typography,"impeccable detector registry (gradient-text)",2026-07-12,active
13
- tell-012,"flat type ramp — adjacent sizes too close together to carry hierarchy anywhere on the surface",typography,"impeccable detector registry (flat-type-hierarchy)",2026-07-12,active
14
- tell-013,"one spacing value everywhere — no tight grouping of related controls, no generous seams between sections",layout,"impeccable detector registry (monotonous-spacing)",2026-07-12,active
15
- tell-014,"hairline border and a wide diffuse shadow on the same container — two elevation systems at once",elevation,"impeccable detector registry (generated-UI signature set)",2026-07-12,active
16
- tell-015,"decorative two-axis hairline grid background behind a surface that is not a canvas, map, or measurement view",template,"impeccable detector registry (generated-UI signature set)",2026-07-12,active
17
- tell-016,"numbered section markers (01 / 02 / 03) as structural scaffolding",template,"impeccable detector registry (numbered-section-markers); taste-skill §9.F",2026-07-12,active
18
- tell-017,"tiny uppercase letter-spaced kicker label repeated above every section heading",template,"impeccable detector registry (repeated-section-kickers)",2026-07-12,active
19
- tell-018,"colored status dots decorating every nav item, row, or badge with no real state behind them",chrome,"taste-skill §9.F production-observed tells",2026-07-12,active
20
- tell-019,"middle-dot chains as the default separator for every metadata strip",chrome,"taste-skill §9.F production-observed tells",2026-07-12,active
21
- tell-020,"top and bottom hairline borders on every row of a long table or spec list",wireframe-smell,"taste-skill §9.F production-observed tells",2026-07-12,active
22
- tell-021,"fake build or version strings as decoration where no real build data exists",demo-content,"taste-skill §9.F production-observed tells",2026-07-12,active
23
- tell-022,"placeholder-generic person names in demo data (the John Doe class)",demo-content,"taste-skill §9.D (Jane Doe effect); design-skill 01 §E5",2026-07-12,active
24
- tell-023,"the same gray egg or user-icon avatar on every person row",demo-content,"taste-skill §9.D production-observed tells",2026-07-12,active
25
- tell-024,"fake-perfect numbers — round percentages, sequential IDs, totals that reconcile too neatly",demo-content,"taste-skill §9.D; design-skill 01 §E5",2026-07-12,active
26
- tell-025,"startup-slop company names in demo data (the Acme / Nexus / Cloudly class)",demo-content,"taste-skill §9.D production-observed tells",2026-07-12,active
27
- tell-026,"marketing buzzwords in interface copy (streamline, empower, supercharge, enterprise-grade)",copy,"impeccable detector registry (marketing-buzzword); taste-skill §9.D",2026-07-12,active
28
- tell-027,"em-dash-heavy microcopy — the character recurring across labels, empty states, and tooltips",copy,"taste-skill §9.G; impeccable detector registry (em-dash-overuse)",2026-07-12,active
29
- tell-028,"transition: all on interactive elements",motion,"design-skill 02 ship-gate Tier-2 motion tells",2026-07-12,active
30
- tell-029,"ease-in easing on an entrance",motion,"design-skill 02 ship-gate Tier-2 motion tells; emilkowalski motion canon",2026-07-12,active
31
- tell-030,"animation attached to a keyboard-triggered action",motion,"design-skill 02 ship-gate Tier-2 motion tells; emilkowalski frequency law",2026-07-12,active
32
- tell-031,"bounce or elastic easing on product chrome",motion,"impeccable detector registry (bounce-easing)",2026-07-12,active
33
- tell-032,"width, height, padding, or margin animated instead of transform and opacity",motion,"impeccable detector registry (layout-transition)",2026-07-12,active
34
- tell-033,"orchestrated staggered entrance choreography on a work surface — a product loads into a task",motion,"design-skill 01 §A6 admission criteria; emilkowalski motion canon",2026-07-12,active
@@ -1,17 +0,0 @@
1
- ---
2
- id: anton-work-sans
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co bold/brutalist list; Google Fonts; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "loud condensed poster headline against a quiet neutral body — maximum contrast"
8
- ---
9
- Anton is a single static weight built for shouting — a handful of words at most, never a sentence; Work Sans absorbs every remaining functional role at a calm, neutral register.
10
-
11
- ```yaml values
12
- display: { family: "Anton", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400] }
13
- sans: { family: "Work Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600] }
14
- mono: { family: "Roboto Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["poster headlines", "hero words", "cover moments"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["code", "data values"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: archivo-black-archivo
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co brutalist list; Google Fonts (Omnibus-Type superfamily); families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "brutalist poster energy tempered by a disciplined variable-width grotesque body"
8
- ---
9
- Archivo Black is a single static 900-weight cut reserved for shock headlines; Archivo Variable (same foundry, wdth+wght axes) runs everything else, including a condensed width option for dense tables.
10
-
11
- ```yaml values
12
- display: { family: "Archivo Black", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400] }
13
- sans: { family: "Archivo Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["poster headlines", "hero statements", "cover moments"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["code", "data"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: bitter-karla
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Google Fonts featured pairings; Fontpair.co warm-approachable list; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "friendly slab warmth over a soft, low-contrast grotesque"
8
- ---
9
- A gentle, approachable pairing for product blogs and onboarding flows that want warmth without going fully editorial; both faces are fully variable so weight can carry hierarchy inside each role too.
10
-
11
- ```yaml values
12
- display: { family: "Bitter Variable", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 600, 700] }
13
- sans: { family: "Karla Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["headlines", "hero banners", "cover cards"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["code", "IDs"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: dm-serif-dm-sans
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Google Fonts featured pairings (Colophon Foundry twin release); Fontpair.co; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "quiet warmth from two faces drawn by the same studio in one release"
8
- ---
9
- The shared authorship keeps x-heights and rhythm aligned without matching stroke contrast — a low-friction pairing for blogs, newsletters, and about-pages that want a soft editorial voice. DM Serif Display ships as a single static weight; treat it as a display voice, not a workhorse.
10
-
11
- ```yaml values
12
- display: { family: "DM Serif Display", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400] }
13
- sans: { family: "DM Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["pull quotes", "hero statements", "identity lockups"], sans: ["body copy", "nav", "buttons", "form labels", "table cells"], mono: ["code samples", "technical asides"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: fraunces-inter
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co warm-editorial list; Fonts In Use case studies tagged Fraunces; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "expressive, ink-trap warmth over a clean, quiet product sans"
8
- ---
9
- Fraunces carries optical-size (opsz) and WONK/SOFT axes — dial WONK toward 0 and keep opsz high for a calmer display cut in dense layouts; Inter runs the rest of the interface untouched.
10
-
11
- ```yaml values
12
- display: { family: "Fraunces Variable", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 500, 600, 900] }
13
- sans: { family: "Inter Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["hero headlines", "cover moments", "editorial pull quotes"], sans: ["body copy", "UI labels", "buttons", "form fields", "table cells"], mono: ["code blocks", "data/IDs"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: geist-geist-mono
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Vercel's production type system, Geist Sans + Geist Mono (Vercel with Basement Studio, OFL, added to Google Fonts Oct/Nov 2024); families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "quiet, engineered product register — a single studio's sans and mono built as one system"
8
- ---
9
- Dense-operator-adjacent: Geist Variable carries both identity moments (heavier weight) and body/UI (regular weight) as the same family, exactly as Vercel ships it on vercel.com and in Next.js docs; Geist Mono is the real sibling mono, not a substitution.
10
-
11
- ```yaml values
12
- display: { family: "Geist Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [600, 700] }
13
- sans: { family: "Geist Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500] }
14
- mono: { family: "Geist Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["hero headlines", "page titles", "top-nav wordmark"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["code blocks", "terminal output", "IDs"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: hubot-sans-mona-sans
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "GitHub's production brand/UI system, Hubot Sans + Mona Sans (GitHub with Degarism Studio, OFL, added to Google Fonts Nov 2024); families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "friendly technical brand voice — an expressive geometric display over a workhorse variable UI face"
8
- ---
9
- Hubot Sans is GitHub's display/wordmark face (wide, geometric, confident); Mona Sans is the UI workhorse (wdth+wght axes) for everything functional. Note: GitHub's real code font, Monaspace, is OFL-licensed but not published to Google Fonts — JetBrains Mono is substituted here and should be swapped for Monaspace directly from GitHub's own distribution if code-block authenticity matters.
10
-
11
- ```yaml values
12
- display: { family: "Hubot Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [500, 700] }
13
- sans: { family: "Mona Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["brand lockups", "hero headlines", "cover moments"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["code blocks", "terminal output", "diffs"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: ibm-plex-sans-operator-single-family
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "IBM's own Plex type system (Mike Abbink / Bold Monday); Typ.io; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "humanist technical register, one family carrying the entire hierarchy by weight and width"
8
- ---
9
- Dense-operator entry: IBM Plex Sans Variable (wdth+wght axes) covers both display and sans roles — use 600 weight or a narrower width cut for identity moments only, never for table cells or buttons. Plex Mono (static, same foundry) completes the trio for code and data.
10
-
11
- ```yaml values
12
- display: { family: "IBM Plex Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [600, 700] }
13
- sans: { family: "IBM Plex Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500] }
14
- mono: { family: "IBM Plex Mono", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500, 600] }
15
- register-scope: { display: ["page titles", "dashboard section headers", "empty states"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["code", "logs", "data/IDs"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: instrument-serif-instrument-sans
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Google Fonts (Instrument design agency twin release, 2023); Fonts In Use recent uploads; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "bright, high-contrast serif flashes against a friendly variable-width grotesque"
8
- ---
9
- Instrument Serif ships one weight and an italic only — treat it as a flourish face for a handful of words, never a paragraph; Instrument Sans carries every functional role including its own width axis for compact table headers.
10
-
11
- ```yaml values
12
- display: { family: "Instrument Serif", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400] }
13
- sans: { family: "Instrument Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["hero words", "short pull quotes", "identity lockups"], sans: ["body copy", "buttons", "form labels", "table cells", "dense UI"], mono: ["code", "data values"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: inter-operator-single-family
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Linear's production UI stack (Inter, confirmed — Linear does not ship a custom typeface); Google Fonts; family verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "precise, restrained SaaS operator surface carried entirely by weight"
8
- ---
9
- Dense-operator entry: display and sans are the same registered family — identity moments (page titles, top-nav wordmark) take weight 600–700 of Inter Variable itself rather than a separate face; body/UI stays at 400–500. No display face touches table cells or buttons.
10
-
11
- ```yaml values
12
- display: { family: "Inter Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [600, 700] }
13
- sans: { family: "Inter Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["page titles", "top-nav wordmark", "empty-state headlines"], sans: ["body copy", "buttons", "form labels", "table cells", "nav items"], mono: ["code", "IDs", "timestamps", "numeric data"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: libre-baskerville-libre-franklin
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co classic-serif list; Google Fonts (both by Impallari Type); families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "quiet civic literary register, restrained by shared foundry discipline"
8
- ---
9
- Libre Baskerville is a classic-book face with no variable axis and only three cuts — use it sparingly for titles; Libre Franklin's full variable range does the rest of the civic/documentation work.
10
-
11
- ```yaml values
12
- display: { family: "Libre Baskerville", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 700] }
13
- sans: { family: "Libre Franklin Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "IBM Plex Mono", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["report titles", "cover pages", "section headers"], sans: ["body copy", "buttons", "form labels", "table cells"], mono: ["citations", "reference codes"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: newsreader-inter
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Google Fonts (Production Type, built for a Google News reading initiative); Typ.io case-study tag; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "hushed, long-form literary register that shrinks gracefully at small sizes"
8
- ---
9
- Newsreader's opsz axis is the point — let it size itself down for dense captions and up for display; pair only with a body sans that disappears, which Inter is built to do.
10
-
11
- ```yaml values
12
- display: { family: "Newsreader Variable", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 500, 600] }
13
- sans: { family: "Inter Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600] }
14
- mono: { family: "Roboto Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["article headlines", "pull quotes", "cover text"], sans: ["body copy", "nav", "buttons", "form labels", "table cells"], mono: ["timestamps", "citations", "code refs"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: playfair-display-source-sans
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co classic-pairings list; Typ.io Adobe-fonts popularity data; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "broadsheet gravity meeting a disciplined newsroom reading face"
8
- ---
9
- Use for long-form editorial and reports where headlines need didone drama but body copy must stay quiet and legible; the mono is a substitution note, not part of the source pairing — bring it in only if the surface needs inline code or IDs.
10
-
11
- ```yaml values
12
- display: { family: "Playfair Display Variable", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 600, 700, 900] }
13
- sans: { family: "Source Sans 3 Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "IBM Plex Mono", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500, 600] }
15
- register-scope: { display: ["cover titles", "hero headlines", "section dividers"], sans: ["body copy", "captions", "buttons", "form labels", "table cells"], mono: ["figure references", "dataset IDs", "code snippets"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: public-sans-operator-single-family
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "U.S. Web Design System (USWDS) production typeface, Public Sans (18F/USWDS, Google Fonts); families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "quiet civic register, weight-carried hierarchy built for dense government data tables"
8
- ---
9
- Dense-operator entry: Public Sans Variable is the entire system — no separate display face. Identity moments take 600-700 weight; every table cell, form label, and button stays at 400-500. Built explicitly for accessibility-first government services, so it is the most conservative entry in this set.
10
-
11
- ```yaml values
12
- display: { family: "Public Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [600, 700] }
13
- sans: { family: "Public Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500] }
14
- mono: { family: "Roboto Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["page titles", "section headers", "identity moments"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["reference codes", "data values"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: sohne-inter-fintech
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Stripe's production marketing/dashboard stack — Söhne, a commercial Klim Type Foundry license (released 2019), reported via industry SaaS-typography surveys; open substitutes verified live against fonts.google.com/metadata/fonts"
6
- license: licensed
7
- feel: "fintech institutional precision — a paid grotesque for identity, an open workhorse for everything else"
8
- ---
9
- Söhne is a commercial Klim Type Foundry release, NOT distributed via Google Fonts — license it directly from Klim (or use the system-font fallback stack as a placeholder) before shipping; Inter Variable is the open substitute carrying every UI, table, and form role so the licensed face never has to.
10
-
11
- ```yaml values
12
- display: { family: "Söhne", fallback: "system-ui, -apple-system, \"Segoe UI\", sans-serif", weights: [400, 500, 700] }
13
- sans: { family: "Inter Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600] }
14
- mono: { family: "JetBrains Mono Variable", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["marketing hero type", "brand lockups", "cover moments"], sans: ["body copy", "buttons", "form labels", "table cells", "dashboard UI"], mono: ["code", "API examples", "numeric data"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: source-serif-source-sans
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Adobe/Google Fonts superfamily (Source series); Typ.io Adobe-fonts popularity list; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "quiet institutional register — one design lineage front to back"
8
- ---
9
- Both faces share a metrics philosophy from the same Adobe type team, so swapping serif-for-sans mid-document (report body to callout) never jars; good for documentation, legal, and internal-tool surfaces that want restraint over personality.
10
-
11
- ```yaml values
12
- display: { family: "Source Serif 4 Variable", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 500, 600] }
13
- sans: { family: "Source Sans 3 Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "IBM Plex Mono", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 500] }
15
- register-scope: { display: ["document titles", "section headers", "cover pages"], sans: ["body copy", "buttons", "form labels", "table cells", "nav"], mono: ["reference IDs", "code", "version strings"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: space-grotesk-work-sans-space-mono
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co technical/startup list; Google Fonts; families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "geometric technical display over a neutral working body, monospace for code accents"
8
- ---
9
- A three-role technical system: Space Grotesk's squarish geometry announces sections, Work Sans stays out of the way for body copy, and its Colophon Foundry sibling Space Mono (static, 4 cuts) marks code — a common indie-SaaS combination.
10
-
11
- ```yaml values
12
- display: { family: "Space Grotesk Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [500, 700] }
13
- sans: { family: "Work Sans Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600] }
14
- mono: { family: "Space Mono", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 700] }
15
- register-scope: { display: ["section headers", "hero headlines", "feature callouts"], sans: ["body copy", "buttons", "form labels", "table cells"], mono: ["code", "terminal output", "data values"] }
16
- oracle-verified: 2026-07-12
17
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- id: spectral-manrope
3
- class: a1
4
- sourced: 2026-07-12
5
- source: "Fontpair.co editorial-meets-product list; Google Fonts (Production Type / Mikhail Sharanda); families verified live against fonts.google.com/metadata/fonts"
6
- license: open
7
- feel: "literary display warmth set against a crisp geometric grotesque body"
8
- ---
9
- Spectral has no variable axis — pick static weights deliberately (400 for long text, 600/700 for emphasis); Manrope is fully variable and should absorb every UI weight need.
10
-
11
- ```yaml values
12
- display: { family: "Spectral", fallback: "Georgia, Cambria, \"Times New Roman\", serif", weights: [400, 600, 700] }
13
- sans: { family: "Manrope Variable", fallback: "\"Helvetica Neue\", Arial, sans-serif", weights: [400, 500, 600, 700] }
14
- mono: { family: "Space Mono", fallback: "\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace", weights: [400, 700] }
15
- register-scope: { display: ["headlines", "cover statements", "section dividers"], sans: ["body copy", "buttons", "form labels", "table cells"], mono: ["code", "data labels"] }
16
- oracle-verified: 2026-07-12
17
- ```