@nurix/etna 0.19.50 → 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 (434) hide show
  1. package/data/harness-index.json +1 -1
  2. package/data/harnesses/apollo/harness.json +2 -2
  3. package/data/harnesses/apollo/skills/design/SKILL.md +55 -29
  4. package/data/harnesses/apollo/skills/design/references/compose.md +8 -4
  5. package/data/harnesses/apollo/skills/design/references/content.md +5 -5
  6. package/data/harnesses/apollo/skills/design/references/existing-apps.md +1 -1
  7. package/data/harnesses/apollo/skills/design/references/intake.md +11 -7
  8. package/data/harnesses/apollo/skills/design/references/object-pass.md +1 -1
  9. package/data/harnesses/apollo/skills/design/references/ship-gate.md +3 -3
  10. package/data/harnesses/apollo/skills/design/scripts/select-chart.mjs +26 -6
  11. package/data/harnesses/code/harness.json +2 -2
  12. package/data/harnesses/code/skills/design/SKILL.md +55 -29
  13. package/data/harnesses/code/skills/design/references/compose.md +8 -4
  14. package/data/harnesses/code/skills/design/references/content.md +5 -5
  15. package/data/harnesses/code/skills/design/references/existing-apps.md +1 -1
  16. package/data/harnesses/code/skills/design/references/intake.md +11 -7
  17. package/data/harnesses/code/skills/design/references/object-pass.md +1 -1
  18. package/data/harnesses/code/skills/design/references/ship-gate.md +3 -3
  19. package/data/harnesses/code/skills/design/scripts/select-chart.mjs +26 -6
  20. package/package.json +2 -2
  21. package/data/harnesses/apollo/skills/design/data/blueprints/browse.md +0 -38
  22. package/data/harnesses/apollo/skills/design/data/blueprints/creation-flow.md +0 -38
  23. package/data/harnesses/apollo/skills/design/data/blueprints/dashboard.md +0 -38
  24. package/data/harnesses/apollo/skills/design/data/blueprints/grid.md +0 -38
  25. package/data/harnesses/apollo/skills/design/data/blueprints/queue.md +0 -38
  26. package/data/harnesses/apollo/skills/design/data/blueprints/record-detail.md +0 -38
  27. package/data/harnesses/apollo/skills/design/data/blueprints/settings.md +0 -38
  28. package/data/harnesses/apollo/skills/design/data/chart-styling/Readme.md +0 -33
  29. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +0 -19
  30. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +0 -19
  31. package/data/harnesses/apollo/skills/design/data/chart-styling/datadog-classic-six-aligned.md +0 -19
  32. package/data/harnesses/apollo/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +0 -19
  33. package/data/harnesses/apollo/skills/design/data/chart-styling/econ-red-rule-horizontal.md +0 -19
  34. package/data/harnesses/apollo/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +0 -19
  35. package/data/harnesses/apollo/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +0 -19
  36. package/data/harnesses/apollo/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +0 -19
  37. package/data/harnesses/apollo/skills/design/data/chart-styling/material-rounded-explicit-label.md +0 -19
  38. package/data/harnesses/apollo/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +0 -19
  39. package/data/harnesses/apollo/skills/design/data/chart-styling/plot-currentcolor-inherit.md +0 -19
  40. package/data/harnesses/apollo/skills/design/data/chart-styling/saas-gradient-glow-area.md +0 -19
  41. package/data/harnesses/apollo/skills/design/data/chart-styling/shadcn-composable-css-vars.md +0 -19
  42. package/data/harnesses/apollo/skills/design/data/charts/census.csv +0 -58
  43. package/data/harnesses/apollo/skills/design/data/checklists/browse.md +0 -21
  44. package/data/harnesses/apollo/skills/design/data/checklists/creation-flow.md +0 -20
  45. package/data/harnesses/apollo/skills/design/data/checklists/dashboard.md +0 -21
  46. package/data/harnesses/apollo/skills/design/data/checklists/grid.md +0 -21
  47. package/data/harnesses/apollo/skills/design/data/checklists/queue.md +0 -21
  48. package/data/harnesses/apollo/skills/design/data/checklists/record-detail.md +0 -21
  49. package/data/harnesses/apollo/skills/design/data/checklists/settings.md +0 -21
  50. package/data/harnesses/apollo/skills/design/data/chrome/board-column.md +0 -68
  51. package/data/harnesses/apollo/skills/design/data/chrome/data-table.md +0 -63
  52. package/data/harnesses/apollo/skills/design/data/chrome/side-panel.md +0 -60
  53. package/data/harnesses/apollo/skills/design/data/chrome/sidebar.md +0 -78
  54. package/data/harnesses/apollo/skills/design/data/chrome/stat-cards.md +0 -62
  55. package/data/harnesses/apollo/skills/design/data/chrome/topbar.md +0 -65
  56. package/data/harnesses/apollo/skills/design/data/color/accent-presets.md +0 -90
  57. package/data/harnesses/apollo/skills/design/data/color/aesop-earth-mute.md +0 -91
  58. package/data/harnesses/apollo/skills/design/data/color/arc-peach-play.md +0 -90
  59. package/data/harnesses/apollo/skills/design/data/color/attio-hunter-teal.md +0 -90
  60. package/data/harnesses/apollo/skills/design/data/color/carbon-cyan-signal.md +0 -90
  61. package/data/harnesses/apollo/skills/design/data/color/clay-parchment.md +0 -90
  62. package/data/harnesses/apollo/skills/design/data/color/duolingo-feather.md +0 -90
  63. package/data/harnesses/apollo/skills/design/data/color/geist-mono-signal.md +0 -90
  64. package/data/harnesses/apollo/skills/design/data/color/linear-graphite-violet.md +0 -90
  65. package/data/harnesses/apollo/skills/design/data/color/mercury-onyx-cobalt.md +0 -90
  66. package/data/harnesses/apollo/skills/design/data/color/notion-paper-ink.md +0 -90
  67. package/data/harnesses/apollo/skills/design/data/color/radix-slate-iris.md +0 -90
  68. package/data/harnesses/apollo/skills/design/data/color/raycast-void-spectrum.md +0 -90
  69. package/data/harnesses/apollo/skills/design/data/color/spectrum-celery-fuchsia.md +0 -90
  70. package/data/harnesses/apollo/skills/design/data/color/stripe-blurple-ruby.md +0 -90
  71. package/data/harnesses/apollo/skills/design/data/color/superhuman-cod-picton.md +0 -89
  72. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/companies.csv +0 -15
  73. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/corpus.md +0 -87
  74. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/people.csv +0 -25
  75. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/companies.csv +0 -15
  76. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/corpus.md +0 -83
  77. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/people.csv +0 -25
  78. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/companies.csv +0 -15
  79. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/corpus.md +0 -89
  80. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/people.csv +0 -25
  81. package/data/harnesses/apollo/skills/design/data/elevation/ant-design-directional-shadow.md +0 -19
  82. package/data/harnesses/apollo/skills/design/data/elevation/apple-liquid-glass-material.md +0 -18
  83. package/data/harnesses/apollo/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +0 -20
  84. package/data/harnesses/apollo/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +0 -20
  85. package/data/harnesses/apollo/skills/design/data/elevation/github-primer-sparing-shadow.md +0 -19
  86. package/data/harnesses/apollo/skills/design/data/elevation/ibm-carbon-layer-and-border.md +0 -19
  87. package/data/harnesses/apollo/skills/design/data/elevation/linear-dark-surface-ladder.md +0 -17
  88. package/data/harnesses/apollo/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +0 -19
  89. package/data/harnesses/apollo/skills/design/data/elevation/material-3-tonal-elevation.md +0 -21
  90. package/data/harnesses/apollo/skills/design/data/elevation/neobrutalist-hard-offset.md +0 -19
  91. package/data/harnesses/apollo/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +0 -18
  92. package/data/harnesses/apollo/skills/design/data/elevation/notion-warm-minimal-hairline.md +0 -17
  93. package/data/harnesses/apollo/skills/design/data/elevation/polaris-elevation-inset-bevel.md +0 -21
  94. package/data/harnesses/apollo/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +0 -19
  95. package/data/harnesses/apollo/skills/design/data/elevation/shadcn-neutral-derived-radius.md +0 -19
  96. package/data/harnesses/apollo/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +0 -18
  97. package/data/harnesses/apollo/skills/design/data/elevation/tailwind-default-utility-scale.md +0 -19
  98. package/data/harnesses/apollo/skills/design/data/elevation/vercel-geist-shadow-as-border.md +0 -20
  99. package/data/harnesses/apollo/skills/design/data/gradients/amber-attention-fill.md +0 -16
  100. package/data/harnesses/apollo/skills/design/data/gradients/cloud-shadow-wash.md +0 -16
  101. package/data/harnesses/apollo/skills/design/data/gradients/confident-lavender-wash.md +0 -16
  102. package/data/harnesses/apollo/skills/design/data/gradients/ember-ship-flare.md +0 -18
  103. package/data/harnesses/apollo/skills/design/data/gradients/full-metal-wash.md +0 -16
  104. package/data/harnesses/apollo/skills/design/data/gradients/indigo-ruby-cta-band.md +0 -18
  105. package/data/harnesses/apollo/skills/design/data/gradients/linear-graphite-wash.md +0 -18
  106. package/data/harnesses/apollo/skills/design/data/gradients/marble-quartz-wash.md +0 -16
  107. package/data/harnesses/apollo/skills/design/data/gradients/midnight-aurora-panel.md +0 -16
  108. package/data/harnesses/apollo/skills/design/data/gradients/neutral-volume-fill.md +0 -16
  109. package/data/harnesses/apollo/skills/design/data/gradients/revenue-uptrend-fill.md +0 -16
  110. package/data/harnesses/apollo/skills/design/data/gradients/risk-decline-fill.md +0 -16
  111. package/data/harnesses/apollo/skills/design/data/gradients/signal-blue-develop.md +0 -18
  112. package/data/harnesses/apollo/skills/design/data/gradients/slate-mist-wash.md +0 -16
  113. package/data/harnesses/apollo/skills/design/data/gradients/stripe-atmosphere-mesh.md +0 -18
  114. package/data/harnesses/apollo/skills/design/data/gradients/teal-signal-accent.md +0 -16
  115. package/data/harnesses/apollo/skills/design/data/gradients/violet-magenta-promo.md +0 -16
  116. package/data/harnesses/apollo/skills/design/data/iconography.md +0 -199
  117. package/data/harnesses/apollo/skills/design/data/motion/accordion-expand.md +0 -18
  118. package/data/harnesses/apollo/skills/design/data/motion/destructive-hold-confirm.md +0 -18
  119. package/data/harnesses/apollo/skills/design/data/motion/drag-dismiss-momentum.md +0 -18
  120. package/data/harnesses/apollo/skills/design/data/motion/empty-state-arrive.md +0 -18
  121. package/data/harnesses/apollo/skills/design/data/motion/hover-lift.md +0 -18
  122. package/data/harnesses/apollo/skills/design/data/motion/modal-center-arrive.md +0 -18
  123. package/data/harnesses/apollo/skills/design/data/motion/number-ticker-roll.md +0 -18
  124. package/data/harnesses/apollo/skills/design/data/motion/onboarding-bounce.md +0 -18
  125. package/data/harnesses/apollo/skills/design/data/motion/panel-slide.md +0 -18
  126. package/data/harnesses/apollo/skills/design/data/motion/press-feedback.md +0 -18
  127. package/data/harnesses/apollo/skills/design/data/motion/progress-linear-loop.md +0 -18
  128. package/data/harnesses/apollo/skills/design/data/motion/route-crossfade.md +0 -18
  129. package/data/harnesses/apollo/skills/design/data/motion/rubber-band-overscroll.md +0 -18
  130. package/data/harnesses/apollo/skills/design/data/motion/skeleton-shimmer.md +0 -18
  131. package/data/harnesses/apollo/skills/design/data/motion/stagger-arrive.md +0 -18
  132. package/data/harnesses/apollo/skills/design/data/motion/toast-enter-stack.md +0 -18
  133. package/data/harnesses/apollo/skills/design/data/motion/tooltip-chain-instant.md +0 -18
  134. package/data/harnesses/apollo/skills/design/data/motion/trigger-anchored-reveal.md +0 -18
  135. package/data/harnesses/apollo/skills/design/data/tells.csv +0 -34
  136. package/data/harnesses/apollo/skills/design/data/typography/anton-work-sans.md +0 -17
  137. package/data/harnesses/apollo/skills/design/data/typography/archivo-black-archivo.md +0 -17
  138. package/data/harnesses/apollo/skills/design/data/typography/bitter-karla.md +0 -17
  139. package/data/harnesses/apollo/skills/design/data/typography/dm-serif-dm-sans.md +0 -17
  140. package/data/harnesses/apollo/skills/design/data/typography/fraunces-inter.md +0 -17
  141. package/data/harnesses/apollo/skills/design/data/typography/geist-geist-mono.md +0 -17
  142. package/data/harnesses/apollo/skills/design/data/typography/hubot-sans-mona-sans.md +0 -17
  143. package/data/harnesses/apollo/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +0 -17
  144. package/data/harnesses/apollo/skills/design/data/typography/instrument-serif-instrument-sans.md +0 -17
  145. package/data/harnesses/apollo/skills/design/data/typography/inter-operator-single-family.md +0 -17
  146. package/data/harnesses/apollo/skills/design/data/typography/libre-baskerville-libre-franklin.md +0 -17
  147. package/data/harnesses/apollo/skills/design/data/typography/newsreader-inter.md +0 -17
  148. package/data/harnesses/apollo/skills/design/data/typography/playfair-display-source-sans.md +0 -17
  149. package/data/harnesses/apollo/skills/design/data/typography/public-sans-operator-single-family.md +0 -17
  150. package/data/harnesses/apollo/skills/design/data/typography/sohne-inter-fintech.md +0 -17
  151. package/data/harnesses/apollo/skills/design/data/typography/source-serif-source-sans.md +0 -17
  152. package/data/harnesses/apollo/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +0 -17
  153. package/data/harnesses/apollo/skills/design/data/typography/spectral-manrope.md +0 -17
  154. package/data/harnesses/apollo/skills/design/data/voices/bright-collaborator.md +0 -29
  155. package/data/harnesses/apollo/skills/design/data/voices/direct-operator.md +0 -29
  156. package/data/harnesses/apollo/skills/design/data/voices/earnest-helper.md +0 -29
  157. package/data/harnesses/apollo/skills/design/data/voices/editorial-composed.md +0 -29
  158. package/data/harnesses/apollo/skills/design/data/voices/quiet-concierge.md +0 -29
  159. package/data/harnesses/apollo/skills/design/data/voices/warm-guide.md +0 -29
  160. package/data/harnesses/apollo/skills/design/design-md/SCHEMA.md +0 -179
  161. package/data/harnesses/apollo/skills/design/design-md/index.csv +0 -67
  162. package/data/harnesses/apollo/skills/design/design-md/library/airbnb.md +0 -207
  163. package/data/harnesses/apollo/skills/design/design-md/library/airtable.md +0 -205
  164. package/data/harnesses/apollo/skills/design/design-md/library/anthropic-claude.md +0 -203
  165. package/data/harnesses/apollo/skills/design/design-md/library/apple.md +0 -206
  166. package/data/harnesses/apollo/skills/design/design-md/library/binance.md +0 -210
  167. package/data/harnesses/apollo/skills/design/design-md/library/bmw.md +0 -210
  168. package/data/harnesses/apollo/skills/design/design-md/library/cal.md +0 -209
  169. package/data/harnesses/apollo/skills/design/design-md/library/clay.md +0 -204
  170. package/data/harnesses/apollo/skills/design/design-md/library/clickhouse.md +0 -205
  171. package/data/harnesses/apollo/skills/design/design-md/library/cohere.md +0 -205
  172. package/data/harnesses/apollo/skills/design/design-md/library/coinbase.md +0 -198
  173. package/data/harnesses/apollo/skills/design/design-md/library/composio.md +0 -198
  174. package/data/harnesses/apollo/skills/design/design-md/library/cursor.md +0 -197
  175. package/data/harnesses/apollo/skills/design/design-md/library/elevenlabs.md +0 -199
  176. package/data/harnesses/apollo/skills/design/design-md/library/expo.md +0 -200
  177. package/data/harnesses/apollo/skills/design/design-md/library/figma.md +0 -199
  178. package/data/harnesses/apollo/skills/design/design-md/library/framer.md +0 -202
  179. package/data/harnesses/apollo/skills/design/design-md/library/hashicorp.md +0 -205
  180. package/data/harnesses/apollo/skills/design/design-md/library/ibm.md +0 -205
  181. package/data/harnesses/apollo/skills/design/design-md/library/intercom.md +0 -204
  182. package/data/harnesses/apollo/skills/design/design-md/library/kraken.md +0 -200
  183. package/data/harnesses/apollo/skills/design/design-md/library/linear-app.md +0 -198
  184. package/data/harnesses/apollo/skills/design/design-md/library/lovable.md +0 -199
  185. package/data/harnesses/apollo/skills/design/design-md/library/meta.md +0 -204
  186. package/data/harnesses/apollo/skills/design/design-md/library/minimax.md +0 -204
  187. package/data/harnesses/apollo/skills/design/design-md/library/mintlify.md +0 -210
  188. package/data/harnesses/apollo/skills/design/design-md/library/miro.md +0 -209
  189. package/data/harnesses/apollo/skills/design/design-md/library/mistral-ai.md +0 -201
  190. package/data/harnesses/apollo/skills/design/design-md/library/mongodb.md +0 -201
  191. package/data/harnesses/apollo/skills/design/design-md/library/notion.md +0 -204
  192. package/data/harnesses/apollo/skills/design/design-md/library/nvidia.md +0 -215
  193. package/data/harnesses/apollo/skills/design/design-md/library/ollama.md +0 -213
  194. package/data/harnesses/apollo/skills/design/design-md/library/opencode-ai.md +0 -216
  195. package/data/harnesses/apollo/skills/design/design-md/library/posthog.md +0 -218
  196. package/data/harnesses/apollo/skills/design/design-md/library/raycast.md +0 -214
  197. package/data/harnesses/apollo/skills/design/design-md/library/replicate.md +0 -202
  198. package/data/harnesses/apollo/skills/design/design-md/library/resend.md +0 -203
  199. package/data/harnesses/apollo/skills/design/design-md/library/revolut.md +0 -203
  200. package/data/harnesses/apollo/skills/design/design-md/library/runwayml.md +0 -203
  201. package/data/harnesses/apollo/skills/design/design-md/library/sanity.md +0 -200
  202. package/data/harnesses/apollo/skills/design/design-md/library/sentry.md +0 -201
  203. package/data/harnesses/apollo/skills/design/design-md/library/shopify.md +0 -202
  204. package/data/harnesses/apollo/skills/design/design-md/library/slack.md +0 -202
  205. package/data/harnesses/apollo/skills/design/design-md/library/spacex.md +0 -206
  206. package/data/harnesses/apollo/skills/design/design-md/library/spotify.md +0 -206
  207. package/data/harnesses/apollo/skills/design/design-md/library/stripe.md +0 -196
  208. package/data/harnesses/apollo/skills/design/design-md/library/supabase.md +0 -196
  209. package/data/harnesses/apollo/skills/design/design-md/library/superhuman.md +0 -194
  210. package/data/harnesses/apollo/skills/design/design-md/library/tesla.md +0 -198
  211. package/data/harnesses/apollo/skills/design/design-md/library/theverge.md +0 -199
  212. package/data/harnesses/apollo/skills/design/design-md/library/together-ai.md +0 -193
  213. package/data/harnesses/apollo/skills/design/design-md/library/uber.md +0 -195
  214. package/data/harnesses/apollo/skills/design/design-md/library/vercel.md +0 -195
  215. package/data/harnesses/apollo/skills/design/design-md/library/voltagent.md +0 -197
  216. package/data/harnesses/apollo/skills/design/design-md/library/warp.md +0 -196
  217. package/data/harnesses/apollo/skills/design/design-md/library/webflow.md +0 -197
  218. package/data/harnesses/apollo/skills/design/design-md/library/wired.md +0 -197
  219. package/data/harnesses/apollo/skills/design/design-md/library/wise.md +0 -198
  220. package/data/harnesses/apollo/skills/design/design-md/library/x-ai.md +0 -199
  221. package/data/harnesses/apollo/skills/design/design-md/library/zapier.md +0 -198
  222. package/data/harnesses/apollo/skills/design/design-md/nurix.md +0 -214
  223. package/data/harnesses/apollo/skills/design/design-md/variants/editorial-luxury.md +0 -184
  224. package/data/harnesses/apollo/skills/design/design-md/variants/expressive-saas.md +0 -216
  225. package/data/harnesses/apollo/skills/design/design-md/variants/quiet-premium.md +0 -211
  226. package/data/harnesses/apollo/skills/design/design-md/variants/terse-dense-operator.md +0 -212
  227. package/data/harnesses/apollo/skills/design/design-md/variants/warm-approachable.md +0 -216
  228. package/data/harnesses/code/skills/design/data/blueprints/browse.md +0 -38
  229. package/data/harnesses/code/skills/design/data/blueprints/creation-flow.md +0 -38
  230. package/data/harnesses/code/skills/design/data/blueprints/dashboard.md +0 -38
  231. package/data/harnesses/code/skills/design/data/blueprints/grid.md +0 -38
  232. package/data/harnesses/code/skills/design/data/blueprints/queue.md +0 -38
  233. package/data/harnesses/code/skills/design/data/blueprints/record-detail.md +0 -38
  234. package/data/harnesses/code/skills/design/data/blueprints/settings.md +0 -38
  235. package/data/harnesses/code/skills/design/data/chart-styling/Readme.md +0 -33
  236. package/data/harnesses/code/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +0 -19
  237. package/data/harnesses/code/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +0 -19
  238. package/data/harnesses/code/skills/design/data/chart-styling/datadog-classic-six-aligned.md +0 -19
  239. package/data/harnesses/code/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +0 -19
  240. package/data/harnesses/code/skills/design/data/chart-styling/econ-red-rule-horizontal.md +0 -19
  241. package/data/harnesses/code/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +0 -19
  242. package/data/harnesses/code/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +0 -19
  243. package/data/harnesses/code/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +0 -19
  244. package/data/harnesses/code/skills/design/data/chart-styling/material-rounded-explicit-label.md +0 -19
  245. package/data/harnesses/code/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +0 -19
  246. package/data/harnesses/code/skills/design/data/chart-styling/plot-currentcolor-inherit.md +0 -19
  247. package/data/harnesses/code/skills/design/data/chart-styling/saas-gradient-glow-area.md +0 -19
  248. package/data/harnesses/code/skills/design/data/chart-styling/shadcn-composable-css-vars.md +0 -19
  249. package/data/harnesses/code/skills/design/data/charts/census.csv +0 -58
  250. package/data/harnesses/code/skills/design/data/checklists/browse.md +0 -21
  251. package/data/harnesses/code/skills/design/data/checklists/creation-flow.md +0 -20
  252. package/data/harnesses/code/skills/design/data/checklists/dashboard.md +0 -21
  253. package/data/harnesses/code/skills/design/data/checklists/grid.md +0 -21
  254. package/data/harnesses/code/skills/design/data/checklists/queue.md +0 -21
  255. package/data/harnesses/code/skills/design/data/checklists/record-detail.md +0 -21
  256. package/data/harnesses/code/skills/design/data/checklists/settings.md +0 -21
  257. package/data/harnesses/code/skills/design/data/chrome/board-column.md +0 -68
  258. package/data/harnesses/code/skills/design/data/chrome/data-table.md +0 -63
  259. package/data/harnesses/code/skills/design/data/chrome/side-panel.md +0 -60
  260. package/data/harnesses/code/skills/design/data/chrome/sidebar.md +0 -78
  261. package/data/harnesses/code/skills/design/data/chrome/stat-cards.md +0 -62
  262. package/data/harnesses/code/skills/design/data/chrome/topbar.md +0 -65
  263. package/data/harnesses/code/skills/design/data/color/accent-presets.md +0 -90
  264. package/data/harnesses/code/skills/design/data/color/aesop-earth-mute.md +0 -91
  265. package/data/harnesses/code/skills/design/data/color/arc-peach-play.md +0 -90
  266. package/data/harnesses/code/skills/design/data/color/attio-hunter-teal.md +0 -90
  267. package/data/harnesses/code/skills/design/data/color/carbon-cyan-signal.md +0 -90
  268. package/data/harnesses/code/skills/design/data/color/clay-parchment.md +0 -90
  269. package/data/harnesses/code/skills/design/data/color/duolingo-feather.md +0 -90
  270. package/data/harnesses/code/skills/design/data/color/geist-mono-signal.md +0 -90
  271. package/data/harnesses/code/skills/design/data/color/linear-graphite-violet.md +0 -90
  272. package/data/harnesses/code/skills/design/data/color/mercury-onyx-cobalt.md +0 -90
  273. package/data/harnesses/code/skills/design/data/color/notion-paper-ink.md +0 -90
  274. package/data/harnesses/code/skills/design/data/color/radix-slate-iris.md +0 -90
  275. package/data/harnesses/code/skills/design/data/color/raycast-void-spectrum.md +0 -90
  276. package/data/harnesses/code/skills/design/data/color/spectrum-celery-fuchsia.md +0 -90
  277. package/data/harnesses/code/skills/design/data/color/stripe-blurple-ruby.md +0 -90
  278. package/data/harnesses/code/skills/design/data/color/superhuman-cod-picton.md +0 -89
  279. package/data/harnesses/code/skills/design/data/corpora/operations-review/companies.csv +0 -15
  280. package/data/harnesses/code/skills/design/data/corpora/operations-review/corpus.md +0 -87
  281. package/data/harnesses/code/skills/design/data/corpora/operations-review/people.csv +0 -25
  282. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/companies.csv +0 -15
  283. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/corpus.md +0 -83
  284. package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/people.csv +0 -25
  285. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/companies.csv +0 -15
  286. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/corpus.md +0 -89
  287. package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/people.csv +0 -25
  288. package/data/harnesses/code/skills/design/data/elevation/ant-design-directional-shadow.md +0 -19
  289. package/data/harnesses/code/skills/design/data/elevation/apple-liquid-glass-material.md +0 -18
  290. package/data/harnesses/code/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +0 -20
  291. package/data/harnesses/code/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +0 -20
  292. package/data/harnesses/code/skills/design/data/elevation/github-primer-sparing-shadow.md +0 -19
  293. package/data/harnesses/code/skills/design/data/elevation/ibm-carbon-layer-and-border.md +0 -19
  294. package/data/harnesses/code/skills/design/data/elevation/linear-dark-surface-ladder.md +0 -17
  295. package/data/harnesses/code/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +0 -19
  296. package/data/harnesses/code/skills/design/data/elevation/material-3-tonal-elevation.md +0 -21
  297. package/data/harnesses/code/skills/design/data/elevation/neobrutalist-hard-offset.md +0 -19
  298. package/data/harnesses/code/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +0 -18
  299. package/data/harnesses/code/skills/design/data/elevation/notion-warm-minimal-hairline.md +0 -17
  300. package/data/harnesses/code/skills/design/data/elevation/polaris-elevation-inset-bevel.md +0 -21
  301. package/data/harnesses/code/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +0 -19
  302. package/data/harnesses/code/skills/design/data/elevation/shadcn-neutral-derived-radius.md +0 -19
  303. package/data/harnesses/code/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +0 -18
  304. package/data/harnesses/code/skills/design/data/elevation/tailwind-default-utility-scale.md +0 -19
  305. package/data/harnesses/code/skills/design/data/elevation/vercel-geist-shadow-as-border.md +0 -20
  306. package/data/harnesses/code/skills/design/data/gradients/amber-attention-fill.md +0 -16
  307. package/data/harnesses/code/skills/design/data/gradients/cloud-shadow-wash.md +0 -16
  308. package/data/harnesses/code/skills/design/data/gradients/confident-lavender-wash.md +0 -16
  309. package/data/harnesses/code/skills/design/data/gradients/ember-ship-flare.md +0 -18
  310. package/data/harnesses/code/skills/design/data/gradients/full-metal-wash.md +0 -16
  311. package/data/harnesses/code/skills/design/data/gradients/indigo-ruby-cta-band.md +0 -18
  312. package/data/harnesses/code/skills/design/data/gradients/linear-graphite-wash.md +0 -18
  313. package/data/harnesses/code/skills/design/data/gradients/marble-quartz-wash.md +0 -16
  314. package/data/harnesses/code/skills/design/data/gradients/midnight-aurora-panel.md +0 -16
  315. package/data/harnesses/code/skills/design/data/gradients/neutral-volume-fill.md +0 -16
  316. package/data/harnesses/code/skills/design/data/gradients/revenue-uptrend-fill.md +0 -16
  317. package/data/harnesses/code/skills/design/data/gradients/risk-decline-fill.md +0 -16
  318. package/data/harnesses/code/skills/design/data/gradients/signal-blue-develop.md +0 -18
  319. package/data/harnesses/code/skills/design/data/gradients/slate-mist-wash.md +0 -16
  320. package/data/harnesses/code/skills/design/data/gradients/stripe-atmosphere-mesh.md +0 -18
  321. package/data/harnesses/code/skills/design/data/gradients/teal-signal-accent.md +0 -16
  322. package/data/harnesses/code/skills/design/data/gradients/violet-magenta-promo.md +0 -16
  323. package/data/harnesses/code/skills/design/data/iconography.md +0 -199
  324. package/data/harnesses/code/skills/design/data/motion/accordion-expand.md +0 -18
  325. package/data/harnesses/code/skills/design/data/motion/destructive-hold-confirm.md +0 -18
  326. package/data/harnesses/code/skills/design/data/motion/drag-dismiss-momentum.md +0 -18
  327. package/data/harnesses/code/skills/design/data/motion/empty-state-arrive.md +0 -18
  328. package/data/harnesses/code/skills/design/data/motion/hover-lift.md +0 -18
  329. package/data/harnesses/code/skills/design/data/motion/modal-center-arrive.md +0 -18
  330. package/data/harnesses/code/skills/design/data/motion/number-ticker-roll.md +0 -18
  331. package/data/harnesses/code/skills/design/data/motion/onboarding-bounce.md +0 -18
  332. package/data/harnesses/code/skills/design/data/motion/panel-slide.md +0 -18
  333. package/data/harnesses/code/skills/design/data/motion/press-feedback.md +0 -18
  334. package/data/harnesses/code/skills/design/data/motion/progress-linear-loop.md +0 -18
  335. package/data/harnesses/code/skills/design/data/motion/route-crossfade.md +0 -18
  336. package/data/harnesses/code/skills/design/data/motion/rubber-band-overscroll.md +0 -18
  337. package/data/harnesses/code/skills/design/data/motion/skeleton-shimmer.md +0 -18
  338. package/data/harnesses/code/skills/design/data/motion/stagger-arrive.md +0 -18
  339. package/data/harnesses/code/skills/design/data/motion/toast-enter-stack.md +0 -18
  340. package/data/harnesses/code/skills/design/data/motion/tooltip-chain-instant.md +0 -18
  341. package/data/harnesses/code/skills/design/data/motion/trigger-anchored-reveal.md +0 -18
  342. package/data/harnesses/code/skills/design/data/tells.csv +0 -34
  343. package/data/harnesses/code/skills/design/data/typography/anton-work-sans.md +0 -17
  344. package/data/harnesses/code/skills/design/data/typography/archivo-black-archivo.md +0 -17
  345. package/data/harnesses/code/skills/design/data/typography/bitter-karla.md +0 -17
  346. package/data/harnesses/code/skills/design/data/typography/dm-serif-dm-sans.md +0 -17
  347. package/data/harnesses/code/skills/design/data/typography/fraunces-inter.md +0 -17
  348. package/data/harnesses/code/skills/design/data/typography/geist-geist-mono.md +0 -17
  349. package/data/harnesses/code/skills/design/data/typography/hubot-sans-mona-sans.md +0 -17
  350. package/data/harnesses/code/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +0 -17
  351. package/data/harnesses/code/skills/design/data/typography/instrument-serif-instrument-sans.md +0 -17
  352. package/data/harnesses/code/skills/design/data/typography/inter-operator-single-family.md +0 -17
  353. package/data/harnesses/code/skills/design/data/typography/libre-baskerville-libre-franklin.md +0 -17
  354. package/data/harnesses/code/skills/design/data/typography/newsreader-inter.md +0 -17
  355. package/data/harnesses/code/skills/design/data/typography/playfair-display-source-sans.md +0 -17
  356. package/data/harnesses/code/skills/design/data/typography/public-sans-operator-single-family.md +0 -17
  357. package/data/harnesses/code/skills/design/data/typography/sohne-inter-fintech.md +0 -17
  358. package/data/harnesses/code/skills/design/data/typography/source-serif-source-sans.md +0 -17
  359. package/data/harnesses/code/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +0 -17
  360. package/data/harnesses/code/skills/design/data/typography/spectral-manrope.md +0 -17
  361. package/data/harnesses/code/skills/design/data/voices/bright-collaborator.md +0 -29
  362. package/data/harnesses/code/skills/design/data/voices/direct-operator.md +0 -29
  363. package/data/harnesses/code/skills/design/data/voices/earnest-helper.md +0 -29
  364. package/data/harnesses/code/skills/design/data/voices/editorial-composed.md +0 -29
  365. package/data/harnesses/code/skills/design/data/voices/quiet-concierge.md +0 -29
  366. package/data/harnesses/code/skills/design/data/voices/warm-guide.md +0 -29
  367. package/data/harnesses/code/skills/design/design-md/SCHEMA.md +0 -179
  368. package/data/harnesses/code/skills/design/design-md/index.csv +0 -67
  369. package/data/harnesses/code/skills/design/design-md/library/airbnb.md +0 -207
  370. package/data/harnesses/code/skills/design/design-md/library/airtable.md +0 -205
  371. package/data/harnesses/code/skills/design/design-md/library/anthropic-claude.md +0 -203
  372. package/data/harnesses/code/skills/design/design-md/library/apple.md +0 -206
  373. package/data/harnesses/code/skills/design/design-md/library/binance.md +0 -210
  374. package/data/harnesses/code/skills/design/design-md/library/bmw.md +0 -210
  375. package/data/harnesses/code/skills/design/design-md/library/cal.md +0 -209
  376. package/data/harnesses/code/skills/design/design-md/library/clay.md +0 -204
  377. package/data/harnesses/code/skills/design/design-md/library/clickhouse.md +0 -205
  378. package/data/harnesses/code/skills/design/design-md/library/cohere.md +0 -205
  379. package/data/harnesses/code/skills/design/design-md/library/coinbase.md +0 -198
  380. package/data/harnesses/code/skills/design/design-md/library/composio.md +0 -198
  381. package/data/harnesses/code/skills/design/design-md/library/cursor.md +0 -197
  382. package/data/harnesses/code/skills/design/design-md/library/elevenlabs.md +0 -199
  383. package/data/harnesses/code/skills/design/design-md/library/expo.md +0 -200
  384. package/data/harnesses/code/skills/design/design-md/library/figma.md +0 -199
  385. package/data/harnesses/code/skills/design/design-md/library/framer.md +0 -202
  386. package/data/harnesses/code/skills/design/design-md/library/hashicorp.md +0 -205
  387. package/data/harnesses/code/skills/design/design-md/library/ibm.md +0 -205
  388. package/data/harnesses/code/skills/design/design-md/library/intercom.md +0 -204
  389. package/data/harnesses/code/skills/design/design-md/library/kraken.md +0 -200
  390. package/data/harnesses/code/skills/design/design-md/library/linear-app.md +0 -198
  391. package/data/harnesses/code/skills/design/design-md/library/lovable.md +0 -199
  392. package/data/harnesses/code/skills/design/design-md/library/meta.md +0 -204
  393. package/data/harnesses/code/skills/design/design-md/library/minimax.md +0 -204
  394. package/data/harnesses/code/skills/design/design-md/library/mintlify.md +0 -210
  395. package/data/harnesses/code/skills/design/design-md/library/miro.md +0 -209
  396. package/data/harnesses/code/skills/design/design-md/library/mistral-ai.md +0 -201
  397. package/data/harnesses/code/skills/design/design-md/library/mongodb.md +0 -201
  398. package/data/harnesses/code/skills/design/design-md/library/notion.md +0 -204
  399. package/data/harnesses/code/skills/design/design-md/library/nvidia.md +0 -215
  400. package/data/harnesses/code/skills/design/design-md/library/ollama.md +0 -213
  401. package/data/harnesses/code/skills/design/design-md/library/opencode-ai.md +0 -216
  402. package/data/harnesses/code/skills/design/design-md/library/posthog.md +0 -218
  403. package/data/harnesses/code/skills/design/design-md/library/raycast.md +0 -214
  404. package/data/harnesses/code/skills/design/design-md/library/replicate.md +0 -202
  405. package/data/harnesses/code/skills/design/design-md/library/resend.md +0 -203
  406. package/data/harnesses/code/skills/design/design-md/library/revolut.md +0 -203
  407. package/data/harnesses/code/skills/design/design-md/library/runwayml.md +0 -203
  408. package/data/harnesses/code/skills/design/design-md/library/sanity.md +0 -200
  409. package/data/harnesses/code/skills/design/design-md/library/sentry.md +0 -201
  410. package/data/harnesses/code/skills/design/design-md/library/shopify.md +0 -202
  411. package/data/harnesses/code/skills/design/design-md/library/slack.md +0 -202
  412. package/data/harnesses/code/skills/design/design-md/library/spacex.md +0 -206
  413. package/data/harnesses/code/skills/design/design-md/library/spotify.md +0 -206
  414. package/data/harnesses/code/skills/design/design-md/library/stripe.md +0 -196
  415. package/data/harnesses/code/skills/design/design-md/library/supabase.md +0 -196
  416. package/data/harnesses/code/skills/design/design-md/library/superhuman.md +0 -194
  417. package/data/harnesses/code/skills/design/design-md/library/tesla.md +0 -198
  418. package/data/harnesses/code/skills/design/design-md/library/theverge.md +0 -199
  419. package/data/harnesses/code/skills/design/design-md/library/together-ai.md +0 -193
  420. package/data/harnesses/code/skills/design/design-md/library/uber.md +0 -195
  421. package/data/harnesses/code/skills/design/design-md/library/vercel.md +0 -195
  422. package/data/harnesses/code/skills/design/design-md/library/voltagent.md +0 -197
  423. package/data/harnesses/code/skills/design/design-md/library/warp.md +0 -196
  424. package/data/harnesses/code/skills/design/design-md/library/webflow.md +0 -197
  425. package/data/harnesses/code/skills/design/design-md/library/wired.md +0 -197
  426. package/data/harnesses/code/skills/design/design-md/library/wise.md +0 -198
  427. package/data/harnesses/code/skills/design/design-md/library/x-ai.md +0 -199
  428. package/data/harnesses/code/skills/design/design-md/library/zapier.md +0 -198
  429. package/data/harnesses/code/skills/design/design-md/nurix.md +0 -214
  430. package/data/harnesses/code/skills/design/design-md/variants/editorial-luxury.md +0 -184
  431. package/data/harnesses/code/skills/design/design-md/variants/expressive-saas.md +0 -216
  432. package/data/harnesses/code/skills/design/design-md/variants/quiet-premium.md +0 -211
  433. package/data/harnesses/code/skills/design/design-md/variants/terse-dense-operator.md +0 -212
  434. package/data/harnesses/code/skills/design/design-md/variants/warm-approachable.md +0 -216
