@olives/devos 2.1.0

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 (741) hide show
  1. package/.agents/AGENTS.md +316 -0
  2. package/.agents/README.md +55 -0
  3. package/.agents/agents/architect.md +18 -0
  4. package/.agents/agents/dba.md +25 -0
  5. package/.agents/agents/developer.md +40 -0
  6. package/.agents/agents/devops.md +18 -0
  7. package/.agents/agents/memory-manager.md +38 -0
  8. package/.agents/agents/orchestrator.md +92 -0
  9. package/.agents/agents/qa.md +53 -0
  10. package/.agents/agents/release-manager.md +41 -0
  11. package/.agents/agents/researcher.md +19 -0
  12. package/.agents/agents/security.md +27 -0
  13. package/.agents/agents/tester.md +21 -0
  14. package/.agents/commands/README.md +42 -0
  15. package/.agents/commands/architect.md +16 -0
  16. package/.agents/commands/commit.md +15 -0
  17. package/.agents/commands/deploy.md +18 -0
  18. package/.agents/commands/fix.md +19 -0
  19. package/.agents/commands/refactor.md +19 -0
  20. package/.agents/commands/research.md +19 -0
  21. package/.agents/commands/review.md +21 -0
  22. package/.agents/commands/secure.md +23 -0
  23. package/.agents/commands/status.md +16 -0
  24. package/.agents/commands/test.md +16 -0
  25. package/.agents/scripts/commit.sh +73 -0
  26. package/.agents/scripts/install-hooks.sh +72 -0
  27. package/.agents/skills/agent-browser/SKILL.md +50 -0
  28. package/.agents/skills/agent-development/SKILL.md +415 -0
  29. package/.agents/skills/agent-development/examples/agent-creation-prompt.md +238 -0
  30. package/.agents/skills/agent-development/examples/complete-agent-examples.md +427 -0
  31. package/.agents/skills/agent-development/references/agent-creation-system-prompt.md +207 -0
  32. package/.agents/skills/agent-development/references/system-prompt-design.md +411 -0
  33. package/.agents/skills/agent-development/references/triggering-examples.md +491 -0
  34. package/.agents/skills/agent-development/scripts/validate-agent.sh +217 -0
  35. package/.agents/skills/backend-dev-guidelines/SKILL.md +352 -0
  36. package/.agents/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  37. package/.agents/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  38. package/.agents/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  39. package/.agents/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  40. package/.agents/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  41. package/.agents/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  42. package/.agents/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  43. package/.agents/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  44. package/.agents/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  45. package/.agents/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  46. package/.agents/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  47. package/.agents/skills/backend-development/SKILL.md +156 -0
  48. package/.agents/skills/backend-patterns/SKILL.md +562 -0
  49. package/.agents/skills/brainstorming/SKILL.md +159 -0
  50. package/.agents/skills/brainstorming/scripts/frame-template.html +213 -0
  51. package/.agents/skills/brainstorming/scripts/helper.js +167 -0
  52. package/.agents/skills/brainstorming/scripts/server.cjs +723 -0
  53. package/.agents/skills/brainstorming/scripts/start-server.sh +209 -0
  54. package/.agents/skills/brainstorming/scripts/stop-server.sh +120 -0
  55. package/.agents/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  56. package/.agents/skills/brainstorming/visual-companion.md +291 -0
  57. package/.agents/skills/code-reviewer/SKILL.md +65 -0
  58. package/.agents/skills/content-strategy/SKILL.md +365 -0
  59. package/.agents/skills/content-strategy/evals/evals.json +90 -0
  60. package/.agents/skills/content-strategy/references/headless-cms.md +194 -0
  61. package/.agents/skills/deploy-to-vercel/SKILL.md +296 -0
  62. package/.agents/skills/deploy-to-vercel/resources/deploy-codex.sh +301 -0
  63. package/.agents/skills/deploy-to-vercel/resources/deploy.sh +301 -0
  64. package/.agents/skills/deployment-checklist/SKILL.md +119 -0
  65. package/.agents/skills/design/SKILL.md +170 -0
  66. package/.agents/skills/design-an-interface/SKILL.md +94 -0
  67. package/.agents/skills/expose-localhost/SKILL.md +211 -0
  68. package/.agents/skills/expose-localhost/references/TROUBLESHOOTING.md +27 -0
  69. package/.agents/skills/find-skills/SKILL.md +142 -0
  70. package/.agents/skills/frontend-ui-engineering/SKILL.md +328 -0
  71. package/.agents/skills/git-commit/SKILL.md +124 -0
  72. package/.agents/skills/git-ops/SKILL.md +53 -0
  73. package/.agents/skills/git-workflow/SKILL.md +167 -0
  74. package/.agents/skills/google-agents-cli-adk-code/SKILL.md +72 -0
  75. package/.agents/skills/google-agents-cli-adk-code/references/adk-python.md +937 -0
  76. package/.agents/skills/google-agents-cli-adk-code/references/adk-workflows.md +507 -0
  77. package/.agents/skills/google-agents-cli-workflow/SKILL.md +310 -0
  78. package/.agents/skills/google-agents-cli-workflow/references/commands.md +12 -0
  79. package/.agents/skills/google-agents-cli-workflow/references/internals.md +24 -0
  80. package/.agents/skills/google-agents-cli-workflow/references/samples.md +59 -0
  81. package/.agents/skills/google-agents-cli-workflow/references/spec-template.md +25 -0
  82. package/.agents/skills/google-agents-cli-workflow/references/terminology.md +11 -0
  83. package/.agents/skills/grill-me/SKILL.md +47 -0
  84. package/.agents/skills/grill-with-docs/SKILL.md +7 -0
  85. package/.agents/skills/human-checkpoint/SKILL.md +21 -0
  86. package/.agents/skills/image/SKILL.md +340 -0
  87. package/.agents/skills/image/evals/evals.json +89 -0
  88. package/.agents/skills/image/references/ai-image-prompting.md +229 -0
  89. package/.agents/skills/image-generation/SKILL.md +374 -0
  90. package/.agents/skills/imagegen/LICENSE.txt +201 -0
  91. package/.agents/skills/imagegen/SKILL.md +279 -0
  92. package/.agents/skills/imagegen/agents/openai.yaml +6 -0
  93. package/.agents/skills/imagegen/assets/imagegen-small.svg +5 -0
  94. package/.agents/skills/imagegen/assets/imagegen.png +0 -0
  95. package/.agents/skills/imagegen/references/cli.md +160 -0
  96. package/.agents/skills/imagegen/references/codex-network.md +33 -0
  97. package/.agents/skills/imagegen/references/image-api.md +49 -0
  98. package/.agents/skills/imagegen/references/prompting.md +98 -0
  99. package/.agents/skills/imagegen/references/sample-prompts.md +376 -0
  100. package/.agents/skills/imagegen/scripts/image_gen.py +926 -0
  101. package/.agents/skills/imagegen-frontend-web/SKILL.md +987 -0
  102. package/.agents/skills/laravel-security/SKILL.md +948 -0
  103. package/.agents/skills/laravel-specialist/SKILL.md +264 -0
  104. package/.agents/skills/laravel-specialist/references/eloquent.md +351 -0
  105. package/.agents/skills/laravel-specialist/references/livewire.md +512 -0
  106. package/.agents/skills/laravel-specialist/references/queues.md +423 -0
  107. package/.agents/skills/laravel-specialist/references/routing.md +362 -0
  108. package/.agents/skills/laravel-specialist/references/testing.md +522 -0
  109. package/.agents/skills/laravel-tdd/SKILL.md +675 -0
  110. package/.agents/skills/laravel-verification/SKILL.md +180 -0
  111. package/.agents/skills/modern-web-guidance/SKILL.md +114 -0
  112. package/.agents/skills/modern-web-guidance/guides/accessibility/accessibility.md +463 -0
  113. package/.agents/skills/modern-web-guidance/guides/accessibility/accessible-error-announcement.md +207 -0
  114. package/.agents/skills/modern-web-guidance/guides/built-in-ai/language-detection.md +89 -0
  115. package/.agents/skills/modern-web-guidance/guides/built-in-ai/language-model.md +189 -0
  116. package/.agents/skills/modern-web-guidance/guides/built-in-ai/prompt-api.md +189 -0
  117. package/.agents/skills/modern-web-guidance/guides/built-in-ai/summarizer.md +154 -0
  118. package/.agents/skills/modern-web-guidance/guides/built-in-ai/translator.md +162 -0
  119. package/.agents/skills/modern-web-guidance/guides/css/css.md +527 -0
  120. package/.agents/skills/modern-web-guidance/guides/css/highlight-text-ranges.md +128 -0
  121. package/.agents/skills/modern-web-guidance/guides/css-layout/css-layout.md +305 -0
  122. package/.agents/skills/modern-web-guidance/guides/forms/animated-select-picker.md +178 -0
  123. package/.agents/skills/modern-web-guidance/guides/forms/autofill-address-form.md +75 -0
  124. package/.agents/skills/modern-web-guidance/guides/forms/autofill-highlight-inputs.md +45 -0
  125. package/.agents/skills/modern-web-guidance/guides/forms/autofill-payment-form.md +125 -0
  126. package/.agents/skills/modern-web-guidance/guides/forms/autofill-sign-in-form.md +135 -0
  127. package/.agents/skills/modern-web-guidance/guides/forms/autofill-sign-up-form.md +145 -0
  128. package/.agents/skills/modern-web-guidance/guides/forms/brand-consistent-forms.md +255 -0
  129. package/.agents/skills/modern-web-guidance/guides/forms/branded-select-styling.md +114 -0
  130. package/.agents/skills/modern-web-guidance/guides/forms/custom-select-picker-layouts.md +103 -0
  131. package/.agents/skills/modern-web-guidance/guides/forms/form-fields-automatically-fit-contents.md +121 -0
  132. package/.agents/skills/modern-web-guidance/guides/forms/forms.md +372 -0
  133. package/.agents/skills/modern-web-guidance/guides/forms/required-field-feedback.md +214 -0
  134. package/.agents/skills/modern-web-guidance/guides/forms/rich-media-picker.md +132 -0
  135. package/.agents/skills/modern-web-guidance/guides/forms/select-menu-interaction.md +180 -0
  136. package/.agents/skills/modern-web-guidance/guides/forms/validate-input-after-interaction.md +258 -0
  137. package/.agents/skills/modern-web-guidance/guides/html/html.md +407 -0
  138. package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-authentication.md +205 -0
  139. package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-conditional-create.md +134 -0
  140. package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-management.md +211 -0
  141. package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-reauthentication.md +128 -0
  142. package/.agents/skills/modern-web-guidance/guides/passkeys/passkey-registration.md +181 -0
  143. package/.agents/skills/modern-web-guidance/guides/passkeys/passkeys.md +38 -0
  144. package/.agents/skills/modern-web-guidance/guides/performance/batch-analytics-events.md +154 -0
  145. package/.agents/skills/modern-web-guidance/guides/performance/break-up-long-tasks.md +60 -0
  146. package/.agents/skills/modern-web-guidance/guides/performance/calculate-total-foreground-time.md +69 -0
  147. package/.agents/skills/modern-web-guidance/guides/performance/conditional-async-dependencies.md +71 -0
  148. package/.agents/skills/modern-web-guidance/guides/performance/defer-rendering-heavy-content.md +106 -0
  149. package/.agents/skills/modern-web-guidance/guides/performance/defer-work-until-scroll-ends.md +78 -0
  150. package/.agents/skills/modern-web-guidance/guides/performance/deprioritize-background-fetches.md +37 -0
  151. package/.agents/skills/modern-web-guidance/guides/performance/detect-initial-visibility-state.md +99 -0
  152. package/.agents/skills/modern-web-guidance/guides/performance/efficient-background-processing.md +117 -0
  153. package/.agents/skills/modern-web-guidance/guides/performance/faster-spa-view-transitions.md +79 -0
  154. package/.agents/skills/modern-web-guidance/guides/performance/full-session-analytics.md +135 -0
  155. package/.agents/skills/modern-web-guidance/guides/performance/identify-heavy-scripts.md +69 -0
  156. package/.agents/skills/modern-web-guidance/guides/performance/identify-inp-causes.md +73 -0
  157. package/.agents/skills/modern-web-guidance/guides/performance/improve-next-page-load-performance.md +119 -0
  158. package/.agents/skills/modern-web-guidance/guides/performance/interactions-in-complex-layouts.md +78 -0
  159. package/.agents/skills/modern-web-guidance/guides/performance/optimize-image-priority.md +61 -0
  160. package/.agents/skills/modern-web-guidance/guides/performance/optimize-preload-priority.md +41 -0
  161. package/.agents/skills/modern-web-guidance/guides/performance/optimize-script-priority.md +38 -0
  162. package/.agents/skills/modern-web-guidance/guides/performance/performance.md +366 -0
  163. package/.agents/skills/modern-web-guidance/guides/performance/resolution-optimized-pseudo-elements.md +47 -0
  164. package/.agents/skills/modern-web-guidance/guides/performance/schedule-tasks-by-priority.md +59 -0
  165. package/.agents/skills/modern-web-guidance/guides/performance/sequence-distributed-events.md +76 -0
  166. package/.agents/skills/modern-web-guidance/guides/privacy/privacy.md +247 -0
  167. package/.agents/skills/modern-web-guidance/guides/security/security.md +350 -0
  168. package/.agents/skills/modern-web-guidance/guides/user-experience/adapt-scrollbar-to-contrast-preferences.md +74 -0
  169. package/.agents/skills/modern-web-guidance/guides/user-experience/anchor-positioning-tab-underline.md +95 -0
  170. package/.agents/skills/modern-web-guidance/guides/user-experience/animate-element-entry-exit.md +131 -0
  171. package/.agents/skills/modern-web-guidance/guides/user-experience/animate-to-from-top-layer.md +140 -0
  172. package/.agents/skills/modern-web-guidance/guides/user-experience/animate-to-intrinsic-sizes.md +127 -0
  173. package/.agents/skills/modern-web-guidance/guides/user-experience/apply-webgl-shaders.md +239 -0
  174. package/.agents/skills/modern-web-guidance/guides/user-experience/calculate-event-differentials.md +85 -0
  175. package/.agents/skills/modern-web-guidance/guides/user-experience/calculate-with-intrinsic-sizes.md +196 -0
  176. package/.agents/skills/modern-web-guidance/guides/user-experience/capture-location-agnostic-data.md +63 -0
  177. package/.agents/skills/modern-web-guidance/guides/user-experience/carousel-slide-effects.md +187 -0
  178. package/.agents/skills/modern-web-guidance/guides/user-experience/carousel-snap-highlights.md +136 -0
  179. package/.agents/skills/modern-web-guidance/guides/user-experience/child-state-based-styling.md +101 -0
  180. package/.agents/skills/modern-web-guidance/guides/user-experience/complex-shapes.md +73 -0
  181. package/.agents/skills/modern-web-guidance/guides/user-experience/component-specific-light-dark-theme.md +179 -0
  182. package/.agents/skills/modern-web-guidance/guides/user-experience/consistent-cross-document-transitions.md +226 -0
  183. package/.agents/skills/modern-web-guidance/guides/user-experience/content-based-styling.md +118 -0
  184. package/.agents/skills/modern-web-guidance/guides/user-experience/coordinate-global-events.md +79 -0
  185. package/.agents/skills/modern-web-guidance/guides/user-experience/cross-document-transitions.md +127 -0
  186. package/.agents/skills/modern-web-guidance/guides/user-experience/custom-button-actions.md +173 -0
  187. package/.agents/skills/modern-web-guidance/guides/user-experience/customize-scrollbar-color-and-thickness.md +59 -0
  188. package/.agents/skills/modern-web-guidance/guides/user-experience/dark-mode.md +295 -0
  189. package/.agents/skills/modern-web-guidance/guides/user-experience/declarative-dialog-popover-control.md +238 -0
  190. package/.agents/skills/modern-web-guidance/guides/user-experience/deliver-optimized-decorative-images.md +49 -0
  191. package/.agents/skills/modern-web-guidance/guides/user-experience/design-token-reactivity.md +174 -0
  192. package/.agents/skills/modern-web-guidance/guides/user-experience/directional-navigation-transitions.md +125 -0
  193. package/.agents/skills/modern-web-guidance/guides/user-experience/dynamic-sibling-animations.md +54 -0
  194. package/.agents/skills/modern-web-guidance/guides/user-experience/dynamic-sibling-styling.md +98 -0
  195. package/.agents/skills/modern-web-guidance/guides/user-experience/export-html-media-from-canvas.md +256 -0
  196. package/.agents/skills/modern-web-guidance/guides/user-experience/expose-canvas-content-to-browser-features.md +401 -0
  197. package/.agents/skills/modern-web-guidance/guides/user-experience/flicker-free-client-side-ab-testing.md +168 -0
  198. package/.agents/skills/modern-web-guidance/guides/user-experience/fluid-scaling.md +78 -0
  199. package/.agents/skills/modern-web-guidance/guides/user-experience/format-human-readable-durations.md +87 -0
  200. package/.agents/skills/modern-web-guidance/guides/user-experience/group-element-transitions.md +124 -0
  201. package/.agents/skills/modern-web-guidance/guides/user-experience/improve-text-layout-and-legibility.md +76 -0
  202. package/.agents/skills/modern-web-guidance/guides/user-experience/individual-transform-properties.md +92 -0
  203. package/.agents/skills/modern-web-guidance/guides/user-experience/interactive-content-in-3d-scenes.md +383 -0
  204. package/.agents/skills/modern-web-guidance/guides/user-experience/interactive-content-reveal.md +118 -0
  205. package/.agents/skills/modern-web-guidance/guides/user-experience/interest-triggered-action-previews.md +79 -0
  206. package/.agents/skills/modern-web-guidance/guides/user-experience/interest-triggered-tooltips.md +132 -0
  207. package/.agents/skills/modern-web-guidance/guides/user-experience/light-dismiss-a-dialog.md +84 -0
  208. package/.agents/skills/modern-web-guidance/guides/user-experience/manage-recurring-intervals.md +73 -0
  209. package/.agents/skills/modern-web-guidance/guides/user-experience/model-partial-time-concepts.md +96 -0
  210. package/.agents/skills/modern-web-guidance/guides/user-experience/move-dom-element-without-losing-state.md +57 -0
  211. package/.agents/skills/modern-web-guidance/guides/user-experience/navigation-drawer.md +357 -0
  212. package/.agents/skills/modern-web-guidance/guides/user-experience/overflow-clipping-control.md +180 -0
  213. package/.agents/skills/modern-web-guidance/guides/user-experience/parallax-scroll-effects.md +230 -0
  214. package/.agents/skills/modern-web-guidance/guides/user-experience/persistent-app-tours.md +112 -0
  215. package/.agents/skills/modern-web-guidance/guides/user-experience/persistent-toast-notifications.md +30 -0
  216. package/.agents/skills/modern-web-guidance/guides/user-experience/persistent-top-layer-ui.md +48 -0
  217. package/.agents/skills/modern-web-guidance/guides/user-experience/physics-based-easing.md +118 -0
  218. package/.agents/skills/modern-web-guidance/guides/user-experience/platform-controls-dismiss-dialog.md +38 -0
  219. package/.agents/skills/modern-web-guidance/guides/user-experience/position-aware-tooltips.md +154 -0
  220. package/.agents/skills/modern-web-guidance/guides/user-experience/precise-text-alignment.md +99 -0
  221. package/.agents/skills/modern-web-guidance/guides/user-experience/prevent-text-wrapping.md +62 -0
  222. package/.agents/skills/modern-web-guidance/guides/user-experience/pull-to-reveal.md +83 -0
  223. package/.agents/skills/modern-web-guidance/guides/user-experience/reduce-style-repetition.md +87 -0
  224. package/.agents/skills/modern-web-guidance/guides/user-experience/resilient-context-menus-and-nested-dropdowns.md +102 -0
  225. package/.agents/skills/modern-web-guidance/guides/user-experience/same-document-transitions.md +177 -0
  226. package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-entry-exit-effects.md +173 -0
  227. package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-position-aware-elements.md +128 -0
  228. package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-progress-indicator.md +133 -0
  229. package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-snap-realtime-feedback.md +153 -0
  230. package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-snap-state-sync.md +93 -0
  231. package/.agents/skills/modern-web-guidance/guides/user-experience/scroll-target-on-load.md +56 -0
  232. package/.agents/skills/modern-web-guidance/guides/user-experience/scrollability-affordance-hints.md +124 -0
  233. package/.agents/skills/modern-web-guidance/guides/user-experience/scrollytelling.md +181 -0
  234. package/.agents/skills/modern-web-guidance/guides/user-experience/search-hidden-content.md +136 -0
  235. package/.agents/skills/modern-web-guidance/guides/user-experience/shaped-cutouts.md +146 -0
  236. package/.agents/skills/modern-web-guidance/guides/user-experience/shrinking-header-on-scroll.md +126 -0
  237. package/.agents/skills/modern-web-guidance/guides/user-experience/size-aware-styling.md +104 -0
  238. package/.agents/skills/modern-web-guidance/guides/user-experience/soft-edge-content-fade.md +62 -0
  239. package/.agents/skills/modern-web-guidance/guides/user-experience/stabilize-reactive-state.md +72 -0
  240. package/.agents/skills/modern-web-guidance/guides/user-experience/stack-drill-down.md +680 -0
  241. package/.agents/skills/modern-web-guidance/guides/user-experience/style-parent-with-has.md +199 -0
  242. package/.agents/skills/modern-web-guidance/guides/user-experience/support-global-calendar-systems.md +107 -0
  243. package/.agents/skills/modern-web-guidance/guides/user-experience/swipe-to-remove.md +527 -0
  244. package/.agents/skills/modern-web-guidance/guides/user-experience/visually-stable-font-fallbacks.md +49 -0
  245. package/.agents/skills/modern-web-guidance/guides/user-experience/visually-stable-mixed-fonts.md +61 -0
  246. package/.agents/skills/modern-web-guidance/guides/user-experience/visually-texture-content.md +76 -0
  247. package/.agents/skills/modern-web-guidance/guides/webmcp/agentic-forms.md +116 -0
  248. package/.agents/skills/modern-web-guidance/guides/webmcp/agentic-javascript-tools.md +116 -0
  249. package/.agents/skills/modern-web-guidance/guides/webmcp/webmcp.md +43 -0
  250. package/.agents/skills/nextjs-app-router-patterns/SKILL.md +114 -0
  251. package/.agents/skills/nextjs-app-router-patterns/references/details.md +428 -0
  252. package/.agents/skills/nextjs-developer/SKILL.md +145 -0
  253. package/.agents/skills/nextjs-developer/references/app-router.md +311 -0
  254. package/.agents/skills/nextjs-developer/references/data-fetching.md +482 -0
  255. package/.agents/skills/nextjs-developer/references/deployment.md +545 -0
  256. package/.agents/skills/nextjs-developer/references/server-actions.md +462 -0
  257. package/.agents/skills/nextjs-developer/references/server-components.md +384 -0
  258. package/.agents/skills/nextjs-supabase-auth/SKILL.md +313 -0
  259. package/.agents/skills/nodejs-backend-patterns/SKILL.md +45 -0
  260. package/.agents/skills/nodejs-backend-patterns/references/advanced-patterns.md +430 -0
  261. package/.agents/skills/nodejs-backend-patterns/references/details.md +599 -0
  262. package/.agents/skills/performance-engineer/SKILL.md +181 -0
  263. package/.agents/skills/project-requirements/SKILL.md +43 -0
  264. package/.agents/skills/qa/SKILL.md +130 -0
  265. package/.agents/skills/security-review/LICENSE +22 -0
  266. package/.agents/skills/security-review/SKILL.md +312 -0
  267. package/.agents/skills/security-review/infrastructure/docker.md +432 -0
  268. package/.agents/skills/security-review/languages/javascript.md +387 -0
  269. package/.agents/skills/security-review/languages/python.md +363 -0
  270. package/.agents/skills/security-review/references/api-security.md +519 -0
  271. package/.agents/skills/security-review/references/authentication.md +353 -0
  272. package/.agents/skills/security-review/references/authorization.md +372 -0
  273. package/.agents/skills/security-review/references/business-logic.md +443 -0
  274. package/.agents/skills/security-review/references/cryptography.md +329 -0
  275. package/.agents/skills/security-review/references/csrf.md +398 -0
  276. package/.agents/skills/security-review/references/data-protection.md +378 -0
  277. package/.agents/skills/security-review/references/deserialization.md +410 -0
  278. package/.agents/skills/security-review/references/error-handling.md +436 -0
  279. package/.agents/skills/security-review/references/file-security.md +457 -0
  280. package/.agents/skills/security-review/references/injection.md +259 -0
  281. package/.agents/skills/security-review/references/logging.md +433 -0
  282. package/.agents/skills/security-review/references/misconfiguration.md +435 -0
  283. package/.agents/skills/security-review/references/modern-threats.md +475 -0
  284. package/.agents/skills/security-review/references/ssrf.md +413 -0
  285. package/.agents/skills/security-review/references/supply-chain.md +405 -0
  286. package/.agents/skills/security-review/references/xss.md +336 -0
  287. package/.agents/skills/seo-aeo-best-practices/SKILL.md +37 -0
  288. package/.agents/skills/seo-aeo-best-practices/references/aeo-considerations.md +159 -0
  289. package/.agents/skills/seo-aeo-best-practices/references/eeat-principles.md +127 -0
  290. package/.agents/skills/seo-aeo-best-practices/references/structured-data.md +183 -0
  291. package/.agents/skills/seo-aeo-best-practices/references/technical-seo.md +188 -0
  292. package/.agents/skills/seo-geo/.claude-plugin/plugin.json +29 -0
  293. package/.agents/skills/seo-geo/SKILL.md +250 -0
  294. package/.agents/skills/seo-geo/examples/opc-skills-case-study.md +330 -0
  295. package/.agents/skills/seo-geo/references/geo-research.md +319 -0
  296. package/.agents/skills/seo-geo/references/google-docs-summary.md +65 -0
  297. package/.agents/skills/seo-geo/references/platform-algorithms.md +354 -0
  298. package/.agents/skills/seo-geo/references/schema-templates.md +517 -0
  299. package/.agents/skills/seo-geo/references/seo-checklist.md +249 -0
  300. package/.agents/skills/seo-geo/references/tools-and-apis.md +313 -0
  301. package/.agents/skills/seo-geo/scripts/autocomplete_ideas.py +74 -0
  302. package/.agents/skills/seo-geo/scripts/backlinks.py +37 -0
  303. package/.agents/skills/seo-geo/scripts/competitor_gap.py +80 -0
  304. package/.agents/skills/seo-geo/scripts/credential.py +12 -0
  305. package/.agents/skills/seo-geo/scripts/dataforseo_api.py +104 -0
  306. package/.agents/skills/seo-geo/scripts/domain_overview.py +44 -0
  307. package/.agents/skills/seo-geo/scripts/keyword_research.py +38 -0
  308. package/.agents/skills/seo-geo/scripts/related_keywords.py +84 -0
  309. package/.agents/skills/seo-geo/scripts/seo_audit.py +151 -0
  310. package/.agents/skills/seo-geo/scripts/serp_analysis.py +41 -0
  311. package/.agents/skills/shadcn-ui/README.md +248 -0
  312. package/.agents/skills/shadcn-ui/SKILL.md +326 -0
  313. package/.agents/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
  314. package/.agents/skills/shadcn-ui/examples/data-table.tsx +313 -0
  315. package/.agents/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
  316. package/.agents/skills/shadcn-ui/resources/component-catalog.md +481 -0
  317. package/.agents/skills/shadcn-ui/resources/customization-guide.md +516 -0
  318. package/.agents/skills/shadcn-ui/resources/migration-guide.md +463 -0
  319. package/.agents/skills/shadcn-ui/resources/setup-guide.md +412 -0
  320. package/.agents/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
  321. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  322. package/.agents/skills/skill-creator/SKILL.md +485 -0
  323. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  324. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  325. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  326. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  327. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  328. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  329. package/.agents/skills/skill-creator/references/schemas.md +430 -0
  330. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  331. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  332. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  333. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  334. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  335. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  336. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  337. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  338. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  339. package/.agents/skills/stacks/SKILL.md +21 -0
  340. package/.agents/skills/stacks/django.md +187 -0
  341. package/.agents/skills/stacks/express.md +16 -0
  342. package/.agents/skills/stacks/fastapi.md +17 -0
  343. package/.agents/skills/stacks/laravel.md +18 -0
  344. package/.agents/skills/stacks/nextjs.md +20 -0
  345. package/.agents/skills/stacks/react-native.md +170 -0
  346. package/.agents/skills/supabase/CHANGELOG.md +35 -0
  347. package/.agents/skills/supabase/SKILL.md +135 -0
  348. package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
  349. package/.agents/skills/supabase/references/skill-feedback.md +17 -0
  350. package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
  351. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  352. package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  353. package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  354. package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
  355. package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  356. package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  357. package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  358. package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  359. package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  360. package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  361. package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  362. package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  363. package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  364. package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  365. package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  366. package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  367. package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  368. package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  369. package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  370. package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  371. package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  372. package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  373. package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  374. package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  375. package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  376. package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  377. package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  378. package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  379. package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  380. package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  381. package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  382. package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  383. package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  384. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  385. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  386. package/.agents/skills/task-contract/SKILL.md +29 -0
  387. package/.agents/skills/token-optimization/SKILL.md +40 -0
  388. package/.agents/skills/ui-designer/SKILL.md +76 -0
  389. package/.agents/skills/ui-ux-pro-max/SKILL.md +704 -0
  390. package/.agents/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
  391. package/.agents/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
  392. package/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
  393. package/.agents/skills/ui-ux-pro-max/data/colors.csv +162 -0
  394. package/.agents/skills/ui-ux-pro-max/data/design.csv +1776 -0
  395. package/.agents/skills/ui-ux-pro-max/data/draft.csv +1779 -0
  396. package/.agents/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
  397. package/.agents/skills/ui-ux-pro-max/data/icons.csv +106 -0
  398. package/.agents/skills/ui-ux-pro-max/data/landing.csv +35 -0
  399. package/.agents/skills/ui-ux-pro-max/data/motion.csv +17 -0
  400. package/.agents/skills/ui-ux-pro-max/data/products.csv +162 -0
  401. package/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  402. package/.agents/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
  403. package/.agents/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  404. package/.agents/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  405. package/.agents/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  406. package/.agents/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  407. package/.agents/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
  408. package/.agents/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  409. package/.agents/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  410. package/.agents/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  411. package/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  412. package/.agents/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  413. package/.agents/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  414. package/.agents/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  415. package/.agents/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  416. package/.agents/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
  417. package/.agents/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  418. package/.agents/skills/ui-ux-pro-max/data/styles.csv +85 -0
  419. package/.agents/skills/ui-ux-pro-max/data/typography.csv +74 -0
  420. package/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
  421. package/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  422. package/.agents/skills/ui-ux-pro-max/scripts/core.py +274 -0
  423. package/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1329 -0
  424. package/.agents/skills/ui-ux-pro-max/scripts/search.py +127 -0
  425. package/.agents/skills/vercel-cli-with-tokens/SKILL.md +353 -0
  426. package/.agents/skills/vercel-composition-patterns/AGENTS.md +946 -0
  427. package/.agents/skills/vercel-composition-patterns/README.md +60 -0
  428. package/.agents/skills/vercel-composition-patterns/SKILL.md +89 -0
  429. package/.agents/skills/vercel-composition-patterns/metadata.json +11 -0
  430. package/.agents/skills/vercel-composition-patterns/rules/_sections.md +29 -0
  431. package/.agents/skills/vercel-composition-patterns/rules/_template.md +24 -0
  432. package/.agents/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  433. package/.agents/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  434. package/.agents/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  435. package/.agents/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  436. package/.agents/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  437. package/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  438. package/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  439. package/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  440. package/.agents/skills/vercel-optimize/AGENTS.md +48 -0
  441. package/.agents/skills/vercel-optimize/CONTRIBUTING.md +41 -0
  442. package/.agents/skills/vercel-optimize/README.md +91 -0
  443. package/.agents/skills/vercel-optimize/SKILL.md +322 -0
  444. package/.agents/skills/vercel-optimize/lib/auth-route.mjs +23 -0
  445. package/.agents/skills/vercel-optimize/lib/budget-summary.mjs +182 -0
  446. package/.agents/skills/vercel-optimize/lib/citations.mjs +139 -0
  447. package/.agents/skills/vercel-optimize/lib/cost-coverage.mjs +143 -0
  448. package/.agents/skills/vercel-optimize/lib/dedup-recs.mjs +325 -0
  449. package/.agents/skills/vercel-optimize/lib/deep-dive.mjs +350 -0
  450. package/.agents/skills/vercel-optimize/lib/display-labels.mjs +185 -0
  451. package/.agents/skills/vercel-optimize/lib/extract-claims.mjs +550 -0
  452. package/.agents/skills/vercel-optimize/lib/framework-support.mjs +67 -0
  453. package/.agents/skills/vercel-optimize/lib/gates/build-minutes-fanout.mjs +69 -0
  454. package/.agents/skills/vercel-optimize/lib/gates/cold-start.mjs +66 -0
  455. package/.agents/skills/vercel-optimize/lib/gates/contract.mjs +79 -0
  456. package/.agents/skills/vercel-optimize/lib/gates/cwv-poor.mjs +87 -0
  457. package/.agents/skills/vercel-optimize/lib/gates/external-api-slow.mjs +55 -0
  458. package/.agents/skills/vercel-optimize/lib/gates/hard-gates.mjs +73 -0
  459. package/.agents/skills/vercel-optimize/lib/gates/index.mjs +45 -0
  460. package/.agents/skills/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -0
  461. package/.agents/skills/vercel-optimize/lib/gates/middleware-heavy.mjs +51 -0
  462. package/.agents/skills/vercel-optimize/lib/gates/observability-events-attribution.mjs +56 -0
  463. package/.agents/skills/vercel-optimize/lib/gates/platform-bot-protection.mjs +115 -0
  464. package/.agents/skills/vercel-optimize/lib/gates/platform-fluid-compute.mjs +83 -0
  465. package/.agents/skills/vercel-optimize/lib/gates/region-misconfig.mjs +64 -0
  466. package/.agents/skills/vercel-optimize/lib/gates/route-errors.mjs +80 -0
  467. package/.agents/skills/vercel-optimize/lib/gates/scanner-driven.mjs +122 -0
  468. package/.agents/skills/vercel-optimize/lib/gates/select-candidates.mjs +134 -0
  469. package/.agents/skills/vercel-optimize/lib/gates/slow-route.mjs +88 -0
  470. package/.agents/skills/vercel-optimize/lib/gates/types.d.ts +38 -0
  471. package/.agents/skills/vercel-optimize/lib/gates/uncached-route.mjs +93 -0
  472. package/.agents/skills/vercel-optimize/lib/gates/usage-spike-triage.mjs +121 -0
  473. package/.agents/skills/vercel-optimize/lib/grade-recommendation.mjs +155 -0
  474. package/.agents/skills/vercel-optimize/lib/impact-label.mjs +126 -0
  475. package/.agents/skills/vercel-optimize/lib/impact-magnitude.mjs +60 -0
  476. package/.agents/skills/vercel-optimize/lib/investigation-brief.mjs +610 -0
  477. package/.agents/skills/vercel-optimize/lib/observation-safety.mjs +174 -0
  478. package/.agents/skills/vercel-optimize/lib/project-facts.mjs +99 -0
  479. package/.agents/skills/vercel-optimize/lib/queries.mjs +315 -0
  480. package/.agents/skills/vercel-optimize/lib/reconcile-candidates.mjs +372 -0
  481. package/.agents/skills/vercel-optimize/lib/render-report.mjs +955 -0
  482. package/.agents/skills/vercel-optimize/lib/repo-root.mjs +86 -0
  483. package/.agents/skills/vercel-optimize/lib/route-normalize.mjs +220 -0
  484. package/.agents/skills/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +38 -0
  485. package/.agents/skills/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +30 -0
  486. package/.agents/skills/vercel-optimize/lib/sanitizers/count-correct.mjs +52 -0
  487. package/.agents/skills/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +38 -0
  488. package/.agents/skills/vercel-optimize/lib/sanitizers/index.mjs +79 -0
  489. package/.agents/skills/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +36 -0
  490. package/.agents/skills/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -0
  491. package/.agents/skills/vercel-optimize/lib/sanitizers/pre-release.mjs +74 -0
  492. package/.agents/skills/vercel-optimize/lib/sanitizers/rate-limit.mjs +67 -0
  493. package/.agents/skills/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +38 -0
  494. package/.agents/skills/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +78 -0
  495. package/.agents/skills/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -0
  496. package/.agents/skills/vercel-optimize/lib/sanitizers/window-units.mjs +32 -0
  497. package/.agents/skills/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +109 -0
  498. package/.agents/skills/vercel-optimize/lib/scanners/edge-heavy-import.mjs +94 -0
  499. package/.agents/skills/vercel-optimize/lib/scanners/force-dynamic.mjs +42 -0
  500. package/.agents/skills/vercel-optimize/lib/scanners/headers-in-page.mjs +44 -0
  501. package/.agents/skills/vercel-optimize/lib/scanners/index.mjs +35 -0
  502. package/.agents/skills/vercel-optimize/lib/scanners/large-static-asset.mjs +92 -0
  503. package/.agents/skills/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +42 -0
  504. package/.agents/skills/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +55 -0
  505. package/.agents/skills/vercel-optimize/lib/scanners/missing-cache-headers.mjs +90 -0
  506. package/.agents/skills/vercel-optimize/lib/scanners/prisma-include-tree.mjs +42 -0
  507. package/.agents/skills/vercel-optimize/lib/scanners/region-pin-in-config.mjs +88 -0
  508. package/.agents/skills/vercel-optimize/lib/scanners/source-maps-production.mjs +36 -0
  509. package/.agents/skills/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +43 -0
  510. package/.agents/skills/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +129 -0
  511. package/.agents/skills/vercel-optimize/lib/scanners/unoptimized-image.mjs +113 -0
  512. package/.agents/skills/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +106 -0
  513. package/.agents/skills/vercel-optimize/lib/support-topics.mjs +355 -0
  514. package/.agents/skills/vercel-optimize/lib/throttle.mjs +273 -0
  515. package/.agents/skills/vercel-optimize/lib/util.mjs +17 -0
  516. package/.agents/skills/vercel-optimize/lib/vercel.mjs +864 -0
  517. package/.agents/skills/vercel-optimize/lib/verify-claim.mjs +1296 -0
  518. package/.agents/skills/vercel-optimize/lib/workspace-resolver.mjs +521 -0
  519. package/.agents/skills/vercel-optimize/metadata.json +14 -0
  520. package/.agents/skills/vercel-optimize/references/candidates.md +176 -0
  521. package/.agents/skills/vercel-optimize/references/data-collection.md +218 -0
  522. package/.agents/skills/vercel-optimize/references/docs-library.json +683 -0
  523. package/.agents/skills/vercel-optimize/references/doctrine.md +105 -0
  524. package/.agents/skills/vercel-optimize/references/observability-plus.md +108 -0
  525. package/.agents/skills/vercel-optimize/references/playbooks/README.md +53 -0
  526. package/.agents/skills/vercel-optimize/references/playbooks/ai-application.md +32 -0
  527. package/.agents/skills/vercel-optimize/references/playbooks/api-service.md +30 -0
  528. package/.agents/skills/vercel-optimize/references/playbooks/content-site.md +30 -0
  529. package/.agents/skills/vercel-optimize/references/playbooks/ecommerce.md +30 -0
  530. package/.agents/skills/vercel-optimize/references/playbooks/marketing.md +30 -0
  531. package/.agents/skills/vercel-optimize/references/playbooks/saas.md +31 -0
  532. package/.agents/skills/vercel-optimize/references/playbooks/sveltekit.md +75 -0
  533. package/.agents/skills/vercel-optimize/references/recommendations.md +203 -0
  534. package/.agents/skills/vercel-optimize/references/scanner-patterns.md +251 -0
  535. package/.agents/skills/vercel-optimize/references/scoring.md +205 -0
  536. package/.agents/skills/vercel-optimize/references/support-topics/README.md +46 -0
  537. package/.agents/skills/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +22 -0
  538. package/.agents/skills/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +22 -0
  539. package/.agents/skills/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +22 -0
  540. package/.agents/skills/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +22 -0
  541. package/.agents/skills/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +23 -0
  542. package/.agents/skills/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +22 -0
  543. package/.agents/skills/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +23 -0
  544. package/.agents/skills/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +22 -0
  545. package/.agents/skills/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +22 -0
  546. package/.agents/skills/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +22 -0
  547. package/.agents/skills/vercel-optimize/references/support-topics/database-egress-pooling-region.md +22 -0
  548. package/.agents/skills/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +22 -0
  549. package/.agents/skills/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +22 -0
  550. package/.agents/skills/vercel-optimize/references/support-topics/external-api-critical-path.md +22 -0
  551. package/.agents/skills/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +22 -0
  552. package/.agents/skills/vercel-optimize/references/support-topics/fluid-compute-caveats.md +22 -0
  553. package/.agents/skills/vercel-optimize/references/support-topics/function-duration-io-and-after.md +22 -0
  554. package/.agents/skills/vercel-optimize/references/support-topics/function-invocation-reduction.md +22 -0
  555. package/.agents/skills/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +23 -0
  556. package/.agents/skills/vercel-optimize/references/support-topics/image-optimization-cost-control.md +22 -0
  557. package/.agents/skills/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +22 -0
  558. package/.agents/skills/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +22 -0
  559. package/.agents/skills/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +22 -0
  560. package/.agents/skills/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +23 -0
  561. package/.agents/skills/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +23 -0
  562. package/.agents/skills/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +23 -0
  563. package/.agents/skills/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +22 -0
  564. package/.agents/skills/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +23 -0
  565. package/.agents/skills/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +22 -0
  566. package/.agents/skills/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +23 -0
  567. package/.agents/skills/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +22 -0
  568. package/.agents/skills/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +22 -0
  569. package/.agents/skills/vercel-optimize/references/support-topics/post-response-work-waituntil.md +22 -0
  570. package/.agents/skills/vercel-optimize/references/support-topics/route-error-durable-offload.md +22 -0
  571. package/.agents/skills/vercel-optimize/references/support-topics/route-error-runtime-limits.md +22 -0
  572. package/.agents/skills/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +22 -0
  573. package/.agents/skills/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +22 -0
  574. package/.agents/skills/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +22 -0
  575. package/.agents/skills/vercel-optimize/references/support-topics/usage-spike-triage.md +22 -0
  576. package/.agents/skills/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +23 -0
  577. package/.agents/skills/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +22 -0
  578. package/.agents/skills/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +23 -0
  579. package/.agents/skills/vercel-optimize/references/verification.md +102 -0
  580. package/.agents/skills/vercel-optimize/references/voice.md +76 -0
  581. package/.agents/skills/vercel-optimize/scripts/budget-summary.mjs +56 -0
  582. package/.agents/skills/vercel-optimize/scripts/build-docs.mjs +74 -0
  583. package/.agents/skills/vercel-optimize/scripts/check-citations.mjs +81 -0
  584. package/.agents/skills/vercel-optimize/scripts/check-docs-fresh.mjs +93 -0
  585. package/.agents/skills/vercel-optimize/scripts/collect-signals.mjs +576 -0
  586. package/.agents/skills/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +296 -0
  587. package/.agents/skills/vercel-optimize/scripts/deep-dive.mjs +319 -0
  588. package/.agents/skills/vercel-optimize/scripts/gate-investigations.mjs +166 -0
  589. package/.agents/skills/vercel-optimize/scripts/merge-signals.mjs +192 -0
  590. package/.agents/skills/vercel-optimize/scripts/prepare-investigation-brief.mjs +231 -0
  591. package/.agents/skills/vercel-optimize/scripts/reconcile-candidates.mjs +62 -0
  592. package/.agents/skills/vercel-optimize/scripts/render-report.mjs +437 -0
  593. package/.agents/skills/vercel-optimize/scripts/scan-codebase.mjs +313 -0
  594. package/.agents/skills/vercel-optimize/scripts/verify-and-regen.mjs +346 -0
  595. package/.agents/skills/vercel-optimize/scripts/verify-finding.mjs +19 -0
  596. package/.agents/skills/vercel-react-best-practices/AGENTS.md +3810 -0
  597. package/.agents/skills/vercel-react-best-practices/README.md +123 -0
  598. package/.agents/skills/vercel-react-best-practices/SKILL.md +149 -0
  599. package/.agents/skills/vercel-react-best-practices/metadata.json +15 -0
  600. package/.agents/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  601. package/.agents/skills/vercel-react-best-practices/rules/_template.md +28 -0
  602. package/.agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  603. package/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  604. package/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  605. package/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  606. package/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  607. package/.agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  608. package/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  609. package/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  610. package/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  611. package/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  612. package/.agents/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +63 -0
  613. package/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  614. package/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  615. package/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  616. package/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  617. package/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  618. package/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  619. package/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  620. package/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  621. package/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  622. package/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  623. package/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  624. package/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  625. package/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  626. package/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  627. package/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  628. package/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  629. package/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  630. package/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  631. package/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  632. package/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  633. package/.agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  634. package/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  635. package/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  636. package/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  637. package/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  638. package/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  639. package/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  640. package/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  641. package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  642. package/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  643. package/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  644. package/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  645. package/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  646. package/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  647. package/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  648. package/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  649. package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  650. package/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  651. package/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  652. package/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  653. package/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  654. package/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  655. package/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  656. package/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  657. package/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  658. package/.agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  659. package/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  660. package/.agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  661. package/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  662. package/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  663. package/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  664. package/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  665. package/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  666. package/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  667. package/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  668. package/.agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  669. package/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  670. package/.agents/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  671. package/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  672. package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
  673. package/.agents/skills/vercel-react-native-skills/README.md +165 -0
  674. package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
  675. package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
  676. package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
  677. package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
  678. package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
  679. package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
  680. package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
  681. package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
  682. package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
  683. package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
  684. package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
  685. package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
  686. package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
  687. package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
  688. package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
  689. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
  690. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
  691. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
  692. package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
  693. package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
  694. package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
  695. package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
  696. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
  697. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
  698. package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
  699. package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
  700. package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
  701. package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
  702. package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
  703. package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
  704. package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
  705. package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
  706. package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
  707. package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
  708. package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
  709. package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
  710. package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
  711. package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
  712. package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
  713. package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
  714. package/.agents/skills/vercel-react-view-transitions/AGENTS.md +955 -0
  715. package/.agents/skills/vercel-react-view-transitions/README.md +42 -0
  716. package/.agents/skills/vercel-react-view-transitions/SKILL.md +320 -0
  717. package/.agents/skills/vercel-react-view-transitions/metadata.json +12 -0
  718. package/.agents/skills/vercel-react-view-transitions/references/css-recipes.md +242 -0
  719. package/.agents/skills/vercel-react-view-transitions/references/implementation.md +182 -0
  720. package/.agents/skills/vercel-react-view-transitions/references/nextjs.md +176 -0
  721. package/.agents/skills/vercel-react-view-transitions/references/patterns.md +262 -0
  722. package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  723. package/.agents/skills/workflow-metrics/SKILL.md +18 -0
  724. package/.agents/skills/writing-guidelines/SKILL.md +39 -0
  725. package/CODING_STANDARDS.md +49 -0
  726. package/LICENSE +21 -0
  727. package/README.md +556 -0
  728. package/VERSION +1 -0
  729. package/bin/devos.js +893 -0
  730. package/docs/.gitkeep +0 -0
  731. package/docs/ARCHITECTURE.md +114 -0
  732. package/docs/CHANGELOG.md +61 -0
  733. package/docs/CURRENT_STATE.md +39 -0
  734. package/docs/FIELD_REPORT_2026-08-20.md +130 -0
  735. package/docs/GETTING_STARTED.md +130 -0
  736. package/docs/LESSONS.md +24 -0
  737. package/docs/PRE_COMMIT_HOOK.md +152 -0
  738. package/docs/SLASH_COMMANDS.md +116 -0
  739. package/docs/TUTORIAL.md +75 -0
  740. package/package.json +54 -0
  741. package/scripts/smoke-test.js +167 -0
