@caddis/cli 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +163 -1
- package/bundles/antigravity-plugin/agents/code-reviewer.md +47 -0
- package/bundles/antigravity-plugin/agents/preflight.md +53 -0
- package/bundles/antigravity-plugin/guard_agy.py +338 -0
- package/bundles/antigravity-plugin/hooks.json +36 -0
- package/bundles/antigravity-plugin/mcp_config.json +8 -0
- package/bundles/antigravity-plugin/mcp_ping_server.py +55 -0
- package/bundles/antigravity-plugin/plugin.json +5 -0
- package/bundles/antigravity-plugin/session_end_agy.py +57 -0
- package/bundles/antigravity-plugin/skills/_registry.md +115 -0
- package/bundles/antigravity-plugin/skills/add-rules/SKILL.md +45 -0
- package/bundles/antigravity-plugin/skills/api-design/SKILL.md +249 -0
- package/bundles/antigravity-plugin/skills/backend-development/SKILL.md +305 -0
- package/bundles/antigravity-plugin/skills/best-practices/SKILL.md +500 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/best-practices-referencer.md +263 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/codebase-context-builder.md +326 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/task-intent-analyzer.md +245 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/anti-patterns.md +571 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/before-after-examples.md +1114 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/best-practices-guide.md +513 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/common-workflows.md +692 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/prompt-patterns.md +547 -0
- package/bundles/antigravity-plugin/skills/brainstorming/SKILL.md +57 -0
- package/bundles/antigravity-plugin/skills/ci-cd-pipeline/SKILL.md +315 -0
- package/bundles/antigravity-plugin/skills/code-documentation/SKILL.md +271 -0
- package/bundles/antigravity-plugin/skills/code-review/SKILL.md +122 -0
- package/bundles/antigravity-plugin/skills/codebase-audit/SKILL.md +204 -0
- package/bundles/antigravity-plugin/skills/context-curator/SKILL.md +157 -0
- package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +40 -0
- package/bundles/antigravity-plugin/skills/css-architecture/SKILL.md +305 -0
- package/bundles/antigravity-plugin/skills/css-architecture/references/RESPONSIVE-DESIGN.md +604 -0
- package/bundles/antigravity-plugin/skills/database-design/SKILL.md +177 -0
- package/bundles/antigravity-plugin/skills/db-diagram/SKILL.md +148 -0
- package/bundles/antigravity-plugin/skills/db-diagram/scripts/sql_to_graph.py +1212 -0
- package/bundles/antigravity-plugin/skills/digress/SKILL.md +61 -0
- package/bundles/antigravity-plugin/skills/draw-io/SKILL.md +162 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/aws-icons.md +677 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/layout-guidelines.md +142 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/troubleshooting.md +118 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/workflows.md +103 -0
- package/bundles/antigravity-plugin/skills/draw-io/scripts/convert-drawio-to-png.sh +25 -0
- package/bundles/antigravity-plugin/skills/draw-io/scripts/find_aws_icon.py +79 -0
- package/bundles/antigravity-plugin/skills/error-handling/SKILL.md +260 -0
- package/bundles/antigravity-plugin/skills/excalidraw-db/SKILL.md +38 -0
- package/bundles/antigravity-plugin/skills/fastapi-dev/SKILL.md +300 -0
- package/bundles/antigravity-plugin/skills/feature-plan/SKILL.md +198 -0
- package/bundles/antigravity-plugin/skills/frontend-design/SKILL.md +193 -0
- package/bundles/antigravity-plugin/skills/frontend-design/references/my-tech-stack.md +127 -0
- package/bundles/antigravity-plugin/skills/gh-cli/SKILL.md +195 -0
- package/bundles/antigravity-plugin/skills/git-commit/SKILL.md +285 -0
- package/bundles/antigravity-plugin/skills/golden-plan/SKILL.md +577 -0
- package/bundles/antigravity-plugin/skills/handoff/SKILL.md +100 -0
- package/bundles/antigravity-plugin/skills/implement/SKILL.md +114 -0
- package/bundles/antigravity-plugin/skills/javascript-typescript/SKILL.md +142 -0
- package/bundles/antigravity-plugin/skills/kb/SKILL.md +60 -0
- package/bundles/antigravity-plugin/skills/mermaid-db/SKILL.md +33 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/SKILL.md +236 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/ENHANCEMENTS.md +264 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/MERMAID-SUMMARY.md +137 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/advanced-features.md +556 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/architecture-diagrams.md +192 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/c4-diagrams.md +410 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/class-diagrams.md +361 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/erd-diagrams.md +510 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/flowcharts.md +450 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/sequence-diagrams.md +394 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/troubleshooting.md +335 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/workflows.md +418 -0
- package/bundles/antigravity-plugin/skills/migrate-dir/SKILL.md +68 -0
- package/bundles/antigravity-plugin/skills/mockup/SKILL.md +242 -0
- package/bundles/antigravity-plugin/skills/particle-art/SKILL.md +243 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/canvas-utils.ts +171 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/dot-field.template.tsx +203 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/flow-field.template.tsx +263 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/node-shape.template.tsx +261 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/shape-sampler.ts +281 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/stipple-morph.template.tsx +167 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/stipple.template.tsx +175 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/trail-ghost.template.tsx +266 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/usage-examples.md +320 -0
- package/bundles/antigravity-plugin/skills/playwright/API_REFERENCE.md +653 -0
- package/bundles/antigravity-plugin/skills/playwright/SKILL.md +454 -0
- package/bundles/antigravity-plugin/skills/playwright/lib/helpers.js +441 -0
- package/bundles/antigravity-plugin/skills/playwright/package.json +26 -0
- package/bundles/antigravity-plugin/skills/playwright/run.js +228 -0
- package/bundles/antigravity-plugin/skills/prd/SKILL.md +107 -0
- package/bundles/antigravity-plugin/skills/preflight/SKILL.md +435 -0
- package/bundles/antigravity-plugin/skills/python/SKILL.md +388 -0
- package/bundles/antigravity-plugin/skills/react-best-practices/SKILL.md +269 -0
- package/bundles/antigravity-plugin/skills/react-dev/README.md +404 -0
- package/bundles/antigravity-plugin/skills/react-dev/SKILL.md +459 -0
- package/bundles/antigravity-plugin/skills/react-dev/examples/generic-components.md +579 -0
- package/bundles/antigravity-plugin/skills/react-dev/examples/server-components.md +579 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/event-handlers.md +574 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/hooks.md +456 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/react-19-patterns.md +638 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/react-router.md +1002 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/tanstack-router.md +587 -0
- package/bundles/antigravity-plugin/skills/refactoring/SKILL.md +486 -0
- package/bundles/antigravity-plugin/skills/resume/SKILL.md +36 -0
- package/bundles/antigravity-plugin/skills/security-review/SKILL.md +196 -0
- package/bundles/antigravity-plugin/skills/setup-project-ai/SKILL.md +61 -0
- package/bundles/antigravity-plugin/skills/ship/SKILL.md +107 -0
- package/bundles/antigravity-plugin/skills/ship-merge/SKILL.md +103 -0
- package/bundles/antigravity-plugin/skills/ship-pr/SKILL.md +102 -0
- package/bundles/antigravity-plugin/skills/skill-creator/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin/skills/skill-creator/SKILL.md +491 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/analyzer.md +274 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/comparator.md +202 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/grader.md +223 -0
- package/bundles/antigravity-plugin/skills/skill-creator/assets/eval_review.html +146 -0
- package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/bundles/antigravity-plugin/skills/skill-creator/references/schemas.md +430 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/__init__.py +0 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/generate_report.py +326 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/improve_description.py +247 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/package_skill.py +136 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_eval.py +310 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_loop.py +328 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/utils.py +47 -0
- package/bundles/antigravity-plugin/skills/sql/SKILL.md +321 -0
- package/bundles/antigravity-plugin/skills/tdd/SKILL.md +37 -0
- package/bundles/antigravity-plugin/skills/tdd-workflow/SKILL.md +188 -0
- package/bundles/antigravity-plugin/skills/technical-writing/SKILL.md +286 -0
- package/bundles/antigravity-plugin/skills/test-strategy/SKILL.md +155 -0
- package/bundles/antigravity-plugin/skills/ui-brief/SKILL.md +84 -0
- package/bundles/antigravity-plugin/skills/ui-review/SKILL.md +176 -0
- package/bundles/antigravity-plugin/skills/ui-review/references/framework-fixes.md +471 -0
- package/bundles/antigravity-plugin/skills/ui-review/references/visual-checklist.md +236 -0
- package/bundles/antigravity-plugin/skills/usage-review/SKILL.md +77 -0
- package/bundles/antigravity-plugin/skills/use-model/SKILL.md +64 -0
- package/bundles/antigravity-plugin/skills/using-git-worktrees/SKILL.md +217 -0
- package/bundles/antigravity-plugin/skills/version/SKILL.md +18 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/DESIGN_TOKENS.md +487 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/IMPLEMENTATION_GUIDE.md +177 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/SKILL.md +732 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/SKILL.md +97 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/console_logging.py +35 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/scripts/with_server.py +106 -0
- package/bundles/antigravity-plugin/skills/windows-deployment/SKILL.md +880 -0
- package/bundles/antigravity-plugin/skills/writing-plans/SKILL.md +384 -0
- package/bundles/antigravity-plugin/statusline-command-agy.sh +91 -0
- package/bundles/antigravity-plugin/warm_start_agy.py +149 -0
- package/bundles/antigravity-plugin-extras/plugin.json +5 -0
- package/bundles/antigravity-plugin-extras/skills/_registry.md +154 -0
- package/bundles/antigravity-plugin-extras/skills/agent-md-refactor/SKILL.md +356 -0
- package/bundles/antigravity-plugin-extras/skills/agent-orchestration/SKILL.md +517 -0
- package/bundles/antigravity-plugin-extras/skills/algorithmic-art/SKILL.md +293 -0
- package/bundles/antigravity-plugin-extras/skills/anchor-review/SKILL.md +135 -0
- package/bundles/antigravity-plugin-extras/skills/api-client-patterns/SKILL.md +367 -0
- package/bundles/antigravity-plugin-extras/skills/architecture-design/SKILL.md +244 -0
- package/bundles/antigravity-plugin-extras/skills/architecture-diagram/SKILL.md +156 -0
- package/bundles/antigravity-plugin-extras/skills/architecture-document/SKILL.md +321 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/SKILL.md +74 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/bundles/antigravity-plugin-extras/skills/ascii-art/SKILL.md +144 -0
- package/bundles/antigravity-plugin-extras/skills/asking-questions/SKILL.md +81 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/SKILL.md +118 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/cross-service/credential-management.md +450 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/browser/README.md +363 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/code-interpreter/README.md +232 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/README.md +100 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deploy-template.sh +117 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deployment-strategies.md +416 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/troubleshooting-guide.md +384 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/validate-deployment.sh +186 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/identity/README.md +186 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/memory/README.md +253 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/observability/README.md +517 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/runtime/README.md +215 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/SKILL.md +279 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/references/cdk-patterns.md +431 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/scripts/validate-stack.sh +240 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/SKILL.md +318 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/cloudwatch-alarms.md +567 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/operations-patterns.md +394 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/SKILL.md +758 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/deployment-best-practices.md +830 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/eda-patterns.md +1002 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/observability-best-practices.md +770 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/performance-optimization.md +671 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/security-best-practices.md +625 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/serverless-patterns.md +838 -0
- package/bundles/antigravity-plugin-extras/skills/backend-to-frontend-handoff/SKILL.md +139 -0
- package/bundles/antigravity-plugin-extras/skills/banner-design/SKILL.md +188 -0
- package/bundles/antigravity-plugin-extras/skills/brand-design/SKILL.md +298 -0
- package/bundles/antigravity-plugin-extras/skills/brand-guidelines/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/brand-guidelines/SKILL.md +118 -0
- package/bundles/antigravity-plugin-extras/skills/brand-voice/SKILL.md +93 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/SKILL.md +392 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/agent-patterns.md +461 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/examples.md +188 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/state-patterns.md +360 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/troubleshooting.md +362 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/SKILL.md +266 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/examples.md +115 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +338 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +317 -0
- package/bundles/antigravity-plugin-extras/skills/caching-patterns/SKILL.md +385 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/SKILL.md +91 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/changelog-generator/SKILL.md +105 -0
- package/bundles/antigravity-plugin-extras/skills/code-explainer/SKILL.md +91 -0
- package/bundles/antigravity-plugin-extras/skills/competitive-ads-extractor/SKILL.md +294 -0
- package/bundles/antigravity-plugin-extras/skills/component-testing/SKILL.md +310 -0
- package/bundles/antigravity-plugin-extras/skills/content-research-writer/SKILL.md +539 -0
- package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +51 -0
- package/bundles/antigravity-plugin-extras/skills/data-analysis/SKILL.md +111 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/README.md +248 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/SKILL.md +203 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/adapter.py.template +44 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/api-router.py.template +43 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/contract-test.py.template +384 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/display-dto.py.template +39 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-service.ts.template +46 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-types.ts.template +38 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/ingestion-model.py.template +42 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/mapping-doc.md.template +46 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/normalizer.py.template +48 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_requirements.md +36 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_ui_demand.md +35 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/reconcile_mapping.md +66 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/query-catalog.md.template +62 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/consumer-driven-contracts.md +131 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/drift-check-catalog.md +305 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/layer-responsibilities.md +333 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_connections.py +170 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_sources.py +161 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/drift_check.py +171 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py +1363 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_gap_report.py +81 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_mapping_doc.py +294 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/ts_dto_compare.py +214 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/validate_lineage.py +51 -0
- package/bundles/antigravity-plugin-extras/skills/data-loader/SKILL.md +753 -0
- package/bundles/antigravity-plugin-extras/skills/data-validation/SKILL.md +220 -0
- package/bundles/antigravity-plugin-extras/skills/db-testing/SKILL.md +117 -0
- package/bundles/antigravity-plugin-extras/skills/deploy-local/SKILL.md +259 -0
- package/bundles/antigravity-plugin-extras/skills/design-md/SKILL.md +167 -0
- package/bundles/antigravity-plugin-extras/skills/design-system-tokens/SKILL.md +240 -0
- package/bundles/antigravity-plugin-extras/skills/design-system-tokens/references/DESIGN-SYSTEM-TEMPLATE.md +577 -0
- package/bundles/antigravity-plugin-extras/skills/developer-growth-analysis/SKILL.md +323 -0
- package/bundles/antigravity-plugin-extras/skills/doc-coauthoring/SKILL.md +378 -0
- package/bundles/antigravity-plugin-extras/skills/documentation-analyzer/SKILL.md +78 -0
- package/bundles/antigravity-plugin-extras/skills/domain-name-brainstormer/SKILL.md +213 -0
- package/bundles/antigravity-plugin-extras/skills/enterprise-dashboard-aesthetic-system/SKILL.md +120 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/SKILL.md +193 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/references/element-types.md +497 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/references/excalidraw-schema.md +356 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/references/reliable-diagrams.md +115 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/README.md +60 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-arrow.py +354 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-icon-to-diagram.py +412 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/split-excalidraw-library.py +183 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/business-flow-swimlane-template.excalidraw +334 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/class-diagram-template.excalidraw +558 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/data-flow-diagram-template.excalidraw +279 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/er-diagram-template.excalidraw +662 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/flowchart-template.excalidraw +179 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/mindmap-template.excalidraw +244 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/relationship-template.excalidraw +145 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/reliable-flowchart.excalidraw +1 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/sequence-diagram-template.excalidraw +509 -0
- package/bundles/antigravity-plugin-extras/skills/file-organizer/SKILL.md +434 -0
- package/bundles/antigravity-plugin-extras/skills/game-changing-features/README.md +221 -0
- package/bundles/antigravity-plugin-extras/skills/game-changing-features/SKILL.md +265 -0
- package/bundles/antigravity-plugin-extras/skills/github-issues/SKILL.md +359 -0
- package/bundles/antigravity-plugin-extras/skills/github-issues/references/templates.md +90 -0
- package/bundles/antigravity-plugin-extras/skills/golden-nuggets/SKILL.md +192 -0
- package/bundles/antigravity-plugin-extras/skills/humanizer/SKILL.md +194 -0
- package/bundles/antigravity-plugin-extras/skills/image-enhancer/SKILL.md +100 -0
- package/bundles/antigravity-plugin-extras/skills/intent-writer/SKILL.md +201 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/SKILL.md +124 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/3p-updates.md +47 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/faq-answers.md +30 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/general-comms.md +16 -0
- package/bundles/antigravity-plugin-extras/skills/invoice-organizer/SKILL.md +447 -0
- package/bundles/antigravity-plugin-extras/skills/jira-issues/SKILL.md +182 -0
- package/bundles/antigravity-plugin-extras/skills/job-application/SKILL.md +188 -0
- package/bundles/antigravity-plugin-extras/skills/lead-research-assistant/SKILL.md +200 -0
- package/bundles/antigravity-plugin-extras/skills/llm-application-dev/SKILL.md +217 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/SKILL.md +100 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/evaluation.md +602 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/mcp_best_practices.md +915 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/node_mcp_server.md +916 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/python_mcp_server.md +752 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/connections.py +151 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/bundles/antigravity-plugin-extras/skills/meeting-insights-analyzer/SKILL.md +328 -0
- package/bundles/antigravity-plugin-extras/skills/monorepo/SKILL.md +267 -0
- package/bundles/antigravity-plugin-extras/skills/naming-analyzer/SKILL.md +376 -0
- package/bundles/antigravity-plugin-extras/skills/nextjs-app-router/SKILL.md +271 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/AUTHENTICATION.md +154 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/SKILL.md +270 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/references/api_reference.md +309 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/references/troubleshooting.md +376 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/references/usage_patterns.md +338 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/__init__.py +81 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/ask_question.py +256 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/auth_manager.py +358 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_session.py +255 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_utils.py +107 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/cleanup_manager.py +302 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/config.py +44 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/notebook_manager.py +410 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/run.py +102 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/setup_environment.py +204 -0
- package/bundles/antigravity-plugin-extras/skills/observability/SKILL.md +371 -0
- package/bundles/antigravity-plugin-extras/skills/onboard-project/SKILL.md +192 -0
- package/bundles/antigravity-plugin-extras/skills/performance-testing/SKILL.md +226 -0
- package/bundles/antigravity-plugin-extras/skills/pipeline-state/SKILL.md +208 -0
- package/bundles/antigravity-plugin-extras/skills/plantuml/SKILL.md +228 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/SKILL.md +142 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/linear.app.md +196 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/stripe.md +214 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/vercel.md +218 -0
- package/bundles/antigravity-plugin-extras/skills/prd-to-code/SKILL.md +127 -0
- package/bundles/antigravity-plugin-extras/skills/raffle-winner-picker/SKILL.md +159 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/README.md +320 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/SKILL.md +53 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/alternatives.md +258 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/anti-patterns.md +290 -0
- package/bundles/antigravity-plugin-extras/skills/receiving-code-review/SKILL.md +213 -0
- package/bundles/antigravity-plugin-extras/skills/relay/SKILL.md +246 -0
- package/bundles/antigravity-plugin-extras/skills/requesting-code-review/SKILL.md +105 -0
- package/bundles/antigravity-plugin-extras/skills/requesting-code-review/code-reviewer.md +146 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/SKILL.md +350 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/pwa-checklist.md +226 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/touch-and-interaction.md +265 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/transformation-catalogue.md +326 -0
- package/bundles/antigravity-plugin-extras/skills/schema-migration/SKILL.md +275 -0
- package/bundles/antigravity-plugin-extras/skills/setup-project-ai/SKILL.md +120 -0
- package/bundles/antigravity-plugin-extras/skills/shadcn-radix/SKILL.md +330 -0
- package/bundles/antigravity-plugin-extras/skills/sketch/SKILL.md +104 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/SKILL.md +646 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/easing.py +230 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/typography.py +357 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/validators.py +264 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/requirements.txt +4 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/explode.py +331 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/fade.py +329 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/flip.py +291 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/morph.py +329 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/move.py +293 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/shake.py +127 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/slide.py +291 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/spin.py +269 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/bundles/antigravity-plugin-extras/skills/slides/SKILL.md +38 -0
- package/bundles/antigravity-plugin-extras/skills/state-tracking/SKILL.md +131 -0
- package/bundles/antigravity-plugin-extras/skills/streamlit-dev/SKILL.md +268 -0
- package/bundles/antigravity-plugin-extras/skills/svg-create/SKILL.md +251 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/SKILL.md +59 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/theme-showcase.pdf +0 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/desert-rose.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/golden-hour.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/SKILL.md +320 -0
- package/bundles/antigravity-plugin-extras/skills/ui-testing/SKILL.md +660 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/SKILL.md +660 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/_sync_all.py +414 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/app-interface.csv +31 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/charts.csv +26 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/colors.csv +162 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/design.csv +1776 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/draft.csv +1779 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/google-fonts.csv +1924 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/icons.csv +106 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/landing.csv +35 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/products.csv +162 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/react-performance.csv +45 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/styles.csv +85 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/typography.csv +74 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ui-reasoning.csv +162 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ux-guidelines.csv +100 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/core.py +247 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/design_system.py +1067 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/search.py +114 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/SKILL.md +140 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/references/commands.md +252 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/references/graph-schema.md +116 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/references/pipeline.md +331 -0
- package/bundles/antigravity-plugin-extras/skills/update-readme/SKILL.md +74 -0
- package/bundles/antigravity-plugin-extras/skills/verification-loop/SKILL.md +209 -0
- package/bundles/antigravity-plugin-extras/skills/video-downloader/SKILL.md +107 -0
- package/bundles/antigravity-plugin-extras/skills/webapp-development/SKILL.md +288 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/SKILL.md +339 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/agents/agent-interface.md +175 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/html.md +384 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/nlp-keywords.md +127 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/palettes.md +149 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/python.md +249 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/react.md +427 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/shapes.md +135 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/stopwords.md +115 -0
- package/bundles/antigravity-plugin-extras/skills/youtube-transcript/SKILL.md +416 -0
- package/bundles/manifest.json +7 -0
- package/dist/cli.js +5492 -0
- package/package.json +61 -4
|
@@ -0,0 +1,732 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: warm-editorial-ui
|
|
3
|
+
description: Apply the "Warm Editorial Refinement" design system — a sophisticated, executive-grade aesthetic with warm cream surfaces (light mode) and warm charcoal surfaces (dark mode), Bahnschrift + Plus Jakarta Sans typography, generous rounded corners, multi-layer shadows, and a warm neutral palette. Supports both light and dark themes via CSS custom properties and the `.dark` class. Use this skill whenever the user wants to build an app, dashboard, component, or web UI using the abc-project visual style. Trigger on phrases like "use our design system", "apply our template", "make it look like abc-project", "use the warm editorial style", "use our brand template", "add dark mode", or any request to build a new tool/app/dashboard for XYZ Brand or similar contexts. This is the canonical design template for all new frontend builds.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Warm Editorial Refinement — Design System
|
|
7
|
+
|
|
8
|
+
A premium, editorial-grade UI template built for data-rich internal tools. Combines the warmth of analogue design with the precision of modern SaaS.
|
|
9
|
+
|
|
10
|
+
**Canonical reference apps:** `scratch/mockups/ceo-dashboard-mockup.html` _(executive-reviewed baseline)_
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Design Philosophy
|
|
15
|
+
|
|
16
|
+
> Warm surfaces. Editorial type. Intentional depth. Not corporate grey — warm cream.
|
|
17
|
+
|
|
18
|
+
This system was designed for **XYZ Brand internal tools** but is brand-agnostic at the token level. It avoids cold grey SaaS aesthetics and instead uses warm-toned surfaces, editorial typography, and refined component geometry.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Design Tokens
|
|
23
|
+
|
|
24
|
+
Always define these CSS custom properties in `:root`:
|
|
25
|
+
|
|
26
|
+
```css
|
|
27
|
+
:root {
|
|
28
|
+
/* Brand Accent — replace with your brand color */
|
|
29
|
+
--brand: #E10A0A;
|
|
30
|
+
--brand-dark: #C00909;
|
|
31
|
+
--brand-soft: #FEF2F2;
|
|
32
|
+
--brand-tint: rgba(225,10,10,0.08);
|
|
33
|
+
|
|
34
|
+
/* Warm Surfaces — NOT cold grey */
|
|
35
|
+
--bg: #F5F3F0; /* page background */
|
|
36
|
+
--surface: #FFFFFF; /* cards, panels */
|
|
37
|
+
--surface-2: #F9F8F6; /* subtle inset, inputs */
|
|
38
|
+
--surface-3: #F0EDE8; /* deeper inset, table rows */
|
|
39
|
+
--surface-hover: #EFEDE9; /* hover states */
|
|
40
|
+
|
|
41
|
+
/* Warm Borders */
|
|
42
|
+
--border: #E5E2DC;
|
|
43
|
+
--border-strong: #CCC9C2;
|
|
44
|
+
|
|
45
|
+
/* Warm Ink (text) — slightly brown-tinged, never cold */
|
|
46
|
+
--ink-1: #1A1816; /* primary text */
|
|
47
|
+
--ink-2: #3D3A36; /* secondary text */
|
|
48
|
+
--ink-3: #6B6760; /* tertiary text */
|
|
49
|
+
--ink-4: #9C9890; /* muted/placeholder */
|
|
50
|
+
|
|
51
|
+
/* Status Palette */
|
|
52
|
+
--green: #16A34A;
|
|
53
|
+
--green-soft: #F0FDF4;
|
|
54
|
+
--green-tint: rgba(22,163,74,0.12);
|
|
55
|
+
--green-border: #A7F3D0;
|
|
56
|
+
|
|
57
|
+
--amber: #D97706;
|
|
58
|
+
--amber-soft: #FFFBEB;
|
|
59
|
+
|
|
60
|
+
--red: #DC2626;
|
|
61
|
+
--red-soft: #FEF2F2;
|
|
62
|
+
--red-border: #FCA5A5;
|
|
63
|
+
|
|
64
|
+
--blue: #2563EB;
|
|
65
|
+
--blue-soft: #EFF6FF;
|
|
66
|
+
--blue-border: #BFDBFE;
|
|
67
|
+
|
|
68
|
+
/* Radius Scale — generous, not tight */
|
|
69
|
+
--r-xs: 4px;
|
|
70
|
+
--r-sm: 8px;
|
|
71
|
+
--r-md: 12px;
|
|
72
|
+
--r-lg: 16px; /* standard cards */
|
|
73
|
+
--r-xl: 22px; /* panels, large containers */
|
|
74
|
+
|
|
75
|
+
/* Shadows — multi-layer, warm-tinted (warm brown base, not cold black) */
|
|
76
|
+
--shadow-xs: 0 1px 2px rgba(26,24,22,0.04);
|
|
77
|
+
--shadow-sm: 0 1px 3px rgba(26,24,22,0.06), 0 1px 2px rgba(26,24,22,0.04);
|
|
78
|
+
--shadow-md: 0 4px 12px rgba(26,24,22,0.08), 0 2px 4px rgba(26,24,22,0.04);
|
|
79
|
+
--shadow-lg: 0 10px 30px rgba(26,24,22,0.12), 0 4px 8px rgba(26,24,22,0.06);
|
|
80
|
+
|
|
81
|
+
/* Typography */
|
|
82
|
+
/* NOTE: --font-heading uses Bahnschrift — a Windows 10+ system font.
|
|
83
|
+
Falls back to Franklin Gothic Medium on macOS/Linux. Correct for Windows-hosted tools. */
|
|
84
|
+
--font-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
|
|
85
|
+
--font-heading: 'Bahnschrift', 'Franklin Gothic Medium', 'Arial Narrow', sans-serif;
|
|
86
|
+
--font-mono: 'JetBrains Mono', monospace;
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Google Fonts Import
|
|
91
|
+
```html
|
|
92
|
+
<!-- Plus Jakarta Sans (body) + JetBrains Mono (data). Bahnschrift is Windows system — no CDN needed. -->
|
|
93
|
+
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Typography Rules
|
|
99
|
+
|
|
100
|
+
### Default Pairing (active)
|
|
101
|
+
|
|
102
|
+
| Role | Font | Weight | Usage |
|
|
103
|
+
|------|------|--------|-------|
|
|
104
|
+
| UI body | Plus Jakarta Sans | 300–700 | Labels, body text, navigation |
|
|
105
|
+
| Numbers/data | JetBrains Mono | 400–600 | KPI values, counts, codes |
|
|
106
|
+
| Section headings | Bahnschrift (system) | 700–800 | KPI values, card titles, brand name |
|
|
107
|
+
|
|
108
|
+
### Font Pairing Selection (agent decision logic)
|
|
109
|
+
|
|
110
|
+
**Before generating any UI, resolve the font pairing using this priority:**
|
|
111
|
+
|
|
112
|
+
1. **Check `project-config.md`** — if the project's profile has a Design System section with declared fonts, use those. Done.
|
|
113
|
+
2. **No project-config?** — Present the pairing table below to the user and ask: *"Which font pairing would you like for this project? (A–F, or describe your preference)"*. Wait for the user to choose before generating UI.
|
|
114
|
+
3. **User says "you pick" or doesn't care** — Use pairing **E (Sora + Nunito Sans)** as the default.
|
|
115
|
+
|
|
116
|
+
> **Never silently pick a non-default pairing.** The user must explicitly opt in to A–E.
|
|
117
|
+
|
|
118
|
+
### Alternative Font Pairings
|
|
119
|
+
|
|
120
|
+
All are Google Fonts unless marked (system).
|
|
121
|
+
|
|
122
|
+
| Pairing | Heading | Body | Character |
|
|
123
|
+
|---------|---------|------|-----------|
|
|
124
|
+
| **A — Geometric Precision** | Geist (system/self-host) | Plus Jakarta Sans | Clean SaaS feel, Linear/Vercel aesthetic |
|
|
125
|
+
| **B — Neo-Industrial** | Clash Display (self-host) | General Sans | Bold brutalist contrast, strong visual hierarchy |
|
|
126
|
+
| **C — Refined Corporate** | Manrope | Source Sans 3 | Polished enterprise, Microsoft/Notion vibe |
|
|
127
|
+
| **D — Editorial Luxury** | Fraunces | Outfit | Warm serif contrast, premium editorial weight |
|
|
128
|
+
| **E — Modern Humanist** | Sora | Nunito Sans | Approachable geometric, health/fintech feel |
|
|
129
|
+
| **F — Condensed Executive** | Bahnschrift (system) | Plus Jakarta Sans | *(current default)* — dense KPI headers |
|
|
130
|
+
|
|
131
|
+
To switch, update these tokens in `:root`:
|
|
132
|
+
```css
|
|
133
|
+
/* Example: Pairing D — Editorial Luxury */
|
|
134
|
+
--font-heading: 'Fraunces', Georgia, serif;
|
|
135
|
+
--font-sans: 'Outfit', system-ui, sans-serif;
|
|
136
|
+
```
|
|
137
|
+
And update the Google Fonts import:
|
|
138
|
+
```html
|
|
139
|
+
<link href="https://fonts.googleapis.com/css2?family=Fraunces:wght@600;700;800&family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Never use:** Inter, DM Sans, Syne, Roboto, Space Grotesk as primary fonts.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Layout Architecture
|
|
147
|
+
|
|
148
|
+
### App Shell with Left Sidebar
|
|
149
|
+
```
|
|
150
|
+
┌──────────────────────────────────────────────────────┐
|
|
151
|
+
│ Sidebar (236px) │ Top Filter Bar (52px) │
|
|
152
|
+
│ ├──────────────────────────────────┤
|
|
153
|
+
│ Brand Logo │ Sub-tab Bar (40px) │
|
|
154
|
+
│ Nav Groups ├──────────────────────────────────┤
|
|
155
|
+
│ Footer / User │ Page Content (scrollable) │
|
|
156
|
+
└──────────────────────────────────────────────────────┘
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Sidebar Pattern
|
|
160
|
+
```css
|
|
161
|
+
.sidebar {
|
|
162
|
+
width: 236px;
|
|
163
|
+
background: var(--surface);
|
|
164
|
+
border-right: 1px solid var(--border);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* Brand lockup */
|
|
168
|
+
.brand-logo {
|
|
169
|
+
width: 36px; height: 36px;
|
|
170
|
+
background: var(--brand);
|
|
171
|
+
border-radius: 10px;
|
|
172
|
+
box-shadow: 0 3px 10px rgba(225,10,10,0.3);
|
|
173
|
+
font-family: var(--font-heading);
|
|
174
|
+
font-size: 14px; font-weight: 800;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Active nav item */
|
|
178
|
+
.nav-item.active {
|
|
179
|
+
background: var(--brand-soft);
|
|
180
|
+
color: var(--brand);
|
|
181
|
+
font-weight: 600;
|
|
182
|
+
}
|
|
183
|
+
.nav-item.active::before {
|
|
184
|
+
content: '';
|
|
185
|
+
position: absolute; left: 0;
|
|
186
|
+
top: 5px; bottom: 5px; width: 3px;
|
|
187
|
+
background: var(--brand);
|
|
188
|
+
border-radius: 0 3px 3px 0;
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Component Patterns
|
|
195
|
+
|
|
196
|
+
### KPI Cards
|
|
197
|
+
```css
|
|
198
|
+
.kpi-card {
|
|
199
|
+
background: var(--surface);
|
|
200
|
+
border: 1px solid var(--border);
|
|
201
|
+
border-radius: var(--r-lg); /* 16px */
|
|
202
|
+
padding: 14px 16px;
|
|
203
|
+
box-shadow: var(--shadow-sm);
|
|
204
|
+
transition: box-shadow 0.15s, transform 0.15s;
|
|
205
|
+
}
|
|
206
|
+
.kpi-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
|
|
207
|
+
.kpi-card::before {
|
|
208
|
+
/* colored top bar */
|
|
209
|
+
content: ''; position: absolute; top: 0; left: 0; right: 0;
|
|
210
|
+
height: 3px; border-radius: var(--r-lg) var(--r-lg) 0 0;
|
|
211
|
+
background: var(--kpi-color, var(--border));
|
|
212
|
+
}
|
|
213
|
+
/* KPI value uses Bahnschrift for condensed executive punch */
|
|
214
|
+
.kpi-value {
|
|
215
|
+
font-family: var(--font-heading);
|
|
216
|
+
font-size: 30px; font-weight: 700; letter-spacing: -1px;
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Filter Pills (Topbar)
|
|
221
|
+
```css
|
|
222
|
+
.fchip {
|
|
223
|
+
border: 1.5px solid var(--border);
|
|
224
|
+
border-radius: 20px;
|
|
225
|
+
padding: 4px 11px;
|
|
226
|
+
font-size: 12px; font-weight: 500;
|
|
227
|
+
background: var(--surface);
|
|
228
|
+
transition: all 0.12s;
|
|
229
|
+
}
|
|
230
|
+
.fchip:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
|
|
231
|
+
.fchip.active { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Buttons
|
|
235
|
+
```css
|
|
236
|
+
/* Primary */
|
|
237
|
+
.btn-primary {
|
|
238
|
+
height: 32px; padding: 0 16px;
|
|
239
|
+
background: var(--brand); color: white; border: none;
|
|
240
|
+
border-radius: var(--r-sm);
|
|
241
|
+
font-family: var(--font-heading); font-size: 12.5px; font-weight: 700;
|
|
242
|
+
box-shadow: 0 2px 8px rgba(225,10,10,0.2);
|
|
243
|
+
transition: all 0.12s;
|
|
244
|
+
}
|
|
245
|
+
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(225,10,10,0.3); }
|
|
246
|
+
|
|
247
|
+
/* Ghost */
|
|
248
|
+
.btn-ghost {
|
|
249
|
+
height: 32px; padding: 0 12px;
|
|
250
|
+
border: 1.5px solid var(--border); border-radius: var(--r-sm);
|
|
251
|
+
background: var(--surface); color: var(--ink-3);
|
|
252
|
+
font-family: var(--font-sans); font-weight: 500;
|
|
253
|
+
}
|
|
254
|
+
.btn-ghost:hover { background: var(--surface-2); color: var(--ink-1); }
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Status Badges / Pills
|
|
258
|
+
```css
|
|
259
|
+
.badge { padding: 2px 7px; border-radius: 20px; font-size: 10px; font-weight: 700; }
|
|
260
|
+
.badge.success { background: var(--green-soft); color: var(--green); border: 1px solid var(--green-tint); }
|
|
261
|
+
.badge.warning { background: var(--amber-soft); color: var(--amber); }
|
|
262
|
+
.badge.danger { background: var(--red-soft); color: var(--red); border: 1px solid var(--red-border); }
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Chart Cards
|
|
266
|
+
```css
|
|
267
|
+
.chart-card {
|
|
268
|
+
background: var(--surface);
|
|
269
|
+
border: 1px solid var(--border);
|
|
270
|
+
border-radius: var(--r-lg); /* 16px */
|
|
271
|
+
padding: 18px 20px;
|
|
272
|
+
box-shadow: var(--shadow-sm);
|
|
273
|
+
}
|
|
274
|
+
/* Card title uses Bahnschrift */
|
|
275
|
+
.chart-title { font-family: var(--font-heading); font-size: 13.5px; font-weight: 700; letter-spacing: -0.2px; }
|
|
276
|
+
.chart-sub { font-size: 11px; color: var(--ink-4); }
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Section Labels
|
|
280
|
+
```css
|
|
281
|
+
.section-title {
|
|
282
|
+
font-size: 10px; font-weight: 700;
|
|
283
|
+
letter-spacing: 1.5px; text-transform: uppercase;
|
|
284
|
+
color: var(--ink-4);
|
|
285
|
+
font-family: var(--font-sans);
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## Alert / Highlight Cards
|
|
292
|
+
```css
|
|
293
|
+
/* Warning alert */
|
|
294
|
+
.alert-card {
|
|
295
|
+
background: linear-gradient(135deg, #FFF8F5 0%, #FFF2EE 100%);
|
|
296
|
+
border: 1.5px solid #FCCAB4;
|
|
297
|
+
border-radius: var(--r-lg);
|
|
298
|
+
}
|
|
299
|
+
/* Success callout */
|
|
300
|
+
.callout-green {
|
|
301
|
+
background: var(--green-soft);
|
|
302
|
+
border: 1px solid var(--green-border);
|
|
303
|
+
border-radius: var(--r-md);
|
|
304
|
+
padding: 10px 13px;
|
|
305
|
+
}
|
|
306
|
+
/* Info callout */
|
|
307
|
+
.callout-blue {
|
|
308
|
+
background: var(--blue-soft);
|
|
309
|
+
border: 1px solid var(--blue-border);
|
|
310
|
+
border-radius: var(--r-md);
|
|
311
|
+
padding: 10px 13px;
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## React Component Structure
|
|
318
|
+
|
|
319
|
+
When building React components with this design system:
|
|
320
|
+
|
|
321
|
+
```tsx
|
|
322
|
+
// Design tokens map directly to Tailwind-like CSS vars
|
|
323
|
+
// Use inline styles or a theme provider pattern:
|
|
324
|
+
|
|
325
|
+
const theme = {
|
|
326
|
+
surface: 'var(--surface)',
|
|
327
|
+
surface2: 'var(--surface-2)',
|
|
328
|
+
border: 'var(--border)',
|
|
329
|
+
ink1: 'var(--ink-1)',
|
|
330
|
+
ink4: 'var(--ink-4)',
|
|
331
|
+
brand: 'var(--brand)',
|
|
332
|
+
brandSoft: 'var(--brand-soft)',
|
|
333
|
+
fontHeading: 'var(--font-heading)',
|
|
334
|
+
fontMono: 'var(--font-mono)',
|
|
335
|
+
// Radius
|
|
336
|
+
rLg: 'var(--r-lg)',
|
|
337
|
+
rXl: 'var(--r-xl)',
|
|
338
|
+
// Shadows
|
|
339
|
+
shadowSm: 'var(--shadow-sm)',
|
|
340
|
+
shadowMd: 'var(--shadow-md)',
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
// KPI Card example
|
|
344
|
+
function KpiCard({ label, value, delta, color, trend }) {
|
|
345
|
+
return (
|
|
346
|
+
<div style={{
|
|
347
|
+
background: 'var(--surface)',
|
|
348
|
+
border: '1px solid var(--border)',
|
|
349
|
+
borderRadius: 'var(--r-lg)',
|
|
350
|
+
padding: '14px 16px',
|
|
351
|
+
boxShadow: 'var(--shadow-sm)',
|
|
352
|
+
position: 'relative',
|
|
353
|
+
overflow: 'hidden',
|
|
354
|
+
}}>
|
|
355
|
+
{/* Colored top bar */}
|
|
356
|
+
<div style={{ position:'absolute', top:0, left:0, right:0, height:'3px', background:color }} />
|
|
357
|
+
<p style={{ fontSize:'10px', fontWeight:700, letterSpacing:'1.2px', textTransform:'uppercase', color:'var(--ink-4)', marginBottom:'8px' }}>
|
|
358
|
+
{label}
|
|
359
|
+
</p>
|
|
360
|
+
<p style={{ fontFamily:'var(--font-heading)', fontSize:'30px', fontWeight:700, letterSpacing:'-1px', color }}>
|
|
361
|
+
{value}
|
|
362
|
+
</p>
|
|
363
|
+
</div>
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Grid Layouts
|
|
371
|
+
|
|
372
|
+
```css
|
|
373
|
+
/* KPI row — 6 columns */
|
|
374
|
+
.kpi-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
|
|
375
|
+
|
|
376
|
+
/* 2-column charts */
|
|
377
|
+
.charts-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
|
|
378
|
+
|
|
379
|
+
/* 3-column charts */
|
|
380
|
+
.charts-3col { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## Sidebar Nav Badge Colors
|
|
386
|
+
|
|
387
|
+
```css
|
|
388
|
+
.nav-badge.red { background: var(--red-soft); color: var(--red); border: 1px solid var(--red-border); }
|
|
389
|
+
.nav-badge.green { background: var(--green-soft); color: var(--green); }
|
|
390
|
+
.nav-badge.grey { background: var(--surface-3); color: var(--ink-4); }
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## Dropdown / Select Panel Styling
|
|
396
|
+
|
|
397
|
+
Dropdowns must have a smooth, modern appearance — never blocky or browser-default.
|
|
398
|
+
|
|
399
|
+
Use these control-specific tokens (add to `:root` alongside the main token set):
|
|
400
|
+
|
|
401
|
+
```css
|
|
402
|
+
:root {
|
|
403
|
+
--control-bg: var(--surface-2);
|
|
404
|
+
--control-bg-hover: var(--surface-hover);
|
|
405
|
+
--control-bg-active: var(--surface-3);
|
|
406
|
+
--control-border: var(--border);
|
|
407
|
+
--control-border-strong:var(--border-strong);
|
|
408
|
+
--control-ring: var(--brand);
|
|
409
|
+
--shadow-control: var(--shadow-xs);
|
|
410
|
+
--shadow-control-strong:var(--shadow-sm);
|
|
411
|
+
--radius-control: var(--r-sm); /* 8px */
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
```css
|
|
416
|
+
.select-panel {
|
|
417
|
+
background: var(--control-bg);
|
|
418
|
+
border: 1.5px solid var(--control-border);
|
|
419
|
+
border-radius: var(--radius-control);
|
|
420
|
+
box-shadow: var(--shadow-control-strong);
|
|
421
|
+
padding: 6px 0;
|
|
422
|
+
min-width: 180px;
|
|
423
|
+
transition: box-shadow 0.18s, border-color 0.18s;
|
|
424
|
+
}
|
|
425
|
+
.select-panel:focus-within {
|
|
426
|
+
outline: none;
|
|
427
|
+
box-shadow: 0 0 0 2px var(--control-ring), var(--shadow-control-strong);
|
|
428
|
+
border-color: var(--control-border-strong);
|
|
429
|
+
}
|
|
430
|
+
.select-panel__option {
|
|
431
|
+
padding: 8px 18px;
|
|
432
|
+
border-radius: 7px;
|
|
433
|
+
cursor: pointer;
|
|
434
|
+
transition: background 0.14s;
|
|
435
|
+
}
|
|
436
|
+
.select-panel__option:hover { background: var(--control-bg-hover); }
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
- For shadcn/ui `<Select>`: override `SelectContent` and `SelectItem` with these tokens
|
|
440
|
+
- Never use native browser `<select>` appearance without overriding all visual states
|
|
441
|
+
- Test in both light and dark mode — tokens swap automatically via `.dark`
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## Appearance Settings Rules
|
|
446
|
+
|
|
447
|
+
These UX rules apply to all apps using this design system:
|
|
448
|
+
|
|
449
|
+
- **Theme / accent controls belong in the Settings tab only.** Do not place color or theme pickers in the main nav, topbar, or sidebar.
|
|
450
|
+
- **The dark/light mode toggle must always be rendered as an icon (sun/moon), never as text.**
|
|
451
|
+
|
|
452
|
+
```tsx
|
|
453
|
+
// Correct: icon-only toggle in Settings tab
|
|
454
|
+
<button className="theme-toggle" aria-label="Switch theme" onClick={toggle}>
|
|
455
|
+
{dark ? <MoonIcon /> : <SunIcon />}
|
|
456
|
+
</button>
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
- Place in the Settings tab, not in the topbar or sidebar footer
|
|
460
|
+
- Use `aria-label` for screen reader accessibility
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## What Makes This Style Distinctive
|
|
465
|
+
|
|
466
|
+
1. **Warm vs cold**: Surfaces are `#F8F7F5` and `#F2F0ED` — cream/linen, not cold `#F9FAFB`
|
|
467
|
+
2. **Ink tones**: Text is `#1A1816` (warm black) not `#111827` (cold)
|
|
468
|
+
3. **Borders**: `#E5E2DC` (warm beige) not `#E5E7EB` (cool grey)
|
|
469
|
+
4. **Typography**: Bahnschrift headings give condensed executive weight; Plus Jakarta Sans body is premium and distinctive — not generic Inter/Roboto
|
|
470
|
+
5. **Radius**: 16px cards, 22px panels — generous, contemporary
|
|
471
|
+
6. **Shadows**: Always multi-layer (`0 1px 3px ... 0 1px 2px ...`) for depth
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Don'ts
|
|
476
|
+
|
|
477
|
+
- ❌ No `Inter`, `DM Sans`, `Syne`, `Roboto`, or `Space Grotesk`
|
|
478
|
+
- ❌ No cold grey surfaces (`#F9FAFB`, `#F3F4F6`)
|
|
479
|
+
- ❌ No generic SaaS blue (`#3B82F6`) as primary
|
|
480
|
+
- ❌ No glass morphism effects
|
|
481
|
+
- ❌ No tight corners (avoid radius < 8px on cards)
|
|
482
|
+
- ❌ No single-layer flat shadows
|
|
483
|
+
- ❌ No uppercase text in `var(--font-heading)` for body copy
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## Adapting for Different Brands
|
|
488
|
+
|
|
489
|
+
Change only the brand token and optionally the accent palette:
|
|
490
|
+
|
|
491
|
+
```css
|
|
492
|
+
/* e.g. for a teal-branded product */
|
|
493
|
+
:root {
|
|
494
|
+
--brand: #0891B2;
|
|
495
|
+
--brand-dark: #0E7490;
|
|
496
|
+
--brand-soft: #ECFEFF;
|
|
497
|
+
--brand-tint: rgba(8,145,178,0.08);
|
|
498
|
+
}
|
|
499
|
+
/* All other tokens remain the same */
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
The warm surface, ink, and border tokens are **brand-neutral** — they work for any brand colour.
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## Dark Mode — Warm Soft Dark
|
|
507
|
+
|
|
508
|
+
A warm, editorial-grade dark theme inspired by GitHub's Dark Dimmed aesthetic but with warm brown-grey tones instead of cold blue-grey. **Not pure black** — surfaces are tinted warm charcoal, like aged paper in low light.
|
|
509
|
+
|
|
510
|
+
### Design Philosophy (Dark)
|
|
511
|
+
|
|
512
|
+
> Soft dark. Warm charcoal. Never cold, never pure black.
|
|
513
|
+
|
|
514
|
+
- Backgrounds use warm near-black (`#1A1917`) — NOT cold `#0a0a0a` or blue-tinted `#1C2128`
|
|
515
|
+
- Ink inverts to warm off-whites (`#E8E5DF`) — NOT stark `#FFFFFF` or cold `#C9D1D9`
|
|
516
|
+
- Status colors brighten slightly for readability on dark surfaces
|
|
517
|
+
- Shadows shift to `rgba(0,0,0,...)` (higher opacity) because dark surfaces absorb light
|
|
518
|
+
- Brand accent brightens slightly to maintain vibrancy
|
|
519
|
+
|
|
520
|
+
### Dark Mode Tokens
|
|
521
|
+
|
|
522
|
+
Apply under `.dark` (or `[data-theme="dark"]` for explicit toggling):
|
|
523
|
+
|
|
524
|
+
```css
|
|
525
|
+
.dark {
|
|
526
|
+
/* Brand Accent — slightly brighter for dark backgrounds */
|
|
527
|
+
--brand: #F52D2D;
|
|
528
|
+
--brand-dark: #E41B1B;
|
|
529
|
+
--brand-soft: rgba(245,45,45,0.12);
|
|
530
|
+
--brand-tint: rgba(245,45,45,0.10);
|
|
531
|
+
|
|
532
|
+
/* Warm Soft Dark Surfaces — charcoal, not cold */
|
|
533
|
+
--bg: #1A1917; /* page background — warm near-black */
|
|
534
|
+
--surface: #242320; /* cards, panels — warm dark paper */
|
|
535
|
+
--surface-2: #1E1D1B; /* subtle inset, inputs — darker than surface */
|
|
536
|
+
--surface-3: #2A2926; /* deeper inset, table rows */
|
|
537
|
+
--surface-hover: #302E2A; /* hover states */
|
|
538
|
+
|
|
539
|
+
/* Warm Dark Borders */
|
|
540
|
+
--border: #3A3834;
|
|
541
|
+
--border-strong: #4D4A44;
|
|
542
|
+
|
|
543
|
+
/* Warm Ink (inverted) — off-white with warm tint */
|
|
544
|
+
--ink-1: #E8E5DF; /* primary text — warm off-white */
|
|
545
|
+
--ink-2: #C5C1B8; /* secondary text */
|
|
546
|
+
--ink-3: #A8A49C; /* tertiary text — lifted for readability on dark surfaces */
|
|
547
|
+
--ink-4: #8A8680; /* muted/placeholder — 4.5:1 on card surface (was #706C64, too dark) */
|
|
548
|
+
|
|
549
|
+
/* Status Palette — brightened for dark backgrounds */
|
|
550
|
+
--green: #3FB950;
|
|
551
|
+
--green-soft: rgba(63,185,80,0.12);
|
|
552
|
+
--green-tint: rgba(63,185,80,0.15);
|
|
553
|
+
--green-border: rgba(63,185,80,0.25);
|
|
554
|
+
|
|
555
|
+
--amber: #E3B341;
|
|
556
|
+
--amber-soft: rgba(227,179,65,0.12);
|
|
557
|
+
|
|
558
|
+
--red: #F85149;
|
|
559
|
+
--red-soft: rgba(248,81,73,0.12);
|
|
560
|
+
--red-border: rgba(248,81,73,0.25);
|
|
561
|
+
|
|
562
|
+
--blue: #58A6FF;
|
|
563
|
+
--blue-soft: rgba(88,166,255,0.12);
|
|
564
|
+
--blue-border: rgba(88,166,255,0.25);
|
|
565
|
+
|
|
566
|
+
/* Shadows — darker, higher opacity (dark surfaces absorb light) */
|
|
567
|
+
--shadow-xs: 0 1px 2px rgba(0,0,0,0.24);
|
|
568
|
+
--shadow-sm: 0 1px 3px rgba(0,0,0,0.32), 0 1px 2px rgba(0,0,0,0.24);
|
|
569
|
+
--shadow-md: 0 4px 12px rgba(0,0,0,0.40), 0 2px 4px rgba(0,0,0,0.24);
|
|
570
|
+
--shadow-lg: 0 10px 30px rgba(0,0,0,0.48), 0 4px 8px rgba(0,0,0,0.32);
|
|
571
|
+
|
|
572
|
+
/* Typography — unchanged (fonts don't change between modes) */
|
|
573
|
+
/* --font-sans, --font-heading, --font-mono remain the same */
|
|
574
|
+
|
|
575
|
+
/* Radius — unchanged */
|
|
576
|
+
/* --r-xs through --r-xl remain the same */
|
|
577
|
+
}
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
### Theme Toggle Setup
|
|
581
|
+
|
|
582
|
+
Use the `.dark` class on `<html>` or a container element. shadcn's `next-themes` or a simple toggle works:
|
|
583
|
+
|
|
584
|
+
```tsx
|
|
585
|
+
// Minimal dark mode toggle (Vite / React)
|
|
586
|
+
import { useEffect, useState } from 'react';
|
|
587
|
+
|
|
588
|
+
function useTheme() {
|
|
589
|
+
const [dark, setDark] = useState(() =>
|
|
590
|
+
window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
591
|
+
);
|
|
592
|
+
|
|
593
|
+
useEffect(() => {
|
|
594
|
+
document.documentElement.classList.toggle('dark', dark);
|
|
595
|
+
}, [dark]);
|
|
596
|
+
|
|
597
|
+
return { dark, toggle: () => setDark(d => !d) };
|
|
598
|
+
}
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
```html
|
|
602
|
+
<!-- The .dark class activates the override tokens -->
|
|
603
|
+
<html class="dark">
|
|
604
|
+
<!-- All var(--surface), var(--ink-1), etc. now resolve to dark values -->
|
|
605
|
+
</html>
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
### Tailwind CSS Integration
|
|
609
|
+
|
|
610
|
+
Map tokens to Tailwind in `tailwind.config.js`:
|
|
611
|
+
|
|
612
|
+
```js
|
|
613
|
+
// tailwind.config.js (extends existing warm-editorial setup)
|
|
614
|
+
module.exports = {
|
|
615
|
+
darkMode: 'class', // Use .dark class, not media query
|
|
616
|
+
theme: {
|
|
617
|
+
extend: {
|
|
618
|
+
colors: {
|
|
619
|
+
background: 'var(--bg)',
|
|
620
|
+
surface: 'var(--surface)',
|
|
621
|
+
'surface-2': 'var(--surface-2)',
|
|
622
|
+
'surface-3': 'var(--surface-3)',
|
|
623
|
+
border: 'var(--border)',
|
|
624
|
+
'ink-1': 'var(--ink-1)',
|
|
625
|
+
'ink-2': 'var(--ink-2)',
|
|
626
|
+
'ink-3': 'var(--ink-3)',
|
|
627
|
+
'ink-4': 'var(--ink-4)',
|
|
628
|
+
brand: 'var(--brand)',
|
|
629
|
+
'brand-soft': 'var(--brand-soft)',
|
|
630
|
+
},
|
|
631
|
+
},
|
|
632
|
+
},
|
|
633
|
+
};
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
Components then use `bg-surface`, `text-ink-1`, `border-border` — **no `dark:` prefix needed**. The CSS variables swap automatically when `.dark` is applied.
|
|
637
|
+
|
|
638
|
+
### Dark Mode Component Adaptations
|
|
639
|
+
|
|
640
|
+
#### Alert / Highlight Cards
|
|
641
|
+
|
|
642
|
+
```css
|
|
643
|
+
.dark .alert-card {
|
|
644
|
+
background: linear-gradient(135deg, rgba(248,81,73,0.08) 0%, rgba(248,81,73,0.04) 100%);
|
|
645
|
+
border-color: rgba(248,81,73,0.20);
|
|
646
|
+
}
|
|
647
|
+
.dark .callout-green {
|
|
648
|
+
background: var(--green-soft);
|
|
649
|
+
border-color: var(--green-border);
|
|
650
|
+
}
|
|
651
|
+
.dark .callout-blue {
|
|
652
|
+
background: var(--blue-soft);
|
|
653
|
+
border-color: var(--blue-border);
|
|
654
|
+
}
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
#### Sidebar (Dark)
|
|
658
|
+
|
|
659
|
+
```css
|
|
660
|
+
.dark .sidebar {
|
|
661
|
+
background: var(--surface); /* #242320 — warm dark */
|
|
662
|
+
border-right-color: var(--border); /* #3A3834 */
|
|
663
|
+
}
|
|
664
|
+
.dark .nav-item.active {
|
|
665
|
+
background: var(--brand-soft); /* rgba tint, not opaque */
|
|
666
|
+
color: var(--brand); /* #F52D2D — brightened */
|
|
667
|
+
}
|
|
668
|
+
.dark .brand-logo {
|
|
669
|
+
box-shadow: 0 3px 10px rgba(245,45,45,0.35); /* slightly more glow on dark */
|
|
670
|
+
}
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
#### KPI Cards (Dark)
|
|
674
|
+
|
|
675
|
+
No CSS changes needed — KPI cards already use `var(--surface)`, `var(--border)`, `var(--shadow-sm)` which swap automatically. The colored top bar uses `var(--kpi-color)` which is set per-card (brand/green/amber/red).
|
|
676
|
+
|
|
677
|
+
#### Charts (Dark)
|
|
678
|
+
|
|
679
|
+
When using Recharts, Plotly, or similar:
|
|
680
|
+
|
|
681
|
+
```tsx
|
|
682
|
+
// Chart colors adapt to theme via CSS variables
|
|
683
|
+
const chartConfig = {
|
|
684
|
+
backgroundColor: 'var(--surface)',
|
|
685
|
+
gridColor: 'var(--border)',
|
|
686
|
+
textColor: 'var(--ink-3)',
|
|
687
|
+
axisColor: 'var(--ink-4)',
|
|
688
|
+
};
|
|
689
|
+
|
|
690
|
+
// For Plotly specifically:
|
|
691
|
+
const plotlyLayout = {
|
|
692
|
+
paper_bgcolor: 'transparent',
|
|
693
|
+
plot_bgcolor: 'transparent',
|
|
694
|
+
font: { color: 'var(--ink-2)' },
|
|
695
|
+
xaxis: { gridcolor: 'var(--border)', zerolinecolor: 'var(--border-strong)' },
|
|
696
|
+
yaxis: { gridcolor: 'var(--border)', zerolinecolor: 'var(--border-strong)' },
|
|
697
|
+
};
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
### Dark Mode vs Light Mode — Quick Reference
|
|
701
|
+
|
|
702
|
+
| Token | Light | Dark | Notes |
|
|
703
|
+
|-------|-------|------|-------|
|
|
704
|
+
| `--bg` | `#F5F3F0` cream | `#1A1917` warm near-black | Both warm-tinted |
|
|
705
|
+
| `--surface` | `#FFFFFF` white | `#242320` warm charcoal | Cards, panels |
|
|
706
|
+
| `--surface-2` | `#F9F8F6` subtle | `#1E1D1B` recessed | Inputs, insets |
|
|
707
|
+
| `--border` | `#E5E2DC` warm beige | `#3A3834` warm dark | Both avoid cold grey |
|
|
708
|
+
| `--ink-1` | `#1A1816` warm black | `#E8E5DF` warm off-white | Primary text |
|
|
709
|
+
| `--ink-3` | `#6B6760` warm grey | `#A8A49C` lighter warm grey | Tertiary text |
|
|
710
|
+
| `--ink-4` | `#9C9890` muted | `#8A8680` muted (lifted) | Placeholder/section labels |
|
|
711
|
+
| `--brand` | `#E10A0A` | `#F52D2D` | Brightened for dark |
|
|
712
|
+
| `--green` | `#16A34A` | `#3FB950` | Brightened for dark |
|
|
713
|
+
| `--red` | `#DC2626` | `#F85149` | Brightened for dark |
|
|
714
|
+
| `--shadow-sm` | `rgba(26,24,22,0.06)` | `rgba(0,0,0,0.32)` | Higher opacity on dark |
|
|
715
|
+
|
|
716
|
+
### What Makes This Dark Mode Distinctive
|
|
717
|
+
|
|
718
|
+
1. **Warm charcoal, not cold**: Backgrounds are `#1A1917` (brown-black), not `#0D1117` (GitHub blue-black) or `#0a0a0a` (pure black)
|
|
719
|
+
2. **Soft, not harsh**: Surfaces at `#242320` are visibly lighter than the `#1A1917` page — creating depth without being stark
|
|
720
|
+
3. **Status colors breathe**: Green/red/amber/blue are ~15% brighter than their light-mode counterparts — they pop without screaming
|
|
721
|
+
4. **Shadows still work**: Unlike many dark themes where shadows vanish, the `rgba(0,0,0,0.3-0.5)` range creates visible but subtle elevation
|
|
722
|
+
5. **Brand stays warm**: The red accent at `#F52D2D` glows slightly warmer, working with the warm charcoal surface instead of fighting it
|
|
723
|
+
6. **Muted text stays readable**: `--ink-4` at `#8A8680` achieves 4.6:1 contrast on card surfaces — grey but never invisible
|
|
724
|
+
|
|
725
|
+
### Don'ts (Dark Mode)
|
|
726
|
+
|
|
727
|
+
- ❌ No pure black backgrounds (`#000000`, `#0a0a0a`)
|
|
728
|
+
- ❌ No cold blue-grey (`#1C2128`, `#22272E`) — use warm tones
|
|
729
|
+
- ❌ No stark white text (`#FFFFFF`) — use warm off-white `#E8E5DF`
|
|
730
|
+
- ❌ No identical status colors as light mode — brighten them for dark backgrounds
|
|
731
|
+
- ❌ No `opacity: 0.5` for muting — use dedicated muted tokens instead
|
|
732
|
+
- ❌ No light-mode shadow values — dark surfaces need higher-opacity shadows
|