@nurix/etna 0.19.42 → 0.19.43

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 (347) hide show
  1. package/bin/etna.js +14 -0
  2. package/data/harness-index.json +5 -1
  3. package/data/harnesses/apollo/.prettierignore +29 -0
  4. package/data/harnesses/apollo/.prettierrc.json +3 -0
  5. package/data/harnesses/apollo/.vscode/settings.json +19 -0
  6. package/data/harnesses/apollo/CLAUDE.md +162 -0
  7. package/data/harnesses/apollo/agents/brainstorm.md +144 -0
  8. package/data/harnesses/apollo/agents/change-review.md +251 -0
  9. package/data/harnesses/apollo/agents/lld-mode.md +56 -0
  10. package/data/harnesses/apollo/agents/maintenance.md +229 -0
  11. package/data/harnesses/apollo/agents/performance-review.md +223 -0
  12. package/data/harnesses/apollo/agents/retro.md +46 -0
  13. package/data/harnesses/apollo/codex/agents/brainstorm.toml +142 -0
  14. package/data/harnesses/apollo/codex/agents/change-review.toml +249 -0
  15. package/data/harnesses/apollo/codex/agents/lld-mode.toml +52 -0
  16. package/data/harnesses/apollo/codex/agents/maintenance.toml +228 -0
  17. package/data/harnesses/apollo/codex/agents/performance-review.toml +222 -0
  18. package/data/harnesses/apollo/codex/agents/retro.toml +45 -0
  19. package/data/harnesses/apollo/docs/README.md +28 -0
  20. package/data/harnesses/apollo/docs/history/CHANGELOG.md +26 -0
  21. package/data/harnesses/apollo/docs/history/backlog.md +19 -0
  22. package/data/harnesses/apollo/docs/memory/main.md +15 -0
  23. package/data/harnesses/apollo/docs/structure.md +54 -0
  24. package/data/harnesses/apollo/harness.json +18 -0
  25. package/data/harnesses/apollo/hooks/generate-ownership-index.mjs +148 -0
  26. package/data/harnesses/apollo/hooks/hooks.json +16 -0
  27. package/data/harnesses/apollo/rules/changelog.md +19 -0
  28. package/data/harnesses/apollo/rules/database.md +123 -0
  29. package/data/harnesses/apollo/rules/express.md +33 -0
  30. package/data/harnesses/apollo/rules/frontend.md +32 -0
  31. package/data/harnesses/apollo/rules/general.md +62 -0
  32. package/data/harnesses/apollo/rules/nomenclature.md +34 -0
  33. package/data/harnesses/apollo/rules/pnpm.md +57 -0
  34. package/data/harnesses/apollo/rules/testing.md +23 -0
  35. package/data/harnesses/apollo/rules/verification.md +67 -0
  36. package/data/harnesses/apollo/skills/boundary/SKILL.md +69 -0
  37. package/data/harnesses/apollo/skills/boundary/references/index.md +16 -0
  38. package/data/harnesses/apollo/skills/boundary/references/mechanisms.md +99 -0
  39. package/data/harnesses/apollo/skills/boundary/references/packs/async-messaging.md +81 -0
  40. package/data/harnesses/apollo/skills/boundary/references/packs/auth.md +93 -0
  41. package/data/harnesses/apollo/skills/boundary/references/packs/build-config-runtime.md +93 -0
  42. package/data/harnesses/apollo/skills/boundary/references/packs/cloudflare.md +93 -0
  43. package/data/harnesses/apollo/skills/boundary/references/packs/frontend.md +93 -0
  44. package/data/harnesses/apollo/skills/boundary/references/packs/generic-tail.md +55 -0
  45. package/data/harnesses/apollo/skills/boundary/references/packs/persistence.md +93 -0
  46. package/data/harnesses/apollo/skills/boundary/references/packs/wire-api.md +87 -0
  47. package/data/harnesses/apollo/skills/brainstorm/README.md +56 -0
  48. package/data/harnesses/apollo/skills/brainstorm/SKILL.md +173 -0
  49. package/data/harnesses/apollo/skills/brainstorm/references/doctrine.md +98 -0
  50. package/data/harnesses/apollo/skills/brainstorm/references/harvest.md +86 -0
  51. package/data/harnesses/apollo/skills/brainstorm/references/session-schema.md +186 -0
  52. package/data/harnesses/apollo/skills/brainstorm/scripts/detector.mjs +460 -0
  53. package/data/harnesses/apollo/skills/design/SKILL.md +100 -0
  54. package/data/harnesses/apollo/skills/design/components/charts.md +76 -0
  55. package/data/harnesses/apollo/skills/design/components/collections.md +132 -0
  56. package/data/harnesses/apollo/skills/design/components/feedback.md +47 -0
  57. package/data/harnesses/apollo/skills/design/components/hooks.md +35 -0
  58. package/data/harnesses/apollo/skills/design/components/index.md +143 -0
  59. package/data/harnesses/apollo/skills/design/components/inputs.md +327 -0
  60. package/data/harnesses/apollo/skills/design/components/layout.md +52 -0
  61. package/data/harnesses/apollo/skills/design/components/media.md +66 -0
  62. package/data/harnesses/apollo/skills/design/components/motion.md +82 -0
  63. package/data/harnesses/apollo/skills/design/components/navigation.md +29 -0
  64. package/data/harnesses/apollo/skills/design/components/overlays.md +72 -0
  65. package/data/harnesses/apollo/skills/design/components/setup.md +40 -0
  66. package/data/harnesses/apollo/skills/design/components/typography.md +46 -0
  67. package/data/harnesses/apollo/skills/design/components/utils.md +37 -0
  68. package/data/harnesses/apollo/skills/design/data/blueprints/browse.md +38 -0
  69. package/data/harnesses/apollo/skills/design/data/blueprints/creation-flow.md +38 -0
  70. package/data/harnesses/apollo/skills/design/data/blueprints/dashboard.md +38 -0
  71. package/data/harnesses/apollo/skills/design/data/blueprints/grid.md +38 -0
  72. package/data/harnesses/apollo/skills/design/data/blueprints/queue.md +38 -0
  73. package/data/harnesses/apollo/skills/design/data/blueprints/record-detail.md +38 -0
  74. package/data/harnesses/apollo/skills/design/data/blueprints/settings.md +38 -0
  75. package/data/harnesses/apollo/skills/design/data/chart-styling/Readme.md +33 -0
  76. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +19 -0
  77. package/data/harnesses/apollo/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +19 -0
  78. package/data/harnesses/apollo/skills/design/data/chart-styling/datadog-classic-six-aligned.md +19 -0
  79. package/data/harnesses/apollo/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +19 -0
  80. package/data/harnesses/apollo/skills/design/data/chart-styling/econ-red-rule-horizontal.md +19 -0
  81. package/data/harnesses/apollo/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +19 -0
  82. package/data/harnesses/apollo/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +19 -0
  83. package/data/harnesses/apollo/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +19 -0
  84. package/data/harnesses/apollo/skills/design/data/chart-styling/material-rounded-explicit-label.md +19 -0
  85. package/data/harnesses/apollo/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +19 -0
  86. package/data/harnesses/apollo/skills/design/data/chart-styling/plot-currentcolor-inherit.md +19 -0
  87. package/data/harnesses/apollo/skills/design/data/chart-styling/saas-gradient-glow-area.md +19 -0
  88. package/data/harnesses/apollo/skills/design/data/chart-styling/shadcn-composable-css-vars.md +19 -0
  89. package/data/harnesses/apollo/skills/design/data/charts/census.csv +58 -0
  90. package/data/harnesses/apollo/skills/design/data/checklists/browse.md +21 -0
  91. package/data/harnesses/apollo/skills/design/data/checklists/creation-flow.md +20 -0
  92. package/data/harnesses/apollo/skills/design/data/checklists/dashboard.md +21 -0
  93. package/data/harnesses/apollo/skills/design/data/checklists/grid.md +21 -0
  94. package/data/harnesses/apollo/skills/design/data/checklists/queue.md +21 -0
  95. package/data/harnesses/apollo/skills/design/data/checklists/record-detail.md +21 -0
  96. package/data/harnesses/apollo/skills/design/data/checklists/settings.md +21 -0
  97. package/data/harnesses/apollo/skills/design/data/chrome/board-column.md +68 -0
  98. package/data/harnesses/apollo/skills/design/data/chrome/data-table.md +63 -0
  99. package/data/harnesses/apollo/skills/design/data/chrome/side-panel.md +60 -0
  100. package/data/harnesses/apollo/skills/design/data/chrome/sidebar.md +78 -0
  101. package/data/harnesses/apollo/skills/design/data/chrome/stat-cards.md +62 -0
  102. package/data/harnesses/apollo/skills/design/data/chrome/topbar.md +65 -0
  103. package/data/harnesses/apollo/skills/design/data/color/accent-presets.md +90 -0
  104. package/data/harnesses/apollo/skills/design/data/color/aesop-earth-mute.md +91 -0
  105. package/data/harnesses/apollo/skills/design/data/color/arc-peach-play.md +90 -0
  106. package/data/harnesses/apollo/skills/design/data/color/attio-hunter-teal.md +90 -0
  107. package/data/harnesses/apollo/skills/design/data/color/carbon-cyan-signal.md +90 -0
  108. package/data/harnesses/apollo/skills/design/data/color/clay-parchment.md +90 -0
  109. package/data/harnesses/apollo/skills/design/data/color/duolingo-feather.md +90 -0
  110. package/data/harnesses/apollo/skills/design/data/color/geist-mono-signal.md +90 -0
  111. package/data/harnesses/apollo/skills/design/data/color/linear-graphite-violet.md +90 -0
  112. package/data/harnesses/apollo/skills/design/data/color/mercury-onyx-cobalt.md +90 -0
  113. package/data/harnesses/apollo/skills/design/data/color/notion-paper-ink.md +90 -0
  114. package/data/harnesses/apollo/skills/design/data/color/radix-slate-iris.md +90 -0
  115. package/data/harnesses/apollo/skills/design/data/color/raycast-void-spectrum.md +90 -0
  116. package/data/harnesses/apollo/skills/design/data/color/spectrum-celery-fuchsia.md +90 -0
  117. package/data/harnesses/apollo/skills/design/data/color/stripe-blurple-ruby.md +90 -0
  118. package/data/harnesses/apollo/skills/design/data/color/superhuman-cod-picton.md +89 -0
  119. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/companies.csv +15 -0
  120. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/corpus.md +87 -0
  121. package/data/harnesses/apollo/skills/design/data/corpora/operations-review/people.csv +25 -0
  122. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/companies.csv +15 -0
  123. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/corpus.md +83 -0
  124. package/data/harnesses/apollo/skills/design/data/corpora/procurement-approvals/people.csv +25 -0
  125. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/companies.csv +15 -0
  126. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/corpus.md +89 -0
  127. package/data/harnesses/apollo/skills/design/data/corpora/revenue-analytics/people.csv +25 -0
  128. package/data/harnesses/apollo/skills/design/data/elevation/ant-design-directional-shadow.md +19 -0
  129. package/data/harnesses/apollo/skills/design/data/elevation/apple-liquid-glass-material.md +18 -0
  130. package/data/harnesses/apollo/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +20 -0
  131. package/data/harnesses/apollo/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +20 -0
  132. package/data/harnesses/apollo/skills/design/data/elevation/github-primer-sparing-shadow.md +19 -0
  133. package/data/harnesses/apollo/skills/design/data/elevation/ibm-carbon-layer-and-border.md +19 -0
  134. package/data/harnesses/apollo/skills/design/data/elevation/linear-dark-surface-ladder.md +17 -0
  135. package/data/harnesses/apollo/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +19 -0
  136. package/data/harnesses/apollo/skills/design/data/elevation/material-3-tonal-elevation.md +21 -0
  137. package/data/harnesses/apollo/skills/design/data/elevation/neobrutalist-hard-offset.md +19 -0
  138. package/data/harnesses/apollo/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +18 -0
  139. package/data/harnesses/apollo/skills/design/data/elevation/notion-warm-minimal-hairline.md +17 -0
  140. package/data/harnesses/apollo/skills/design/data/elevation/polaris-elevation-inset-bevel.md +21 -0
  141. package/data/harnesses/apollo/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +19 -0
  142. package/data/harnesses/apollo/skills/design/data/elevation/shadcn-neutral-derived-radius.md +19 -0
  143. package/data/harnesses/apollo/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +18 -0
  144. package/data/harnesses/apollo/skills/design/data/elevation/tailwind-default-utility-scale.md +19 -0
  145. package/data/harnesses/apollo/skills/design/data/elevation/vercel-geist-shadow-as-border.md +20 -0
  146. package/data/harnesses/apollo/skills/design/data/gradients/amber-attention-fill.md +16 -0
  147. package/data/harnesses/apollo/skills/design/data/gradients/cloud-shadow-wash.md +16 -0
  148. package/data/harnesses/apollo/skills/design/data/gradients/confident-lavender-wash.md +16 -0
  149. package/data/harnesses/apollo/skills/design/data/gradients/ember-ship-flare.md +18 -0
  150. package/data/harnesses/apollo/skills/design/data/gradients/full-metal-wash.md +16 -0
  151. package/data/harnesses/apollo/skills/design/data/gradients/indigo-ruby-cta-band.md +18 -0
  152. package/data/harnesses/apollo/skills/design/data/gradients/linear-graphite-wash.md +18 -0
  153. package/data/harnesses/apollo/skills/design/data/gradients/marble-quartz-wash.md +16 -0
  154. package/data/harnesses/apollo/skills/design/data/gradients/midnight-aurora-panel.md +16 -0
  155. package/data/harnesses/apollo/skills/design/data/gradients/neutral-volume-fill.md +16 -0
  156. package/data/harnesses/apollo/skills/design/data/gradients/revenue-uptrend-fill.md +16 -0
  157. package/data/harnesses/apollo/skills/design/data/gradients/risk-decline-fill.md +16 -0
  158. package/data/harnesses/apollo/skills/design/data/gradients/signal-blue-develop.md +18 -0
  159. package/data/harnesses/apollo/skills/design/data/gradients/slate-mist-wash.md +16 -0
  160. package/data/harnesses/apollo/skills/design/data/gradients/stripe-atmosphere-mesh.md +18 -0
  161. package/data/harnesses/apollo/skills/design/data/gradients/teal-signal-accent.md +16 -0
  162. package/data/harnesses/apollo/skills/design/data/gradients/violet-magenta-promo.md +16 -0
  163. package/data/harnesses/apollo/skills/design/data/iconography.md +199 -0
  164. package/data/harnesses/apollo/skills/design/data/motion/accordion-expand.md +18 -0
  165. package/data/harnesses/apollo/skills/design/data/motion/destructive-hold-confirm.md +18 -0
  166. package/data/harnesses/apollo/skills/design/data/motion/drag-dismiss-momentum.md +18 -0
  167. package/data/harnesses/apollo/skills/design/data/motion/empty-state-arrive.md +18 -0
  168. package/data/harnesses/apollo/skills/design/data/motion/hover-lift.md +18 -0
  169. package/data/harnesses/apollo/skills/design/data/motion/modal-center-arrive.md +18 -0
  170. package/data/harnesses/apollo/skills/design/data/motion/number-ticker-roll.md +18 -0
  171. package/data/harnesses/apollo/skills/design/data/motion/onboarding-bounce.md +18 -0
  172. package/data/harnesses/apollo/skills/design/data/motion/panel-slide.md +18 -0
  173. package/data/harnesses/apollo/skills/design/data/motion/press-feedback.md +18 -0
  174. package/data/harnesses/apollo/skills/design/data/motion/progress-linear-loop.md +18 -0
  175. package/data/harnesses/apollo/skills/design/data/motion/route-crossfade.md +18 -0
  176. package/data/harnesses/apollo/skills/design/data/motion/rubber-band-overscroll.md +18 -0
  177. package/data/harnesses/apollo/skills/design/data/motion/skeleton-shimmer.md +18 -0
  178. package/data/harnesses/apollo/skills/design/data/motion/stagger-arrive.md +18 -0
  179. package/data/harnesses/apollo/skills/design/data/motion/toast-enter-stack.md +18 -0
  180. package/data/harnesses/apollo/skills/design/data/motion/tooltip-chain-instant.md +18 -0
  181. package/data/harnesses/apollo/skills/design/data/motion/trigger-anchored-reveal.md +18 -0
  182. package/data/harnesses/apollo/skills/design/data/tells.csv +34 -0
  183. package/data/harnesses/apollo/skills/design/data/typography/anton-work-sans.md +17 -0
  184. package/data/harnesses/apollo/skills/design/data/typography/archivo-black-archivo.md +17 -0
  185. package/data/harnesses/apollo/skills/design/data/typography/bitter-karla.md +17 -0
  186. package/data/harnesses/apollo/skills/design/data/typography/dm-serif-dm-sans.md +17 -0
  187. package/data/harnesses/apollo/skills/design/data/typography/fraunces-inter.md +17 -0
  188. package/data/harnesses/apollo/skills/design/data/typography/geist-geist-mono.md +17 -0
  189. package/data/harnesses/apollo/skills/design/data/typography/hubot-sans-mona-sans.md +17 -0
  190. package/data/harnesses/apollo/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +17 -0
  191. package/data/harnesses/apollo/skills/design/data/typography/instrument-serif-instrument-sans.md +17 -0
  192. package/data/harnesses/apollo/skills/design/data/typography/inter-operator-single-family.md +17 -0
  193. package/data/harnesses/apollo/skills/design/data/typography/libre-baskerville-libre-franklin.md +17 -0
  194. package/data/harnesses/apollo/skills/design/data/typography/newsreader-inter.md +17 -0
  195. package/data/harnesses/apollo/skills/design/data/typography/playfair-display-source-sans.md +17 -0
  196. package/data/harnesses/apollo/skills/design/data/typography/public-sans-operator-single-family.md +17 -0
  197. package/data/harnesses/apollo/skills/design/data/typography/sohne-inter-fintech.md +17 -0
  198. package/data/harnesses/apollo/skills/design/data/typography/source-serif-source-sans.md +17 -0
  199. package/data/harnesses/apollo/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +17 -0
  200. package/data/harnesses/apollo/skills/design/data/typography/spectral-manrope.md +17 -0
  201. package/data/harnesses/apollo/skills/design/data/voices/bright-collaborator.md +29 -0
  202. package/data/harnesses/apollo/skills/design/data/voices/direct-operator.md +29 -0
  203. package/data/harnesses/apollo/skills/design/data/voices/earnest-helper.md +29 -0
  204. package/data/harnesses/apollo/skills/design/data/voices/editorial-composed.md +29 -0
  205. package/data/harnesses/apollo/skills/design/data/voices/quiet-concierge.md +29 -0
  206. package/data/harnesses/apollo/skills/design/data/voices/warm-guide.md +29 -0
  207. package/data/harnesses/apollo/skills/design/design-md/SCHEMA.md +179 -0
  208. package/data/harnesses/apollo/skills/design/design-md/index.csv +67 -0
  209. package/data/harnesses/apollo/skills/design/design-md/library/airbnb.md +207 -0
  210. package/data/harnesses/apollo/skills/design/design-md/library/airtable.md +205 -0
  211. package/data/harnesses/apollo/skills/design/design-md/library/anthropic-claude.md +203 -0
  212. package/data/harnesses/apollo/skills/design/design-md/library/apple.md +206 -0
  213. package/data/harnesses/apollo/skills/design/design-md/library/binance.md +210 -0
  214. package/data/harnesses/apollo/skills/design/design-md/library/bmw.md +210 -0
  215. package/data/harnesses/apollo/skills/design/design-md/library/cal.md +209 -0
  216. package/data/harnesses/apollo/skills/design/design-md/library/clay.md +204 -0
  217. package/data/harnesses/apollo/skills/design/design-md/library/clickhouse.md +205 -0
  218. package/data/harnesses/apollo/skills/design/design-md/library/cohere.md +205 -0
  219. package/data/harnesses/apollo/skills/design/design-md/library/coinbase.md +198 -0
  220. package/data/harnesses/apollo/skills/design/design-md/library/composio.md +198 -0
  221. package/data/harnesses/apollo/skills/design/design-md/library/cursor.md +197 -0
  222. package/data/harnesses/apollo/skills/design/design-md/library/elevenlabs.md +199 -0
  223. package/data/harnesses/apollo/skills/design/design-md/library/expo.md +200 -0
  224. package/data/harnesses/apollo/skills/design/design-md/library/figma.md +199 -0
  225. package/data/harnesses/apollo/skills/design/design-md/library/framer.md +202 -0
  226. package/data/harnesses/apollo/skills/design/design-md/library/hashicorp.md +205 -0
  227. package/data/harnesses/apollo/skills/design/design-md/library/ibm.md +205 -0
  228. package/data/harnesses/apollo/skills/design/design-md/library/intercom.md +204 -0
  229. package/data/harnesses/apollo/skills/design/design-md/library/kraken.md +200 -0
  230. package/data/harnesses/apollo/skills/design/design-md/library/linear-app.md +198 -0
  231. package/data/harnesses/apollo/skills/design/design-md/library/lovable.md +199 -0
  232. package/data/harnesses/apollo/skills/design/design-md/library/meta.md +204 -0
  233. package/data/harnesses/apollo/skills/design/design-md/library/minimax.md +204 -0
  234. package/data/harnesses/apollo/skills/design/design-md/library/mintlify.md +210 -0
  235. package/data/harnesses/apollo/skills/design/design-md/library/miro.md +209 -0
  236. package/data/harnesses/apollo/skills/design/design-md/library/mistral-ai.md +201 -0
  237. package/data/harnesses/apollo/skills/design/design-md/library/mongodb.md +201 -0
  238. package/data/harnesses/apollo/skills/design/design-md/library/notion.md +204 -0
  239. package/data/harnesses/apollo/skills/design/design-md/library/nvidia.md +215 -0
  240. package/data/harnesses/apollo/skills/design/design-md/library/ollama.md +213 -0
  241. package/data/harnesses/apollo/skills/design/design-md/library/opencode-ai.md +216 -0
  242. package/data/harnesses/apollo/skills/design/design-md/library/posthog.md +218 -0
  243. package/data/harnesses/apollo/skills/design/design-md/library/raycast.md +214 -0
  244. package/data/harnesses/apollo/skills/design/design-md/library/replicate.md +202 -0
  245. package/data/harnesses/apollo/skills/design/design-md/library/resend.md +203 -0
  246. package/data/harnesses/apollo/skills/design/design-md/library/revolut.md +203 -0
  247. package/data/harnesses/apollo/skills/design/design-md/library/runwayml.md +203 -0
  248. package/data/harnesses/apollo/skills/design/design-md/library/sanity.md +200 -0
  249. package/data/harnesses/apollo/skills/design/design-md/library/sentry.md +201 -0
  250. package/data/harnesses/apollo/skills/design/design-md/library/shopify.md +202 -0
  251. package/data/harnesses/apollo/skills/design/design-md/library/slack.md +202 -0
  252. package/data/harnesses/apollo/skills/design/design-md/library/spacex.md +206 -0
  253. package/data/harnesses/apollo/skills/design/design-md/library/spotify.md +206 -0
  254. package/data/harnesses/apollo/skills/design/design-md/library/stripe.md +196 -0
  255. package/data/harnesses/apollo/skills/design/design-md/library/supabase.md +196 -0
  256. package/data/harnesses/apollo/skills/design/design-md/library/superhuman.md +194 -0
  257. package/data/harnesses/apollo/skills/design/design-md/library/tesla.md +198 -0
  258. package/data/harnesses/apollo/skills/design/design-md/library/theverge.md +199 -0
  259. package/data/harnesses/apollo/skills/design/design-md/library/together-ai.md +193 -0
  260. package/data/harnesses/apollo/skills/design/design-md/library/uber.md +195 -0
  261. package/data/harnesses/apollo/skills/design/design-md/library/vercel.md +195 -0
  262. package/data/harnesses/apollo/skills/design/design-md/library/voltagent.md +197 -0
  263. package/data/harnesses/apollo/skills/design/design-md/library/warp.md +196 -0
  264. package/data/harnesses/apollo/skills/design/design-md/library/webflow.md +197 -0
  265. package/data/harnesses/apollo/skills/design/design-md/library/wired.md +197 -0
  266. package/data/harnesses/apollo/skills/design/design-md/library/wise.md +198 -0
  267. package/data/harnesses/apollo/skills/design/design-md/library/x-ai.md +199 -0
  268. package/data/harnesses/apollo/skills/design/design-md/library/zapier.md +198 -0
  269. package/data/harnesses/apollo/skills/design/design-md/nurix.md +214 -0
  270. package/data/harnesses/apollo/skills/design/design-md/variants/editorial-luxury.md +184 -0
  271. package/data/harnesses/apollo/skills/design/design-md/variants/expressive-saas.md +216 -0
  272. package/data/harnesses/apollo/skills/design/design-md/variants/quiet-premium.md +211 -0
  273. package/data/harnesses/apollo/skills/design/design-md/variants/terse-dense-operator.md +212 -0
  274. package/data/harnesses/apollo/skills/design/design-md/variants/warm-approachable.md +216 -0
  275. package/data/harnesses/apollo/skills/design/references/compose.md +23 -0
  276. package/data/harnesses/apollo/skills/design/references/content.md +28 -0
  277. package/data/harnesses/apollo/skills/design/references/emission.md +21 -0
  278. package/data/harnesses/apollo/skills/design/references/existing-apps.md +27 -0
  279. package/data/harnesses/apollo/skills/design/references/intake.md +36 -0
  280. package/data/harnesses/apollo/skills/design/references/object-pass.md +24 -0
  281. package/data/harnesses/apollo/skills/design/references/ship-gate.md +29 -0
  282. package/data/harnesses/apollo/skills/design/references/ux-patterns/Readme.md +195 -0
  283. package/data/harnesses/apollo/skills/design/references/ux-patterns/ai-layer.md +49 -0
  284. package/data/harnesses/apollo/skills/design/references/ux-patterns/attributes-lifecycle.md +43 -0
  285. package/data/harnesses/apollo/skills/design/references/ux-patterns/container-choice.md +44 -0
  286. package/data/harnesses/apollo/skills/design/references/ux-patterns/creation-paths.md +46 -0
  287. package/data/harnesses/apollo/skills/design/references/ux-patterns/dashboards.md +42 -0
  288. package/data/harnesses/apollo/skills/design/references/ux-patterns/modes.md +42 -0
  289. package/data/harnesses/apollo/skills/design/references/ux-patterns/object-model.md +46 -0
  290. package/data/harnesses/apollo/skills/design/references/ux-patterns/page-archetype.md +48 -0
  291. package/data/harnesses/apollo/skills/design/references/ux-patterns/promotion-demotion.md +37 -0
  292. package/data/harnesses/apollo/skills/design/references/ux-patterns/settings.md +42 -0
  293. package/data/harnesses/apollo/skills/design/references/ux-patterns/standard-pages.md +46 -0
  294. package/data/harnesses/apollo/skills/design/references/ux-patterns/state-matrix.md +41 -0
  295. package/data/harnesses/apollo/skills/design/references/ux-patterns/table-mechanics.md +48 -0
  296. package/data/harnesses/apollo/skills/design/references/ux-patterns/verbs.md +45 -0
  297. package/data/harnesses/apollo/skills/design/references/ux-patterns/viewer-context.md +40 -0
  298. package/data/harnesses/apollo/skills/design/scripts/README-validator.md +27 -0
  299. package/data/harnesses/apollo/skills/design/scripts/select-chart.mjs +596 -0
  300. package/data/harnesses/apollo/skills/design/scripts/validate-design-md.mjs +1198 -0
  301. package/data/harnesses/apollo/skills/documentation/SKILL.md +132 -0
  302. package/data/harnesses/apollo/skills/documentation/references/examples.md +279 -0
  303. package/data/harnesses/apollo/skills/documentation/references/frontmatter.md +44 -0
  304. package/data/harnesses/apollo/skills/documentation/references/instruction-style.md +49 -0
  305. package/data/harnesses/apollo/skills/documentation/references/style-guide.md +351 -0
  306. package/data/harnesses/apollo/skills/documentation/references/untemplated.md +38 -0
  307. package/data/harnesses/apollo/skills/documentation/scripts/doc-lint.mjs +140 -0
  308. package/data/harnesses/apollo/skills/documentation/templates/Readme.md +32 -0
  309. package/data/harnesses/apollo/skills/documentation/templates/api-reference.md +20 -0
  310. package/data/harnesses/apollo/skills/documentation/templates/architecture-decision.md +121 -0
  311. package/data/harnesses/apollo/skills/documentation/templates/backlog.md +33 -0
  312. package/data/harnesses/apollo/skills/documentation/templates/behavioral-checklist.md +79 -0
  313. package/data/harnesses/apollo/skills/documentation/templates/changelog-entry.md +57 -0
  314. package/data/harnesses/apollo/skills/documentation/templates/changelog-index.md +41 -0
  315. package/data/harnesses/apollo/skills/documentation/templates/docs-readme.md +72 -0
  316. package/data/harnesses/apollo/skills/documentation/templates/domain-model.md +30 -0
  317. package/data/harnesses/apollo/skills/documentation/templates/environment-registry.md +15 -0
  318. package/data/harnesses/apollo/skills/documentation/templates/feature.md +149 -0
  319. package/data/harnesses/apollo/skills/documentation/templates/glossary.md +11 -0
  320. package/data/harnesses/apollo/skills/documentation/templates/memory-main.md +25 -0
  321. package/data/harnesses/apollo/skills/documentation/templates/migration-runbook.md +34 -0
  322. package/data/harnesses/apollo/skills/documentation/templates/non-goals.md +11 -0
  323. package/data/harnesses/apollo/skills/documentation/templates/operations-procedure.md +36 -0
  324. package/data/harnesses/apollo/skills/documentation/templates/plan.md +71 -0
  325. package/data/harnesses/apollo/skills/documentation/templates/protected-files.md +37 -0
  326. package/data/harnesses/apollo/skills/documentation/templates/root-readme.md +104 -0
  327. package/data/harnesses/apollo/skills/documentation/templates/security-overview.md +27 -0
  328. package/data/harnesses/apollo/skills/documentation/templates/structure.md +65 -0
  329. package/data/harnesses/apollo/skills/documentation/templates/system-overview.md +32 -0
  330. package/data/harnesses/apollo/skills/documentation/templates/testing-strategy.md +29 -0
  331. package/data/harnesses/apollo/skills/test-plan/SKILL.md +83 -0
  332. package/data/harnesses/apollo/skills/workflow-mapper/SKILL.md +451 -0
  333. package/data/harnesses/apollo/skills/workflow-mapper/references/patterns.md +214 -0
  334. package/data/harnesses/code/agents/maintenance.md +2 -2
  335. package/data/harnesses/code/codex/agents/maintenance.toml +2 -2
  336. package/data/harnesses/code/harness.json +3 -2
  337. package/data/harnesses/delivery/agents/maintenance.md +2 -2
  338. package/data/harnesses/delivery/codex/agents/maintenance.toml +2 -2
  339. package/data/harnesses/delivery/harness.json +3 -2
  340. package/data/harnesses/discover/harness.json +2 -1
  341. package/data/harnesses/discussion/harness.json +1 -0
  342. package/data/harnesses/etna/agents/maintenance.md +2 -2
  343. package/data/harnesses/etna/codex/agents/maintenance.toml +2 -2
  344. package/data/harnesses/etna/harness.json +3 -2
  345. package/data/harnesses/hr/harness.json +1 -0
  346. package/data/harnesses/kb-agi/harness.json +1 -0
  347. package/package.json +2 -2