@@ -1,18 +0,0 @@
1
- ---
2
- id: accordion-expand
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/animation-vocabulary/SKILL.md (Accordion/Collapse term) + review-animations/STANDARDS.md (easing decision order — on-screen morph → strong ease-in-out; interruptibility)"
6
- license: open
7
- feel: "a 240ms reveal on a strong ease-in-out reads smooth; snapping open or drifting past 300ms reads clunky"
8
- aliases: { clunky: "a plain built-in easing instead of the strong custom ease-in-out curve", "snap-open": "no transition at all — content appears/disappears instantly", janky: "keyframes (or animated height) instead of an interruptible transition on transform/clip-path" }
9
- ---
10
- Expand/collapse sections, FAQ rows, nested tree rows — an on-screen morph, so ease-in-out, not the entrance curve. Prefer `clip-path`/transform reveals over animated `height` (layout property — off-GPU). Rapid toggling must retarget mid-animation, not restart from collapsed.
11
-
12
- ```yaml values
13
- duration: 240ms
14
- easing: cubic-bezier(0.77, 0, 0.175, 1)
15
- element-class: panel
16
- interruptible: required
17
- budget: { panel: 200-300ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: destructive-hold-confirm
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (asymmetric timing — press slow/release fast example, values verbatim class)"
6
- license: open
7
- feel: "a slow deliberate fill on hold with a fast release reads like the system is making you mean it; a symmetric hold/release reads accidental-prone"
8
- aliases: { "trigger-happy": "hold and release animating at the same speed, so a brief accidental hold nearly commits", "accidental-prone": "no hold gate at all — a single tap commits the destructive action" }
9
- ---
10
- Delete/destructive confirmations gated behind a hold, not a second click. The hold phase (user deciding) animates slow and must be abortable mid-hold; release or completion (system responding) snaps back fast.
11
-
12
- ```yaml values
13
- duration: 2000ms (hold-to-fill) / 200ms (release)
14
- easing: linear (hold) / cubic-bezier(0.23, 1, 0.32, 1) (release)
15
- element-class: control
16
- interruptible: required
17
- budget: { control: 1500-2500ms hold, 150-250ms release }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: drag-dismiss-momentum
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (gestures & drag — velocity dismissal; springs config) + apple-design/SKILL.md §5 (velocity handoff)"
6
- license: open
7
- feel: "a flick that keeps its exact velocity into the dismiss reads thrown away on purpose; a fixed-duration tween to the edge reads like the drag didn't matter"
8
- aliases: { disconnected: "velocity discarded at release in favor of a fixed-duration keyframe to the exit point", stuck: "dismissal gated on a distance threshold instead of release velocity (~0.11 px/ms)" }
9
- ---
10
- Swipe-to-dismiss on toasts, cards, sheets. The spring here is a correctness mechanism (velocity continuity for gesture-driven motion), not styling — it carries the pointer's release velocity into the exit and stays grabbable and reversible mid-flight. Bounce is canon-sanctioned specifically for drag-to-dismiss; it doesn't generalize.
11
-
12
- ```yaml values
13
- duration: 500ms (spring settle; no fixed duration)
14
- easing: spring(bounce 0.2, damping ~0.8)
15
- element-class: overlay
16
- interruptible: required
17
- budget: { overlay: 350-550ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: empty-state-arrive
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (springs — subtle bounce) + improve-animations/AUDIT.md §1 (rare moments); A6 admission law (identity-moment scope)"
6
- license: open
7
- feel: "an illustration that gently scales and settles in reads intentional, like the empty state was designed on purpose; a plain instant fade reads unfinished"
8
- aliases: { unfinished: "the empty-state illustration/copy just appearing with no entrance at all", overdone: "spring bounce strong enough to feel jokey rather than reassuring" }
9
- ---
10
- First-visit or true-zero-data empty states (no rows yet, no results yet). Low-frequency identity moment — springy motion is admissible, but keep bounce subtle since the tone is reassuring, not playful.
11
-
12
- ```yaml values
13
- duration: 450ms (spring; no fixed duration)
14
- easing: spring(bounce 0.15)
15
- element-class: identity-moment
16
- interruptible: n/a
17
- budget: { identity-moment: 350-550ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: hover-lift
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/emil-design-eng/SKILL.md (easing decision — hover → ease) + review-animations/STANDARDS.md (frequency tiers; hover gating); Easing Blueprint agrees as secondary"
6
- license: open
7
- feel: "a soft `ease` color/elevation shift under 200ms reads responsive; past 250ms or on touch it reads laggy and fake"
8
- aliases: { laggy: "hover duration pushed past the control budget", "fake-hover": "hover motion firing on a touch tap because it isn't gated to hover:hover and pointer:fine" }
9
- ---
10
- List rows, nav items, cards, toolbar icons on mouse-hover. Gate behind `@media (hover: hover) and (pointer: fine)` always. Sits in the "tens of times/day — reduce, don't eliminate" frequency tier; drop it first on any list scrolled constantly.
11
-
12
- ```yaml values
13
- duration: 150ms
14
- easing: ease
15
- element-class: control
16
- interruptible: n/a
17
- budget: { control: 120-200ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: modal-center-arrive
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/review-animations/STANDARDS.md (physicality — modal exemption; duration table, modal row) + improve-animations/AUDIT.md §3; Material emphasized-decelerate agrees as secondary"
6
- license: open
7
- feel: "a centered scale-from-0.95-and-fade at ~250ms on a strong ease-out reads deliberate and important; scale(0) or a snap-open reads like it teleported in"
8
- aliases: { teleported: "scale(0) or an opacity-only entrance with no initial transform", "snap-open": "no interpolation at all — the dialog just appears" }
9
- ---
10
- Dialogs and confirmation modals only — the one place `transform-origin: center` is correct, exempt from the trigger-anchoring rule. Entrance starts from scale 0.9-0.97 + opacity 0, never scale(0); the longer end of the budget is the modal's prominence — don't reuse it on tooltips or dropdowns.
11
-
12
- ```yaml values
13
- duration: 250ms
14
- easing: cubic-bezier(0.23, 1, 0.32, 1)
15
- element-class: overlay
16
- interruptible: n/a
17
- budget: { overlay: 200-500ms }
18
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- id: number-ticker-roll
3
- class: a6
4
- sourced: 2026-07-12
5
- source: "emilkowalski.skills/skills/animation-vocabulary/SKILL.md (Number ticker; Tabular numbers) + review-animations/STANDARDS.md (sub-300ms rule; interruptibility)"
6
- license: open
7
- feel: "digits rolling to the new value at ~250ms read like a live counter; an instant jump-cut reads like the number just glitched"
8
- aliases: { glitched: "value changes with no roll/interpolation at all", "tabular-drift": "digits set without tabular figures, so the number visibly shifts width as it rolls", janky: "keyframe roll restarting from zero on each rapid update instead of retargeting" }
9
- ---
10
- Live counters, stat tiles, KPI cards, running totals — system-driven value changes, so the sub-300ms UI rule applies. Requires tabular figures so surrounding layout doesn't shift while digits roll. Rapid successive updates retarget the roll (transition, not keyframes), never restart from zero.
11
-
12
- ```yaml values
13
- duration: 250ms
14
- easing: cubic-bezier(0.23, 1, 0.32, 1)
15
- element-class: control
16
- interruptible: required
17
- budget: { control: 200-300ms }
18
- ```
@@ -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
- ```