opencode-skills-collection 3.1.0 → 3.1.2
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.
- package/bundled-skills/.antigravity-install-manifest.json +84 -1
- package/bundled-skills/2slides-ppt-generator/SKILL.md +8 -7
- package/bundled-skills/android-cli/SKILL.md +19 -7
- package/bundled-skills/android-ui-journey-testing/SKILL.md +191 -0
- package/bundled-skills/apple-notes-search/SKILL.md +12 -2
- package/bundled-skills/ask-matt/SKILL.md +92 -0
- package/bundled-skills/atlas-ledger/SKILL.md +8 -0
- package/bundled-skills/bugs-are-annoying/SKILL.md +137 -0
- package/bundled-skills/codebase-design/DEEPENING.md +37 -0
- package/bundled-skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/bundled-skills/codebase-design/SKILL.md +145 -0
- package/bundled-skills/codex-fable5/SKILL.md +10 -2
- package/bundled-skills/competitor-analysis/LICENSE.txt +21 -0
- package/bundled-skills/competitor-analysis/SKILL.md +434 -0
- package/bundled-skills/competitor-analysis/references/battle-card-subagent.md +127 -0
- package/bundled-skills/competitor-analysis/references/battle-card.md +91 -0
- package/bundled-skills/competitor-analysis/references/example-research.md +130 -0
- package/bundled-skills/competitor-analysis/references/report-template.html +127 -0
- package/bundled-skills/competitor-analysis/references/research-patterns.md +217 -0
- package/bundled-skills/competitor-analysis/references/workflow.md +434 -0
- package/bundled-skills/competitor-analysis/scripts/capture_screenshots.mjs +142 -0
- package/bundled-skills/competitor-analysis/scripts/compile_report.mjs +929 -0
- package/bundled-skills/competitor-analysis/scripts/extract_vs_names.mjs +140 -0
- package/bundled-skills/competitor-analysis/scripts/gate_candidates.mjs +224 -0
- package/bundled-skills/competitor-analysis/scripts/list_urls.mjs +90 -0
- package/bundled-skills/competitor-analysis/scripts/md_utils.mjs +50 -0
- package/bundled-skills/competitor-analysis/scripts/merge_partials.mjs +291 -0
- package/bundled-skills/competitor-analysis/scripts/package.json +6 -0
- package/bundled-skills/design-it/3d-ui/SKILL.md +259 -0
- package/bundled-skills/design-it/SKILL.md +170 -0
- package/bundled-skills/design-it/ai-native-ui/SKILL.md +295 -0
- package/bundled-skills/design-it/aurora-ui/SKILL.md +307 -0
- package/bundled-skills/design-it/bento-ui/SKILL.md +314 -0
- package/bundled-skills/design-it/brutalism/SKILL.md +270 -0
- package/bundled-skills/design-it/brutalist-typography/SKILL.md +287 -0
- package/bundled-skills/design-it/card-based-design/SKILL.md +262 -0
- package/bundled-skills/design-it/claymorphism/SKILL.md +287 -0
- package/bundled-skills/design-it/color-blocking/SKILL.md +278 -0
- package/bundled-skills/design-it/command-center-ui/SKILL.md +345 -0
- package/bundled-skills/design-it/cyber-y2k/SKILL.md +312 -0
- package/bundled-skills/design-it/cyberpunk-ui/SKILL.md +262 -0
- package/bundled-skills/design-it/dark-mode/SKILL.md +289 -0
- package/bundled-skills/design-it/dashboard-design/SKILL.md +331 -0
- package/bundled-skills/design-it/data-dense-design/SKILL.md +322 -0
- package/bundled-skills/design-it/duotone-design/SKILL.md +248 -0
- package/bundled-skills/design-it/editorial-design/SKILL.md +328 -0
- package/bundled-skills/design-it/flat-design/SKILL.md +221 -0
- package/bundled-skills/design-it/flat-design-2/SKILL.md +240 -0
- package/bundled-skills/design-it/floating-ui/SKILL.md +299 -0
- package/bundled-skills/design-it/frutiger-aero/SKILL.md +274 -0
- package/bundled-skills/design-it/glassmorphism/SKILL.md +272 -0
- package/bundled-skills/design-it/gradient-design/SKILL.md +309 -0
- package/bundled-skills/design-it/high-contrast/SKILL.md +288 -0
- package/bundled-skills/design-it/holographic-ui/SKILL.md +310 -0
- package/bundled-skills/design-it/isometric-design/SKILL.md +228 -0
- package/bundled-skills/design-it/layered-design/SKILL.md +247 -0
- package/bundled-skills/design-it/material-design/SKILL.md +275 -0
- package/bundled-skills/design-it/maximalism/SKILL.md +297 -0
- package/bundled-skills/design-it/minimalism/SKILL.md +267 -0
- package/bundled-skills/design-it/monochromatic-ui/SKILL.md +296 -0
- package/bundled-skills/design-it/neo-brutalism/SKILL.md +270 -0
- package/bundled-skills/design-it/neumorphism/SKILL.md +248 -0
- package/bundled-skills/design-it/retro-design/SKILL.md +283 -0
- package/bundled-skills/design-it/retro-futurism/SKILL.md +259 -0
- package/bundled-skills/design-it/sci-fi-interface/SKILL.md +309 -0
- package/bundled-skills/design-it/skeuomorphism/SKILL.md +280 -0
- package/bundled-skills/design-it/soft-pastel/SKILL.md +307 -0
- package/bundled-skills/design-it/spatial-computing-ui/SKILL.md +300 -0
- package/bundled-skills/design-it/spatial-design/SKILL.md +268 -0
- package/bundled-skills/design-it/swiss-design/SKILL.md +293 -0
- package/bundled-skills/design-it/synthwave/SKILL.md +257 -0
- package/bundled-skills/design-it/tile-design/SKILL.md +297 -0
- package/bundled-skills/design-it/typography-first/SKILL.md +247 -0
- package/bundled-skills/design-it/vaporwave/SKILL.md +331 -0
- package/bundled-skills/design-it/vibrant-maximalism/SKILL.md +291 -0
- package/bundled-skills/design-it/widget-based-design/SKILL.md +274 -0
- package/bundled-skills/design-it/y2k-design/SKILL.md +268 -0
- package/bundled-skills/diagnosing-bugs/SKILL.md +165 -0
- package/bundled-skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
- package/bundled-skills/docs/contributors/skill-scoring.md +235 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/bundles.md +145 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/specialized-plugin-roadmap.md +11 -4
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/bundled-skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/bundled-skills/domain-modeling/SKILL.md +105 -0
- package/bundled-skills/dos-verify-done-claims/SKILL.md +16 -4
- package/bundled-skills/ecl-harness-engineer/agents/creator-config.md +1 -1
- package/bundled-skills/ecl-harness-engineer/references/environment-config-guide.md +2 -2
- package/bundled-skills/ecl-harness-engineer/references/environment-detection-guide.md +4 -4
- package/bundled-skills/event-staffing-ordering/SKILL.md +4 -0
- package/bundled-skills/grill-me/SKILL.md +36 -0
- package/bundled-skills/grill-with-docs/SKILL.md +36 -0
- package/bundled-skills/grilling/SKILL.md +39 -0
- package/bundled-skills/handoff/SKILL.md +45 -0
- package/bundled-skills/image-generator/.env.example +7 -0
- package/bundled-skills/image-generator/SKILL.md +509 -0
- package/bundled-skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
- package/bundled-skills/improve-codebase-architecture/SKILL.md +97 -0
- package/bundled-skills/learn/SKILL.md +156 -0
- package/bundled-skills/lesson-generator/SKILL.md +90 -0
- package/bundled-skills/llm-council/.env.example +7 -0
- package/bundled-skills/llm-council/SKILL.md +602 -0
- package/bundled-skills/loop-library/SKILL.md +208 -0
- package/bundled-skills/loop-library/agents/openai.yaml +4 -0
- package/bundled-skills/loop-library/references/catalog.md +270 -0
- package/bundled-skills/lovable-cleanup/SKILL.md +9 -7
- package/bundled-skills/macos-screen-recorder/SKILL.md +9 -1
- package/bundled-skills/mailtrap-managing-contacts/SKILL.md +112 -0
- package/bundled-skills/mailtrap-sending-emails/SKILL.md +167 -0
- package/bundled-skills/mailtrap-setting-up-sending-domain/SKILL.md +77 -0
- package/bundled-skills/mailtrap-testing-with-sandbox/SKILL.md +110 -0
- package/bundled-skills/prototype/LOGIC.md +79 -0
- package/bundled-skills/prototype/SKILL.md +62 -0
- package/bundled-skills/prototype/UI.md +112 -0
- package/bundled-skills/screenstudio-alt/SKILL.md +9 -1
- package/bundled-skills/setup-matt-pocock-skills/SKILL.md +158 -0
- package/bundled-skills/setup-matt-pocock-skills/domain.md +51 -0
- package/bundled-skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
- package/bundled-skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
- package/bundled-skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
- package/bundled-skills/setup-matt-pocock-skills/triage-labels.md +15 -0
- package/bundled-skills/survey-generator/LICENSE +21 -0
- package/bundled-skills/survey-generator/SKILL.md +143 -0
- package/bundled-skills/survey-generator/build_artifact.py +208 -0
- package/bundled-skills/survey-generator/examples/agentic-engineering/research_bundle.json +1196 -0
- package/bundled-skills/survey-generator/examples/agentic-engineering/survey.html +706 -0
- package/bundled-skills/survey-generator/style_spec.json +85 -0
- package/bundled-skills/survey-generator/templates/research_bundle_template.json +69 -0
- package/bundled-skills/tdd/SKILL.md +139 -0
- package/bundled-skills/tdd/mocking.md +59 -0
- package/bundled-skills/tdd/refactoring.md +10 -0
- package/bundled-skills/tdd/tests.md +61 -0
- package/bundled-skills/teach/GLOSSARY-FORMAT.md +35 -0
- package/bundled-skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/bundled-skills/teach/MISSION-FORMAT.md +31 -0
- package/bundled-skills/teach/RESOURCES-FORMAT.md +32 -0
- package/bundled-skills/teach/SKILL.md +169 -0
- package/bundled-skills/to-issues/SKILL.md +115 -0
- package/bundled-skills/to-prd/SKILL.md +104 -0
- package/bundled-skills/tools-page-seo-optimizer/SKILL.md +616 -0
- package/bundled-skills/triage/AGENT-BRIEF.md +207 -0
- package/bundled-skills/triage/OUT-OF-SCOPE.md +105 -0
- package/bundled-skills/triage/SKILL.md +143 -0
- package/bundled-skills/vibecode-production-qa-validator/SKILL.md +371 -141
- package/bundled-skills/wiki-builder/SKILL.md +157 -0
- package/bundled-skills/wiki-builder/agents/openai.yaml +5 -0
- package/bundled-skills/wiki-builder/references/wiki-flavors.md +98 -0
- package/bundled-skills/wiki-builder/scripts/init_wiki.sh +105 -0
- package/bundled-skills/wiki-builder/templates/index.md +20 -0
- package/bundled-skills/wiki-builder/templates/maintenance-log.md +7 -0
- package/bundled-skills/wiki-builder/templates/prompts/compile-concept-page.md +12 -0
- package/bundled-skills/wiki-builder/templates/prompts/compile-index.md +11 -0
- package/bundled-skills/wiki-builder/templates/prompts/compile-source-page.md +12 -0
- package/bundled-skills/wiki-builder/templates/prompts/lint-wiki.md +10 -0
- package/bundled-skills/wiki-builder/templates/prompts/query-and-file.md +11 -0
- package/bundled-skills/wiki-builder/templates/sources.md +9 -0
- package/bundled-skills/wiki-builder/templates/wiki.config.md +53 -0
- package/bundled-skills/writing-great-skills/GLOSSARY.md +181 -0
- package/bundled-skills/writing-great-skills/SKILL.md +111 -0
- package/bundled-skills/yao-meta-skill/SKILL.md +86 -0
- package/bundled-skills/yao-meta-skill/agents/interface.yaml +26 -0
- package/bundled-skills/yao-meta-skill/manifest.json +24 -0
- package/bundled-skills/yao-meta-skill/references/artifact-design-doctrine.md +49 -0
- package/bundled-skills/yao-meta-skill/references/authoring-discipline.md +78 -0
- package/bundled-skills/yao-meta-skill/references/autonomous-adaptation.md +65 -0
- package/bundled-skills/yao-meta-skill/references/distribution-registry-method.md +60 -0
- package/bundled-skills/yao-meta-skill/references/eval-playbook.md +69 -0
- package/bundled-skills/yao-meta-skill/references/gate-selection.md +68 -0
- package/bundled-skills/yao-meta-skill/references/governance.md +134 -0
- package/bundled-skills/yao-meta-skill/references/human-review-template.md +54 -0
- package/bundled-skills/yao-meta-skill/references/intent-dialogue.md +138 -0
- package/bundled-skills/yao-meta-skill/references/iteration-philosophy.md +30 -0
- package/bundled-skills/yao-meta-skill/references/non-skill-decision-tree.md +39 -0
- package/bundled-skills/yao-meta-skill/references/operating-modes.md +107 -0
- package/bundled-skills/yao-meta-skill/references/output-eval-method.md +113 -0
- package/bundled-skills/yao-meta-skill/references/output-quality-risk.md +41 -0
- package/bundled-skills/yao-meta-skill/references/output-visual-quality.md +53 -0
- package/bundled-skills/yao-meta-skill/references/packaging-contracts.md +70 -0
- package/bundled-skills/yao-meta-skill/references/pattern-extraction-doctrine.md +76 -0
- package/bundled-skills/yao-meta-skill/references/platform-capability-matrix.md +49 -0
- package/bundled-skills/yao-meta-skill/references/prompt-engineering-doctrine.md +76 -0
- package/bundled-skills/yao-meta-skill/references/qa-ladder.md +57 -0
- package/bundled-skills/yao-meta-skill/references/reference-scan.md +126 -0
- package/bundled-skills/yao-meta-skill/references/regression-cause-taxonomy.md +80 -0
- package/bundled-skills/yao-meta-skill/references/resource-boundaries.md +120 -0
- package/bundled-skills/yao-meta-skill/references/review-studio-method.md +87 -0
- package/bundled-skills/yao-meta-skill/references/review-waiver-method.md +76 -0
- package/bundled-skills/yao-meta-skill/references/runtime-conformance-method.md +21 -0
- package/bundled-skills/yao-meta-skill/references/skill-archetypes.md +86 -0
- package/bundled-skills/yao-meta-skill/references/skill-atlas-method.md +35 -0
- package/bundled-skills/yao-meta-skill/references/skill-engineering-method.md +210 -0
- package/bundled-skills/yao-meta-skill/references/skill-ir-method.md +41 -0
- package/bundled-skills/yao-meta-skill/references/skillops-decision-policy.md +53 -0
- package/bundled-skills/yao-meta-skill/references/systems-thinking-doctrine.md +75 -0
- package/bundled-skills/yao-meta-skill/references/telemetry-drift-method.md +182 -0
- package/bundled-skills/yao-meta-skill/references/trust-security-method.md +79 -0
- package/bundled-skills/yao-meta-skill/references/user-memory-policy.md +35 -0
- package/bundled-skills/youtube-notetaker/SKILL.md +209 -0
- package/bundled-skills/youtube-notetaker/reference/artifact.html +269 -0
- package/bundled-skills/youtube-notetaker/scripts/contact_sheet.py +53 -0
- package/bundled-skills/youtube-notetaker/scripts/detect_slides.sh +19 -0
- package/bundled-skills/youtube-notetaker/scripts/download.sh +24 -0
- package/bundled-skills/youtube-notetaker/scripts/extract_slides.py +43 -0
- package/bundled-skills/youtube-notetaker/scripts/serve.py +222 -0
- package/bundled-skills/youtube-notetaker/scripts/setup.sh +27 -0
- package/bundled-skills/youtube-notetaker/scripts/verify.sh +31 -0
- package/bundled-skills/youtube-notetaker/scripts/vtt_to_transcript.py +59 -0
- package/bundled-skills/youtube-notetaker/scripts/write_library_item.py +69 -0
- package/package.json +1 -1
- package/skills_index.json +2013 -330
- package/bundled-skills/ai-md/SKILL.md +0 -523
- package/bundled-skills/atlas-contract/SKILL.md +0 -650
- package/bundled-skills/busybox-on-windows/SKILL.md +0 -40
- package/bundled-skills/monte-carlo-prevent/SKILL.md +0 -257
- package/bundled-skills/monte-carlo-prevent/references/TROUBLESHOOTING.md +0 -23
- package/bundled-skills/monte-carlo-prevent/references/parameters.md +0 -32
- package/bundled-skills/monte-carlo-prevent/references/workflows.md +0 -478
- package/bundled-skills/monte-carlo-push-ingestion/SKILL.md +0 -372
- package/bundled-skills/monte-carlo-push-ingestion/references/anomaly-detection.md +0 -87
- package/bundled-skills/monte-carlo-push-ingestion/references/custom-lineage.md +0 -203
- package/bundled-skills/monte-carlo-push-ingestion/references/direct-http-api.md +0 -207
- package/bundled-skills/monte-carlo-push-ingestion/references/prerequisites.md +0 -150
- package/bundled-skills/monte-carlo-push-ingestion/references/push-lineage.md +0 -160
- package/bundled-skills/monte-carlo-push-ingestion/references/push-metadata.md +0 -158
- package/bundled-skills/monte-carlo-push-ingestion/references/push-query-logs.md +0 -219
- package/bundled-skills/monte-carlo-push-ingestion/references/validation.md +0 -257
- package/bundled-skills/monte-carlo-push-ingestion/scripts/sample_verify.py +0 -357
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_lineage.py +0 -70
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_metadata.py +0 -65
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_and_push_query_logs.py +0 -70
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_lineage.py +0 -214
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_metadata.py +0 -160
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/collect_query_logs.py +0 -164
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_lineage.py +0 -198
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_metadata.py +0 -193
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery/push_query_logs.py +0 -207
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_and_push_metadata.py +0 -71
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_and_push_query_logs.py +0 -64
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_metadata.py +0 -253
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/collect_query_logs.py +0 -149
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/push_metadata.py +0 -190
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/bigquery-iceberg/push_query_logs.py +0 -208
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_lineage.py +0 -83
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_metadata.py +0 -77
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_and_push_query_logs.py +0 -83
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_lineage.py +0 -240
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_metadata.py +0 -212
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/collect_query_logs.py +0 -204
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_lineage.py +0 -192
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_metadata.py +0 -178
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/databricks/push_query_logs.py +0 -200
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_lineage.py +0 -119
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_metadata.py +0 -119
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_and_push_query_logs.py +0 -117
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_lineage.py +0 -265
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_metadata.py +0 -313
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/collect_query_logs.py +0 -284
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_lineage.py +0 -309
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_metadata.py +0 -245
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/hive/push_query_logs.py +0 -255
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_lineage.py +0 -78
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_metadata.py +0 -80
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_and_push_query_logs.py +0 -88
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_lineage.py +0 -235
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_metadata.py +0 -219
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/collect_query_logs.py +0 -239
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_lineage.py +0 -178
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_metadata.py +0 -178
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/redshift/push_query_logs.py +0 -196
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_lineage.py +0 -154
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_metadata.py +0 -137
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_and_push_query_logs.py +0 -137
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_lineage.py +0 -349
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_metadata.py +0 -329
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/collect_query_logs.py +0 -254
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_lineage.py +0 -307
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_metadata.py +0 -228
- package/bundled-skills/monte-carlo-push-ingestion/scripts/templates/snowflake/push_query_logs.py +0 -248
- package/bundled-skills/monte-carlo-push-ingestion/scripts/test_template_sdk_usage.py +0 -340
- package/bundled-skills/skill-optimizer/SKILL.md +0 -271
- package/bundled-skills/using-superpowers/SKILL.md +0 -98
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: widget-based-design
|
|
3
|
+
description: Web and App implementation guide for Widget-Based Design. Trigger when user wants modular blocks, iOS Home Screen aesthetics, and customizable mini-apps.
|
|
4
|
+
date_added: "2026-06-17"
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Widget-Based Design
|
|
11
|
+
|
|
12
|
+
> "Miniature applications. Small, highly functional blocks of UI designed to be rearranged."
|
|
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. **Strict Aspect Ratios**: Widgets usually follow strict sizes (1x1 square, 2x1 rectangle, 2x2 large square).
|
|
20
|
+
2. **Glanceability**: Widgets show the most important piece of data instantly. Deep interaction usually requires opening the full app.
|
|
21
|
+
3. **Corner Radius Match**: The inner content's border radius should perfectly nest within the widget's outer border radius.
|
|
22
|
+
|
|
23
|
+
## Visual DNA
|
|
24
|
+
- **Colors**: Widgets often use bright, solid color backgrounds or full-bleed photos to differentiate themselves.
|
|
25
|
+
- **Typography**: Large, bold numbers (like a clock or weather temp) paired with tiny sub-labels.
|
|
26
|
+
- **Layout**: Similar to Bento UI, but specifically focused on functional app-lets rather than just content layout.
|
|
27
|
+
|
|
28
|
+
## Web Implementation
|
|
29
|
+
- **CSS Example**:
|
|
30
|
+
```css
|
|
31
|
+
.widget-grid {
|
|
32
|
+
display: grid;
|
|
33
|
+
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
|
|
34
|
+
grid-auto-rows: 160px; /* Force squares */
|
|
35
|
+
gap: 16px;
|
|
36
|
+
padding: 32px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.widget {
|
|
40
|
+
background-color: #ffffff;
|
|
41
|
+
border-radius: 24px; /* Classic iOS widget radius */
|
|
42
|
+
box-shadow: 0 8px 24px rgba(0,0,0,0.08);
|
|
43
|
+
padding: 16px;
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
justify-content: space-between;
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
position: relative;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Specific Sizes */
|
|
52
|
+
.widget-small { grid-column: span 1; grid-row: span 1; }
|
|
53
|
+
.widget-medium { grid-column: span 2; grid-row: span 1; }
|
|
54
|
+
.widget-large { grid-column: span 2; grid-row: span 2; }
|
|
55
|
+
|
|
56
|
+
/* Weather Widget Example */
|
|
57
|
+
.widget.weather {
|
|
58
|
+
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
|
59
|
+
color: white;
|
|
60
|
+
}
|
|
61
|
+
.weather-temp { font-size: 3rem; font-weight: 300; }
|
|
62
|
+
.weather-icon { position: absolute; top: 16px; right: 16px; font-size: 2rem; }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## App Implementation
|
|
66
|
+
|
|
67
|
+
### SwiftUI
|
|
68
|
+
```swift
|
|
69
|
+
struct WidgetDesignView: View {
|
|
70
|
+
let columns = [GridItem(.flexible(), spacing: 16), GridItem(.flexible(), spacing: 16)]
|
|
71
|
+
|
|
72
|
+
var body: some View {
|
|
73
|
+
ScrollView {
|
|
74
|
+
LazyVGrid(columns: columns, spacing: 16) {
|
|
75
|
+
// 2x1 Widget
|
|
76
|
+
WeatherWidget()
|
|
77
|
+
.frame(height: 160) // Base unit height
|
|
78
|
+
|
|
79
|
+
// 1x1 Widget
|
|
80
|
+
FitnessWidget()
|
|
81
|
+
.frame(height: 160)
|
|
82
|
+
|
|
83
|
+
// 1x1 Widget
|
|
84
|
+
MusicWidget()
|
|
85
|
+
.frame(height: 160)
|
|
86
|
+
}
|
|
87
|
+
.padding(24)
|
|
88
|
+
}
|
|
89
|
+
.background(Color(white: 0.95))
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
struct WeatherWidget: View {
|
|
94
|
+
var body: some View {
|
|
95
|
+
ZStack(alignment: .topTrailing) {
|
|
96
|
+
LinearGradient(colors: [Color(hex: "4facfe"), Color(hex: "00f2fe")], startPoint: .topLeading, endPoint: .bottomTrailing)
|
|
97
|
+
|
|
98
|
+
Image(systemName: "cloud.sun.fill")
|
|
99
|
+
.foregroundColor(.white)
|
|
100
|
+
.font(.system(size: 40))
|
|
101
|
+
.padding()
|
|
102
|
+
|
|
103
|
+
VStack(alignment: .leading) {
|
|
104
|
+
Spacer()
|
|
105
|
+
Text("72°")
|
|
106
|
+
.font(.system(size: 48, weight: .thin))
|
|
107
|
+
.foregroundColor(.white)
|
|
108
|
+
Text("San Francisco")
|
|
109
|
+
.font(.subheadline)
|
|
110
|
+
.foregroundColor(.white.opacity(0.8))
|
|
111
|
+
}
|
|
112
|
+
.frame(maxWidth: .infinity, alignment: .leading)
|
|
113
|
+
.padding()
|
|
114
|
+
}
|
|
115
|
+
.cornerRadius(24) // Classic iOS widget radius
|
|
116
|
+
.shadow(color: .black.opacity(0.1), radius: 10, y: 5)
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
- SwiftUI is perfect for this. The `LazyVGrid` handles the layout, and `cornerRadius(24)` matches Apple's default widget styling perfectly.
|
|
121
|
+
- Use `ZStack` as the root of the widget to easily overlay content on top of complex gradients or images.
|
|
122
|
+
|
|
123
|
+
### Flutter
|
|
124
|
+
```dart
|
|
125
|
+
class WidgetDesignScreen extends StatelessWidget {
|
|
126
|
+
@override
|
|
127
|
+
Widget build(BuildContext context) {
|
|
128
|
+
return Scaffold(
|
|
129
|
+
backgroundColor: const Color(0xFFF2F2F2),
|
|
130
|
+
body: GridView.count(
|
|
131
|
+
crossAxisCount: 2, // 2 columns for a typical phone
|
|
132
|
+
padding: const EdgeInsets.all(24),
|
|
133
|
+
mainAxisSpacing: 16,
|
|
134
|
+
crossAxisSpacing: 16,
|
|
135
|
+
childAspectRatio: 1.0, // 1x1 squares
|
|
136
|
+
children: [
|
|
137
|
+
// Note: Flutter GridView doesn't easily span rows/cols out of the box.
|
|
138
|
+
// flutter_staggered_grid_view is highly recommended for real widget layouts.
|
|
139
|
+
_buildWeatherWidget(),
|
|
140
|
+
_buildFitnessWidget(),
|
|
141
|
+
_buildMusicWidget(),
|
|
142
|
+
],
|
|
143
|
+
),
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
Widget _buildWeatherWidget() {
|
|
148
|
+
return Container(
|
|
149
|
+
decoration: BoxDecoration(
|
|
150
|
+
borderRadius: BorderRadius.circular(24),
|
|
151
|
+
gradient: const LinearGradient(colors: [Color(0xFF4FACFE), Color(0xFF00F2FE)]),
|
|
152
|
+
boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.1), blurRadius: 10, offset: const Offset(0, 5))],
|
|
153
|
+
),
|
|
154
|
+
padding: const EdgeInsets.all(16),
|
|
155
|
+
child: Stack(
|
|
156
|
+
children: [
|
|
157
|
+
const Align(
|
|
158
|
+
alignment: Alignment.topRight,
|
|
159
|
+
child: Icon(Icons.cloud, color: Colors.white, size: 40),
|
|
160
|
+
),
|
|
161
|
+
Align(
|
|
162
|
+
alignment: Alignment.bottomLeft,
|
|
163
|
+
child: Column(
|
|
164
|
+
mainAxisSize: MainAxisSize.min,
|
|
165
|
+
crossAxisAlignment: CrossAxisAlignment.start,
|
|
166
|
+
children: [
|
|
167
|
+
const Text('72°', style: TextStyle(color: Colors.white, fontSize: 48, fontWeight: FontWeight.w300)),
|
|
168
|
+
Text('San Francisco', style: TextStyle(color: Colors.white.withOpacity(0.8), fontSize: 14)),
|
|
169
|
+
],
|
|
170
|
+
),
|
|
171
|
+
)
|
|
172
|
+
],
|
|
173
|
+
),
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
- A `Stack` inside a `Container` with `BorderRadius.circular(24)` is the blueprint for every widget.
|
|
179
|
+
- Standard `GridView` is too rigid for mixed 2x1 and 1x1 widgets. Use the `flutter_staggered_grid_view` package for production apps.
|
|
180
|
+
|
|
181
|
+
### React Native
|
|
182
|
+
```jsx
|
|
183
|
+
const WidgetDesignScreen = () => {
|
|
184
|
+
return (
|
|
185
|
+
<ScrollView style={{ flex: 1, backgroundColor: '#F2F2F2' }} contentContainerStyle={{ padding: 24 }}>
|
|
186
|
+
<View style={{ flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'space-between', gap: 16 }}>
|
|
187
|
+
|
|
188
|
+
{/* 2x1 Widget (Full width minus padding) */}
|
|
189
|
+
<View style={[styles.widget, { width: '100%' }]}>
|
|
190
|
+
<LinearGradient colors={['#4facfe', '#00f2fe']} style={styles.widgetBg} />
|
|
191
|
+
<Text style={styles.temp}>72°</Text>
|
|
192
|
+
<Text style={styles.sub}>San Francisco</Text>
|
|
193
|
+
</View>
|
|
194
|
+
|
|
195
|
+
{/* 1x1 Widgets (Half width minus half gap) */}
|
|
196
|
+
<View style={[styles.widget, { width: '47%' }]}><Text>Fitness</Text></View>
|
|
197
|
+
<View style={[styles.widget, { width: '47%' }]}><Text>Music</Text></View>
|
|
198
|
+
|
|
199
|
+
</View>
|
|
200
|
+
</ScrollView>
|
|
201
|
+
);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
const styles = StyleSheet.create({
|
|
205
|
+
widget: {
|
|
206
|
+
height: 160, // Fixed height forces square/rectangular aspect ratios
|
|
207
|
+
borderRadius: 24,
|
|
208
|
+
backgroundColor: '#FFF',
|
|
209
|
+
padding: 16,
|
|
210
|
+
justifyContent: 'flex-end',
|
|
211
|
+
shadowColor: '#000', shadowOffset: { width: 0, height: 5 }, shadowOpacity: 0.1, shadowRadius: 10, elevation: 5,
|
|
212
|
+
overflow: 'hidden'
|
|
213
|
+
},
|
|
214
|
+
widgetBg: {
|
|
215
|
+
...StyleSheet.absoluteFillObject,
|
|
216
|
+
borderRadius: 24,
|
|
217
|
+
},
|
|
218
|
+
temp: { fontSize: 48, fontWeight: '300', color: '#FFF' },
|
|
219
|
+
sub: { fontSize: 14, color: 'rgba(255,255,255,0.8)' }
|
|
220
|
+
});
|
|
221
|
+
```
|
|
222
|
+
- In React Native, `flexWrap: 'wrap'` combined with percentage widths (e.g., `47%` for 2 columns with a gap) is the cleanest way to build a responsive widget layout.
|
|
223
|
+
- If using `LinearGradient` from `expo-linear-gradient` or `react-native-linear-gradient`, apply `StyleSheet.absoluteFillObject` so it sits behind the text.
|
|
224
|
+
|
|
225
|
+
### Jetpack Compose
|
|
226
|
+
```kotlin
|
|
227
|
+
@Composable
|
|
228
|
+
fun WidgetDesignScreen() {
|
|
229
|
+
LazyVerticalGrid(
|
|
230
|
+
columns = GridCells.Fixed(2),
|
|
231
|
+
modifier = Modifier.fillMaxSize().background(Color(0xFFF2F2F2)).padding(24.dp),
|
|
232
|
+
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
|
233
|
+
verticalArrangement = Arrangement.spacedBy(16.dp)
|
|
234
|
+
) {
|
|
235
|
+
// 2x1 Widget (Spans both columns)
|
|
236
|
+
item(span = { GridItemSpan(2) }) {
|
|
237
|
+
WeatherWidget(Modifier.height(160.dp))
|
|
238
|
+
}
|
|
239
|
+
// 1x1 Widgets
|
|
240
|
+
item { Box(Modifier.height(160.dp).background(Color.White, RoundedCornerShape(24.dp))) }
|
|
241
|
+
item { Box(Modifier.height(160.dp).background(Color.White, RoundedCornerShape(24.dp))) }
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
@Composable
|
|
246
|
+
fun WeatherWidget(modifier: Modifier = Modifier) {
|
|
247
|
+
Box(
|
|
248
|
+
modifier = modifier
|
|
249
|
+
.fillMaxWidth()
|
|
250
|
+
.shadow(10.dp, RoundedCornerShape(24.dp))
|
|
251
|
+
.background(Brush.linearGradient(listOf(Color(0xFF4FACFE), Color(0xFF00F2FE))), RoundedCornerShape(24.dp))
|
|
252
|
+
.padding(16.dp)
|
|
253
|
+
) {
|
|
254
|
+
// Icon
|
|
255
|
+
Icon(Icons.Filled.Cloud, contentDescription = null, tint = Color.White, modifier = Modifier.align(Alignment.TopEnd).size(40.dp))
|
|
256
|
+
|
|
257
|
+
// Data
|
|
258
|
+
Column(modifier = Modifier.align(Alignment.BottomStart)) {
|
|
259
|
+
Text("72°", fontSize = 48.sp, fontWeight = FontWeight.Light, color = Color.White)
|
|
260
|
+
Text("San Francisco", fontSize = 14.sp, color = Color.White.copy(alpha = 0.8f))
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
- `LazyVerticalGrid` with `GridCells.Fixed(2)` and `GridItemSpan` perfectly recreate iOS widget grids.
|
|
266
|
+
- `RoundedCornerShape(24.dp)` is essential to sell the look.
|
|
267
|
+
|
|
268
|
+
## Do's and Don'ts
|
|
269
|
+
- **DO**: Use full-bleed background colors to make different widgets stand out.
|
|
270
|
+
- **DON'T**: Put complex forms or scrollable lists inside a 1x1 widget.
|
|
271
|
+
|
|
272
|
+
## Limitations
|
|
273
|
+
- This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
|
|
274
|
+
- Ensure appropriate contrast ratios and responsive behaviors are verified separately.
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: y2k-design
|
|
3
|
+
description: Web and App implementation guide for Y2K Design. Trigger when user wants chrome effects, futuristic 2000s look, blob shapes, and tech optimism.
|
|
4
|
+
date_added: "2026-06-17"
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Y2K Design
|
|
11
|
+
|
|
12
|
+
> "The optimistic, shiny future as imagined in 1999. Chrome, blobs, and alien tech."
|
|
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. **Metallic & Chrome Effects**: Extensive use of silver, chrome, and shiny metallic gradients.
|
|
20
|
+
2. **Organic, Amorphous Shapes**: "Blob" architecture, curved intersecting lines, and liquid-like forms.
|
|
21
|
+
3. **Tech-Optimism**: Circuit board motifs, target crosshairs, and digital grid backgrounds.
|
|
22
|
+
|
|
23
|
+
## Visual DNA
|
|
24
|
+
- **Colors**: Silver/chrome, bright cyan, hot pink, lime green. **Industrial Chic** mixed with neon accents works well.
|
|
25
|
+
- **Typography**: Extended (wide) sans-serifs, pixel fonts, or futuristic/alien display fonts (e.g., `Orbitron`, `Syncopate`).
|
|
26
|
+
- **Styling**: Outer glows, metallic bevels, and starry glints (sparkles).
|
|
27
|
+
|
|
28
|
+
## Web Implementation
|
|
29
|
+
- Rely heavily on complex linear and radial gradients to simulate shiny metal.
|
|
30
|
+
- **CSS Example**:
|
|
31
|
+
```css
|
|
32
|
+
body {
|
|
33
|
+
background-color: #000000;
|
|
34
|
+
/* Digital grid background */
|
|
35
|
+
background-image: linear-gradient(#333 1px, transparent 1px),
|
|
36
|
+
linear-gradient(90deg, #333 1px, transparent 1px);
|
|
37
|
+
background-size: 20px 20px;
|
|
38
|
+
color: #ffffff;
|
|
39
|
+
font-family: 'Syncopate', sans-serif;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.y2k-chrome-text {
|
|
43
|
+
font-size: 4rem;
|
|
44
|
+
font-weight: 900;
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
|
|
47
|
+
/* Chrome gradient effect */
|
|
48
|
+
background: linear-gradient(
|
|
49
|
+
to bottom,
|
|
50
|
+
#ffffff 0%,
|
|
51
|
+
#999999 45%,
|
|
52
|
+
#222222 50%,
|
|
53
|
+
#cccccc 55%,
|
|
54
|
+
#ffffff 100%
|
|
55
|
+
);
|
|
56
|
+
-webkit-background-clip: text;
|
|
57
|
+
-webkit-text-fill-color: transparent;
|
|
58
|
+
|
|
59
|
+
/* Outer glow */
|
|
60
|
+
filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.5));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.y2k-blob-btn {
|
|
64
|
+
background: linear-gradient(135deg, #00FFFF, #FF00FF);
|
|
65
|
+
border: none;
|
|
66
|
+
border-radius: 50% 20% / 10% 40%; /* Amorphous blob shape */
|
|
67
|
+
padding: 20px 40px;
|
|
68
|
+
color: #fff;
|
|
69
|
+
font-weight: bold;
|
|
70
|
+
text-shadow: 1px 1px 2px #000;
|
|
71
|
+
box-shadow: 0 0 15px #FF00FF;
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## App Implementation
|
|
76
|
+
|
|
77
|
+
### SwiftUI
|
|
78
|
+
```swift
|
|
79
|
+
struct Y2KDesignView: View {
|
|
80
|
+
// Chrome Gradient
|
|
81
|
+
let chromeGradient = LinearGradient(
|
|
82
|
+
colors: [Color.white, Color(white: 0.6), Color(white: 0.2), Color(white: 0.8), Color.white],
|
|
83
|
+
startPoint: .top,
|
|
84
|
+
endPoint: .bottom
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
var body: some View {
|
|
88
|
+
ZStack {
|
|
89
|
+
Color.black.ignoresSafeArea()
|
|
90
|
+
|
|
91
|
+
VStack(spacing: 40) {
|
|
92
|
+
// Chrome Text
|
|
93
|
+
Text("Y2K FUTURE")
|
|
94
|
+
.font(.custom("Syncopate-Bold", size: 48))
|
|
95
|
+
.foregroundStyle(chromeGradient)
|
|
96
|
+
// Cyan glow
|
|
97
|
+
.shadow(color: Color(hex: "00FFFF"), radius: 10, x: 0, y: 0)
|
|
98
|
+
|
|
99
|
+
// Blob Button (Faked with Capsule in standard SwiftUI, requires Path for true blob)
|
|
100
|
+
Button(action: {}) {
|
|
101
|
+
Text("ENTER CORE")
|
|
102
|
+
.font(.custom("Orbitron-Bold", size: 20))
|
|
103
|
+
.foregroundColor(.white)
|
|
104
|
+
.padding(.vertical, 20)
|
|
105
|
+
.padding(.horizontal, 40)
|
|
106
|
+
.background(LinearGradient(colors: [Color(hex: "00FFFF"), Color(hex: "FF00FF")], startPoint: .topLeading, endPoint: .bottomTrailing))
|
|
107
|
+
.clipShape(Capsule())
|
|
108
|
+
// Glow
|
|
109
|
+
.shadow(color: Color(hex: "FF00FF").opacity(0.8), radius: 15, x: 0, y: 0)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
- SwiftUI's `.foregroundStyle()` makes applying a complex multi-stop `LinearGradient` to text trivial, which is exactly how you build the Chrome Text effect.
|
|
117
|
+
- Add an un-offset `.shadow()` with a neon color to create the Y2K outer glow.
|
|
118
|
+
|
|
119
|
+
### Flutter
|
|
120
|
+
```dart
|
|
121
|
+
class Y2KDesignScreen extends StatelessWidget {
|
|
122
|
+
@override
|
|
123
|
+
Widget build(BuildContext context) {
|
|
124
|
+
return Scaffold(
|
|
125
|
+
backgroundColor: Colors.black,
|
|
126
|
+
body: Center(
|
|
127
|
+
child: Column(
|
|
128
|
+
mainAxisAlignment: MainAxisAlignment.center,
|
|
129
|
+
children: [
|
|
130
|
+
// Chrome Text via ShaderMask
|
|
131
|
+
ShaderMask(
|
|
132
|
+
shaderCallback: (bounds) => const LinearGradient(
|
|
133
|
+
begin: Alignment.topCenter, end: Alignment.bottomCenter,
|
|
134
|
+
colors: [Colors.white, Color(0xFF999999), Color(0xFF222222), Color(0xFFCCCCCC), Colors.white],
|
|
135
|
+
stops: [0.0, 0.45, 0.5, 0.55, 1.0],
|
|
136
|
+
).createShader(bounds),
|
|
137
|
+
child: const Text(
|
|
138
|
+
'Y2K FUTURE',
|
|
139
|
+
style: TextStyle(
|
|
140
|
+
fontFamily: 'Syncopate', fontSize: 48, fontWeight: FontWeight.w900, color: Colors.white,
|
|
141
|
+
shadows: [Shadow(color: Color(0xFF00FFFF), blurRadius: 20)], // Glow
|
|
142
|
+
),
|
|
143
|
+
),
|
|
144
|
+
),
|
|
145
|
+
const SizedBox(height: 40),
|
|
146
|
+
|
|
147
|
+
// Neon Button
|
|
148
|
+
Container(
|
|
149
|
+
decoration: BoxDecoration(
|
|
150
|
+
gradient: const LinearGradient(colors: [Color(0xFF00FFFF), Color(0xFFFF00FF)]),
|
|
151
|
+
borderRadius: BorderRadius.circular(50),
|
|
152
|
+
boxShadow: const [BoxShadow(color: Color(0xFFFF00FF), blurRadius: 20)],
|
|
153
|
+
),
|
|
154
|
+
child: ElevatedButton(
|
|
155
|
+
onPressed: () {},
|
|
156
|
+
style: ElevatedButton.styleFrom(
|
|
157
|
+
backgroundColor: Colors.transparent, shadowColor: Colors.transparent,
|
|
158
|
+
padding: const EdgeInsets.symmetric(horizontal: 40, vertical: 20),
|
|
159
|
+
),
|
|
160
|
+
child: const Text('ENTER CORE', style: TextStyle(fontFamily: 'Orbitron', fontSize: 20, color: Colors.white)),
|
|
161
|
+
),
|
|
162
|
+
)
|
|
163
|
+
],
|
|
164
|
+
),
|
|
165
|
+
),
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
- You MUST use `ShaderMask` with a complex multi-stop `LinearGradient` to render the metallic chrome effect on text in Flutter.
|
|
171
|
+
- The `stops` property `[0.0, 0.45, 0.5, 0.55, 1.0]` is the secret to a good metal gradient: a sharp contrast right in the middle simulates the horizon reflection on a cylinder.
|
|
172
|
+
|
|
173
|
+
### React Native
|
|
174
|
+
```jsx
|
|
175
|
+
// REQUIRES: @react-native-masked-view/masked-view and react-native-linear-gradient
|
|
176
|
+
import MaskedView from '@react-native-masked-view/masked-view';
|
|
177
|
+
import LinearGradient from 'react-native-linear-gradient';
|
|
178
|
+
|
|
179
|
+
const Y2KDesignScreen = () => {
|
|
180
|
+
return (
|
|
181
|
+
<View style={{ flex: 1, backgroundColor: '#000', justifyContent: 'center', alignItems: 'center' }}>
|
|
182
|
+
|
|
183
|
+
{/* Chrome Text */}
|
|
184
|
+
<View style={{ height: 60, width: '100%', marginBottom: 40, shadowColor: '#00FFFF', shadowOffset: {width: 0, height: 0}, shadowOpacity: 1, shadowRadius: 10 }}>
|
|
185
|
+
<MaskedView
|
|
186
|
+
style={{ flex: 1 }}
|
|
187
|
+
maskElement={<Text style={{ fontFamily: 'Syncopate-Bold', fontSize: 48, color: '#FFF', textAlign: 'center' }}>Y2K FUTURE</Text>}
|
|
188
|
+
>
|
|
189
|
+
<LinearGradient
|
|
190
|
+
colors={['#FFFFFF', '#999999', '#222222', '#CCCCCC', '#FFFFFF']}
|
|
191
|
+
locations={[0, 0.45, 0.5, 0.55, 1]}
|
|
192
|
+
style={{ flex: 1 }}
|
|
193
|
+
/>
|
|
194
|
+
</MaskedView>
|
|
195
|
+
</View>
|
|
196
|
+
|
|
197
|
+
{/* Neon Gradient Button */}
|
|
198
|
+
<View style={{ shadowColor: '#FF00FF', shadowOffset: {width: 0, height: 0}, shadowOpacity: 1, shadowRadius: 15 }}>
|
|
199
|
+
<LinearGradient
|
|
200
|
+
colors={['#00FFFF', '#FF00FF']} start={{x: 0, y: 0}} end={{x: 1, y: 1}}
|
|
201
|
+
style={{ borderRadius: 50, paddingHorizontal: 40, paddingVertical: 20 }}
|
|
202
|
+
>
|
|
203
|
+
<Text style={{ fontFamily: 'Orbitron-Bold', fontSize: 20, color: '#FFF' }}>ENTER CORE</Text>
|
|
204
|
+
</LinearGradient>
|
|
205
|
+
</View>
|
|
206
|
+
|
|
207
|
+
</View>
|
|
208
|
+
);
|
|
209
|
+
};
|
|
210
|
+
```
|
|
211
|
+
- In React Native, you need the community `MaskedView` to apply a gradient to text. Create the `<Text>` in the `maskElement` prop, and put the `<LinearGradient>` inside as a child.
|
|
212
|
+
- Pass `locations` to the gradient to create the sharp metallic reflection line.
|
|
213
|
+
|
|
214
|
+
### Jetpack Compose
|
|
215
|
+
```kotlin
|
|
216
|
+
@Composable
|
|
217
|
+
fun Y2KDesignScreen() {
|
|
218
|
+
Box(
|
|
219
|
+
modifier = Modifier.fillMaxSize().background(Color.Black),
|
|
220
|
+
contentAlignment = Alignment.Center
|
|
221
|
+
) {
|
|
222
|
+
Column(horizontalAlignment = Alignment.CenterHorizontally) {
|
|
223
|
+
|
|
224
|
+
// Chrome Text
|
|
225
|
+
Text(
|
|
226
|
+
text = "Y2K FUTURE",
|
|
227
|
+
fontSize = 48.sp,
|
|
228
|
+
fontFamily = FontFamily.SansSerif, // Replace with Syncopate
|
|
229
|
+
fontWeight = FontWeight.Black,
|
|
230
|
+
style = TextStyle(
|
|
231
|
+
// Apply Chrome Gradient to Text
|
|
232
|
+
brush = Brush.verticalGradient(
|
|
233
|
+
0.0f to Color.White,
|
|
234
|
+
0.45f to Color(0xFF999999),
|
|
235
|
+
0.5f to Color(0xFF222222),
|
|
236
|
+
0.55f to Color(0xFFCCCCCC),
|
|
237
|
+
1.0f to Color.White
|
|
238
|
+
),
|
|
239
|
+
shadow = Shadow(color = Color(0xFF00FFFF), blurRadius = 20f) // Glow
|
|
240
|
+
)
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
Spacer(Modifier.height(40.dp))
|
|
244
|
+
|
|
245
|
+
// Neon Button
|
|
246
|
+
Box(
|
|
247
|
+
modifier = Modifier
|
|
248
|
+
.shadow(20.dp, CircleShape, ambientColor = Color(0xFFFF00FF), spotColor = Color(0xFFFF00FF))
|
|
249
|
+
.background(Brush.linearGradient(listOf(Color(0xFF00FFFF), Color(0xFFFF00FF))), CircleShape)
|
|
250
|
+
.clickable { }
|
|
251
|
+
.padding(horizontal = 40.dp, vertical = 20.dp)
|
|
252
|
+
) {
|
|
253
|
+
Text("ENTER CORE", color = Color.White, fontFamily = FontFamily.SansSerif, fontWeight = FontWeight.Bold, fontSize = 20.sp)
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
- Jetpack Compose makes gradient text incredibly easy via `TextStyle(brush = ...)`.
|
|
260
|
+
- Provide specific color stops (`0.45f to ...`) to the `verticalGradient` to create the hard reflection line characteristic of 2000s chrome.
|
|
261
|
+
|
|
262
|
+
## Do's and Don'ts
|
|
263
|
+
- **DO**: Use sparkles (✨) as decorative elements around headers and buttons.
|
|
264
|
+
- **DON'T**: Make it minimal. Y2K is fundamentally maximalist and flashy.
|
|
265
|
+
|
|
266
|
+
## Limitations
|
|
267
|
+
- This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
|
|
268
|
+
- Ensure appropriate contrast ratios and responsive behaviors are verified separately.
|