@@ -0,0 +1,74 @@
1
+ # Adapt scrollbar to high-contrast preferences
2
+
3
+ Users who enable high-contrast modes in their operating system or browser expect UI elements (like scrollbars) to be extremely legible, often relying on stark foreground-background separation rather than subtle grays or theme colors.
4
+
5
+ This guide provides optional instructions on how to use the `@media (prefers-contrast: more)` CSS media feature to enforce high-contrast scrollbar styling.
6
+
7
+ ## Enhance Legibility
8
+
9
+ When customizing scrollbars with `scrollbar-color` or custom variables, you can provide an explicit override for high-contrast modes. This is especially helpful if your primary application theme uses low-contrast scrollbars for aesthetic reasons.
10
+
11
+ OPTIONAL: Use a `@media (prefers-contrast: more)` block to define dark, distinct colors for the thumb and track.
12
+
13
+ ```css
14
+ /* Define default standard colors as variables */
15
+ .scroller {
16
+ --scrollbar-thumb: #bbb;
17
+ --scrollbar-track: #f1f1f1;
18
+
19
+ scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
20
+ scrollbar-width: thin;
21
+ scrollbar-gutter: stable;
22
+ }
23
+
24
+ /* OPTIONAL: Provide clear, high-contrast overrides */
25
+ @media (prefers-contrast: more) {
26
+ .scroller {
27
+ /* Use extremely distinct colors like solid black against white */
28
+ --scrollbar-thumb: #000000;
29
+ --scrollbar-track: #ffffff;
30
+ }
31
+ }
32
+ ```
33
+
34
+ ### Issues to be aware of when using scrollbar-color
35
+
36
+ - Do NOT animate or transition `scrollbar-color`. A [WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=311752) causes the scrollbar to flicker every time `scrollbar-color` changes.
37
+ - On macOS, `scrollbar-color` (standard) and `::-webkit-scrollbar` (legacy) properties are ignored by default because macOS uses native "overlay" scrollbars. You MUST pair custom colors with `scrollbar-width` (e.g., `thin` or `auto`) to force macOS to render them.
38
+ - Even with `scrollbar-width` applied, macOS overlay scrollbars render the track (gutter) as transparent by default. If the design requires a visible track background color on MacOS, you MUST apply `scrollbar-gutter: stable;` to the scrollable container, but note that it only appears after the user hovers over the scrollbar.
39
+ - Even with `scrollbar-gutter: stable` the track may be transparent on MacOS. The thumb should not depend on the track color to be visible.
40
+
41
+ ## Fallbacks & Browser Support
42
+
43
+ ### Fallbacks & browser support for scrollbar-color
44
+
45
+ Baseline status for scrollbar-color: Newly available. It's been Baseline since 2025-12-12.
46
+ Supported by: Chrome 121 (Jan 2024), Edge 121 (Jan 2024), Firefox 64 (Dec 2018), and Safari 26.2 (Dec 2025).
47
+
48
+ This feature is progressive enhancement and does not always require fallbacks.
49
+
50
+ If the styling is important and the user's Baseline target is "Baseline Widely Available" or earlier, you SHOULD include the non-standard `::-webkit-scrollbar` pseudo-elements as fallbacks.
51
+
52
+ Wrap legacy fallbacks in an `@supports not (scrollbar-color: auto)` block to prevent conflicts between standard properties and legacy WebKit selectors in browsers that support both natively.
53
+
54
+ If you are using custom properties to define colors, these will cascade to the legacy WebKit selectors automatically. You do NOT need to duplicate them.
55
+
56
+ ```css
57
+ /* Legacy fallback for WebKit/Blink browsers */
58
+ @supports not (scrollbar-color: auto) {
59
+ .scroller::-webkit-scrollbar {
60
+ /* Must define base size in WebKit for custom colors to be visual */
61
+ width: 12px;
62
+ height: 12px;
63
+ }
64
+
65
+ .scroller::-webkit-scrollbar-thumb {
66
+ background: var(--scrollbar-thumb);
67
+ }
68
+
69
+ .scroller::-webkit-scrollbar-track {
70
+ background: var(--scrollbar-track);
71
+ }
72
+ }
73
+ ```
74
+
@@ -0,0 +1,95 @@
1
+ In a tab menu, you should provide visual hints to users about what page they are on. One option is by underlining the tab. With anchor positioning, you can create a smooth animation between the positions of the underline. This does not work when changing the active tab loads a new web page.
2
+
3
+ You can also use this effect to add an animated dot to indicate the active tab in a vertical tab bar.
4
+
5
+ Create the underline using a `::before` pseudo-element on the `<ul>` that contains the `<li>` elements. **Using a pseudo-element is the preferred approach as it keeps the DOM clean and avoids adding extra elements for purely decorative effects.**
6
+
7
+ ```css
8
+ ul::before {
9
+ /* Use a pseudo-element on the container to represent the animated indicator */
10
+ content: '';
11
+ }
12
+ ```
13
+
14
+ Make the active list item an anchor by adding the `anchor-name` property, which has a value that starts with `--`.
15
+
16
+ ```css
17
+ li.active {
18
+ /* Make a unique anchor-name for the active element. */
19
+ anchor-name: --active;
20
+ }
21
+ ```
22
+
23
+ Tether the underline to the active item anchor with a `position-anchor` that matches the `anchor-name` on the anchor, and making it `position: absolute`.
24
+
25
+ ```css
26
+ ul::before {
27
+ /* Tether the underline to the active element. */
28
+ position: absolute;
29
+ position-anchor: --active;
30
+ }
31
+ ```
32
+
33
+ Position the underline relative to the anchor using the inset properties and `anchor()` functions.
34
+
35
+ ```css
36
+ ul::before {
37
+ /* DO NOT use position-area, which can not be transitioned. */
38
+ /* Use calc() to offset the top slightly */
39
+ inset-block-start: calc(anchor(bottom) + .1lh);
40
+ inset-inline-start: anchor(left);
41
+ inset-inline-end: anchor(right);
42
+ }
43
+ ```
44
+
45
+ Add a height and other visual styles.
46
+
47
+ ```css
48
+ ul::before {
49
+ /* Apply your project's styles for the indicator */
50
+ block-size: .25lh;
51
+ background: red;
52
+ }
53
+ ```
54
+
55
+ Finally, add a transition on the `inset` properties.
56
+
57
+ ```css
58
+ ul::before {
59
+ @media (prefers-reduced-motion: no-preference) {
60
+ /* MANDATORY: The transition must be wrapped in a prefers-reduced-motion media query to respect user preferences. */
61
+ transition: inset .2s;
62
+ }
63
+ }
64
+ ```
65
+
66
+ This is only a visual indicator, and must not be a replacement for setting the appropriate `aria-current="page"` or `aria-selected` aria values.
67
+
68
+ ```html
69
+ <!-- MANDATORY: Provide explicit assistive technology state alongside the visual tab underline -->
70
+ <nav aria-label="Primary">
71
+ <ul>
72
+ <li class="active">
73
+ <a href="/home" aria-current="page">Home</a>
74
+ </li>
75
+ <li>
76
+ <a href="/about">About</a>
77
+ </li>
78
+ </ul>
79
+ </nav>
80
+ ```
81
+
82
+ ## Fallback strategies
83
+
84
+ Anchor positioning is not natively supported by any major browser yet.
85
+
86
+ If anchor positioning is not supported in the browser, use a `border-bottom` to add an underline. It will not be animated.
87
+
88
+ ```css
89
+ ul li.active {
90
+ @supports not (position-anchor: auto) {
91
+ /* Choose a color appropriate to the app theme. */
92
+ border-bottom: .25lh var(--primary) solid;
93
+ }
94
+ }
95
+ ```
@@ -0,0 +1,131 @@
1
+ In the past, CSS transitions could not animate elements when they were first added to the DOM or when their `display` property changed from `none`. The `@starting-style` at-rule and `transition-behavior: allow-discrete` provide a declarative way to create smooth entry and exit animations.
2
+
3
+ ## Implementation
4
+
5
+ ### 1. Animating `display: none` Toggles
6
+
7
+ To animate an element when toggling its visibility via an attribute (e.g., `hidden` with `display: none`):
8
+
9
+ 1. **Define the visible state**: Set the final property values (e.g., `opacity: 1`) on the base class.
10
+ 2. **Define the entry starting state**: Use `@starting-style` to specify the values to transition *from* when the element becomes visible.
11
+ 3. **Enable discrete transitions**: Include `display` in the `transition` property and use `transition-behavior: allow-discrete`.
12
+ 4. **Define the exit state**: Set the target values in the `hidden` attribute.
13
+
14
+ ```css
15
+ .card {
16
+ display: block;
17
+ opacity: 1;
18
+ translate: 0;
19
+ /* MANDATORY: Use transition-behavior: allow-discrete for display transition */
20
+ transition:
21
+ display 0.4s,
22
+ opacity 0.4s ease-out,
23
+ translate 0.4s ease-out;
24
+ transition-behavior: allow-discrete;
25
+ }
26
+
27
+ /* Entry animation: transition FROM these values when first rendered */
28
+ @starting-style {
29
+ .card {
30
+ opacity: 0;
31
+ translate: 0 -20px;
32
+ }
33
+ }
34
+
35
+ /* Exit animation: transition TO these values when hidden */
36
+ .card:where(.hidden, [hidden]) {
37
+ display: none;
38
+ opacity: 0;
39
+ translate: 0 -20px;
40
+ }
41
+
42
+ /* Respect user preference for reduced motion */
43
+ @media (prefers-reduced-motion: reduce) {
44
+ .card {
45
+ /* Disable movement and shorten duration for a simple fade */
46
+ translate: none;
47
+ transition-duration: 0.1s;
48
+ }
49
+
50
+ @starting-style {
51
+ .card {
52
+ translate: none;
53
+ }
54
+ }
55
+
56
+ .card:where(.hidden, [hidden]) {
57
+ translate: none;
58
+ }
59
+ }
60
+ ```
61
+
62
+ ### 2. Animating DOM Insertion and Removal
63
+
64
+ For elements added via `appendChild()` or removed via `remove()`:
65
+
66
+ - **Entry**: Use `@starting-style` as shown above. The browser will automatically detect the style change from "nothing" to the element's initial styles and trigger the transition from the `@starting-style` values.
67
+ - **Removal**: Since `element.remove()` is instantaneous and doesn't trigger a CSS transition on its own, you must trigger the exit transition first (e.g., by adding a class) and wait for it to finish before removing the node from the DOM.
68
+
69
+ ```javascript
70
+ // Trigger exit transition
71
+ element.setAttribute('hidden', true);
72
+
73
+ // 2. Wait for all active transitions/animations to finish,
74
+ // with a failsafe timeout in case an animation never ends (e.g. for looping animations)
75
+ const animations = element.getAnimations();
76
+ if (animations.length > 0) {
77
+ await Promise.race([
78
+ // Promise.allSettled ensures we wait even if some animations fail
79
+ Promise.allSettled(animations.map(a => a.finished)),
80
+ new Promise(r => setTimeout(r, 2000))
81
+ ]);
82
+ }
83
+
84
+ // 3. Finally remove the node from the DOM
85
+ element.remove();
86
+ ```
87
+
88
+ ## Constraints & Accessibility
89
+
90
+ - **MANDATORY**: Use `transition-behavior: allow-discrete` when transitioning `display`. Without it, the element will instantly disappear during exit.
91
+ - **DO NOT** use `allow-discrete` in the `transition` shorthand — it will make older browsers ignore the entire `transition` declaration. Except in use cases where that is desirable, use a separate `transition-behavior: allow-discrete` declaration.
92
+ - **MANDATORY**: Use `@starting-style` for entry animations. Browsers skip transitions on an element's first style update (initial render or `display: none` change) unless this is provided.
93
+ - **DO**: Include `overlay` in the `transition` list if animating top-layer elements like `<dialog>` or `popover` to ensure they stay in the top layer during the exit animation.
94
+ - **DO**: Respect user preferences for reduced motion using the `prefers-reduced-motion` media query.
95
+ - **DO NOT**: Rely on `@starting-style` for exit animations; it only defines the *starting* point for an entry transition. Exit animations are defined by the transition to the hidden state.
96
+
97
+ ## Fallback strategies
98
+
99
+ Baseline status for @starting-style: Newly available. It's been Baseline since 2024-08-06.
100
+ Supported by: Chrome 117 (Sep 2023), Edge 117 (Sep 2023), Firefox 129 (Aug 2024), and Safari 17.5 (May 2024).
101
+
102
+ For browsers that do not support these features, elements will toggle `display: none` instantly. You can detect support in JavaScript using `CSS.supports()` to conditionally apply manual animation logic.
103
+
104
+ ```javascript
105
+ // Detect support for discrete transitions and starting-style
106
+ const supportsModernTransitions =
107
+ window.CSS &&
108
+ CSS.supports('transition-behavior', 'allow-discrete');
109
+
110
+ if (!supportsModernTransitions) {
111
+ // Implement manual JS-based fallback for entry/exit
112
+ }
113
+ ```
114
+
115
+ ### Manual Entry Animation (JS Fallback)
116
+
117
+ ```javascript
118
+ // To show:
119
+ el.style.display = '';
120
+ requestAnimationFrame(() => {
121
+ requestAnimationFrame(() => {
122
+ el.classList.remove('hidden');
123
+ });
124
+ });
125
+
126
+ // To hide:
127
+ el.setAttribute('hidden', true);
128
+ el.addEventListener('transitionend', () => {
129
+ if (el.classList.contains('hidden')) el.style.display = 'none';
130
+ }, { once: true });
131
+ ```
@@ -0,0 +1,140 @@
1
+ Elements that render in the "top layer" (like `<dialog>`, elements with the `popover` attribute, or tooltips) have historically been difficult to animate because they toggle between `display: none` and a visible state. Modern CSS provides `@starting-style`, `transition-behavior: allow-discrete`, and the `overlay` property to enable smooth entry and exit transitions for these elements. Note that native CSS nesting is used in the examples below.
2
+
3
+ ## Implementation
4
+
5
+ ### 1. Enable Discrete Transitions
6
+
7
+ To animate the `display` property, you must set `transition-behavior: allow-discrete`. This allows the element to remain visible during its exit transition. If using transition shorthands, be sure to place the `transition-behavior: allow-discrete` afterwards to prevent the shorthand from negating it.
8
+
9
+ ### 2. The `overlay` Property
10
+
11
+ When an element moves in or out of the top layer, it must transition the `overlay` property. This ensures the element stays in the top layer for the duration of the animation, preventing it from being clipped by other elements or the viewport prematurely.
12
+
13
+ ### 3. Entry Animations with `@starting-style`
14
+
15
+ Use the `@starting-style` at-rule to define the styles an element should transition *from* when it is first rendered or its `display` changes from `none`.
16
+
17
+ ### 4. Animating the Backdrop
18
+
19
+ The `::backdrop` pseudo-element can be animated similarly by applying transitions to its own properties.
20
+
21
+ ## Example
22
+
23
+ ```css
24
+ /* 1. Define the visible (open) state */
25
+ dialog[open],
26
+ [popover]:popover-open {
27
+ opacity: 1;
28
+ transform: scale(1);
29
+
30
+ /* 2. Define the starting state for entry (must come after open state) */
31
+ @starting-style {
32
+ opacity: 0;
33
+ transform: scale(0.9);
34
+ }
35
+ }
36
+
37
+ /* 3. Define the base (closed/exit) state and transitions */
38
+ dialog,
39
+ [popover] {
40
+ opacity: 0;
41
+ transform: scale(0.9);
42
+
43
+ /* MANDATORY: transition display and overlay for top-layer elements */
44
+ transition-property: opacity, transform, display, overlay;
45
+ transition-duration: 0.3s;
46
+ transition-timing-function: ease-out;
47
+ /* Applies to discrete properties like display and overlay */
48
+ transition-behavior: allow-discrete; /* Note: be sure to write this after the shorthand */
49
+ }
50
+
51
+ /* 4. Animate the backdrop */
52
+ dialog::backdrop,
53
+ [popover]::backdrop {
54
+ background-color: rgba(0, 0, 0, 0);
55
+ /* The transition shorthand can also be used with allow-discrete */
56
+ transition:
57
+ display 0.3s allow-discrete,
58
+ overlay 0.3s allow-discrete,
59
+ background-color 0.3s ease-out;
60
+ }
61
+
62
+ dialog[open]::backdrop,
63
+ [popover]:popover-open::backdrop {
64
+ background-color: rgba(0, 0, 0, 0.5);
65
+
66
+ @starting-style {
67
+ background-color: rgba(0, 0, 0, 0);
68
+ }
69
+ }
70
+
71
+ /* 5. Respect user preference for reduced motion */
72
+ @media (prefers-reduced-motion: reduce) {
73
+ dialog,
74
+ [popover] {
75
+ /* Disable movement and shorten duration for a simple fade */
76
+ transform: none;
77
+ transition-duration: 0.1s;
78
+ }
79
+
80
+ @starting-style {
81
+ dialog[open],
82
+ [popover]:popover-open {
83
+ transform: none;
84
+ }
85
+ }
86
+ }
87
+ ```
88
+
89
+ ## Constraints & Accessibility
90
+
91
+ - **MANDATORY**: Include `overlay` in your `transition` list for any element moving into or out of the top layer.
92
+ - **MANDATORY**: Use `allow-discrete` for the `display` property transition.
93
+ - **MANDATORY**: Respect user preferences for reduced motion using `prefers-reduced-motion` by simplifying transitions (e.g., removing transforms and shortening duration).
94
+ - **DO**: Place the `@starting-style` block inside or after the "open" state selector to ensure proper cascading.
95
+ - **DO NOT**: Use `@starting-style` for exit animations; exit animations are defined by the transition to the base (closed) state.
96
+
97
+ ## Fallback strategies
98
+
99
+ #### Top-layer animation features
100
+
101
+ Baseline status for @starting-style: Newly available. It's been Baseline since 2024-08-06.
102
+ Supported by: Chrome 117 (Sep 2023), Edge 117 (Sep 2023), Firefox 129 (Aug 2024), and Safari 17.5 (May 2024).
103
+ Baseline status for transition-behavior: Newly available. It's been Baseline since 2024-08-06.
104
+ Supported by: Chrome 117 (Sep 2023), Edge 117 (Sep 2023), Firefox 129 (Aug 2024), and Safari 17.4 (Mar 2024).
105
+ overlay has limited availability.
106
+ Supported by: Chrome 117 (Sep 2023) and Edge 117 (Sep 2023).
107
+ Unsupported in: Firefox and Safari.
108
+
109
+ For browsers that do not support these features, top-layer elements will appear and disappear instantly. To provide animations in older browsers, you must use JavaScript to coordinate classes and wait for `transitionend` events or use the Web Animations API.
110
+
111
+ ```javascript
112
+ // Feature detection for top-layer animations
113
+ const supportsTopLayerAnimation =
114
+ window.CSS &&
115
+ CSS.supports('transition-behavior', 'allow-discrete') &&
116
+ CSS.supports('overlay', 'auto');
117
+
118
+ if (!supportsTopLayerAnimation) {
119
+ // Manual JS fallback for entry/exit animations:
120
+ // 1. Add an `.is-opening` class for entry.
121
+ // 2. On close, add an `.is-closing` class, wait for the `transitionend` event, then call .close() or hide the popover.
122
+ }
123
+ ```
124
+
125
+ #### popover
126
+
127
+ Baseline status for Popover: Newly available. It's been Baseline since 2025-01-27.
128
+ Supported by: Chrome 116 (Aug 2023), Edge 116 (Aug 2023), Firefox 125 (Apr 2024), Safari 17 (Sep 2023), and Safari iOS 18.3 (Jan 2025).
129
+
130
+ If the browser does not support Popover, use the `@oddbird/popover-polyfill`:
131
+
132
+ ```html
133
+ <script type="module">
134
+ if (!HTMLElement.prototype.hasOwnProperty('popover')) {
135
+ await import('https://unpkg.com/@oddbird/popover-polyfill');
136
+ }
137
+ </script>
138
+ ```
139
+
140
+ Alternatively, for legacy support without a polyfill, use `position: fixed` and manually calculate coordinates via JavaScript `getBoundingClientRect()`.
@@ -0,0 +1,127 @@
1
+ # Animate to Intrinsic Sizes
2
+
3
+ Animating elements to dynamic sizes like `block-size: auto` or `inline-size: max-content` has historically required JavaScript or fragile "max-height" hacks. The `interpolate-size` property and `calc-size()` function allow the browser to natively interpolate between fixed lengths and intrinsic sizing keywords.
4
+
5
+ ## Implementation steps
6
+
7
+ 1. **Opt-in to keyword interpolation**: Apply `interpolate-size: allow-keywords` to a parent element (typically `:root`) to enable transitions for properties using intrinsic keywords.
8
+ 2. **Define the transition**: Set a `transition` for the sizing property (e.g., `block-size`, `inline-size`) on the target element.
9
+ 3. **Use intrinsic keywords**: Change the sizing property to a supported intrinsic keyword—`auto`, `min-content`, `max-content`, `fit-content`, or (for flex-basis) `content`—during an interaction (e.g., `:hover` or a state class).
10
+ 4. **Perform calculations (Optional)**: Use `calc-size()` if you need to perform math on an intrinsic size (e.g., `auto + 2rem`). `calc-size()` also supports the `any` keyword for basis-agnostic calculations.
11
+
12
+ ## Example: Generic Expansion Pattern
13
+
14
+ You can apply this pattern to any container (like a "Show More" section or a navigation menu) to transition between a restricted height and the element's natural size.
15
+
16
+ ```css
17
+ /* Opt-in globally for all children */
18
+ :root {
19
+ /* MANDATORY: Transitions to intrinsic keywords are disabled by default for compatibility */
20
+ interpolate-size: allow-keywords;
21
+ }
22
+
23
+ .expandable-container {
24
+ /* 1. Define a fixed initial size (or 0) and hide overflow */
25
+ block-size: 100px;
26
+ overflow: hidden;
27
+
28
+ /* 2. Transition the sizing property */
29
+ transition: block-size 0.4s ease-out;
30
+ }
31
+
32
+ .expandable-container.is-expanded {
33
+ /* 3. Smoothly animate to the intrinsic natural height */
34
+ block-size: auto;
35
+ }
36
+ ```
37
+
38
+ ## Example: Calculated Intrinsic Inline-Size
39
+
40
+ ```css
41
+ .badge {
42
+ inline-size: 40px;
43
+ overflow: hidden;
44
+ white-space: nowrap;
45
+ transition: inline-size 0.3s ease;
46
+ }
47
+
48
+ .badge:hover {
49
+ /* calc-size(basis, calculation) */
50
+ /* 'size' refers to the evaluated basis (max-content in this case) */
51
+ inline-size: calc-size(max-content, size + 20px);
52
+ }
53
+ ```
54
+
55
+ ## Example: Transition from Intrinsic to Fixed
56
+
57
+ You can also animate in the opposite direction—starting from a natural size and collapsing to a specific length. This is useful for "dismissible" components.
58
+
59
+ ```css
60
+ .collapsible-alert {
61
+ /* 1. Start with the natural content height */
62
+ block-size: auto;
63
+ overflow: hidden;
64
+ transition: block-size 0.5s ease-in-out, opacity 0.5s ease;
65
+ }
66
+
67
+ .collapsible-alert.is-dismissed {
68
+ /* 2. Smoothly collapse to zero */
69
+ block-size: 0;
70
+ opacity: 0;
71
+ pointer-events: none;
72
+ }
73
+
74
+ /* MANDATORY Copy-Paste Safety: Disable sizing animations for sensitive users */
75
+ @media (prefers-reduced-motion: reduce) {
76
+ .expandable-container,
77
+ .badge,
78
+ .collapsible-alert {
79
+ transition: none !important;
80
+ }
81
+ }
82
+ ```
83
+
84
+ ```javascript
85
+ // MANDATORY Accessibility Synchronization: Ensure elements collapsed to zero dimensions are removed from the assistive technology tree, and sync aria-expanded states on triggers.
86
+ const alertElement = document.querySelector('.collapsible-alert');
87
+ alertElement.addEventListener('transitionend', (e) => {
88
+ if (e.propertyName === 'block-size' && alertElement.classList.contains('is-dismissed')) {
89
+ alertElement.hidden = true;
90
+ }
91
+ });
92
+
93
+ // Example trigger syncer
94
+ const triggerBtn = document.querySelector('.accordion-trigger');
95
+ triggerBtn?.addEventListener('click', () => {
96
+ const isExpanded = triggerBtn.getAttribute('aria-expanded') === 'true';
97
+ triggerBtn.setAttribute('aria-expanded', !isExpanded);
98
+ });
99
+ ```
100
+
101
+ ## Key constraints
102
+
103
+ * **Keyword-to-Keyword Restriction**: You cannot animate between two different keywords directly (e.g., from `min-content` to `max-content`). One end of the transition must be a fixed length or percentage (e.g., `0` to `auto`).
104
+ * **Calc-size Syntax**: Inside `calc-size()`, you cannot mix different intrinsic keywords in the same expression. The first argument (the basis) defines what `size` represents.
105
+ * **Opt-in Requirement**: Transitions to intrinsic keywords are disabled by default (`numeric-only`) to maintain backward compatibility. You must apply `interpolate-size: allow-keywords` to the element or an ancestor. `calc-size()` acts as a per-property override, automatically enabling interpolation whenever it is used.
106
+
107
+ ## Fallback strategies
108
+
109
+ interpolate-size has limited availability.
110
+ Supported by: Chrome 129 (Sep 2024) and Edge 129 (Sep 2024).
111
+ Unsupported in: Firefox and Safari.
112
+ calc-size() has limited availability.
113
+ Supported by: Chrome 129 (Sep 2024) and Edge 129 (Sep 2024).
114
+ Unsupported in: Firefox and Safari.
115
+
116
+ `interpolate-size` and `calc-size()` are progressive enhancements. Browsers that do not support them will perform an instant jump to the target size.
117
+
118
+ * **Graceful Degradation**: For simple `block-size: auto` transitions, standard browsers will simply toggle the size instantly, which is functional but less polished.
119
+ * **Manual keyword fallbacks**: When using `calc-size()`, always provide a standard keyword fallback for older browsers, as they will discard the entire `calc-size()` declaration.
120
+
121
+ ```css
122
+ .card {
123
+ block-size: auto; /* Fallback for older browsers */
124
+ block-size: calc-size(auto, size); /* Modern browsers use this */
125
+ transition: block-size 0.3s ease;
126
+ }
127
+ ```