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,328 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: editorial-design
|
|
3
|
+
description: Web and App implementation guide for Editorial Design. Trigger when user wants a magazine-inspired layout, large headlines, and elegant typography pairing.
|
|
4
|
+
date_added: "2026-06-17"
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Editorial Design
|
|
11
|
+
|
|
12
|
+
> "The digital magazine. Sophisticated typography pairings and deliberate, elegant pacing."
|
|
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. **Serif & Sans-Serif Pairing**: The hallmark of editorial design. A beautiful, high-contrast serif for headings, paired with a clean sans-serif for body copy.
|
|
20
|
+
2. **Large Drop Caps & Pull Quotes**: Typographic flourishes that guide the eye and break up long blocks of text.
|
|
21
|
+
3. **Columnar Layouts**: Content flows in distinct columns, often with fine lines (rules) separating them.
|
|
22
|
+
|
|
23
|
+
## Visual DNA
|
|
24
|
+
- **Colors**: **Modern Editorial** or **Yacht Club**. Warm, paper-like backgrounds with deep, ink-like blacks or navy blues.
|
|
25
|
+
- **Typography**:
|
|
26
|
+
- Headlines: `Playfair Display`, `Merriweather`, `Bodoni`.
|
|
27
|
+
- Body: `Lato`, `Open Sans`, `Source Sans Pro`.
|
|
28
|
+
- **Borders**: Thin, elegant horizontal lines (hairlines) used to separate sections.
|
|
29
|
+
|
|
30
|
+
## Web Implementation
|
|
31
|
+
- **CSS Example**:
|
|
32
|
+
```css
|
|
33
|
+
body {
|
|
34
|
+
background-color: #F9F9F9; /* Paper white */
|
|
35
|
+
color: #121212; /* Ink black */
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Typography Pairing */
|
|
39
|
+
.editorial-headline {
|
|
40
|
+
font-family: 'Playfair Display', serif;
|
|
41
|
+
font-size: 4rem;
|
|
42
|
+
font-weight: 700;
|
|
43
|
+
font-style: italic;
|
|
44
|
+
margin-bottom: 24px;
|
|
45
|
+
border-bottom: 1px solid #121212;
|
|
46
|
+
padding-bottom: 24px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.editorial-body {
|
|
50
|
+
font-family: 'Lato', sans-serif;
|
|
51
|
+
font-size: 1.1rem;
|
|
52
|
+
line-height: 1.8;
|
|
53
|
+
column-count: 2; /* Magazine columns */
|
|
54
|
+
column-gap: 40px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Drop Cap */
|
|
58
|
+
.editorial-body::first-letter {
|
|
59
|
+
font-family: 'Playfair Display', serif;
|
|
60
|
+
font-size: 4rem;
|
|
61
|
+
float: left;
|
|
62
|
+
line-height: 0.8;
|
|
63
|
+
padding-right: 12px;
|
|
64
|
+
color: var(--cta-highlight);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.pull-quote {
|
|
68
|
+
font-family: 'Playfair Display', serif;
|
|
69
|
+
font-size: 2rem;
|
|
70
|
+
text-align: center;
|
|
71
|
+
margin: 48px 0;
|
|
72
|
+
padding: 24px 0;
|
|
73
|
+
border-top: 2px solid #121212;
|
|
74
|
+
border-bottom: 2px solid #121212;
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## App Implementation
|
|
79
|
+
|
|
80
|
+
### SwiftUI
|
|
81
|
+
```swift
|
|
82
|
+
struct EditorialView: View {
|
|
83
|
+
var body: some View {
|
|
84
|
+
ScrollView {
|
|
85
|
+
VStack(alignment: .leading, spacing: 24) {
|
|
86
|
+
// Editorial Headline
|
|
87
|
+
Text("The Digital\nMagazine")
|
|
88
|
+
.font(.custom("Playfair Display", size: 48))
|
|
89
|
+
.fontWeight(.bold)
|
|
90
|
+
.italic()
|
|
91
|
+
.foregroundColor(Color(white: 0.05))
|
|
92
|
+
.padding(.bottom, 16)
|
|
93
|
+
|
|
94
|
+
Divider().background(Color.black)
|
|
95
|
+
|
|
96
|
+
// Drop Cap and Body
|
|
97
|
+
HStack(alignment: .top, spacing: 8) {
|
|
98
|
+
Text("I")
|
|
99
|
+
.font(.custom("Playfair Display", size: 64))
|
|
100
|
+
.foregroundColor(Color(red: 0.7, green: 0.2, blue: 0.2))
|
|
101
|
+
// Negative padding to pull the body text tighter to the drop cap
|
|
102
|
+
.padding(.top, -10)
|
|
103
|
+
|
|
104
|
+
Text("n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif...")
|
|
105
|
+
.font(.custom("Lato", size: 16))
|
|
106
|
+
.lineSpacing(6)
|
|
107
|
+
.foregroundColor(Color(white: 0.1))
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Pull Quote
|
|
111
|
+
VStack {
|
|
112
|
+
Divider().background(Color.black)
|
|
113
|
+
Text("“Sophistication is in the spacing.”")
|
|
114
|
+
.font(.custom("Playfair Display", size: 28))
|
|
115
|
+
.italic()
|
|
116
|
+
.multilineTextAlignment(.center)
|
|
117
|
+
.padding(.vertical, 24)
|
|
118
|
+
Divider().background(Color.black)
|
|
119
|
+
}
|
|
120
|
+
.padding(.vertical, 24)
|
|
121
|
+
}
|
|
122
|
+
.padding(24)
|
|
123
|
+
}
|
|
124
|
+
.background(Color(red: 0.98, green: 0.98, blue: 0.96)) // Warm paper white
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
- Extensive use of `.font(.custom())` is mandatory. System fonts look too app-like.
|
|
129
|
+
- Use `Divider()` to create the hairlines that are so common in print design.
|
|
130
|
+
- A fake "drop cap" can be achieved with an `HStack` aligning top.
|
|
131
|
+
|
|
132
|
+
### Flutter
|
|
133
|
+
```dart
|
|
134
|
+
class EditorialScreen extends StatelessWidget {
|
|
135
|
+
@override
|
|
136
|
+
Widget build(BuildContext context) {
|
|
137
|
+
return Scaffold(
|
|
138
|
+
backgroundColor: const Color(0xFFF9F9F8), // Paper background
|
|
139
|
+
body: SingleChildScrollView(
|
|
140
|
+
padding: const EdgeInsets.all(24.0),
|
|
141
|
+
child: Column(
|
|
142
|
+
crossAxisAlignment: CrossAxisAlignment.start,
|
|
143
|
+
children: [
|
|
144
|
+
const SizedBox(height: 40),
|
|
145
|
+
const Text(
|
|
146
|
+
'The Digital\nMagazine',
|
|
147
|
+
style: TextStyle(fontFamily: 'PlayfairDisplay', fontSize: 48, fontWeight: FontWeight.bold, fontStyle: FontStyle.italic, height: 1.1),
|
|
148
|
+
),
|
|
149
|
+
const SizedBox(height: 24),
|
|
150
|
+
const Divider(color: Colors.black, thickness: 1),
|
|
151
|
+
const SizedBox(height: 24),
|
|
152
|
+
// Body with Drop Cap simulation using RichText is complex,
|
|
153
|
+
// a simpler Row approach works well enough for mobile.
|
|
154
|
+
Row(
|
|
155
|
+
crossAxisAlignment: CrossAxisAlignment.start,
|
|
156
|
+
children: [
|
|
157
|
+
const Text(
|
|
158
|
+
'I',
|
|
159
|
+
style: TextStyle(fontFamily: 'PlayfairDisplay', fontSize: 72, height: 1.0, color: Color(0xFF8B0000)),
|
|
160
|
+
),
|
|
161
|
+
const SizedBox(width: 8),
|
|
162
|
+
Expanded(
|
|
163
|
+
child: const Text(
|
|
164
|
+
'n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif brings humanity back to the screen.',
|
|
165
|
+
style: TextStyle(fontFamily: 'Lato', fontSize: 16, height: 1.6, color: Colors.black87),
|
|
166
|
+
),
|
|
167
|
+
),
|
|
168
|
+
],
|
|
169
|
+
),
|
|
170
|
+
const SizedBox(height: 48),
|
|
171
|
+
// Pull Quote
|
|
172
|
+
const Divider(color: Colors.black, thickness: 2),
|
|
173
|
+
const Padding(
|
|
174
|
+
padding: EdgeInsets.symmetric(vertical: 32.0),
|
|
175
|
+
child: Center(
|
|
176
|
+
child: Text(
|
|
177
|
+
'“Sophistication is in the spacing.”',
|
|
178
|
+
textAlign: TextAlign.center,
|
|
179
|
+
style: TextStyle(fontFamily: 'PlayfairDisplay', fontSize: 28, fontStyle: FontStyle.italic),
|
|
180
|
+
),
|
|
181
|
+
),
|
|
182
|
+
),
|
|
183
|
+
const Divider(color: Colors.black, thickness: 2),
|
|
184
|
+
],
|
|
185
|
+
),
|
|
186
|
+
),
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
- Set `height` parameters in `TextStyle` (line-height). `1.6` is a good editorial body height.
|
|
192
|
+
- Use `Divider` with `thickness: 2` for the heavy rules around pull quotes.
|
|
193
|
+
|
|
194
|
+
### React Native
|
|
195
|
+
```jsx
|
|
196
|
+
const EditorialScreen = () => {
|
|
197
|
+
return (
|
|
198
|
+
<ScrollView style={{ flex: 1, backgroundColor: '#F9F9F8', padding: 24 }}>
|
|
199
|
+
<Text style={{
|
|
200
|
+
fontFamily: 'PlayfairDisplay-BoldItalic',
|
|
201
|
+
fontSize: 48,
|
|
202
|
+
color: '#121212',
|
|
203
|
+
lineHeight: 52,
|
|
204
|
+
marginTop: 40,
|
|
205
|
+
marginBottom: 24
|
|
206
|
+
}}>
|
|
207
|
+
The Digital{'\n'}Magazine
|
|
208
|
+
</Text>
|
|
209
|
+
|
|
210
|
+
<View style={{ height: 1, backgroundColor: '#121212', marginBottom: 24 }} />
|
|
211
|
+
|
|
212
|
+
<View style={{ flexDirection: 'row' }}>
|
|
213
|
+
<Text style={{
|
|
214
|
+
fontFamily: 'PlayfairDisplay-Bold',
|
|
215
|
+
fontSize: 72,
|
|
216
|
+
color: '#8B0000',
|
|
217
|
+
lineHeight: 80,
|
|
218
|
+
marginTop: -10, // Adjust alignment
|
|
219
|
+
marginRight: 8
|
|
220
|
+
}}>
|
|
221
|
+
I
|
|
222
|
+
</Text>
|
|
223
|
+
<Text style={{
|
|
224
|
+
flex: 1,
|
|
225
|
+
fontFamily: 'Lato-Regular',
|
|
226
|
+
fontSize: 16,
|
|
227
|
+
lineHeight: 26,
|
|
228
|
+
color: '#333'
|
|
229
|
+
}}>
|
|
230
|
+
n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif brings humanity.
|
|
231
|
+
</Text>
|
|
232
|
+
</View>
|
|
233
|
+
|
|
234
|
+
{/* Pull Quote */}
|
|
235
|
+
<View style={{
|
|
236
|
+
borderTopWidth: 2, borderBottomWidth: 2, borderColor: '#121212',
|
|
237
|
+
marginTop: 48, paddingVertical: 32
|
|
238
|
+
}}>
|
|
239
|
+
<Text style={{
|
|
240
|
+
fontFamily: 'PlayfairDisplay-Italic',
|
|
241
|
+
fontSize: 28,
|
|
242
|
+
textAlign: 'center',
|
|
243
|
+
color: '#121212'
|
|
244
|
+
}}>
|
|
245
|
+
“Sophistication is in the spacing.”
|
|
246
|
+
</Text>
|
|
247
|
+
</View>
|
|
248
|
+
</ScrollView>
|
|
249
|
+
);
|
|
250
|
+
};
|
|
251
|
+
```
|
|
252
|
+
- Line heights and fonts are everything. You must have custom fonts linked in your React Native project for this style to work.
|
|
253
|
+
- Use `borderTopWidth` and `borderBottomWidth` on a container `View` to create the pull quote styling.
|
|
254
|
+
|
|
255
|
+
### Jetpack Compose
|
|
256
|
+
```kotlin
|
|
257
|
+
@Composable
|
|
258
|
+
fun EditorialScreen() {
|
|
259
|
+
// Assuming Playfair and Lato are defined in FontFamily
|
|
260
|
+
val playfair = FontFamily.Serif
|
|
261
|
+
val lato = FontFamily.SansSerif
|
|
262
|
+
|
|
263
|
+
Column(
|
|
264
|
+
modifier = Modifier
|
|
265
|
+
.fillMaxSize()
|
|
266
|
+
.background(Color(0xFFF9F9F8))
|
|
267
|
+
.verticalScroll(rememberScrollState())
|
|
268
|
+
.padding(24.dp)
|
|
269
|
+
) {
|
|
270
|
+
Spacer(Modifier.height(40.dp))
|
|
271
|
+
|
|
272
|
+
Text(
|
|
273
|
+
text = "The Digital\nMagazine",
|
|
274
|
+
fontFamily = playfair,
|
|
275
|
+
fontSize = 48.sp,
|
|
276
|
+
fontWeight = FontWeight.Bold,
|
|
277
|
+
fontStyle = FontStyle.Italic,
|
|
278
|
+
lineHeight = 52.sp,
|
|
279
|
+
color = Color(0xFF121212)
|
|
280
|
+
)
|
|
281
|
+
|
|
282
|
+
Spacer(Modifier.height(24.dp))
|
|
283
|
+
Divider(color = Color(0xFF121212), thickness = 1.dp)
|
|
284
|
+
Spacer(Modifier.height(24.dp))
|
|
285
|
+
|
|
286
|
+
Row(verticalAlignment = Alignment.Top) {
|
|
287
|
+
Text(
|
|
288
|
+
text = "I",
|
|
289
|
+
fontFamily = playfair,
|
|
290
|
+
fontSize = 72.sp,
|
|
291
|
+
color = Color(0xFF8B0000),
|
|
292
|
+
modifier = Modifier.offset(y = (-10).dp).padding(end = 8.dp)
|
|
293
|
+
)
|
|
294
|
+
Text(
|
|
295
|
+
text = "n an era of sterile, flat interfaces, the return to elegant typography feels like a breath of fresh air. The interplay of serif and sans-serif.",
|
|
296
|
+
fontFamily = lato,
|
|
297
|
+
fontSize = 16.sp,
|
|
298
|
+
lineHeight = 26.sp,
|
|
299
|
+
color = Color(0xFF333333)
|
|
300
|
+
)
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
Spacer(Modifier.height(48.dp))
|
|
304
|
+
|
|
305
|
+
// Pull Quote
|
|
306
|
+
Divider(color = Color(0xFF121212), thickness = 2.dp)
|
|
307
|
+
Text(
|
|
308
|
+
text = "“Sophistication is in the spacing.”",
|
|
309
|
+
fontFamily = playfair,
|
|
310
|
+
fontSize = 28.sp,
|
|
311
|
+
fontStyle = FontStyle.Italic,
|
|
312
|
+
textAlign = TextAlign.Center,
|
|
313
|
+
modifier = Modifier.fillMaxWidth().padding(vertical = 32.dp)
|
|
314
|
+
)
|
|
315
|
+
Divider(color = Color(0xFF121212), thickness = 2.dp)
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
- Compose handles custom fonts and line heights (`26.sp`) very elegantly.
|
|
320
|
+
- Use `Divider()` for the hairlines. Adjust thickness as needed for headers vs pull quotes.
|
|
321
|
+
|
|
322
|
+
## Do's and Don'ts
|
|
323
|
+
- **DO**: Treat the interface like a printed page. Margins should be generous.
|
|
324
|
+
- **DON'T**: Clutter the UI with typical app components like floating action buttons or heavy navigation bars. Keep it clean.
|
|
325
|
+
|
|
326
|
+
## Limitations
|
|
327
|
+
- This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
|
|
328
|
+
- Ensure appropriate contrast ratios and responsive behaviors are verified separately.
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flat-design
|
|
3
|
+
description: Web and App implementation guide for the Flat Design style. Trigger when the user wants no shadows, simple shapes, and bold colors.
|
|
4
|
+
date_added: "2026-06-17"
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Flat Design
|
|
11
|
+
|
|
12
|
+
> "Digital surfaces should look digital. Embrace the 2D plane."
|
|
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. **Zero Depth**: Absolutely no drop shadows, bevels, gradients, or 3D effects. Everything sits on the same z-axis.
|
|
20
|
+
2. **Sharp & Simple Geometries**: Perfect circles, sharp rectangles. No complex organic shapes.
|
|
21
|
+
3. **High Contrast Solid Colors**: Rely on stark contrast between solid blocks of color to delineate space.
|
|
22
|
+
|
|
23
|
+
## Visual DNA
|
|
24
|
+
- **Colors**: Pairs well with **Industrial Chic** or **Modern Editorial**. Avoid gradients entirely.
|
|
25
|
+
- **Typography**: Strong, highly legible sans-serifs (e.g., `Roboto`, `Open Sans`). Keep it medium to bold.
|
|
26
|
+
- **Icons**: Solid, monochromatic, glyph-style icons without intricate details.
|
|
27
|
+
|
|
28
|
+
## Web Implementation
|
|
29
|
+
- Rely entirely on background colors and borders for structure.
|
|
30
|
+
- **CSS Example**:
|
|
31
|
+
```css
|
|
32
|
+
.flat-card {
|
|
33
|
+
background-color: var(--secondary-base);
|
|
34
|
+
border: 2px solid var(--primary-text);
|
|
35
|
+
border-radius: 0; /* Sharp corners preferred */
|
|
36
|
+
padding: 32px;
|
|
37
|
+
/* NO box-shadow */
|
|
38
|
+
}
|
|
39
|
+
.flat-btn {
|
|
40
|
+
background-color: var(--cta-highlight);
|
|
41
|
+
color: #fff;
|
|
42
|
+
border: none;
|
|
43
|
+
padding: 16px 32px;
|
|
44
|
+
font-weight: 700;
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
transition: opacity 0.2s;
|
|
47
|
+
}
|
|
48
|
+
.flat-btn:hover {
|
|
49
|
+
opacity: 0.8; /* Only change opacity or solid color on hover, no lifting */
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## App Implementation
|
|
54
|
+
|
|
55
|
+
### SwiftUI
|
|
56
|
+
```swift
|
|
57
|
+
struct FlatCard: View {
|
|
58
|
+
var body: some View {
|
|
59
|
+
VStack(alignment: .leading, spacing: 16) {
|
|
60
|
+
Text("Card Title")
|
|
61
|
+
.font(.system(size: 18, weight: .bold))
|
|
62
|
+
|
|
63
|
+
Text("Content without any depth effects.")
|
|
64
|
+
.font(.system(size: 15))
|
|
65
|
+
.foregroundColor(.secondary)
|
|
66
|
+
|
|
67
|
+
Button(action: {}) {
|
|
68
|
+
Text("ACTION")
|
|
69
|
+
.font(.system(size: 14, weight: .bold))
|
|
70
|
+
.foregroundColor(.white)
|
|
71
|
+
.padding(.horizontal, 24)
|
|
72
|
+
.padding(.vertical, 12)
|
|
73
|
+
.background(Color.blue)
|
|
74
|
+
// No cornerRadius — sharp edges
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
.padding(24)
|
|
78
|
+
.background(Color(.secondarySystemBackground))
|
|
79
|
+
// NO .shadow() — ever
|
|
80
|
+
// NO .cornerRadius() — sharp rectangles
|
|
81
|
+
.overlay(
|
|
82
|
+
Rectangle().stroke(Color.primary.opacity(0.2), lineWidth: 1)
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
- Never use `.shadow()` or `.cornerRadius()`. Elements are flat rectangles.
|
|
88
|
+
- Use `.overlay(Rectangle().stroke(...))` for visible borders instead of shadows to delineate space.
|
|
89
|
+
- Hover/tap states should only change `opacity` or swap a solid background color.
|
|
90
|
+
|
|
91
|
+
### Flutter
|
|
92
|
+
```dart
|
|
93
|
+
class FlatCard extends StatelessWidget {
|
|
94
|
+
@override
|
|
95
|
+
Widget build(BuildContext context) {
|
|
96
|
+
return Container(
|
|
97
|
+
padding: const EdgeInsets.all(24),
|
|
98
|
+
decoration: BoxDecoration(
|
|
99
|
+
color: Colors.grey[100],
|
|
100
|
+
border: Border.all(color: Colors.black26, width: 1),
|
|
101
|
+
// borderRadius: NONE — sharp corners
|
|
102
|
+
// boxShadow: NONE — zero depth
|
|
103
|
+
),
|
|
104
|
+
child: Column(
|
|
105
|
+
crossAxisAlignment: CrossAxisAlignment.start,
|
|
106
|
+
children: [
|
|
107
|
+
const Text('Card Title',
|
|
108
|
+
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
|
|
109
|
+
const SizedBox(height: 16),
|
|
110
|
+
const Text('Content without any depth effects.',
|
|
111
|
+
style: TextStyle(fontSize: 15, color: Colors.black54)),
|
|
112
|
+
const SizedBox(height: 16),
|
|
113
|
+
ElevatedButton(
|
|
114
|
+
onPressed: () {},
|
|
115
|
+
style: ElevatedButton.styleFrom(
|
|
116
|
+
elevation: 0, // Critical: no shadow
|
|
117
|
+
backgroundColor: Colors.blue,
|
|
118
|
+
foregroundColor: Colors.white,
|
|
119
|
+
shape: const RoundedRectangleBorder(
|
|
120
|
+
borderRadius: BorderRadius.zero, // Sharp corners
|
|
121
|
+
),
|
|
122
|
+
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
|
|
123
|
+
),
|
|
124
|
+
child: const Text('ACTION',
|
|
125
|
+
style: TextStyle(fontWeight: FontWeight.bold, letterSpacing: 1)),
|
|
126
|
+
),
|
|
127
|
+
],
|
|
128
|
+
),
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
- Override `ThemeData` globally to kill all elevation:
|
|
134
|
+
```dart
|
|
135
|
+
ThemeData(
|
|
136
|
+
cardTheme: const CardTheme(elevation: 0, shape: RoundedRectangleBorder()),
|
|
137
|
+
appBarTheme: const AppBarTheme(elevation: 0),
|
|
138
|
+
floatingActionButtonTheme: const FloatingActionButtonThemeData(elevation: 0),
|
|
139
|
+
)
|
|
140
|
+
```
|
|
141
|
+
- Use `Container` with `BoxDecoration` instead of `Card` widget to avoid default elevation.
|
|
142
|
+
|
|
143
|
+
### React Native
|
|
144
|
+
```jsx
|
|
145
|
+
const FlatCard = () => (
|
|
146
|
+
<View style={{
|
|
147
|
+
padding: 24,
|
|
148
|
+
backgroundColor: '#F0F0F0',
|
|
149
|
+
borderWidth: 1,
|
|
150
|
+
borderColor: '#CCCCCC',
|
|
151
|
+
// NO borderRadius
|
|
152
|
+
// NO elevation or shadow properties
|
|
153
|
+
}}>
|
|
154
|
+
<Text style={{ fontSize: 18, fontWeight: '700', marginBottom: 16 }}>
|
|
155
|
+
Card Title
|
|
156
|
+
</Text>
|
|
157
|
+
<Text style={{ fontSize: 15, color: '#666', marginBottom: 16 }}>
|
|
158
|
+
Content without any depth effects.
|
|
159
|
+
</Text>
|
|
160
|
+
<TouchableOpacity
|
|
161
|
+
style={{
|
|
162
|
+
backgroundColor: '#2196F3',
|
|
163
|
+
paddingHorizontal: 24,
|
|
164
|
+
paddingVertical: 12,
|
|
165
|
+
alignSelf: 'flex-start',
|
|
166
|
+
// NO borderRadius, NO elevation
|
|
167
|
+
}}
|
|
168
|
+
activeOpacity={0.7}
|
|
169
|
+
>
|
|
170
|
+
<Text style={{ color: '#FFF', fontWeight: '700', letterSpacing: 1 }}>
|
|
171
|
+
ACTION
|
|
172
|
+
</Text>
|
|
173
|
+
</TouchableOpacity>
|
|
174
|
+
</View>
|
|
175
|
+
);
|
|
176
|
+
```
|
|
177
|
+
- Explicitly set `elevation: 0` and remove ALL shadow properties (`shadowColor`, `shadowOffset`, etc.).
|
|
178
|
+
- If using React Native Paper, override the theme: `const theme = { ...DefaultTheme, roundness: 0, }`.
|
|
179
|
+
- Tap feedback should change `backgroundColor` directly, not add glow or lift.
|
|
180
|
+
|
|
181
|
+
### Jetpack Compose
|
|
182
|
+
```kotlin
|
|
183
|
+
@Composable
|
|
184
|
+
fun FlatCard() {
|
|
185
|
+
Column(
|
|
186
|
+
modifier = Modifier
|
|
187
|
+
.background(Color(0xFFF0F0F0))
|
|
188
|
+
.border(1.dp, Color(0xFFCCCCCC))
|
|
189
|
+
.padding(24.dp)
|
|
190
|
+
) {
|
|
191
|
+
Text("Card Title", fontSize = 18.sp, fontWeight = FontWeight.Bold)
|
|
192
|
+
Spacer(Modifier.height(16.dp))
|
|
193
|
+
Text("Content without any depth effects.",
|
|
194
|
+
fontSize = 15.sp, color = Color(0xFF666666))
|
|
195
|
+
Spacer(Modifier.height(16.dp))
|
|
196
|
+
Button(
|
|
197
|
+
onClick = {},
|
|
198
|
+
shape = RectangleShape, // Sharp corners
|
|
199
|
+
elevation = ButtonDefaults.buttonElevation(
|
|
200
|
+
defaultElevation = 0.dp, // No shadow
|
|
201
|
+
pressedElevation = 0.dp,
|
|
202
|
+
),
|
|
203
|
+
colors = ButtonDefaults.buttonColors(containerColor = Color(0xFF2196F3)),
|
|
204
|
+
contentPadding = PaddingValues(horizontal = 24.dp, vertical = 12.dp),
|
|
205
|
+
) {
|
|
206
|
+
Text("ACTION", fontWeight = FontWeight.Bold, letterSpacing = 1.sp)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
- Override `MaterialTheme` shapes: `shapes = Shapes(small = RectangleShape, medium = RectangleShape, large = RectangleShape)`.
|
|
212
|
+
- Set all elevation to `0.dp` on `Card`, `TopAppBar`, and `FloatingActionButton`.
|
|
213
|
+
- Use `Modifier.border()` instead of elevation to separate UI regions.
|
|
214
|
+
|
|
215
|
+
## Do's and Don'ts
|
|
216
|
+
- **DO**: Use solid, contrasting borders to separate overlapping elements.
|
|
217
|
+
- **DON'T**: Use any transparency (rgba) or blur effects.
|
|
218
|
+
|
|
219
|
+
## Limitations
|
|
220
|
+
- This is a styling reference and does not replace environment-specific validation, accessibility testing, or expert review.
|
|
221
|
+
- Ensure appropriate contrast ratios and responsive behaviors are verified separately.
|