@@ -0,0 +1,89 @@
1
+ ---
2
+ id: revenue-analytics
3
+ class: c1
4
+ sourced: 2026-07-12
5
+ source: "Distilled from B2B SaaS deal-size and win-rate benchmarks (culta.ai, optif.ai, Velocity Partners' 200-company dataset) and CRM call-note / pipeline-stage vocabulary (Weflow- and HubSpot-class sales-call-report guidance); segment bands from Martal and GTMnow's SMB/mid-market/enterprise definitions. See docs/research/design-skill-phase1/c1-demo-data.md."
6
+ license: open
7
+ ---
8
+ # Revenue analytics — demo corpus
9
+
10
+ A CRM sales pipeline. `people.csv` is the internal sales/CS org (AE, SDR, CSM, RevOps — seniority is meaningful here); `companies.csv` is the CRM accounts: prospects and customers a deal is opened against.
11
+
12
+ ## Activity vocabulary (25)
13
+
14
+ 1. Intro call with Elena — pricing discussion, budget confirmed at $40K
15
+ 2. Discovery call: identified pain point around manual reconciliation
16
+ 3. Demo delivered to VP Eng and 2 stakeholders — positive reaction to SSO
17
+ 4. Sent proposal — 3-year term, 12% discount for annual prepay
18
+ 5. Champion (Marcus, Head of Ops) went quiet — no response in 9 days
19
+ 6. Negotiation: legal redlines returned, DPA clause under review
20
+ 7. Closed won — signed an 18-month contract, ARR $86,400
21
+ 8. Closed lost — chose the incumbent, price was the deciding factor
22
+ 9. Renewal call — flagged a 22% QoQ usage drop, account at risk
23
+ 10. Upsell opportunity: 15 additional seats, add-on module discussed
24
+ 11. Economic buyer identified — CFO joining the next call
25
+ 12. Security review kicked off — SOC 2 report requested
26
+ 13. Referral from an existing customer (Northwind Traders)
27
+ 14. Trial extended 14 days — low activation, nudged onboarding
28
+ 15. Competitive deal — up against Rippling, differentiating on support SLA
29
+ 16. Contract sent via DocuSign — awaiting counter-signature
30
+ 17. Budget confirmed for Q3, procurement process to follow
31
+ 18. No-show on the scheduled demo — rescheduled for next Tuesday
32
+ 19. Champion change — original contact left the company, re-engaging new VP
33
+ 20. QBR completed — NPS 8/10, expansion conversation opened
34
+ 21. Free trial converted to paid — 22 seats at $49/seat/mo
35
+ 22. Objection raised on implementation timeline — offered a dedicated CSM
36
+ 23. Multi-year deal restructured to annual due to a budget freeze
37
+ 24. Stakeholder map updated — 4 decision-makers, 2 influencers identified
38
+ 25. Deal slipped to next quarter — legal review taking longer than expected
39
+
40
+ ## Number-shape recipes
41
+
42
+ ```yaml number-shapes
43
+ deal_size_usd:
44
+ distribution: "log-normal(mu=9.4, sigma=1.1)"
45
+ median: 12400
46
+ p90: 68000
47
+ p99: 310000
48
+ win_rate_by_segment:
49
+ smb: "0.30-0.35" # <$10K ACV band
50
+ mid_market: "0.20-0.28" # $10-50K ACV band
51
+ enterprise: "0.12-0.18" # >$50K ACV band
52
+ sales_cycle_days:
53
+ smb: "log-normal, median ~34"
54
+ mid_market: "log-normal, median ~95"
55
+ enterprise: "log-normal, median ~210"
56
+ open_pipeline_stage_mix:
57
+ prospecting: 0.35
58
+ discovery: 0.22
59
+ demo: 0.16
60
+ proposal: 0.12
61
+ negotiation: 0.08
62
+ closing: 0.07
63
+ activity_volume_per_rep:
64
+ shape: power-law
65
+ concentration: "top quartile of reps generates ~60% of pipeline value"
66
+ mrr_growth:
67
+ monthly_delta: "+3 to +9% for growth-stage accounts, -2 to +2% for mature accounts"
68
+ net_revenue_retention: "0.95-1.15"
69
+ logo_churn_monthly: "0.008-0.02"
70
+ stakeholders_per_deal:
71
+ smb: "1-3"
72
+ mid_market: "3-7"
73
+ enterprise: "7-13"
74
+ ```
75
+
76
+ ## Believability patterns applied
77
+
78
+ - **Distributions have a known shape, not uniform or normal** — deal size is modeled log-normal (many small deals, a long right tail of large ones) and rep activity is power-law (top quartile generates ~60% of pipeline value); drawing either as uniform-random or bell-curve reads as generated.
79
+ - **Domain vocabulary beats generic placeholders** — the activity vocabulary above names actual pipeline stages, dispositions, and stakeholder roles ("Champion... went quiet," "Economic buyer identified") instead of generic "Task 1"-style phrasing.
80
+ - **Never repeat identical values across records** — `forbidden-repetition` below caps identical open-deal amounts and same-day close dates so no two rows read as copy-paste.
81
+ - **Measured amounts should pass a Benford-style sniff test** — `deal_size_usd`'s log-normal generation naturally skews leading digits toward 1–3, unlike a naive uniform-random amount generator.
82
+
83
+ ```yaml invariants
84
+ aggregates-reconcile: [total_open_pipeline = sum(pipeline_value_by_stage), arr_net_change = arr_new + arr_expansion - arr_churn - arr_contraction, total_deals = count(closed_won) + count(closed_lost) + count(open_deals)]
85
+ legal-ranges: { deal_size_usd: [500, 500000, log-normal], win_rate: [0.05, 0.45, beta-segment-dependent], sales_cycle_days: [7, 400, log-normal-segment-dependent] }
86
+ forbidden-repetition: { max_same_surname_visible: 2, max_identical_deal_amount_open_deals: 2, max_deals_same_close_date: 4 }
87
+ edge-rows: fixtures-only # nulls/zeros/outliers live in state fixtures, never the primary set
88
+ reference-instant: 2026-07-12T09:00:00Z # fixed — all dates vary around this instant
89
+ ```
@@ -0,0 +1,25 @@
1
+ name,email,role,seniority
2
+ Elena Vasquez,elena.vasquez@fernhollow.io,Account Executive,Mid
3
+ Kwame Asante,kwame.asante@fernhollow.io,Sales Development Rep,Junior
4
+ Sofia Marchetti,sofia.marchetti@fernhollow.io,Senior Account Executive,Senior
5
+ Raj Patel,raj.patel@fernhollow.io,VP Sales,Executive
6
+ Hannah Lindqvist,hannah.lindqvist@fernhollow.io,Customer Success Manager,Mid
7
+ Yusuf Demir,yusuf.demir@fernhollow.io,Sales Engineer,Mid
8
+ Chloe Bergstrom,chloe.bergstrom@fernhollow.io,RevOps Analyst,Junior
9
+ Daniel Osei-Mensah,daniel.osei-mensah@fernhollow.io,Enterprise Account Executive,Senior
10
+ Mei-Lin Tan,mei-lin.tan@fernhollow.io,Renewals Manager,Mid
11
+ Oliver Bancroft,oliver.bancroft@fernhollow.io,Sales Manager,Lead
12
+ Isabelle Fontaine,isabelle.fontaine@fernhollow.io,Account Executive,Mid
13
+ Tariq Nasser,tariq.nasser@fernhollow.io,Sales Development Rep,Junior
14
+ Brynn O'Callaghan,brynn.ocallaghan@fernhollow.io,Customer Success Manager,Mid
15
+ Felix Andersson,felix.andersson@fernhollow.io,Sales Engineer,Mid
16
+ Priyanka Deshmukh,priyanka.deshmukh@fernhollow.io,Senior Account Executive,Senior
17
+ Marcus Lindgren,marcus.lindgren@fernhollow.io,RevOps Manager,Manager
18
+ Aaliyah Johnson,aaliyah.johnson@fernhollow.io,Sales Development Rep,Junior
19
+ Sebastian Kruger,sebastian.kruger@fernhollow.io,Enterprise Account Executive,Senior
20
+ Noor Hassan,noor.hassan@fernhollow.io,Customer Success Manager,Mid
21
+ Viktor Petrenko,viktor.petrenko@fernhollow.io,Deal Desk Analyst,Mid
22
+ Camille Dubois,camille.dubois@fernhollow.io,Renewals Manager,Manager
23
+ Adebayo Okonkwo,adebayo.okonkwo@fernhollow.io,Account Executive,Mid
24
+ Ingrid Solheim,ingrid.solheim@fernhollow.io,Senior Customer Success Manager,Senior
25
+ Julian Marsh,julian.marsh@fernhollow.io,Sales Director,Lead
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: ant-design-directional-shadow
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from ant.design/docs/spec/shadow"
6
+ license: open
7
+ feel: "enterprise-friendly, directionally aware; drawers and fixed headers cast shadow toward the content they overlay, not just downward"
8
+ ---
9
+ Ant Design is unusual in defining shadow **direction** as a first-class variable: the same three-layer blur/opacity recipe is mirrored down/up/left/right depending on where the component sits (a right-side drawer casts left, a bottom-fixed table header casts up). Three layers per direction blend from a tight, high-opacity contact shadow to a huge, near-invisible ambient one.
10
+
11
+ ```yaml values
12
+ radius: { sm: 4, md: 6, lg: 8 }
13
+ hairline: "none at rest; inputs use a separate 1px border token, not shared with the shadow system"
14
+ shadow:
15
+ layer1-down: "0px 1px 2px -2px rgba(0,0,0,.16), 0px 3px 6px 0px rgba(0,0,0,.12), 0px 5px 12px 4px rgba(0,0,0,.09)"
16
+ layer2-down: "0px 3px 6px -4px rgba(0,0,0,.12), 0px 6px 16px 0px rgba(0,0,0,.08), 0px 9px 28px 8px rgba(0,0,0,.05)"
17
+ layer3-down: "0px 6px 16px -8px rgba(0,0,0,.08), 0px 9px 28px 0px rgba(0,0,0,.05), 0px 12px 48px 16px rgba(0,0,0,.03)"
18
+ dark-ladder: { step: "+~5L per level (v5 dark algorithm inverts the neutral scale)", hue: held }
19
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: apple-liquid-glass-material
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from developer.apple.com/design/human-interface-guidelines/materials"
6
+ license: reference-only
7
+ feel: "spatial, translucent, light-reactive; depth comes from a refractive material simulating glass thickness, not a fixed shadow token"
8
+ ---
9
+ Apple's newest materials model (Liquid Glass) ties elevation to simulated material *thickness* rather than a discrete shadow scale: as a glass element grows or is interacted with, it "flexes" to a thicker material with deeper shadow and more pronounced lensing/refraction. Darker, denser materials deliberately mute shadow legibility, trading depth for reduced visual noise — the opposite trade every other system here makes.
10
+
11
+ ```yaml values
12
+ radius: { sm: 10, md: 16, lg: 28 }
13
+ hairline: "none as a drawn line — edge definition comes from the material's own refractive/specular edge"
14
+ shadow:
15
+ base: "shadow deepens dynamically as the glass element scales up (material 'flexes' thicker)"
16
+ scroll: "shadow intensifies as content scrolls beneath it, to preserve separation"
17
+ dark-ladder: { step: "n/a — darker/denser materials intentionally reduce shadow legibility rather than laddering lightness", hue: held }
18
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: atlassian-surface-shadow-pairing
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from atlassian.design/foundations/elevation and /foundations/radius; radius px approximated from usage guidance, exact figures not published in source"
6
+ license: open
7
+ feel: "structured enterprise calm; every raised surface ships as a matched surface+shadow pair, never a shadow in isolation"
8
+ ---
9
+ Atlassian defines four discrete elevations — sunken, default, raised, overlay — and enforces that `elevation.surface.*` and `elevation.shadow.*` tokens are always used together, never mixed across levels. In dark mode the rule inverts intuition: higher elevation surfaces get **lighter**, not darker, simulating front-lighting rather than cast shadow.
10
+
11
+ Approximation note: radius px approximated from usage guidance — exact figures are not published in the source and should be checked before shipping.
12
+
13
+ ```yaml values
14
+ radius: { sm: 3, md: 6, lg: 8 }
15
+ hairline: "none at rest — sunken/default read via fill color, not a border line"
16
+ shadow:
17
+ raised: "0px 1px 1px #091E4240, 0px 0px 1px #091E424F"
18
+ overlay: "0px 8px 12px #091E4226, 0px 0px 1px #091E424F"
19
+ dark-ladder: { step: "+~4L per level — \"the higher the elevation, the lighter the surface looks\"", hue: held }
20
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: fluent-2-key-ambient-ramp
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from fluent2.microsoft.design/elevation"
6
+ license: open
7
+ feel: "Windows-native layered light; every shadow is a paired sharp key + soft ambient cast, doubling in blur up the ramp"
8
+ ---
9
+ Fluent 2 generates its whole shadow ramp from one equation: each step doubles the prior step's blur (shadow2 → 4 → 8 → 16 → 28 → 64), always as a key+ambient pair. Dark mode doesn't lighten surfaces — it simply raises the shadow's own opacity (~0.14 → ~0.28) to stay visible against a dark canvas.
10
+
11
+ ```yaml values
12
+ radius: { sm: 2, md: 4, lg: 6 }
13
+ hairline: "none by default — shadow2 (near-hairline blur) covers the lowest resting state"
14
+ shadow:
15
+ shadow2: "0 0.5px 1px rgba(0,0,0,.14)"
16
+ shadow8: "0 4px 8px rgba(0,0,0,.14)"
17
+ shadow16: "0 8px 16px rgba(0,0,0,.14)"
18
+ shadow64: "0 0.5px 1px rgba(0,0,0,.24), 0 0 8px rgba(0,0,0,.20)"
19
+ dark-ladder: { step: "n/a — dark mode doubles shadow alpha (~.14→.28) rather than lightening surfaces", hue: held }
20
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: github-primer-sparing-shadow
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from primer.style/product/css-utilities/box-shadow and primer.style/foundations/css-utilities/borders"
6
+ license: open
7
+ feel: "developer-tool restraint; flat-and-bordered by default, shadow is the deliberate exception, never the everyday chrome"
8
+ ---
9
+ Primer's stated philosophy is to use shadow *sparingly*: small shadows for things that need to feel slightly elevated (pricing cards), medium for editorialized clickable content, and large reserved almost entirely for marketing pages and screenshots — never for ordinary product UI, which relies on `border-default` instead.
10
+
11
+ ```yaml values
12
+ radius: { sm: 4, md: 6, lg: 8 }
13
+ hairline: "border-default, 1px solid — the primary separation mechanic; shadow is the exception, not the rule"
14
+ shadow:
15
+ small: "subtle lift — pricing cards, attention-getting UI"
16
+ medium: "diffused, larger — editorialized clickable content"
17
+ large: "very diffused, used sparingly — marketing content and screenshots only"
18
+ dark-ladder: { step: "+~3L per level (canvas-default #0d1117 → canvas-subtle/overlay)", hue: held }
19
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: ibm-carbon-layer-and-border
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from v11.carbondesignsystem.com/guidelines/color/implementation and Carbon's elevation guidance"
6
+ license: open
7
+ feel: "flat, rectilinear, enterprise-IBM; depth is a color-and-border swap between layers, almost never a cast shadow"
8
+ ---
9
+ Carbon's default posture is nearly shadow-free: each of its layer tokens (`layer-01/02/03`) is paired 1:1 with a matching border token, so nesting a panel inside a panel is a background-color-plus-border swap, not a shadow stack. Shadow is reserved almost exclusively for true overlays — dropdowns and modals. Corners stay square almost everywhere, in keeping with Carbon's rectilinear IBM heritage.
10
+
11
+ ```yaml values
12
+ radius: { sm: 0, md: 0, lg: 2 }
13
+ hairline: "$border-strong-0X paired with $layer-0X — the layer+border pair IS the elevation cue"
14
+ shadow:
15
+ layer: "none — flat; separation via layer-01/02/03 background swap + paired border"
16
+ overlay: "0 2px 6px 0 rgba(0,0,0,.30)"
17
+ modal: "0 8px 16px 0 rgba(0,0,0,.30)"
18
+ dark-ladder: { step: "n/a — discrete named themes (White/g10 light, g90/g100 dark), not a continuous ladder", hue: held }
19
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ id: linear-dark-surface-ladder
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from github.com/voltagent/awesome-design-md — linear.app/DESIGN.md"
6
+ license: reference-only
7
+ feel: "software-craft dark mode; restraint scales — one accent, hairlines, and a shallow surface ladder carry all the hierarchy, no shadows anywhere"
8
+ ---
9
+ Linear runs dark-only and resists drop shadows almost entirely; elevation is a **four-step surface-lightness ladder** (surface-1 through surface-4) paired with 1px hairlines of increasing strength (default → strong → tertiary) for nested content. The steps are deliberately small — a whisper of lift, never a spotlight.
10
+
11
+ ```yaml values
12
+ radius: { sm: 6, md: 8, lg: 12 }
13
+ hairline: "1px solid {colors.hairline} #23252a at rest; {hairline-strong} #34343a on focus; {hairline-tertiary} #3e3e44 for nested surfaces"
14
+ shadow:
15
+ all-levels: "none — drop shadows resisted almost entirely on dark surfaces"
16
+ dark-ladder: { step: "+~2L per level (surface-1 #0f1011 → surface-2 #141516 → surface-3 #18191a → surface-4 #191a1b)", hue: held }
17
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: material-2-key-ambient-dp-ramp
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from m2.material.io/design/environment/elevation.html and m1.material.io/resources/shadows.html"
6
+ license: open
7
+ feel: "classic Google-Material paper-stack; every raise reads as a discrete, physical dp jump"
8
+ ---
9
+ The original Material model: a single dp scale (0–24) drives a fixed **key shadow + ambient shadow** pair at every level — sharp directional shadow layered under a soft diffuse one, both pure black at low opacity. No brand tint, no tonal color; the whole hierarchy is shadow-only, which is what later gave way to M3's tonal approach.
10
+
11
+ ```yaml values
12
+ radius: { sm: 2, md: 4, lg: 8 }
13
+ hairline: none
14
+ shadow:
15
+ 1dp: "0 1px 1px 0 rgba(0,0,0,.14), 0 2px 1px -1px rgba(0,0,0,.12), 0 1px 3px 0 rgba(0,0,0,.20)"
16
+ 8dp: "0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12), 0 5px 5px -3px rgba(0,0,0,.20)"
17
+ 16dp: "0 16px 24px 2px rgba(0,0,0,.14), 0 6px 30px 5px rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.20)"
18
+ dark-ladder: { step: "white-overlay 5%→16% across 1dp→24dp (~+1-2% per step)", hue: held }
19
+ ```
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: material-3-tonal-elevation
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from m3.material.io/styles/elevation/tokens; shadow figures approximate Material Web's published elevation-level tokens"
6
+ license: open
7
+ feel: "quiet tech-forward calm; depth reads as a warm color shift more than a cast shadow, corners softly rounded"
8
+ ---
9
+ Material 3's headline move: elevation is expressed primarily through **tonal surface tint** (a translucent overlay of the primary brand color, stronger at higher levels) with a thin shadow underneath as a secondary cue. No borders — surfaces separate by tone, not line. Best where a single brand hue should visibly "light up" whatever floats highest.
10
+
11
+ Approximation note: shadow figures approximate Material Web's published elevation-level tokens — check exact rgba/opacity figures against the live source before shipping.
12
+
13
+ ```yaml values
14
+ radius: { sm: 8, md: 12, lg: 16 }
15
+ hairline: none
16
+ shadow:
17
+ level1: "0px 1px 2px rgba(0,0,0,0.30), 0px 1px 3px 1px rgba(0,0,0,0.15) + {primary-hue tint / ~5% overlay}"
18
+ level2: "0px 1px 2px rgba(0,0,0,0.30), 0px 2px 6px 2px rgba(0,0,0,0.15) + {primary-hue tint / ~8% overlay}"
19
+ level3: "0px 4px 8px 3px rgba(0,0,0,0.15), 0px 1px 3px rgba(0,0,0,0.30) + {primary-hue tint / ~11% overlay}"
20
+ dark-ladder: { step: "+~3% primary-tint per level (approx 5/8/11/12/14%)", hue: drift }
21
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: neobrutalist-hard-offset
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from neubrutalism.com and community neobrutalism CSS references (community pattern, no single owning org)"
6
+ license: open
7
+ feel: "loud, tactile, intentionally raw; a solid offset shadow with zero blur reads as a physical card lifted straight off the page"
8
+ ---
9
+ Neobrutalism inverts the entire elevation vocabulary: no blur, ever. A thick (3–4px) solid black border plus a flat, hard-edged offset shadow in pure black (or a bold flat color) does all the depth work — the shadow is a solid silhouette displaced down-right, not a soft cast. Radius stays at or near zero to keep the "raw" read.
10
+
11
+ ```yaml values
12
+ radius: { sm: 0, md: 0, lg: 4 }
13
+ hairline: "not a hairline — a 3-4px solid black border replaces the border/shadow distinction entirely"
14
+ shadow:
15
+ sm: "4px 4px 0px #000000"
16
+ md: "6px 6px 0px #000000"
17
+ lg: "8px 8px 0px #000000"
18
+ dark-ladder: { step: "n/a — most kits binary-invert black/white rather than laddering surfaces", hue: held }
19
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: neumorphic-soft-dual-shadow
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from neumorphism.io and community soft-UI CSS references (community pattern, no single owning org)"
6
+ license: open
7
+ feel: "soft, extruded, monochrome; elements look pressed into or popped out of a background that shares their exact color"
8
+ ---
9
+ Neumorphism fakes physical extrusion with a **paired light+dark shadow** on an element whose background exactly matches its parent's — no border, no color contrast, only two offset shadows (one lighter, one darker than the shared base) doing all the modeling. Pressed/inset states simply invert the pair. Contrast-fragile by construction: raising shadow strength enough to pass accessibility checks destroys the soft illusion that is the entire point.
10
+
11
+ ```yaml values
12
+ radius: { sm: 12, md: 16, lg: 24 }
13
+ hairline: "none — a drawn border would break the illusion; edges exist only via the shadow pair"
14
+ shadow:
15
+ raised: "10px 10px 20px #bebebe, -10px -10px 20px #ffffff"
16
+ pressed: "inset 6px 6px 12px #bebebe, inset -6px -6px 12px #ffffff"
17
+ dark-ladder: { step: "n/a — dark variant is a manual per-surface retune (e.g. base #2d3239, shadows #23272d / #373d46), not a formula", hue: held }
18
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ id: notion-warm-minimal-hairline
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from github.com/VoltAgent/awesome-design-md — notion/DESIGN.md"
6
+ license: reference-only
7
+ feel: "warm, paper-like minimalism; content over chrome, separation is almost always a thin line rather than a cast shadow"
8
+ ---
9
+ Notion's house rule is explicit: don't apply heavy shadows on flat documentation cards. Separation is carried almost entirely by a single hairline border token reused across nav, cards, and containers; the rare exception is a very soft lift on preview/mockup cards, kept subtle enough not to compete with content.
10
+
11
+ ```yaml values
12
+ radius: { sm: 4, md: 6, lg: 10 }
13
+ hairline: "1px solid {colors.hairline} #EDEEEC — the default separator for nav, cards, and containers; heavy shadows explicitly avoided"
14
+ shadow:
15
+ rare-lift: "used sparingly, only on mockup/preview cards — e.g. 0 4px 16px rgba(0,0,0,.06)"
16
+ dark-ladder: { step: "+~2-3L per level (approx #191919 → #202020 → #2f2f2f surfaces)", hue: held }
17
+ ```
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: polaris-elevation-inset-bevel
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from polaris-react.shopify.com/design/depth/shadow-tokens; radius px approximated, exact figures not published in source"
6
+ license: open
7
+ feel: "commerce-admin friendly; raised surfaces read as physically thick, machined edges rather than flat cards floated on a shadow"
8
+ ---
9
+ Polaris splits shadow into three distinct token families used in combination: elevation (the classic cast drop-shadow), inset (an embedded/pressed look), and bevel (a thin inner highlight+shadow edge that gives a raised surface the sense of physical thickness). Combining bevel with elevation is the house move for "this is a real, liftable object."
10
+
11
+ Approximation note: radius px approximated — exact figures are not published in the source and should be checked before shipping.
12
+
13
+ ```yaml values
14
+ radius: { sm: 4, md: 8, lg: 12 }
15
+ hairline: "implicit — bevel-100 supplies a 1px inner highlight/shadow edge in place of a plain border"
16
+ shadow:
17
+ elevation-100: "cast shadow, lightest — resting cards"
18
+ elevation-300: "cast shadow, medium — popovers and overlays"
19
+ bevel-100: "inset highlight + inset shadow — thick machined edge on raised surfaces"
20
+ dark-ladder: { step: "n/a — Shopify admin ships no official dark theme", hue: held }
21
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: radix-themes-alpha-ring-scale
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from radix-ui.com/themes/docs/theme/shadows, /radius, and the shadow.css token source"
6
+ license: open
7
+ feel: "quiet, correct, slightly clinical; a 6-step alpha ramp any accent color can flow through without redoing the shadows"
8
+ ---
9
+ Radix builds its shadow ramp entirely from **gray-alpha and black-alpha overlays** rather than fixed opaque colors, so the same six shadow steps stay correct across every accent and every light/dark theme automatically. `shadow-1` is an inset ring that doubles as the hairline for flush, level-0 surfaces.
10
+
11
+ ```yaml values
12
+ radius: { sm: 4, md: 8, lg: 12 }
13
+ hairline: "shadow-1 — inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px var(--gray-a2)/var(--black-a2)"
14
+ shadow:
15
+ shadow-2: "0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px var(--black-a1)"
16
+ shadow-3: "0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2)"
17
+ shadow-5: "0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5)"
18
+ dark-ladder: { step: "n/a — alpha-step ramp (gray-a3 → a5 → a7 in dark), not a lightness ladder", hue: held }
19
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: shadcn-neutral-derived-radius
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from ui.shadcn.com/docs/theming; shadow values are the Tailwind defaults shadcn themes typically inherit"
6
+ license: open
7
+ feel: "neutral, restrained utility feel; nearly flat, with one hairline border doing most of the separating work"
8
+ ---
9
+ shadcn/ui derives its entire radius scale from a single `--radius` variable (multiplied up/down for sm/md/lg/xl), and leans on a plain neutral `border` token rather than shadow for everyday separation — shadow is reserved for popovers/menus. The whole system is intentionally colorless so any brand palette can sit on top of it unchanged.
10
+
11
+ ```yaml values
12
+ radius: { sm: 6, md: 8, lg: 10 }
13
+ hairline: "border token — 1px solid, neutral gray/oklch; default separator for card, input, and popover"
14
+ shadow:
15
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)"
16
+ md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"
17
+ popover: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"
18
+ dark-ladder: { step: "+0.03–0.05 L per surface (oklch background → card)", hue: held }
19
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: stripe-brand-tinted-dual-shadow
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from designmd.run/blog/stripe-design-system-breakdown and docs.stripe.com/elements/appearance-api"
6
+ license: reference-only
7
+ feel: "warm, trustworthy, faintly atmospheric; shadows carry Stripe's navy-purple brand hue instead of reading as neutral gray"
8
+ ---
9
+ Stripe's shadows are two stacked layers where the far/ambient layer is tinted `rgba(50,50,93,...)` — the same blue-gray family as its navy-purple brand palette — with only the near/contact layer left as neutral black. Radius is deliberately conservative (Elements' own default is 4px) — Stripe treats restraint on both shadow and radius as part of feeling "trustworthy."
10
+
11
+ ```yaml values
12
+ radius: { sm: 4, md: 6, lg: 8 }
13
+ hairline: "none specified — separation relies on shadow against a cool-gray canvas (#F6F9FC)"
14
+ shadow:
15
+ near: "rgba(0,0,0,.1) 0px 1px 2px 0px"
16
+ card: "rgba(50,50,93,.25) 0px 6px 12px -2px, rgba(0,0,0,.3) 0px 3px 7px -3px — {navy-purple tint / 0.25 alpha on far layer}"
17
+ dark-ladder: { step: "unconfirmed — Stripe's public brand system is light-first with no published dark ramp", hue: held }
18
+ ```
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: tailwind-default-utility-scale
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from tailwindcss.com/docs/box-shadow default theme values"
6
+ license: open
7
+ feel: "the internet's default; a neutral gray shadow ramp so common it reads as 'no design system' unless overridden"
8
+ ---
9
+ Tailwind's out-of-the-box shadow scale is the de facto baseline for a huge share of the web: six pure-neutral steps (sm → 2xl) with no brand tint, used independently of its separate border-color utilities rather than paired with them. Its very ubiquity is the point of including it here — it's the "control group" every more opinionated system in this list is reacting against.
10
+
11
+ ```yaml values
12
+ radius: { sm: 4, md: 6, lg: 8 }
13
+ hairline: "border-gray-200 (or theme border color), 1px solid — used independently of the shadow scale, not paired with it"
14
+ shadow:
15
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)"
16
+ md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)"
17
+ xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"
18
+ dark-ladder: { step: "n/a — no shipped dark ramp; convention is dark:shadow-none or a manual opacity boost", hue: held }
19
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: vercel-geist-shadow-as-border
3
+ class: a3
4
+ sourced: 2026-07-12
5
+ source: "distilled from vercel.com/geist/materials"
6
+ license: reference-only
7
+ feel: "razor-flat product chrome; the resting 'border' is secretly a zero-blur shadow, softness saved entirely for menus and modals"
8
+ ---
9
+ Geist's signature trick: a zero-offset, zero-blur, 1px-spread shadow (`0 0 0 1px rgba(0,0,0,.08)`) stands in for a border at rest, avoiding box-model side effects. As elements go from card → menu → modal, additional shadow layers stack on top of that same base line rather than replacing it, so the "border" never disappears.
10
+
11
+ ```yaml values
12
+ radius: { sm: 6, md: 12, lg: 16 }
13
+ hairline: "shadow-emulated hairline — 0px 0px 0px 1px rgba(0,0,0,.08), zero blur, present at every rest state"
14
+ shadow:
15
+ base: "0px 0px 0px 1px rgba(0,0,0,.08)"
16
+ small: "0px 0px 0px 1px rgba(0,0,0,.08), 0px 2px 4px rgba(0,0,0,.04)"
17
+ menu: "0px 0px 0px 1px rgba(0,0,0,.08), 0px 8px 24px -8px rgba(0,0,0,.12)"
18
+ modal: "0px 0px 0px 1px rgba(0,0,0,.08), 0px 16px 48px -12px rgba(0,0,0,.18)"
19
+ dark-ladder: { step: "+1 surface swap per level (#000 → #0a0a0a → #111), occasional {blue-hue tint / low-alpha} wash surface", hue: drift }
20
+ ```
@@ -0,0 +1,16 @@
1
+ ---
2
+ id: amber-attention-fill
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from generic near-threshold/warning chart-fill conventions in dashboard tooling"
6
+ license: open
7
+ feel: "a warm amber haze — draws the eye without alarming it"
8
+ ---
9
+ Use for near-threshold or approaching-quota metrics. Don't combine with risk-decline-fill in the same chart — at low opacity the two will blur together.
10
+
11
+ ```yaml values
12
+ role: chart-fill
13
+ stops: [oklch(0.837 0.164 84.4 / 0.30), oklch(0.837 0.164 84.4 / 0)]
14
+ angle: 180deg
15
+ intensity: medium
16
+ ```
@@ -0,0 +1,16 @@
1
+ ---
2
+ id: cloud-shadow-wash
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from WebGradients 'Above Clouds' (MIT-licensed, itmeo/webgradients)"
6
+ license: open
7
+ feel: "soft graphite haze with almost no hue — architectural and quiet"
8
+ ---
9
+ Card or sidebar background needing gentle separation from flat gray; reads equally well next to light or dim surfaces. No real "never" beyond stacking it under already-busy imagery.
10
+
11
+ ```yaml values
12
+ role: wash
13
+ stops: [oklch(0.795 0.005 314.8), oklch(0.700 0.007 277.1)]
14
+ angle: 160deg
15
+ intensity: subtle
16
+ ```
@@ -0,0 +1,16 @@
1
+ ---
2
+ id: confident-lavender-wash
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from WebGradients 'Confident Cloud' (MIT-licensed, itmeo/webgradients)"
6
+ license: open
7
+ feel: "lavender easing into a whisper of blush — calm with a faint trace of warmth"
8
+ ---
9
+ Onboarding empty-state or settings-panel background. Keep off data-dense grids, where the hue drift could read as an unintended status tint.
10
+
11
+ ```yaml values
12
+ role: wash
13
+ stops: [oklch(0.882 0.033 297.2), oklch(0.938 0.013 5.8)]
14
+ angle: 135deg
15
+ intensity: subtle
16
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: ember-ship-flare
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from Vercel's public 'Ship' gradient pairing (shadcn.io Vercel system breakdown)"
6
+ license: brand-reference
7
+ feel: "warm coral tipping into gold — a single completion flare, like a deploy going green"
8
+ ---
9
+ A one-off celebratory moment — a deploy-success toast or onboarding-complete card. Never persistent chrome, never repeated across a dashboard grid.
10
+
11
+ This entry is a distilled approximation of Vercel's publicly visible "Ship" gradient pairing, never a redistributed asset — the stops are our own oklch reconstruction, not an extracted brand file.
12
+
13
+ ```yaml values
14
+ role: accent
15
+ stops: [oklch(0.673 0.215 25.0), oklch(0.858 0.167 91.2)]
16
+ angle: 120deg
17
+ intensity: loud
18
+ ```
@@ -0,0 +1,16 @@
1
+ ---
2
+ id: full-metal-wash
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from WebGradients 'Full Metal' (MIT-licensed, itmeo/webgradients)"
6
+ license: open
7
+ feel: "brushed steel — near-neutral blue-gray with almost no chroma at all"
8
+ ---
9
+ Default panel/card background for a professional dashboard shell. The lowest-risk entry in this set — appropriate almost anywhere neutral depth is wanted.
10
+
11
+ ```yaml values
12
+ role: wash
13
+ stops: [oklch(0.896 0.016 248.0), oklch(0.926 0.010 252.8)]
14
+ angle: 180deg
15
+ intensity: subtle
16
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: indigo-ruby-cta-band
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from Stripe's public brand pairing of primary indigo and ruby accent (shadcn.io Stripe system breakdown)"
6
+ license: brand-reference
7
+ feel: "confident indigo deepening at one edge into ruby — a branded call-to-action, not a background"
8
+ ---
9
+ Primary-button or CTA-band surface at moderate scale (a banner, not a full page). Avoid full-bleed page backgrounds where it would compete with dense content.
10
+
11
+ This entry is a distilled approximation of Stripe's publicly visible indigo/ruby brand pairing, never a redistributed asset — the stops are our own oklch reconstruction, not an extracted brand file.
12
+
13
+ ```yaml values
14
+ role: accent
15
+ stops: [oklch(0.521 0.268 277.4), oklch(0.609 0.228 10.8)]
16
+ angle: 100deg
17
+ intensity: medium
18
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ id: linear-graphite-wash
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from Linear's official brand palette — Mercury White / Nordic Gray (linear.app/brand)"
6
+ license: brand-reference
7
+ feel: "the quiet cool-gray of a focused productivity tool, barely tinted blue"
8
+ ---
9
+ App-shell background or table zebra-row wash. Deliberately low-contrast so it never competes with list or table content.
10
+
11
+ This entry is a distilled approximation of Linear's publicly visible Mercury White / Nordic Gray brand palette, never a redistributed asset — the stops are our own oklch reconstruction, not an extracted brand file.
12
+
13
+ ```yaml values
14
+ role: wash
15
+ stops: [oklch(0.970 0.004 271.4), oklch(0.929 0.013 255.5)]
16
+ angle: 180deg
17
+ intensity: subtle
18
+ ```
@@ -0,0 +1,16 @@
1
+ ---
2
+ id: marble-quartz-wash
3
+ class: a4
4
+ sourced: 2026-07-12
5
+ source: "Distilled from WebGradients 'Marble Wall' (MIT-licensed, itmeo/webgradients)"
6
+ license: open
7
+ feel: "cool periwinkle fading into dusty rose-gray — mineral and understated"
8
+ ---
9
+ Secondary (non-primary) promo-card background; light enough to sit behind body copy on a plain text panel.
10
+
11
+ ```yaml values
12
+ role: wash
13
+ stops: [oklch(0.823 0.054 279.3), oklch(0.910 0.017 316.9)]
14
+ angle: 145deg
15
+ intensity: subtle
16
+ ```