opencode-skills-collection 3.0.51 → 3.1.1

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 (287) hide show
  1. package/README.md +44 -12
  2. package/bundled-skills/.antigravity-install-manifest.json +84 -1
  3. package/bundled-skills/android-ui-journey-testing/SKILL.md +191 -0
  4. package/bundled-skills/ask-matt/SKILL.md +92 -0
  5. package/bundled-skills/bugs-are-annoying/SKILL.md +137 -0
  6. package/bundled-skills/codebase-design/DEEPENING.md +37 -0
  7. package/bundled-skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  8. package/bundled-skills/codebase-design/SKILL.md +145 -0
  9. package/bundled-skills/competitor-analysis/LICENSE.txt +21 -0
  10. package/bundled-skills/competitor-analysis/SKILL.md +434 -0
  11. package/bundled-skills/competitor-analysis/references/battle-card-subagent.md +127 -0
  12. package/bundled-skills/competitor-analysis/references/battle-card.md +91 -0
  13. package/bundled-skills/competitor-analysis/references/example-research.md +130 -0
  14. package/bundled-skills/competitor-analysis/references/report-template.html +127 -0
  15. package/bundled-skills/competitor-analysis/references/research-patterns.md +217 -0
  16. package/bundled-skills/competitor-analysis/references/workflow.md +434 -0
  17. package/bundled-skills/competitor-analysis/scripts/capture_screenshots.mjs +142 -0
  18. package/bundled-skills/competitor-analysis/scripts/compile_report.mjs +929 -0
  19. package/bundled-skills/competitor-analysis/scripts/extract_vs_names.mjs +140 -0
  20. package/bundled-skills/competitor-analysis/scripts/gate_candidates.mjs +194 -0
  21. package/bundled-skills/competitor-analysis/scripts/list_urls.mjs +90 -0
  22. package/bundled-skills/competitor-analysis/scripts/md_utils.mjs +50 -0
  23. package/bundled-skills/competitor-analysis/scripts/merge_partials.mjs +291 -0
  24. package/bundled-skills/competitor-analysis/scripts/package.json +6 -0
  25. package/bundled-skills/design-it/3d-ui/SKILL.md +259 -0
  26. package/bundled-skills/design-it/SKILL.md +170 -0
  27. package/bundled-skills/design-it/ai-native-ui/SKILL.md +295 -0
  28. package/bundled-skills/design-it/aurora-ui/SKILL.md +307 -0
  29. package/bundled-skills/design-it/bento-ui/SKILL.md +314 -0
  30. package/bundled-skills/design-it/brutalism/SKILL.md +270 -0
  31. package/bundled-skills/design-it/brutalist-typography/SKILL.md +287 -0
  32. package/bundled-skills/design-it/card-based-design/SKILL.md +262 -0
  33. package/bundled-skills/design-it/claymorphism/SKILL.md +287 -0
  34. package/bundled-skills/design-it/color-blocking/SKILL.md +278 -0
  35. package/bundled-skills/design-it/command-center-ui/SKILL.md +345 -0
  36. package/bundled-skills/design-it/cyber-y2k/SKILL.md +312 -0
  37. package/bundled-skills/design-it/cyberpunk-ui/SKILL.md +262 -0
  38. package/bundled-skills/design-it/dark-mode/SKILL.md +289 -0
  39. package/bundled-skills/design-it/dashboard-design/SKILL.md +331 -0
  40. package/bundled-skills/design-it/data-dense-design/SKILL.md +322 -0
  41. package/bundled-skills/design-it/duotone-design/SKILL.md +248 -0
  42. package/bundled-skills/design-it/editorial-design/SKILL.md +328 -0
  43. package/bundled-skills/design-it/flat-design/SKILL.md +221 -0
  44. package/bundled-skills/design-it/flat-design-2/SKILL.md +240 -0
  45. package/bundled-skills/design-it/floating-ui/SKILL.md +299 -0
  46. package/bundled-skills/design-it/frutiger-aero/SKILL.md +274 -0
  47. package/bundled-skills/design-it/glassmorphism/SKILL.md +272 -0
  48. package/bundled-skills/design-it/gradient-design/SKILL.md +309 -0
  49. package/bundled-skills/design-it/high-contrast/SKILL.md +288 -0
  50. package/bundled-skills/design-it/holographic-ui/SKILL.md +310 -0
  51. package/bundled-skills/design-it/isometric-design/SKILL.md +228 -0
  52. package/bundled-skills/design-it/layered-design/SKILL.md +247 -0
  53. package/bundled-skills/design-it/material-design/SKILL.md +275 -0
  54. package/bundled-skills/design-it/maximalism/SKILL.md +297 -0
  55. package/bundled-skills/design-it/minimalism/SKILL.md +267 -0
  56. package/bundled-skills/design-it/monochromatic-ui/SKILL.md +296 -0
  57. package/bundled-skills/design-it/neo-brutalism/SKILL.md +270 -0
  58. package/bundled-skills/design-it/neumorphism/SKILL.md +248 -0
  59. package/bundled-skills/design-it/retro-design/SKILL.md +283 -0
  60. package/bundled-skills/design-it/retro-futurism/SKILL.md +259 -0
  61. package/bundled-skills/design-it/sci-fi-interface/SKILL.md +309 -0
  62. package/bundled-skills/design-it/skeuomorphism/SKILL.md +280 -0
  63. package/bundled-skills/design-it/soft-pastel/SKILL.md +307 -0
  64. package/bundled-skills/design-it/spatial-computing-ui/SKILL.md +300 -0
  65. package/bundled-skills/design-it/spatial-design/SKILL.md +268 -0
  66. package/bundled-skills/design-it/swiss-design/SKILL.md +293 -0
  67. package/bundled-skills/design-it/synthwave/SKILL.md +257 -0
  68. package/bundled-skills/design-it/tile-design/SKILL.md +297 -0
  69. package/bundled-skills/design-it/typography-first/SKILL.md +247 -0
  70. package/bundled-skills/design-it/vaporwave/SKILL.md +331 -0
  71. package/bundled-skills/design-it/vibrant-maximalism/SKILL.md +291 -0
  72. package/bundled-skills/design-it/widget-based-design/SKILL.md +274 -0
  73. package/bundled-skills/design-it/y2k-design/SKILL.md +268 -0
  74. package/bundled-skills/diagnosing-bugs/SKILL.md +165 -0
  75. package/bundled-skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  76. package/bundled-skills/docs/contributors/skill-scoring.md +235 -0
  77. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  78. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  79. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  80. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  81. package/bundled-skills/docs/users/bundles.md +1 -1
  82. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  83. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  84. package/bundled-skills/docs/users/getting-started.md +1 -1
  85. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  86. package/bundled-skills/docs/users/usage.md +4 -4
  87. package/bundled-skills/docs/users/visual-guide.md +4 -4
  88. package/bundled-skills/domain-modeling/ADR-FORMAT.md +47 -0
  89. package/bundled-skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  90. package/bundled-skills/domain-modeling/SKILL.md +105 -0
  91. package/bundled-skills/grill-me/SKILL.md +36 -0
  92. package/bundled-skills/grill-with-docs/SKILL.md +36 -0
  93. package/bundled-skills/grilling/SKILL.md +39 -0
  94. package/bundled-skills/handoff/SKILL.md +45 -0
  95. package/bundled-skills/image-generator/.env.example +7 -0
  96. package/bundled-skills/image-generator/SKILL.md +509 -0
  97. package/bundled-skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  98. package/bundled-skills/improve-codebase-architecture/SKILL.md +97 -0
  99. package/bundled-skills/learn/SKILL.md +156 -0
  100. package/bundled-skills/lesson-generator/SKILL.md +90 -0
  101. package/bundled-skills/llm-council/.env.example +7 -0
  102. package/bundled-skills/llm-council/SKILL.md +602 -0
  103. package/bundled-skills/loop-library/SKILL.md +205 -0
  104. package/bundled-skills/loop-library/agents/openai.yaml +4 -0
  105. package/bundled-skills/loop-library/references/catalog.md +270 -0
  106. package/bundled-skills/mailtrap-managing-contacts/SKILL.md +112 -0
  107. package/bundled-skills/mailtrap-sending-emails/SKILL.md +167 -0
  108. package/bundled-skills/mailtrap-setting-up-sending-domain/SKILL.md +77 -0
  109. package/bundled-skills/mailtrap-testing-with-sandbox/SKILL.md +110 -0
  110. package/bundled-skills/prototype/LOGIC.md +79 -0
  111. package/bundled-skills/prototype/SKILL.md +62 -0
  112. package/bundled-skills/prototype/UI.md +112 -0
  113. package/bundled-skills/setup-matt-pocock-skills/SKILL.md +158 -0
  114. package/bundled-skills/setup-matt-pocock-skills/domain.md +51 -0
  115. package/bundled-skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  116. package/bundled-skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  117. package/bundled-skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  118. package/bundled-skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  119. package/bundled-skills/survey-generator/LICENSE +21 -0
  120. package/bundled-skills/survey-generator/SKILL.md +143 -0
  121. package/bundled-skills/survey-generator/build_artifact.py +208 -0
  122. package/bundled-skills/survey-generator/examples/agentic-engineering/research_bundle.json +1196 -0
  123. package/bundled-skills/survey-generator/examples/agentic-engineering/survey.html +706 -0
  124. package/bundled-skills/survey-generator/style_spec.json +85 -0
  125. package/bundled-skills/survey-generator/templates/research_bundle_template.json +69 -0
  126. package/bundled-skills/tdd/SKILL.md +139 -0
  127. package/bundled-skills/tdd/mocking.md +59 -0
  128. package/bundled-skills/tdd/refactoring.md +10 -0
  129. package/bundled-skills/tdd/tests.md +61 -0
  130. package/bundled-skills/teach/GLOSSARY-FORMAT.md +35 -0
  131. package/bundled-skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  132. package/bundled-skills/teach/MISSION-FORMAT.md +31 -0
  133. package/bundled-skills/teach/RESOURCES-FORMAT.md +32 -0
  134. package/bundled-skills/teach/SKILL.md +169 -0
  135. package/bundled-skills/to-issues/SKILL.md +115 -0
  136. package/bundled-skills/to-prd/SKILL.md +104 -0
  137. package/bundled-skills/tools-page-seo-optimizer/SKILL.md +616 -0
  138. package/bundled-skills/triage/AGENT-BRIEF.md +207 -0
  139. package/bundled-skills/triage/OUT-OF-SCOPE.md +105 -0
  140. package/bundled-skills/triage/SKILL.md +143 -0
  141. package/bundled-skills/vibecode-production-qa-validator/SKILL.md +371 -141
  142. package/bundled-skills/wiki-builder/SKILL.md +157 -0
  143. package/bundled-skills/wiki-builder/agents/openai.yaml +5 -0
  144. package/bundled-skills/wiki-builder/references/wiki-flavors.md +98 -0
  145. package/bundled-skills/wiki-builder/scripts/init_wiki.sh +105 -0
  146. package/bundled-skills/wiki-builder/templates/index.md +20 -0
  147. package/bundled-skills/wiki-builder/templates/maintenance-log.md +7 -0
  148. package/bundled-skills/wiki-builder/templates/prompts/compile-concept-page.md +12 -0
  149. package/bundled-skills/wiki-builder/templates/prompts/compile-index.md +11 -0
  150. package/bundled-skills/wiki-builder/templates/prompts/compile-source-page.md +12 -0
  151. package/bundled-skills/wiki-builder/templates/prompts/lint-wiki.md +10 -0
  152. package/bundled-skills/wiki-builder/templates/prompts/query-and-file.md +11 -0
  153. package/bundled-skills/wiki-builder/templates/sources.md +9 -0
  154. package/bundled-skills/wiki-builder/templates/wiki.config.md +53 -0
  155. package/bundled-skills/writing-great-skills/GLOSSARY.md +181 -0
  156. package/bundled-skills/writing-great-skills/SKILL.md +111 -0
  157. package/bundled-skills/yao-meta-skill/SKILL.md +86 -0
  158. package/bundled-skills/yao-meta-skill/agents/interface.yaml +26 -0
  159. package/bundled-skills/yao-meta-skill/manifest.json +24 -0
  160. package/bundled-skills/yao-meta-skill/references/artifact-design-doctrine.md +49 -0
  161. package/bundled-skills/yao-meta-skill/references/authoring-discipline.md +78 -0
  162. package/bundled-skills/yao-meta-skill/references/autonomous-adaptation.md +65 -0
  163. package/bundled-skills/yao-meta-skill/references/distribution-registry-method.md +60 -0
  164. package/bundled-skills/yao-meta-skill/references/eval-playbook.md +69 -0
  165. package/bundled-skills/yao-meta-skill/references/gate-selection.md +68 -0
  166. package/bundled-skills/yao-meta-skill/references/governance.md +134 -0
  167. package/bundled-skills/yao-meta-skill/references/human-review-template.md +54 -0
  168. package/bundled-skills/yao-meta-skill/references/intent-dialogue.md +138 -0
  169. package/bundled-skills/yao-meta-skill/references/iteration-philosophy.md +30 -0
  170. package/bundled-skills/yao-meta-skill/references/non-skill-decision-tree.md +39 -0
  171. package/bundled-skills/yao-meta-skill/references/operating-modes.md +107 -0
  172. package/bundled-skills/yao-meta-skill/references/output-eval-method.md +113 -0
  173. package/bundled-skills/yao-meta-skill/references/output-quality-risk.md +41 -0
  174. package/bundled-skills/yao-meta-skill/references/output-visual-quality.md +53 -0
  175. package/bundled-skills/yao-meta-skill/references/packaging-contracts.md +70 -0
  176. package/bundled-skills/yao-meta-skill/references/pattern-extraction-doctrine.md +76 -0
  177. package/bundled-skills/yao-meta-skill/references/platform-capability-matrix.md +49 -0
  178. package/bundled-skills/yao-meta-skill/references/prompt-engineering-doctrine.md +76 -0
  179. package/bundled-skills/yao-meta-skill/references/qa-ladder.md +57 -0
  180. package/bundled-skills/yao-meta-skill/references/reference-scan.md +126 -0
  181. package/bundled-skills/yao-meta-skill/references/regression-cause-taxonomy.md +80 -0
  182. package/bundled-skills/yao-meta-skill/references/resource-boundaries.md +120 -0
  183. package/bundled-skills/yao-meta-skill/references/review-studio-method.md +87 -0
  184. package/bundled-skills/yao-meta-skill/references/review-waiver-method.md +76 -0
  185. package/bundled-skills/yao-meta-skill/references/runtime-conformance-method.md +21 -0
  186. package/bundled-skills/yao-meta-skill/references/skill-archetypes.md +86 -0
  187. package/bundled-skills/yao-meta-skill/references/skill-atlas-method.md +35 -0
  188. package/bundled-skills/yao-meta-skill/references/skill-engineering-method.md +210 -0
  189. package/bundled-skills/yao-meta-skill/references/skill-ir-method.md +41 -0
  190. package/bundled-skills/yao-meta-skill/references/skillops-decision-policy.md +53 -0
  191. package/bundled-skills/yao-meta-skill/references/systems-thinking-doctrine.md +75 -0
  192. package/bundled-skills/yao-meta-skill/references/telemetry-drift-method.md +182 -0
  193. package/bundled-skills/yao-meta-skill/references/trust-security-method.md +79 -0
  194. package/bundled-skills/yao-meta-skill/references/user-memory-policy.md +35 -0
  195. package/bundled-skills/youtube-notetaker/SKILL.md +209 -0
  196. package/bundled-skills/youtube-notetaker/reference/artifact.html +269 -0
  197. package/bundled-skills/youtube-notetaker/scripts/contact_sheet.py +53 -0
  198. package/bundled-skills/youtube-notetaker/scripts/detect_slides.sh +19 -0
  199. package/bundled-skills/youtube-notetaker/scripts/download.sh +24 -0
  200. package/bundled-skills/youtube-notetaker/scripts/extract_slides.py +43 -0
  201. package/bundled-skills/youtube-notetaker/scripts/serve.py +173 -0
  202. package/bundled-skills/youtube-notetaker/scripts/setup.sh +27 -0
  203. package/bundled-skills/youtube-notetaker/scripts/verify.sh +31 -0
  204. package/bundled-skills/youtube-notetaker/scripts/vtt_to_transcript.py +59 -0
  205. package/bundled-skills/youtube-notetaker/scripts/write_library_item.py +69 -0
  206. package/dist/skill-pointer/config-loader.d.ts +14 -0
  207. package/dist/skill-pointer/config-loader.js +30 -3
  208. package/dist/skill-pointer/content-scanner.d.ts +38 -0
  209. package/dist/skill-pointer/content-scanner.js +118 -0
  210. package/dist/skill-pointer/index.d.ts +7 -2
  211. package/dist/skill-pointer/index.js +14 -4
  212. package/dist/skill-pointer/pointer-generator.js +2 -0
  213. package/dist/skill-pointer/skill-patcher.d.ts +13 -0
  214. package/dist/skill-pointer/skill-patcher.js +99 -0
  215. package/package.json +1 -1
  216. package/skills_index.json +1956 -286
  217. package/bundled-skills/ai-md/SKILL.md +0 -523
  218. package/bundled-skills/atlas-contract/SKILL.md +0 -650
  219. package/bundled-skills/busybox-on-windows/SKILL.md +0 -40
  220. package/bundled-skills/monte-carlo-prevent/SKILL.md +0 -257
  221. package/bundled-skills/monte-carlo-prevent/references/TROUBLESHOOTING.md +0 -23
  222. package/bundled-skills/monte-carlo-prevent/references/parameters.md +0 -32
  223. package/bundled-skills/monte-carlo-prevent/references/workflows.md +0 -478
  224. package/bundled-skills/monte-carlo-push-ingestion/SKILL.md +0 -372
  225. package/bundled-skills/monte-carlo-push-ingestion/references/anomaly-detection.md +0 -87
  226. package/bundled-skills/monte-carlo-push-ingestion/references/custom-lineage.md +0 -203
  227. package/bundled-skills/monte-carlo-push-ingestion/references/direct-http-api.md +0 -207
  228. package/bundled-skills/monte-carlo-push-ingestion/references/prerequisites.md +0 -150
  229. package/bundled-skills/monte-carlo-push-ingestion/references/push-lineage.md +0 -160
  230. package/bundled-skills/monte-carlo-push-ingestion/references/push-metadata.md +0 -158
  231. package/bundled-skills/monte-carlo-push-ingestion/references/push-query-logs.md +0 -219
  232. package/bundled-skills/monte-carlo-push-ingestion/references/validation.md +0 -257
  233. package/bundled-skills/monte-carlo-push-ingestion/scripts/sample_verify.py +0 -357
  234. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_lineage.py +0 -70
  235. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_metadata.py +0 -65
  236. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_query_logs.py +0 -70
  237. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_lineage.py +0 -214
  238. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_metadata.py +0 -160
  239. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_query_logs.py +0 -164
  240. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_lineage.py +0 -198
  241. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_metadata.py +0 -193
  242. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_query_logs.py +0 -207
  243. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_and_push_metadata.py +0 -71
  244. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_and_push_query_logs.py +0 -64
  245. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_metadata.py +0 -253
  246. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_query_logs.py +0 -149
  247. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/push_metadata.py +0 -190
  248. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/push_query_logs.py +0 -208
  249. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_lineage.py +0 -83
  250. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_metadata.py +0 -77
  251. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_query_logs.py +0 -83
  252. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_lineage.py +0 -240
  253. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_metadata.py +0 -212
  254. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_query_logs.py +0 -204
  255. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_lineage.py +0 -192
  256. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_metadata.py +0 -178
  257. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_query_logs.py +0 -200
  258. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_lineage.py +0 -119
  259. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_metadata.py +0 -119
  260. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_query_logs.py +0 -117
  261. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_lineage.py +0 -265
  262. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_metadata.py +0 -313
  263. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_query_logs.py +0 -284
  264. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_lineage.py +0 -309
  265. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_metadata.py +0 -245
  266. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_query_logs.py +0 -255
  267. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_lineage.py +0 -78
  268. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_metadata.py +0 -80
  269. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_query_logs.py +0 -88
  270. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_lineage.py +0 -235
  271. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_metadata.py +0 -219
  272. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_query_logs.py +0 -239
  273. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_lineage.py +0 -178
  274. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_metadata.py +0 -178
  275. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_query_logs.py +0 -196
  276. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_lineage.py +0 -154
  277. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_metadata.py +0 -137
  278. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_query_logs.py +0 -137
  279. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_lineage.py +0 -349
  280. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_metadata.py +0 -329
  281. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_query_logs.py +0 -254
  282. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_lineage.py +0 -307
  283. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_metadata.py +0 -228
  284. package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_query_logs.py +0 -248
  285. package/bundled-skills/monte-carlo-push-ingestion/scripts/test_template_sdk_usage.py +0 -340
  286. package/bundled-skills/skill-optimizer/SKILL.md +0 -271
  287. package/bundled-skills/using-superpowers/SKILL.md +0 -98
