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.
- package/README.md +44 -12
- package/bundled-skills/.antigravity-install-manifest.json +84 -1
- package/bundled-skills/android-ui-journey-testing/SKILL.md +191 -0
- package/bundled-skills/ask-matt/SKILL.md +92 -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/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 +194 -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 +1 -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/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/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 +205 -0
- package/bundled-skills/loop-library/agents/openai.yaml +4 -0
- package/bundled-skills/loop-library/references/catalog.md +270 -0
- 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/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 +173 -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/dist/skill-pointer/config-loader.d.ts +14 -0
- package/dist/skill-pointer/config-loader.js +30 -3
- package/dist/skill-pointer/content-scanner.d.ts +38 -0
- package/dist/skill-pointer/content-scanner.js +118 -0
- package/dist/skill-pointer/index.d.ts +7 -2
- package/dist/skill-pointer/index.js +14 -4
- package/dist/skill-pointer/pointer-generator.js +2 -0
- package/dist/skill-pointer/skill-patcher.d.ts +13 -0
- package/dist/skill-pointer/skill-patcher.js +99 -0
- package/package.json +1 -1
- package/skills_index.json +1956 -286
- 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,259 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retro-futurism
|
|
3
|
+
description: Web and App implementation guide for Retro Futurism. Trigger when user wants vintage future concepts, 1950s space age aesthetics, or atompunk vibes.
|
|
4
|
+
date_added: "2026-06-17"
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Retro Futurism
|
|
11
|
+
|
|
12
|
+
> "The future as imagined in the 1950s and 60s. Rockets, atoms, and sleek, aerodynamic chrome."
|
|
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. **Aerodynamic Shapes**: Lots of sweeping curves, teardrop shapes, and swooping lines. Nothing is a perfect square.
|
|
20
|
+
2. **Space-Age Motifs**: Stars, atoms, orbits, and fins (like a 1950s Cadillac).
|
|
21
|
+
3. **Mid-Century Colors mixed with Chrome**: Classic 50s pastels paired with shiny, reflective metals.
|
|
22
|
+
|
|
23
|
+
## Visual DNA
|
|
24
|
+
- **Colors**: Turquoise (`#40E0D0`), Atomic Tangerine (`#FF9966`), Mint Green (`#98FF98`), paired with Silver/Chrome and deep Space Black.
|
|
25
|
+
- **Typography**: Googie architecture fonts, bold cursive scripts, or clean mid-century geometric sans-serifs (like `Futura`).
|
|
26
|
+
- **Styling**: Sleek bezels, dramatic drop shadows, and offset overlapping shapes.
|
|
27
|
+
|
|
28
|
+
## Web Implementation
|
|
29
|
+
- **CSS Example**:
|
|
30
|
+
```css
|
|
31
|
+
body {
|
|
32
|
+
background-color: #FDF5E6; /* Old paper / cream */
|
|
33
|
+
color: #2F4F4F;
|
|
34
|
+
font-family: 'Futura', 'Trebuchet MS', sans-serif;
|
|
35
|
+
overflow-x: hidden;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Googie-style sweeping background element */
|
|
39
|
+
.retro-future-swoop {
|
|
40
|
+
position: absolute;
|
|
41
|
+
top: 0; right: -10%;
|
|
42
|
+
width: 120%; height: 300px;
|
|
43
|
+
background-color: #40E0D0; /* Turquoise */
|
|
44
|
+
border-radius: 0 0 50% 50%;
|
|
45
|
+
transform: rotate(-5deg);
|
|
46
|
+
z-index: -1;
|
|
47
|
+
border-bottom: 8px solid #FF9966; /* Atomic tangerine stripe */
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.atompunk-card {
|
|
51
|
+
background-color: #fff;
|
|
52
|
+
border: 4px solid #Silver;
|
|
53
|
+
border-radius: 40px 10px 40px 10px; /* Sweeping, aerodynamic corners */
|
|
54
|
+
padding: 32px;
|
|
55
|
+
box-shadow: 15px 15px 0px rgba(0,0,0,0.1);
|
|
56
|
+
position: relative;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Classic starburst motif */
|
|
60
|
+
.starburst {
|
|
61
|
+
position: absolute;
|
|
62
|
+
top: -20px; left: -20px;
|
|
63
|
+
width: 40px; height: 40px;
|
|
64
|
+
background-color: #FF9966;
|
|
65
|
+
clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## App Implementation
|
|
70
|
+
|
|
71
|
+
### SwiftUI
|
|
72
|
+
```swift
|
|
73
|
+
struct AtompunkShape: Shape {
|
|
74
|
+
func path(in rect: CGRect) -> Path {
|
|
75
|
+
var path = Path()
|
|
76
|
+
// Sweeping aerodynamic curves (large radius top-left, bottom-right)
|
|
77
|
+
path.addRoundedRect(
|
|
78
|
+
in: rect,
|
|
79
|
+
cornerSize: CGSize(width: 40, height: 40),
|
|
80
|
+
style: .continuous
|
|
81
|
+
)
|
|
82
|
+
// To be perfectly authentic, use Path to draw teardrop curves
|
|
83
|
+
return path
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
struct RetroFutureCard: View {
|
|
88
|
+
var body: some View {
|
|
89
|
+
VStack(alignment: .leading, spacing: 16) {
|
|
90
|
+
Text("ATOMPUNK")
|
|
91
|
+
.font(.custom("Futura", size: 28))
|
|
92
|
+
.fontWeight(.bold)
|
|
93
|
+
.foregroundColor(Color(red: 0.18, green: 0.31, blue: 0.31))
|
|
94
|
+
|
|
95
|
+
Text("Sleek chrome and sweeping curves.")
|
|
96
|
+
.font(.custom("Futura", size: 16))
|
|
97
|
+
}
|
|
98
|
+
.padding(32)
|
|
99
|
+
.background(Color.white)
|
|
100
|
+
// Asymmetric corners: large top-left/bottom-right, small top-right/bottom-left
|
|
101
|
+
.cornerRadius(40, corners: [.topLeft, .bottomRight])
|
|
102
|
+
.cornerRadius(10, corners: [.topRight, .bottomLeft])
|
|
103
|
+
.overlay(
|
|
104
|
+
// Chrome-like border
|
|
105
|
+
RoundedRectangle(cornerRadius: 10) // Simplified overlay for demo
|
|
106
|
+
.stroke(
|
|
107
|
+
LinearGradient(colors: [.gray, .white, .gray], startPoint: .top, endPoint: .bottom),
|
|
108
|
+
lineWidth: 4
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
.shadow(color: .black.opacity(0.1), radius: 0, x: 15, y: 15)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Note: Asymmetric corners require a custom ViewModifier in SwiftUI.
|
|
115
|
+
```
|
|
116
|
+
- Rely on asymmetrical corner radii to create the aerodynamic, teardrop aesthetic.
|
|
117
|
+
- Metallic/Chrome borders are faked by using a `LinearGradient` of grays and whites.
|
|
118
|
+
|
|
119
|
+
### Flutter
|
|
120
|
+
```dart
|
|
121
|
+
class RetroFutureCard extends StatelessWidget {
|
|
122
|
+
@override
|
|
123
|
+
Widget build(BuildContext context) {
|
|
124
|
+
return Container(
|
|
125
|
+
padding: const EdgeInsets.all(32),
|
|
126
|
+
decoration: BoxDecoration(
|
|
127
|
+
color: Colors.white,
|
|
128
|
+
// Asymmetric "aerodynamic" shape
|
|
129
|
+
borderRadius: const BorderRadius.only(
|
|
130
|
+
topLeft: Radius.circular(40),
|
|
131
|
+
bottomRight: Radius.circular(40),
|
|
132
|
+
topRight: Radius.circular(10),
|
|
133
|
+
bottomLeft: Radius.circular(10),
|
|
134
|
+
),
|
|
135
|
+
// Chrome border simulation
|
|
136
|
+
border: Border.all(
|
|
137
|
+
width: 4,
|
|
138
|
+
color: Colors.transparent, // Requires custom painter for gradient border
|
|
139
|
+
),
|
|
140
|
+
boxShadow: [
|
|
141
|
+
BoxShadow(
|
|
142
|
+
color: Colors.black.withOpacity(0.1),
|
|
143
|
+
offset: const Offset(15, 15),
|
|
144
|
+
blurRadius: 0, // Hard shadow
|
|
145
|
+
),
|
|
146
|
+
],
|
|
147
|
+
),
|
|
148
|
+
child: Column(
|
|
149
|
+
crossAxisAlignment: CrossAxisAlignment.start,
|
|
150
|
+
mainAxisSize: MainAxisSize.min,
|
|
151
|
+
children: const [
|
|
152
|
+
Text('ATOMPUNK',
|
|
153
|
+
style: TextStyle(fontFamily: 'Futura', fontSize: 28, fontWeight: FontWeight.bold, color: Color(0xFF2F4F4F))),
|
|
154
|
+
SizedBox(height: 16),
|
|
155
|
+
Text('Sleek chrome and sweeping curves.',
|
|
156
|
+
style: TextStyle(fontFamily: 'Futura', fontSize: 16)),
|
|
157
|
+
],
|
|
158
|
+
),
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
- Flutter handles asymmetric corners natively via `BorderRadius.only()`.
|
|
164
|
+
- Gradient borders (for chrome) require a `CustomPaint` or wrapping the container in another container with a gradient background and padding.
|
|
165
|
+
|
|
166
|
+
### React Native
|
|
167
|
+
```jsx
|
|
168
|
+
const RetroFutureCard = () => {
|
|
169
|
+
return (
|
|
170
|
+
<View style={{
|
|
171
|
+
backgroundColor: '#FFF',
|
|
172
|
+
padding: 32,
|
|
173
|
+
// Asymmetric aerodynamic corners
|
|
174
|
+
borderTopLeftRadius: 40,
|
|
175
|
+
borderBottomRightRadius: 40,
|
|
176
|
+
borderTopRightRadius: 10,
|
|
177
|
+
borderBottomLeftRadius: 10,
|
|
178
|
+
|
|
179
|
+
borderWidth: 4,
|
|
180
|
+
borderColor: '#C0C0C0', // Solid silver fallback for chrome
|
|
181
|
+
|
|
182
|
+
// Offset hard shadow
|
|
183
|
+
shadowColor: '#000',
|
|
184
|
+
shadowOffset: { width: 15, height: 15 },
|
|
185
|
+
shadowOpacity: 0.1,
|
|
186
|
+
shadowRadius: 0,
|
|
187
|
+
elevation: 5,
|
|
188
|
+
}}>
|
|
189
|
+
<Text style={{ fontFamily: 'Futura', fontSize: 28, fontWeight: 'bold', color: '#2F4F4F' }}>
|
|
190
|
+
ATOMPUNK
|
|
191
|
+
</Text>
|
|
192
|
+
<Text style={{ fontFamily: 'Futura', fontSize: 16, marginTop: 16 }}>
|
|
193
|
+
Sleek chrome and sweeping curves.
|
|
194
|
+
</Text>
|
|
195
|
+
</View>
|
|
196
|
+
);
|
|
197
|
+
};
|
|
198
|
+
```
|
|
199
|
+
- React Native natively supports `borderTopLeftRadius` style independent props, making the aerodynamic shapes trivial.
|
|
200
|
+
- Complex geometric backgrounds (like starbursts) should definitely be SVG components imported via `react-native-svg`.
|
|
201
|
+
|
|
202
|
+
### Jetpack Compose
|
|
203
|
+
```kotlin
|
|
204
|
+
@Composable
|
|
205
|
+
fun RetroFutureCard() {
|
|
206
|
+
Box(
|
|
207
|
+
modifier = Modifier
|
|
208
|
+
.padding(24.dp)
|
|
209
|
+
// Fake hard shadow
|
|
210
|
+
.drawBehind {
|
|
211
|
+
drawRoundRect(
|
|
212
|
+
color = Color.Black.copy(alpha = 0.1f),
|
|
213
|
+
topLeft = Offset(15.dp.toPx(), 15.dp.toPx()),
|
|
214
|
+
size = size,
|
|
215
|
+
cornerRadius = CornerRadius(40.dp.toPx(), 10.dp.toPx()) // Simplification
|
|
216
|
+
)
|
|
217
|
+
}
|
|
218
|
+
.background(
|
|
219
|
+
color = Color.White,
|
|
220
|
+
// Aerodynamic asymmetric corners
|
|
221
|
+
shape = RoundedCornerShape(
|
|
222
|
+
topStart = 40.dp,
|
|
223
|
+
topEnd = 10.dp,
|
|
224
|
+
bottomEnd = 40.dp,
|
|
225
|
+
bottomStart = 10.dp
|
|
226
|
+
)
|
|
227
|
+
)
|
|
228
|
+
.border(
|
|
229
|
+
width = 4.dp,
|
|
230
|
+
brush = Brush.verticalGradient(listOf(Color.LightGray, Color.White, Color.LightGray)),
|
|
231
|
+
shape = RoundedCornerShape(
|
|
232
|
+
topStart = 40.dp,
|
|
233
|
+
topEnd = 10.dp,
|
|
234
|
+
bottomEnd = 40.dp,
|
|
235
|
+
bottomStart = 10.dp
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
.padding(32.dp)
|
|
239
|
+
) {
|
|
240
|
+
Column {
|
|
241
|
+
Text("ATOMPUNK",
|
|
242
|
+
fontFamily = FontFamily.SansSerif, // Replace with Futura
|
|
243
|
+
fontSize = 28.sp, fontWeight = FontWeight.Bold, color = Color(0xFF2F4F4F))
|
|
244
|
+
Spacer(Modifier.height(16.dp))
|
|
245
|
+
Text("Sleek chrome and sweeping curves.", fontSize = 16.sp)
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
- Use `RoundedCornerShape(topStart, topEnd, bottomEnd, bottomStart)` to create the atompunk aesthetic.
|
|
251
|
+
- The `Modifier.border` takes a `Brush` natively, making the metallic chrome gradient incredibly easy to achieve compared to other frameworks.
|
|
252
|
+
|
|
253
|
+
## Do's and Don'ts
|
|
254
|
+
- **DO**: Use strict `Futura` or `Century Gothic` for a very authentic mid-century feel.
|
|
255
|
+
- **DON'T**: Make the UI look dirty or distressed (that's standard retro or steampunk). Retro-futurism is clean, optimistic, and shiny.
|
|
256
|
+
|
|
257
|
+
## Limitations
|
|
258
|
+
- This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
|
|
259
|
+
- Ensure appropriate contrast ratios and responsive behaviors are verified separately.
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sci-fi-interface
|
|
3
|
+
description: Web and App implementation guide for Sci-Fi Interface Design. Trigger when user wants HUDs, spacecraft dashboards, or tactical military readouts.
|
|
4
|
+
date_added: "2026-06-17"
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Sci-Fi Interface Design (HUD)
|
|
11
|
+
|
|
12
|
+
> "Heads-Up Display. Tactical, precise, and highly analytical."
|
|
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. **Wireframe and Outlines**: Interfaces are built almost entirely out of thin strokes rather than solid filled boxes.
|
|
20
|
+
2. **Circular Arrays & Radars**: Heavy use of concentric circles, radar sweeps, and curved progress bars.
|
|
21
|
+
3. **Monochrome + Warning**: Often entirely monochromatic (just blue, or just green) with a secondary color (red) used exclusively for alerts.
|
|
22
|
+
|
|
23
|
+
## Visual DNA
|
|
24
|
+
- **Colors**: Midnight background. UI is pure Cyan, Emerald Green, or Amber (like classic monochrome monitors). **Minimalist Slate** works if made dark.
|
|
25
|
+
- **Typography**: Strict, technical monospace fonts (`Share Tech Mono`, `VT323`, `Space Mono`). All caps.
|
|
26
|
+
- **Styling**: Tiny UI chroming details (target brackets `[ ]`, framing lines, precise pixel coordinates).
|
|
27
|
+
|
|
28
|
+
## Web Implementation
|
|
29
|
+
- Heavy use of SVG for circular dials, and CSS borders for the layout.
|
|
30
|
+
- **CSS Example**:
|
|
31
|
+
```css
|
|
32
|
+
body {
|
|
33
|
+
background-color: #000b18; /* Deep space navy */
|
|
34
|
+
color: #4df; /* Holographic cyan */
|
|
35
|
+
font-family: 'Share Tech Mono', monospace;
|
|
36
|
+
text-transform: uppercase;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* The HUD Frame */
|
|
40
|
+
.hud-container {
|
|
41
|
+
border: 1px solid rgba(68, 221, 255, 0.3);
|
|
42
|
+
position: relative;
|
|
43
|
+
padding: 30px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Corner brackets */
|
|
47
|
+
.hud-container::before {
|
|
48
|
+
content: '';
|
|
49
|
+
position: absolute;
|
|
50
|
+
top: -2px; left: -2px;
|
|
51
|
+
width: 20px; height: 20px;
|
|
52
|
+
border-top: 2px solid #4df;
|
|
53
|
+
border-left: 2px solid #4df;
|
|
54
|
+
}
|
|
55
|
+
.hud-container::after {
|
|
56
|
+
content: '';
|
|
57
|
+
position: absolute;
|
|
58
|
+
bottom: -2px; right: -2px;
|
|
59
|
+
width: 20px; height: 20px;
|
|
60
|
+
border-bottom: 2px solid #4df;
|
|
61
|
+
border-right: 2px solid #4df;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.hud-value {
|
|
65
|
+
font-size: 3rem;
|
|
66
|
+
text-shadow: 0 0 10px rgba(68, 221, 255, 0.8);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.hud-warning {
|
|
70
|
+
color: #ff3333;
|
|
71
|
+
text-shadow: 0 0 10px rgba(255, 51, 51, 0.8);
|
|
72
|
+
animation: blink 1s step-end infinite;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@keyframes blink { 50% { opacity: 0; } }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## App Implementation
|
|
79
|
+
|
|
80
|
+
### SwiftUI
|
|
81
|
+
```swift
|
|
82
|
+
struct SciFiHUDView: View {
|
|
83
|
+
@State private var bootUp = false
|
|
84
|
+
|
|
85
|
+
var body: some View {
|
|
86
|
+
ZStack {
|
|
87
|
+
Color(hex: "000b18").ignoresSafeArea() // Deep space navy
|
|
88
|
+
|
|
89
|
+
VStack {
|
|
90
|
+
// Circular Radar/Dial
|
|
91
|
+
ZStack {
|
|
92
|
+
Circle()
|
|
93
|
+
.stroke(Color(hex: "4df").opacity(0.3), lineWidth: 1)
|
|
94
|
+
|
|
95
|
+
Circle()
|
|
96
|
+
.trim(from: 0.0, to: bootUp ? 0.75 : 0.0)
|
|
97
|
+
.stroke(Color(hex: "4df"), style: StrokeStyle(lineWidth: 4, lineCap: .round))
|
|
98
|
+
.rotationEffect(.degrees(-90))
|
|
99
|
+
|
|
100
|
+
Text("SYS.OK")
|
|
101
|
+
.font(.custom("Space Mono", size: 24))
|
|
102
|
+
.foregroundColor(Color(hex: "4df"))
|
|
103
|
+
.shadow(color: Color(hex: "4df"), radius: 5)
|
|
104
|
+
}
|
|
105
|
+
.frame(width: 200, height: 200)
|
|
106
|
+
.padding(.bottom, 40)
|
|
107
|
+
|
|
108
|
+
// HUD Data Frame
|
|
109
|
+
HStack {
|
|
110
|
+
Text("COORD: 45.22, 12.8")
|
|
111
|
+
Spacer()
|
|
112
|
+
Text("[ LOCK ]")
|
|
113
|
+
}
|
|
114
|
+
.font(.custom("Space Mono", size: 16))
|
|
115
|
+
.foregroundColor(Color(hex: "4df"))
|
|
116
|
+
.padding()
|
|
117
|
+
.border(Color(hex: "4df").opacity(0.5), width: 1)
|
|
118
|
+
.overlay(
|
|
119
|
+
// Corner bracket accents
|
|
120
|
+
Path { path in
|
|
121
|
+
path.move(to: CGPoint(x: 0, y: 15)); path.addLine(to: CGPoint(x: 0, y: 0)); path.addLine(to: CGPoint(x: 15, y: 0))
|
|
122
|
+
path.move(to: CGPoint(x: 300, y: 15)); path.addLine(to: CGPoint(x: 300, y: 0)); path.addLine(to: CGPoint(x: 285, y: 0))
|
|
123
|
+
}
|
|
124
|
+
.stroke(Color(hex: "4df"), lineWidth: 2)
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
.padding()
|
|
128
|
+
}
|
|
129
|
+
.onAppear {
|
|
130
|
+
withAnimation(.easeInOut(duration: 2.0)) { bootUp = true }
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
- SwiftUI is uniquely fantastic for Sci-Fi HUDs. `Circle().trim(from: to:)` lets you build complex sweeping circular progress rings.
|
|
136
|
+
- Use `Path` overlays to draw the exact 90-degree corner brackets (`[ ]`) that define the HUD look.
|
|
137
|
+
|
|
138
|
+
### Flutter
|
|
139
|
+
```dart
|
|
140
|
+
class SciFiHUDScreen extends StatefulWidget {
|
|
141
|
+
@override
|
|
142
|
+
State<SciFiHUDScreen> createState() => _SciFiHUDScreenState();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
class _SciFiHUDScreenState extends State<SciFiHUDScreen> with SingleTickerProviderStateMixin {
|
|
146
|
+
late AnimationController _ctrl;
|
|
147
|
+
|
|
148
|
+
@override
|
|
149
|
+
void initState() {
|
|
150
|
+
super.initState();
|
|
151
|
+
_ctrl = AnimationController(vsync: this, duration: const Duration(seconds: 2))..forward();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@override
|
|
155
|
+
Widget build(BuildContext context) {
|
|
156
|
+
return Scaffold(
|
|
157
|
+
backgroundColor: const Color(0xFF000B18),
|
|
158
|
+
body: Center(
|
|
159
|
+
child: Column(
|
|
160
|
+
mainAxisAlignment: MainAxisAlignment.center,
|
|
161
|
+
children: [
|
|
162
|
+
// Circular Radar
|
|
163
|
+
SizedBox(
|
|
164
|
+
width: 200, height: 200,
|
|
165
|
+
child: Stack(
|
|
166
|
+
fit: StackFit.expand,
|
|
167
|
+
children: [
|
|
168
|
+
CircularProgressIndicator(value: 1.0, strokeWidth: 1, color: const Color(0xFF44DDFF).withOpacity(0.3)),
|
|
169
|
+
AnimatedBuilder(
|
|
170
|
+
animation: _ctrl,
|
|
171
|
+
builder: (context, _) => CircularProgressIndicator(
|
|
172
|
+
value: _ctrl.value * 0.75, // 75% full
|
|
173
|
+
strokeWidth: 4,
|
|
174
|
+
color: const Color(0xFF44DDFF),
|
|
175
|
+
),
|
|
176
|
+
),
|
|
177
|
+
const Center(
|
|
178
|
+
child: Text('SYS.OK', style: TextStyle(fontFamily: 'SpaceMono', color: Color(0xFF44DDFF), fontSize: 24, shadows: [Shadow(color: Color(0xFF44DDFF), blurRadius: 5)])),
|
|
179
|
+
)
|
|
180
|
+
],
|
|
181
|
+
),
|
|
182
|
+
),
|
|
183
|
+
const SizedBox(height: 40),
|
|
184
|
+
|
|
185
|
+
// HUD Data Frame (requires CustomPaint for true corner brackets)
|
|
186
|
+
Container(
|
|
187
|
+
width: 300,
|
|
188
|
+
padding: const EdgeInsets.all(16),
|
|
189
|
+
decoration: BoxDecoration(border: Border.all(color: const Color(0xFF44DDFF).withOpacity(0.5))),
|
|
190
|
+
child: const Row(
|
|
191
|
+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
192
|
+
children: [
|
|
193
|
+
Text('COORD: 45.22, 12.8', style: TextStyle(fontFamily: 'SpaceMono', color: Color(0xFF44DDFF))),
|
|
194
|
+
Text('[ LOCK ]', style: TextStyle(fontFamily: 'SpaceMono', color: Color(0xFF44DDFF))),
|
|
195
|
+
],
|
|
196
|
+
),
|
|
197
|
+
)
|
|
198
|
+
],
|
|
199
|
+
),
|
|
200
|
+
),
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
- `CircularProgressIndicator` is an easy hack for circular HUD rings, but for true Sci-Fi interfaces in Flutter, you should build a `CustomPainter` to draw concentric stroked circles and arcs.
|
|
206
|
+
- Heavy use of monospace fonts and pure cyan (`#44DDFF`).
|
|
207
|
+
|
|
208
|
+
### React Native
|
|
209
|
+
```jsx
|
|
210
|
+
// Requires react-native-svg
|
|
211
|
+
import Svg, { Circle, Path } from 'react-native-svg';
|
|
212
|
+
|
|
213
|
+
const SciFiHUDScreen = () => {
|
|
214
|
+
return (
|
|
215
|
+
<View style={{ flex: 1, backgroundColor: '#000B18', justifyContent: 'center', alignItems: 'center' }}>
|
|
216
|
+
|
|
217
|
+
{/* Circular Radar */}
|
|
218
|
+
<View style={{ width: 200, height: 200, justifyContent: 'center', alignItems: 'center', marginBottom: 40 }}>
|
|
219
|
+
<Svg height="200" width="200" style={{ position: 'absolute' }}>
|
|
220
|
+
<Circle cx="100" cy="100" r="90" stroke="rgba(68, 221, 255, 0.3)" strokeWidth="1" fill="none" />
|
|
221
|
+
<Circle cx="100" cy="100" r="90" stroke="#4df" strokeWidth="4" strokeDasharray="565" strokeDashoffset="140" fill="none" />
|
|
222
|
+
</Svg>
|
|
223
|
+
<Text style={{ fontFamily: 'monospace', color: '#4df', fontSize: 24, textShadowColor: '#4df', textShadowRadius: 5 }}>
|
|
224
|
+
SYS.OK
|
|
225
|
+
</Text>
|
|
226
|
+
</View>
|
|
227
|
+
|
|
228
|
+
{/* HUD Frame */}
|
|
229
|
+
<View style={{
|
|
230
|
+
width: 300, padding: 16, flexDirection: 'row', justifyContent: 'space-between',
|
|
231
|
+
borderColor: 'rgba(68, 221, 255, 0.5)', borderWidth: 1
|
|
232
|
+
}}>
|
|
233
|
+
<Text style={{ fontFamily: 'monospace', color: '#4df' }}>COORD: 45.22, 12.8</Text>
|
|
234
|
+
<Text style={{ fontFamily: 'monospace', color: '#4df' }}>[ LOCK ]</Text>
|
|
235
|
+
|
|
236
|
+
{/* Pseudo Corner Brackets using absolute views */}
|
|
237
|
+
<View style={{ position: 'absolute', top: -2, left: -2, width: 15, height: 15, borderTopWidth: 2, borderLeftWidth: 2, borderColor: '#4df' }} />
|
|
238
|
+
<View style={{ position: 'absolute', bottom: -2, right: -2, width: 15, height: 15, borderBottomWidth: 2, borderRightWidth: 2, borderColor: '#4df' }} />
|
|
239
|
+
</View>
|
|
240
|
+
|
|
241
|
+
</View>
|
|
242
|
+
);
|
|
243
|
+
};
|
|
244
|
+
```
|
|
245
|
+
- You absolutely must use `react-native-svg` to draw circular HUD dials. Use `strokeDasharray` and `strokeDashoffset` on the `<Circle>` to draw arcs.
|
|
246
|
+
- The corner brackets are built easily by absolutely positioning small `View`s with 2 active borders over the corners of a container.
|
|
247
|
+
|
|
248
|
+
### Jetpack Compose
|
|
249
|
+
```kotlin
|
|
250
|
+
@Composable
|
|
251
|
+
fun SciFiHUDScreen() {
|
|
252
|
+
// Animation for boot up
|
|
253
|
+
val transition = rememberInfiniteTransition()
|
|
254
|
+
val sweep by transition.animateFloat(initialValue = 0f, targetValue = 270f, animationSpec = infiniteRepeatable(tween(2000), RepeatMode.Restart))
|
|
255
|
+
|
|
256
|
+
Column(
|
|
257
|
+
modifier = Modifier.fillMaxSize().background(Color(0xFF000B18)),
|
|
258
|
+
horizontalAlignment = Alignment.CenterHorizontally,
|
|
259
|
+
verticalArrangement = Arrangement.Center
|
|
260
|
+
) {
|
|
261
|
+
// Circular Radar
|
|
262
|
+
Box(contentAlignment = Alignment.Center, modifier = Modifier.size(200.dp)) {
|
|
263
|
+
Canvas(modifier = Modifier.fillMaxSize()) {
|
|
264
|
+
drawCircle(color = Color(0xFF44DDFF).copy(alpha = 0.3f), style = Stroke(width = 2f))
|
|
265
|
+
drawArc(
|
|
266
|
+
color = Color(0xFF44DDFF),
|
|
267
|
+
startAngle = -90f,
|
|
268
|
+
sweepAngle = sweep,
|
|
269
|
+
useCenter = false,
|
|
270
|
+
style = Stroke(width = 8f, cap = StrokeCap.Round)
|
|
271
|
+
)
|
|
272
|
+
}
|
|
273
|
+
Text("SYS.OK", color = Color(0xFF44DDFF), fontFamily = FontFamily.Monospace, fontSize = 24.sp)
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
Spacer(Modifier.height(40.dp))
|
|
277
|
+
|
|
278
|
+
// HUD Frame
|
|
279
|
+
Box(modifier = Modifier.width(300.dp)) {
|
|
280
|
+
Row(
|
|
281
|
+
modifier = Modifier.fillMaxWidth().border(1.dp, Color(0xFF44DDFF).copy(alpha = 0.5f)).padding(16.dp),
|
|
282
|
+
horizontalArrangement = Arrangement.SpaceBetween
|
|
283
|
+
) {
|
|
284
|
+
Text("COORD: 45.22, 12.8", color = Color(0xFF44DDFF), fontFamily = FontFamily.Monospace)
|
|
285
|
+
Text("[ LOCK ]", color = Color(0xFF44DDFF), fontFamily = FontFamily.Monospace)
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// Corner brackets via Canvas
|
|
289
|
+
Canvas(modifier = Modifier.fillMaxSize()) {
|
|
290
|
+
val path = Path().apply {
|
|
291
|
+
moveTo(0f, 40f); lineTo(0f, 0f); lineTo(40f, 0f) // Top Left
|
|
292
|
+
moveTo(size.width, size.height - 40f); lineTo(size.width, size.height); lineTo(size.width - 40f, size.height) // Bottom Right
|
|
293
|
+
}
|
|
294
|
+
drawPath(path, color = Color(0xFF44DDFF), style = Stroke(width = 4f))
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
```
|
|
300
|
+
- Jetpack Compose's `Canvas` is incredibly powerful here. Use `drawArc` for the circular HUD rings.
|
|
301
|
+
- Draw the corner brackets on a `Canvas` overlaying the Box using `Path().apply { moveTo... lineTo... }`.
|
|
302
|
+
|
|
303
|
+
## Do's and Don'ts
|
|
304
|
+
- **DO**: Animate elements entering the screen as if they are 'booting up' or 'calibrating' (drawing lines from 0 to 100%).
|
|
305
|
+
- **DON'T**: Use drop shadows. Light in a HUD is emitted, not blocked. Use `text-shadow` for glows instead.
|
|
306
|
+
|
|
307
|
+
## Limitations
|
|
308
|
+
- This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
|
|
309
|
+
- Ensure appropriate contrast ratios and responsive behaviors are verified separately.
|