@@ -0,0 +1,280 @@
1
+ ---
2
+ name: skeuomorphism
3
+ description: Web and App implementation guide for Skeuomorphism. Trigger when user wants UI to mimic real-world objects, realistic textures, or physical metaphors.
4
+ date_added: "2026-06-17"
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ ---
9
+
10
+ # Skeuomorphism
11
+
12
+ > "Digital interfaces that look and behave like their physical counterparts."
13
+
14
+
15
+ ## When to Use
16
+ Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the `design-it` skill and is not meant to be triggered directly.
17
+
18
+ ## Core Principles
19
+ 1. **Realistic Textures**: Leather, brushed metal, wood grain, paper. The UI should feel like a physical object you can touch.
20
+ 2. **Physical Lighting & Depth**: Intense attention to specular highlights, drop shadows, inner shadows, bevels, and ambient occlusion.
21
+ 3. **Real-world Metaphors**: Switches that look like hardware toggles, dials with physical notches, notepads with binding rings.
22
+
23
+ ## Visual DNA
24
+ - **Colors**: Highly dependent on the material being simulated. For rich, classic skeuomorphism, use the **Industrial Chic** (for metal/hardware) or **Monochromatic Brown** (for wood/leather) palettes.
25
+ - **Typography**: Fonts that match the physical object (e.g., typewriter fonts for paper, LCD fonts for digital screens, embossed sans-serifs for hardware buttons).
26
+ - **Details**: Screws, stitching, glare, and gradients are your primary tools.
27
+
28
+ ## Web Implementation
29
+ - Heavy use of layered background images (textures), complex gradients, and multiple box-shadows.
30
+ - **CSS Example**:
31
+ ```css
32
+ .skeuo-button {
33
+ /* Brushed metal effect */
34
+ background: linear-gradient(180deg, #e0e0e0 0%, #a0a0a0 100%),
35
+ url('brushed-metal-texture.png');
36
+ background-blend-mode: overlay;
37
+
38
+ border: 1px solid #7a7a7a;
39
+ border-radius: 50%;
40
+ width: 80px;
41
+ height: 80px;
42
+
43
+ /* Bevel, inner highlight, and drop shadow */
44
+ box-shadow:
45
+ inset 0 2px 4px rgba(255,255,255,0.8), /* Top highlight */
46
+ inset 0 -2px 4px rgba(0,0,0,0.4), /* Bottom shading */
47
+ 0 4px 6px rgba(0,0,0,0.5), /* Drop shadow */
48
+ 0 1px 1px rgba(0,0,0,0.2);
49
+ }
50
+
51
+ .skeuo-button:active {
52
+ /* Pressing the physical button */
53
+ box-shadow:
54
+ inset 0 4px 8px rgba(0,0,0,0.6),
55
+ inset 0 -1px 2px rgba(255,255,255,0.4),
56
+ 0 1px 1px rgba(0,0,0,0.2);
57
+ transform: translateY(2px);
58
+ }
59
+ ```
60
+
61
+ ## App Implementation
62
+
63
+ ### SwiftUI
64
+ ```swift
65
+ struct SkeuoButton: View {
66
+ @State private var isPressed = false
67
+
68
+ var body: some View {
69
+ Button(action: {}) {
70
+ Text("POWER")
71
+ .font(.system(size: 14, weight: .bold))
72
+ .foregroundColor(.white)
73
+ .textCase(.uppercase)
74
+ }
75
+ .frame(width: 80, height: 80)
76
+ .background(
77
+ ZStack {
78
+ // Brushed metal base
79
+ Circle()
80
+ .fill(
81
+ LinearGradient(
82
+ colors: [Color(white: 0.88), Color(white: 0.63)],
83
+ startPoint: .top,
84
+ endPoint: .bottom
85
+ )
86
+ )
87
+ // Inner highlight (top bevel)
88
+ Circle()
89
+ .stroke(
90
+ LinearGradient(
91
+ colors: [.white.opacity(0.8), .clear],
92
+ startPoint: .top,
93
+ endPoint: .center
94
+ ),
95
+ lineWidth: 2
96
+ )
97
+ .padding(1)
98
+ }
99
+ )
100
+ .clipShape(Circle())
101
+ // Outer bezel ring
102
+ .overlay(Circle().stroke(Color(white: 0.5), lineWidth: 1))
103
+ // Physical drop shadow
104
+ .shadow(color: .black.opacity(isPressed ? 0.2 : 0.5), radius: isPressed ? 2 : 6,
105
+ x: 0, y: isPressed ? 1 : 4)
106
+ .scaleEffect(isPressed ? 0.96 : 1.0)
107
+ .animation(.easeOut(duration: 0.1), value: isPressed)
108
+ .simultaneousGesture(
109
+ DragGesture(minimumDistance: 0)
110
+ .onChanged { _ in isPressed = true }
111
+ .onEnded { _ in isPressed = false }
112
+ )
113
+ }
114
+ }
115
+ ```
116
+ - Stack multiple shapes (`Circle`, `RoundedRectangle`) with different gradients to build up realistic depth.
117
+ - Use `.overlay()` with stroked shapes for highlight bezels along the edges.
118
+ - The pressed state should reduce shadow AND scale — simulating a physical push.
119
+
120
+ ### Flutter
121
+ ```dart
122
+ class SkeuoButton extends StatefulWidget {
123
+ @override
124
+ State<SkeuoButton> createState() => _SkeuoButtonState();
125
+ }
126
+
127
+ class _SkeuoButtonState extends State<SkeuoButton> {
128
+ bool _isPressed = false;
129
+
130
+ @override
131
+ Widget build(BuildContext context) {
132
+ return GestureDetector(
133
+ onTapDown: (_) => setState(() => _isPressed = true),
134
+ onTapUp: (_) => setState(() => _isPressed = false),
135
+ onTapCancel: () => setState(() => _isPressed = false),
136
+ child: AnimatedContainer(
137
+ duration: const Duration(milliseconds: 100),
138
+ width: 80,
139
+ height: 80,
140
+ decoration: BoxDecoration(
141
+ shape: BoxShape.circle,
142
+ // Brushed metal gradient
143
+ gradient: LinearGradient(
144
+ colors: [Colors.grey[300]!, Colors.grey[600]!],
145
+ begin: Alignment.topCenter,
146
+ end: Alignment.bottomCenter,
147
+ ),
148
+ border: Border.all(color: Colors.grey[500]!, width: 1),
149
+ boxShadow: [
150
+ // Outer drop shadow
151
+ BoxShadow(
152
+ color: Colors.black.withOpacity(_isPressed ? 0.2 : 0.5),
153
+ blurRadius: _isPressed ? 4 : 12,
154
+ offset: Offset(0, _isPressed ? 2 : 6),
155
+ ),
156
+ // Inner top highlight (faked with a light inset)
157
+ BoxShadow(
158
+ color: Colors.white.withOpacity(0.6),
159
+ blurRadius: 1,
160
+ offset: const Offset(0, -1),
161
+ spreadRadius: -1,
162
+ ),
163
+ ],
164
+ ),
165
+ transform: Matrix4.identity()..scale(_isPressed ? 0.96 : 1.0),
166
+ alignment: Alignment.center,
167
+ child: const Text('POWER',
168
+ style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold,
169
+ fontSize: 14, shadows: [
170
+ Shadow(color: Colors.black54, offset: Offset(0, 1), blurRadius: 2),
171
+ ])),
172
+ ),
173
+ );
174
+ }
175
+ }
176
+ ```
177
+ - Use `AnimatedContainer` for smooth press transitions. Adjust `boxShadow`, `transform`, and gradient on tap.
178
+ - Layer `BoxShadow` entries: one for the outer drop shadow, one for the inner top-edge highlight.
179
+ - For complex textures (leather, wood), use `DecorationImage` with an asset file inside `BoxDecoration`.
180
+
181
+ ### React Native
182
+ ```jsx
183
+ const SkeuoButton = () => {
184
+ const [pressed, setPressed] = useState(false);
185
+
186
+ return (
187
+ <Pressable
188
+ onPressIn={() => setPressed(true)}
189
+ onPressOut={() => setPressed(false)}
190
+ style={{
191
+ width: 80,
192
+ height: 80,
193
+ borderRadius: 40,
194
+ alignItems: 'center',
195
+ justifyContent: 'center',
196
+ // Metal gradient must be done via an image or LinearGradient component
197
+ backgroundColor: '#A0A0A0',
198
+ borderWidth: 1,
199
+ borderColor: '#7A7A7A',
200
+ // Shadow changes on press
201
+ shadowColor: '#000',
202
+ shadowOffset: { width: 0, height: pressed ? 1 : 4 },
203
+ shadowOpacity: pressed ? 0.2 : 0.5,
204
+ shadowRadius: pressed ? 2 : 6,
205
+ elevation: pressed ? 2 : 8,
206
+ transform: [{ scale: pressed ? 0.96 : 1 }],
207
+ }}
208
+ >
209
+ <Text style={{
210
+ color: '#FFF',
211
+ fontWeight: '700',
212
+ fontSize: 14,
213
+ textShadowColor: 'rgba(0,0,0,0.5)',
214
+ textShadowOffset: { width: 0, height: 1 },
215
+ textShadowRadius: 2,
216
+ }}>
217
+ POWER
218
+ </Text>
219
+ </Pressable>
220
+ );
221
+ };
222
+ ```
223
+ - For realistic textures, use `ImageBackground` with exported texture assets (leather.png, brushed-metal.png).
224
+ - Use `Pressable` with `onPressIn`/`onPressOut` to animate shadow depth, scale, and opacity changes.
225
+ - Complex gradient bevels require `react-native-linear-gradient` or `expo-linear-gradient`.
226
+
227
+ ### Jetpack Compose
228
+ ```kotlin
229
+ @Composable
230
+ fun SkeuoButton() {
231
+ var isPressed by remember { mutableStateOf(false) }
232
+ val scale by animateFloatAsState(if (isPressed) 0.96f else 1f)
233
+ val elevation by animateDpAsState(if (isPressed) 2.dp else 8.dp)
234
+
235
+ Box(
236
+ modifier = Modifier
237
+ .size(80.dp)
238
+ .graphicsLayer { scaleX = scale; scaleY = scale }
239
+ .shadow(elevation, CircleShape)
240
+ .clip(CircleShape)
241
+ .background(
242
+ Brush.verticalGradient(
243
+ colors = listOf(Color(0xFFE0E0E0), Color(0xFFA0A0A0))
244
+ )
245
+ )
246
+ .border(1.dp, Color(0xFF7A7A7A), CircleShape)
247
+ .pointerInput(Unit) {
248
+ detectTapGestures(
249
+ onPress = {
250
+ isPressed = true
251
+ tryAwaitRelease()
252
+ isPressed = false
253
+ }
254
+ )
255
+ },
256
+ contentAlignment = Alignment.Center,
257
+ ) {
258
+ Text("POWER",
259
+ color = Color.White,
260
+ fontWeight = FontWeight.Bold,
261
+ fontSize = 14.sp,
262
+ style = TextStyle(shadow = Shadow(
263
+ color = Color.Black.copy(alpha = 0.5f),
264
+ offset = Offset(0f, 2f),
265
+ blurRadius = 4f,
266
+ )))
267
+ }
268
+ }
269
+ ```
270
+ - Use `Brush.verticalGradient()` for metallic surfaces and `Modifier.border()` with `CircleShape` for bezels.
271
+ - Animate `shadow` elevation and `graphicsLayer { scaleX/scaleY }` on press for realistic physical push.
272
+ - For textures, use `Modifier.paint(painterResource(R.drawable.brushed_metal))` as a background.
273
+
274
+ ## Do's and Don'ts
275
+ - **DO**: Ensure the metaphor makes sense for the user's task.
276
+ - **DON'T**: Overuse it to the point of clutter. Keep the interactive elements highly realistic, but let the structural layout remain clean.
277
+
278
+ ## Limitations
279
+ - This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
280
+ - Ensure appropriate contrast ratios and responsive behaviors are verified separately.
@@ -0,0 +1,307 @@
1
+ ---
2
+ name: soft-pastel
3
+ description: Web and App implementation guide for Soft Pastel Design. Trigger when user wants gentle colors, calming UI, baby/lifestyle branding, or low-contrast aesthetics.
4
+ date_added: "2026-06-17"
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ ---
9
+
10
+ # Soft Pastel Design
11
+
12
+ > "Calm, airy, and gentle. A low-stress interface built on washed-out, cheerful hues."
13
+
14
+
15
+ ## When to Use
16
+ Use this sub-style when the user's request matches the aesthetic described above. This is a child reference of the `design-it` skill and is not meant to be triggered directly.
17
+
18
+ ## Core Principles
19
+ 1. **Desaturated, High-Lightness Colors**: Every color is mixed with a heavy amount of white.
20
+ 2. **Soft, Rounded Edges**: Border radii are large and friendly.
21
+ 3. **Airy Spacing**: Generous whitespace prevents the soft colors from feeling muddy or crowded.
22
+
23
+ ## Visual DNA
24
+ - **Colors**: Mint green, baby blue, blush pink, lavender, and buttercream yellow. Use a warm, slightly off-white background (e.g., `#FFFBF7`) rather than clinical `#FFFFFF`.
25
+ - **Typography**: Soft, rounded sans-serifs (`Quicksand`, `Nunito`) or elegant, low-contrast serifs. Avoid aggressive, ultra-bold fonts.
26
+ - **Shadows**: Very soft, large-spread shadows, often tinted with the pastel color rather than black.
27
+
28
+ ## Web Implementation
29
+ - **CSS Example**:
30
+ ```css
31
+ :root {
32
+ --pastel-bg: #FFFBF7;
33
+ --pastel-pink: #FFD1DC;
34
+ --pastel-blue: #AEC6CF;
35
+ --pastel-green: #B7E4C7;
36
+ --pastel-text: #4A4A4A; /* Soft dark grey, NOT pure black */
37
+ }
38
+
39
+ body {
40
+ background-color: var(--pastel-bg);
41
+ color: var(--pastel-text);
42
+ font-family: 'Nunito', sans-serif;
43
+ line-height: 1.6;
44
+ }
45
+
46
+ .pastel-card {
47
+ background-color: #ffffff;
48
+ border-radius: 24px;
49
+ padding: 40px;
50
+ /* Tinted, very soft shadow */
51
+ box-shadow: 0 20px 40px rgba(174, 198, 207, 0.15);
52
+ }
53
+
54
+ .pastel-pill {
55
+ background-color: var(--pastel-pink);
56
+ color: #a05a6c; /* Darker version of the pink for contrast */
57
+ border-radius: 50px;
58
+ padding: 8px 24px;
59
+ font-weight: 700;
60
+ display: inline-block;
61
+ }
62
+
63
+ .pastel-btn {
64
+ background-color: var(--pastel-blue);
65
+ color: #2b5563; /* Darker text */
66
+ border: none;
67
+ border-radius: 12px;
68
+ padding: 16px 32px;
69
+ transition: transform 0.2s;
70
+ }
71
+ .pastel-btn:hover {
72
+ transform: translateY(-2px);
73
+ box-shadow: 0 10px 20px rgba(174, 198, 207, 0.4);
74
+ }
75
+ ```
76
+
77
+ ## App Implementation
78
+
79
+ ### SwiftUI
80
+ ```swift
81
+ struct SoftPastelView: View {
82
+ // Pastel Palette
83
+ let bg = Color(hex: "FFFBF7")
84
+ let pink = Color(hex: "FFD1DC")
85
+ let blue = Color(hex: "AEC6CF")
86
+ let textDark = Color(hex: "4A4A4A")
87
+
88
+ var body: some View {
89
+ ScrollView {
90
+ VStack(spacing: 32) {
91
+ // Pastel Card
92
+ VStack(alignment: .leading, spacing: 16) {
93
+ Text("Calm & Airy")
94
+ .font(.custom("Nunito-Bold", size: 28))
95
+ .foregroundColor(textDark)
96
+
97
+ Text("Generous whitespace and soft corners prevent the desaturated colors from feeling muddy.")
98
+ .font(.custom("Nunito-Regular", size: 16))
99
+ .foregroundColor(textDark.opacity(0.8))
100
+ .lineSpacing(6)
101
+ }
102
+ .padding(40)
103
+ .frame(maxWidth: .infinity, alignment: .leading)
104
+ .background(Color.white)
105
+ .cornerRadius(32) // Soft, large radius
106
+ // Tinted pastel shadow instead of black/gray
107
+ .shadow(color: blue.opacity(0.2), radius: 30, y: 15)
108
+
109
+ // Pastel Button
110
+ Button(action: {}) {
111
+ Text("Gentle Action")
112
+ .font(.custom("Nunito-Bold", size: 18))
113
+ .foregroundColor(Color(hex: "2B5563")) // Darker contrast of the blue
114
+ .frame(maxWidth: .infinity)
115
+ .padding(.vertical, 20)
116
+ .background(blue)
117
+ .cornerRadius(20)
118
+ }
119
+ }
120
+ .padding(24)
121
+ }
122
+ .background(bg.ignoresSafeArea())
123
+ }
124
+ }
125
+ ```
126
+ - A custom font like Nunito or Quicksand is practically required. System fonts are often too rigid.
127
+ - The `shadow(color:)` must be tinted with one of your pastel palette colors, never black or gray.
128
+ - Corner radii should be very large (20-32).
129
+
130
+ ### Flutter
131
+ ```dart
132
+ class SoftPastelScreen extends StatelessWidget {
133
+ final Color bg = const Color(0xFFFFFBF7);
134
+ final Color pink = const Color(0xFFFFD1DC);
135
+ final Color blue = const Color(0xFFAEC6CF);
136
+ final Color textDark = const Color(0xFF4A4A4A);
137
+
138
+ @override
139
+ Widget build(BuildContext context) {
140
+ return Scaffold(
141
+ backgroundColor: bg,
142
+ body: SingleChildScrollView(
143
+ padding: const EdgeInsets.all(24.0),
144
+ child: Column(
145
+ children: [
146
+ // Pastel Card
147
+ Container(
148
+ width: double.infinity,
149
+ padding: const EdgeInsets.all(40),
150
+ decoration: BoxDecoration(
151
+ color: Colors.white,
152
+ borderRadius: BorderRadius.circular(32), // Soft edges
153
+ boxShadow: [
154
+ // Tinted shadow
155
+ BoxShadow(color: blue.withOpacity(0.2), blurRadius: 30, offset: const Offset(0, 15))
156
+ ],
157
+ ),
158
+ child: Column(
159
+ crossAxisAlignment: CrossAxisAlignment.start,
160
+ children: [
161
+ Text('Calm & Airy', style: TextStyle(fontFamily: 'Nunito', fontSize: 28, fontWeight: FontWeight.bold, color: textDark)),
162
+ const SizedBox(height: 16),
163
+ Text('Generous whitespace and soft corners.', style: TextStyle(fontFamily: 'Nunito', fontSize: 16, height: 1.6, color: textDark.withOpacity(0.8))),
164
+ ],
165
+ ),
166
+ ),
167
+ const SizedBox(height: 32),
168
+
169
+ // Pastel Button
170
+ ElevatedButton(
171
+ onPressed: () {},
172
+ style: ElevatedButton.styleFrom(
173
+ backgroundColor: blue,
174
+ foregroundColor: const Color(0xFF2B5563), // Darker text for contrast
175
+ minimumSize: const Size(double.infinity, 60),
176
+ shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
177
+ elevation: 0, // Remove default harsh shadow
178
+ ),
179
+ child: const Text('Gentle Action', style: TextStyle(fontFamily: 'Nunito', fontSize: 18, fontWeight: FontWeight.bold)),
180
+ ),
181
+ ],
182
+ ),
183
+ ),
184
+ );
185
+ }
186
+ }
187
+ ```
188
+ - Disable `elevation` on Flutter buttons and cards if you want to apply custom tinted drop shadows. Default elevations cast black shadows.
189
+
190
+ ### React Native
191
+ ```jsx
192
+ const SoftPastelScreen = () => {
193
+ const colors = {
194
+ bg: '#FFFBF7',
195
+ blue: '#AEC6CF',
196
+ textDark: '#4A4A4A'
197
+ };
198
+
199
+ return (
200
+ <ScrollView style={{ flex: 1, backgroundColor: colors.bg, padding: 24 }}>
201
+
202
+ {/* Pastel Card */}
203
+ <View style={{
204
+ backgroundColor: '#FFFFFF',
205
+ borderRadius: 32,
206
+ padding: 40,
207
+ marginBottom: 32,
208
+ // iOS tinted shadow
209
+ shadowColor: colors.blue, shadowOffset: { width: 0, height: 15 },
210
+ shadowOpacity: 0.2, shadowRadius: 30,
211
+ // Android tinted shadow (Requires Android 9+)
212
+ elevation: 10, shadowColor: colors.blue,
213
+ }}>
214
+ <Text style={{ fontFamily: 'Nunito-Bold', fontSize: 28, color: colors.textDark, marginBottom: 16 }}>
215
+ Calm & Airy
216
+ </Text>
217
+ <Text style={{ fontFamily: 'Nunito-Regular', fontSize: 16, lineHeight: 26, color: colors.textDark, opacity: 0.8 }}>
218
+ Generous whitespace and soft corners prevent the desaturated colors from feeling muddy.
219
+ </Text>
220
+ </View>
221
+
222
+ {/* Pastel Button */}
223
+ <TouchableOpacity style={{
224
+ backgroundColor: colors.blue,
225
+ borderRadius: 20,
226
+ paddingVertical: 20,
227
+ alignItems: 'center'
228
+ }}>
229
+ <Text style={{ fontFamily: 'Nunito-Bold', fontSize: 18, color: '#2B5563' }}>
230
+ Gentle Action
231
+ </Text>
232
+ </TouchableOpacity>
233
+
234
+ </ScrollView>
235
+ );
236
+ };
237
+ ```
238
+ - Make sure you are using a soft, non-pure-white background (`#FFFBF7`) so that pure `#FFFFFF` cards pop nicely against it without harsh borders.
239
+ - Tinted shadows work on Android 9+ via `shadowColor` combined with `elevation`.
240
+
241
+ ### Jetpack Compose
242
+ ```kotlin
243
+ @Composable
244
+ fun SoftPastelScreen() {
245
+ val bg = Color(0xFFFFFBF7)
246
+ val blue = Color(0xFFAEC6CF)
247
+ val textDark = Color(0xFF4A4A4A)
248
+
249
+ Column(
250
+ modifier = Modifier.fillMaxSize().background(bg).verticalScroll(rememberScrollState()).padding(24.dp)
251
+ ) {
252
+ // Pastel Card
253
+ Box(
254
+ modifier = Modifier
255
+ .fillMaxWidth()
256
+ .shadow(
257
+ elevation = 20.dp,
258
+ shape = RoundedCornerShape(32.dp),
259
+ ambientColor = blue, // Tinted shadow
260
+ spotColor = blue
261
+ )
262
+ .background(Color.White, RoundedCornerShape(32.dp))
263
+ .padding(40.dp)
264
+ ) {
265
+ Column {
266
+ Text(
267
+ text = "Calm & Airy",
268
+ fontSize = 28.sp,
269
+ fontWeight = FontWeight.Bold,
270
+ color = textDark,
271
+ fontFamily = FontFamily.SansSerif // Replace with Nunito
272
+ )
273
+ Spacer(Modifier.height(16.dp))
274
+ Text(
275
+ text = "Generous whitespace and soft corners.",
276
+ fontSize = 16.sp,
277
+ lineHeight = 26.sp,
278
+ color = textDark.copy(alpha = 0.8f),
279
+ fontFamily = FontFamily.SansSerif
280
+ )
281
+ }
282
+ }
283
+
284
+ Spacer(Modifier.height(32.dp))
285
+
286
+ // Pastel Button
287
+ Button(
288
+ onClick = { },
289
+ colors = ButtonDefaults.buttonColors(containerColor = blue, contentColor = Color(0xFF2B5563)),
290
+ shape = RoundedCornerShape(20.dp),
291
+ modifier = Modifier.fillMaxWidth().height(60.dp),
292
+ elevation = null
293
+ ) {
294
+ Text("Gentle Action", fontSize = 18.sp, fontWeight = FontWeight.Bold)
295
+ }
296
+ }
297
+ }
298
+ ```
299
+ - The `shadow` modifier in Compose takes `ambientColor` and `spotColor`. Set both to your pastel accent color to achieve the soft tinted glow.
300
+
301
+ ## Do's and Don'ts
302
+ - **DO**: Use illustrative assets that match the pastel vibe (flat vectors, soft gradients).
303
+ - **DON'T**: Use stark black borders, sharp corners, or high-saturation primary colors.
304
+
305
+ ## Limitations
306
+ - This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
307
+ - Ensure appropriate contrast ratios and responsive behaviors are verified separately.