tribunal-kit 9.2.4 → 9.2.5
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/.agent/.manifest.json +78 -78
- package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
- package/.agent/.tribunal/session.jsonl +15 -15
- package/.agent/ADRs/ADR-001-system-architecture-intelligence.md +49 -0
- package/.agent/ARCHITECTURE.md +63 -63
- package/.agent/agents/accessibility-reviewer.md +109 -109
- package/.agent/agents/agent-shield-auditor.md +18 -18
- package/.agent/agents/ai-code-reviewer.md +223 -223
- package/.agent/agents/anti-pattern-reviewer.md +104 -104
- package/.agent/agents/api-architect.md +89 -89
- package/.agent/agents/architecture-auditor.md +195 -0
- package/.agent/agents/backend-specialist.md +242 -242
- package/.agent/agents/cloud-engineer.md +120 -120
- package/.agent/agents/code-archaeologist.md +186 -186
- package/.agent/agents/complexity-reviewer.md +76 -76
- package/.agent/agents/database-architect.md +206 -206
- package/.agent/agents/db-latency-auditor.md +237 -237
- package/.agent/agents/debugger.md +215 -215
- package/.agent/agents/dependency-reviewer.md +124 -124
- package/.agent/agents/devops-engineer.md +240 -240
- package/.agent/agents/documentation-writer.md +228 -228
- package/.agent/agents/explorer-agent.md +186 -186
- package/.agent/agents/frontend-reviewer.md +195 -195
- package/.agent/agents/frontend-specialist.md +122 -122
- package/.agent/agents/game-developer.md +68 -68
- package/.agent/agents/harness-manager.md +49 -49
- package/.agent/agents/human-gate-negotiator.md +22 -22
- package/.agent/agents/interaction-reviewer.md +123 -123
- package/.agent/agents/kernel-scheduler.md +56 -56
- package/.agent/agents/logic-reviewer.md +147 -147
- package/.agent/agents/memory-archivist.md +37 -37
- package/.agent/agents/minimalist-reviewer.md +104 -104
- package/.agent/agents/mobile-developer.md +216 -216
- package/.agent/agents/mobile-reviewer.md +180 -180
- package/.agent/agents/orchestrator.md +268 -268
- package/.agent/agents/penetration-tester.md +180 -180
- package/.agent/agents/performance-optimizer.md +202 -202
- package/.agent/agents/performance-reviewer.md +180 -180
- package/.agent/agents/pipeline-reviewer.md +144 -144
- package/.agent/agents/precedence-reviewer.md +266 -266
- package/.agent/agents/product-manager.md +167 -167
- package/.agent/agents/product-owner.md +103 -103
- package/.agent/agents/product-reviewer.md +103 -103
- package/.agent/agents/project-planner.md +181 -181
- package/.agent/agents/qa-automation-engineer.md +244 -244
- package/.agent/agents/resilience-reviewer.md +108 -108
- package/.agent/agents/schema-reviewer.md +87 -87
- package/.agent/agents/security-auditor.md +204 -204
- package/.agent/agents/seo-specialist.md +213 -213
- package/.agent/agents/sql-reviewer.md +180 -180
- package/.agent/agents/supervisor-agent.md +202 -202
- package/.agent/agents/swarm-worker-contracts.md +170 -170
- package/.agent/agents/swarm-worker-registry.md +99 -99
- package/.agent/agents/system-architect.md +260 -105
- package/.agent/agents/test-coverage-reviewer.md +181 -181
- package/.agent/agents/test-engineer.md +138 -138
- package/.agent/agents/throughput-optimizer.md +316 -316
- package/.agent/agents/type-safety-reviewer.md +202 -202
- package/.agent/agents/ui-ux-auditor.md +80 -80
- package/.agent/agents/ui-visual-auditor.md +102 -102
- package/.agent/agents/ux-reviewer.md +109 -109
- package/.agent/agents/visual-reviewer.md +103 -103
- package/.agent/agents/vitals-reviewer.md +245 -245
- package/.agent/config/claude.json +18 -18
- package/.agent/config/plugin.json +102 -102
- package/.agent/config/slash-commands.json +115 -115
- package/.agent/config/specialist-registry.json +415 -415
- package/.agent/config/system-prompt.md +258 -258
- package/.agent/history/arch-mapper-cache.json +6712 -0
- package/.agent/history/architecture.idx.json +5746 -0
- package/.agent/mcp_config.json +32 -32
- package/.agent/patterns/generator.md +11 -11
- package/.agent/patterns/inversion.md +14 -14
- package/.agent/patterns/pipeline.md +11 -11
- package/.agent/patterns/reviewer.md +15 -15
- package/.agent/patterns/tool-wrapper.md +11 -11
- package/.agent/plans/implementation_plan.md +48 -0
- package/.agent/plans/task.md +35 -0
- package/.agent/routing_index.json +2060 -2060
- package/.agent/rules/GEMINI.md +437 -437
- package/.agent/rules/GEMINI_PLANNER.md +82 -82
- package/.agent/rules/kernel.md +86 -86
- package/.agent/scripts/_colors.js +210 -210
- package/.agent/scripts/_utils.js +373 -377
- package/.agent/scripts/architecture_mapper.js +625 -0
- package/.agent/scripts/ast_context_loader.js +137 -137
- package/.agent/scripts/auto_preview.js +203 -203
- package/.agent/scripts/browser_audit.js +102 -102
- package/.agent/scripts/bundle_analyzer.js +287 -287
- package/.agent/scripts/case_law_manager.js +887 -887
- package/.agent/scripts/checklist.js +300 -300
- package/.agent/scripts/cicd_validator.js +305 -305
- package/.agent/scripts/context_broker.js +962 -962
- package/.agent/scripts/context_compiler.js +1143 -1112
- package/.agent/scripts/contract_engine.js +402 -402
- package/.agent/scripts/dependency_analyzer.js +313 -313
- package/.agent/scripts/graph_builder.js +384 -384
- package/.agent/scripts/graph_visualizer.js +390 -390
- package/.agent/scripts/graph_zoom.js +181 -181
- package/.agent/scripts/guardrail_engine.js +785 -785
- package/.agent/scripts/harness_manager.js +60 -60
- package/.agent/scripts/impact_classifier.js +192 -192
- package/.agent/scripts/inner_loop_validator.js +472 -472
- package/.agent/scripts/integrity_manifest.js +484 -484
- package/.agent/scripts/lint_runner.js +218 -218
- package/.agent/scripts/marathon_harness.js +986 -986
- package/.agent/scripts/mcp_server.js +181 -181
- package/.agent/scripts/memory_archivist.js +97 -97
- package/.agent/scripts/memory_consolidator.js +37 -37
- package/.agent/scripts/memory_engine.js +782 -782
- package/.agent/scripts/minify_context.js +111 -111
- package/.agent/scripts/minimal_change_engine.js +445 -445
- package/.agent/scripts/mutation_runner.js +307 -305
- package/.agent/scripts/payload_schemas.js +164 -164
- package/.agent/scripts/pipeline_engine.js +906 -906
- package/.agent/scripts/prompt_compiler.js +272 -272
- package/.agent/scripts/schema_validator.js +326 -326
- package/.agent/scripts/security_scan.js +390 -390
- package/.agent/scripts/session_logger.js +115 -115
- package/.agent/scripts/session_manager.js +299 -299
- package/.agent/scripts/signal_detector.js +175 -175
- package/.agent/scripts/skill_evolution.js +997 -997
- package/.agent/scripts/skill_integrator.js +304 -304
- package/.agent/scripts/socratic_gate_policy.js +63 -63
- package/.agent/scripts/strengthen_skills.js +199 -199
- package/.agent/scripts/swarm_dispatcher.js +983 -979
- package/.agent/scripts/syscall_registry.js +105 -105
- package/.agent/scripts/test_runner.js +209 -209
- package/.agent/scripts/token_budget_broker.js +165 -165
- package/.agent/scripts/trace_engine.js +126 -126
- package/.agent/scripts/verify_all.js +276 -276
- package/.agent/scripts/visual_audit.js +87 -87
- package/.agent/skill_topic_map.json +314 -314
- package/.agent/skills/12-principles-of-animation/SKILL.md +51 -51
- package/.agent/skills/60fps-animation/SKILL.md +91 -91
- package/.agent/skills/accessible-animation/SKILL.md +189 -189
- package/.agent/skills/adapt/SKILL.md +56 -56
- package/.agent/skills/adr-generation/SKILL.md +57 -0
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +94 -94
- package/.agent/skills/agent-organizer/SKILL.md +117 -117
- package/.agent/skills/agent-syscall-guidelines/SKILL.md +25 -25
- package/.agent/skills/agentic-patterns/SKILL.md +281 -281
- package/.agent/skills/agentic-workflows-2026/SKILL.md +91 -91
- package/.agent/skills/agentshield-security/SKILL.md +26 -26
- package/.agent/skills/ai-app-hardening/SKILL.md +51 -51
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +162 -162
- package/.agent/skills/animation-on-scroll/SKILL.md +196 -196
- package/.agent/skills/animation-systems/SKILL.md +198 -198
- package/.agent/skills/antfu-conventions/SKILL.md +54 -54
- package/.agent/skills/api-patterns/SKILL.md +218 -218
- package/.agent/skills/api-security-auditor/SKILL.md +155 -155
- package/.agent/skills/app-builder/SKILL.md +535 -535
- package/.agent/skills/app-builder/templates/SKILL.md +108 -108
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -126
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -127
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -172
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -139
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -122
- package/.agent/skills/appflow-wireframe/SKILL.md +96 -96
- package/.agent/skills/apple-design/SKILL.md +89 -89
- package/.agent/skills/architecture/SKILL.md +188 -188
- package/.agent/skills/architecture-drift/SKILL.md +45 -0
- package/.agent/skills/audit-and-fix/SKILL.md +100 -100
- package/.agent/skills/authentication-best-practices/SKILL.md +157 -157
- package/.agent/skills/autonomous-execution/SKILL.md +76 -0
- package/.agent/skills/backend-security-expert/SKILL.md +73 -73
- package/.agent/skills/baseline-ui/SKILL.md +55 -55
- package/.agent/skills/bash-linux/SKILL.md +139 -139
- package/.agent/skills/behavioral-modes/SKILL.md +200 -200
- package/.agent/skills/better-colors/SKILL.md +116 -116
- package/.agent/skills/better-typography/SKILL.md +90 -90
- package/.agent/skills/better-ui/SKILL.md +130 -130
- package/.agent/skills/bolder/SKILL.md +49 -49
- package/.agent/skills/brainstorming/SKILL.md +460 -460
- package/.agent/skills/browser-audit/SKILL.md +102 -102
- package/.agent/skills/browser-native-ai/SKILL.md +72 -72
- package/.agent/skills/build-primitive/SKILL.md +50 -50
- package/.agent/skills/building-native-ui/SKILL.md +162 -162
- package/.agent/skills/cicd-pro/SKILL.md +412 -412
- package/.agent/skills/clarify/SKILL.md +55 -55
- package/.agent/skills/clean-code/SKILL.md +367 -367
- package/.agent/skills/cloud-architect/SKILL.md +409 -409
- package/.agent/skills/cobejs/SKILL.md +70 -70
- package/.agent/skills/code-review-checklist/SKILL.md +163 -163
- package/.agent/skills/codebase-design/SKILL.md +76 -76
- package/.agent/skills/colorize/SKILL.md +57 -57
- package/.agent/skills/compact-landing/SKILL.md +50 -50
- package/.agent/skills/company-logos/SKILL.md +54 -54
- package/.agent/skills/config-validator/SKILL.md +125 -125
- package/.agent/skills/containerization-pro/SKILL.md +422 -422
- package/.agent/skills/context-engineering-pro/SKILL.md +69 -69
- package/.agent/skills/create-design-md/SKILL.md +92 -92
- package/.agent/skills/critique/SKILL.md +79 -79
- package/.agent/skills/csharp-developer/SKILL.md +478 -478
- package/.agent/skills/data-validation-schemas/SKILL.md +297 -297
- package/.agent/skills/database-design/SKILL.md +219 -219
- package/.agent/skills/delight/SKILL.md +46 -46
- package/.agent/skills/deployment-procedures/SKILL.md +132 -132
- package/.agent/skills/design-lab/SKILL.md +42 -42
- package/.agent/skills/devops-engineer/SKILL.md +305 -305
- package/.agent/skills/devops-incident-responder/SKILL.md +103 -103
- package/.agent/skills/diagnosing-bugs/SKILL.md +172 -172
- package/.agent/skills/distill/SKILL.md +45 -45
- package/.agent/skills/documentation-templates/SKILL.md +251 -251
- package/.agent/skills/domain-modeling/SKILL.md +61 -61
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +51 -51
- package/.agent/skills/edge-ai-mobile/SKILL.md +42 -42
- package/.agent/skills/edge-computing/SKILL.md +143 -143
- package/.agent/skills/emil-design-eng/SKILL.md +134 -134
- package/.agent/skills/error-resilience/SKILL.md +403 -403
- package/.agent/skills/expo-router-v4/SKILL.md +72 -72
- package/.agent/skills/extract-design-system/SKILL.md +120 -120
- package/.agent/skills/fabel-protocol/SKILL.md +282 -282
- package/.agent/skills/failure-mode-analysis/SKILL.md +48 -0
- package/.agent/skills/fixing-accessibility/SKILL.md +87 -87
- package/.agent/skills/fixing-metadata/SKILL.md +83 -83
- package/.agent/skills/fixing-motion-performance/SKILL.md +78 -78
- package/.agent/skills/framer-motion-expert/SKILL.md +237 -237
- package/.agent/skills/frontend-design/SKILL.md +103 -103
- package/.agent/skills/frontend-security-expert/SKILL.md +56 -56
- package/.agent/skills/game-design-expert/SKILL.md +92 -92
- package/.agent/skills/game-engineering-expert/SKILL.md +108 -108
- package/.agent/skills/generative-ui-expert/SKILL.md +100 -100
- package/.agent/skills/geo-fundamentals/SKILL.md +108 -108
- package/.agent/skills/git-pro/SKILL.md +401 -401
- package/.agent/skills/github-operations/SKILL.md +295 -295
- package/.agent/skills/gpt-taste/SKILL.md +50 -50
- package/.agent/skills/graph-engineering/SKILL.md +28 -28
- package/.agent/skills/gsap-core/SKILL.md +277 -277
- package/.agent/skills/gsap-frameworks/SKILL.md +168 -168
- package/.agent/skills/gsap-performance/SKILL.md +94 -94
- package/.agent/skills/gsap-plugins/SKILL.md +441 -441
- package/.agent/skills/gsap-react/SKILL.md +213 -213
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +312 -312
- package/.agent/skills/gsap-timeline/SKILL.md +122 -122
- package/.agent/skills/gsap-utils/SKILL.md +299 -299
- package/.agent/skills/harden/SKILL.md +55 -55
- package/.agent/skills/harness-protocol/SKILL.md +48 -48
- package/.agent/skills/huggingface-spaces/SKILL.md +1 -1
- package/.agent/skills/human-gate-negotiation/SKILL.md +30 -30
- package/.agent/skills/i18n-localization/SKILL.md +134 -134
- package/.agent/skills/impeccable/SKILL.md +52 -52
- package/.agent/skills/improve-codebase-architecture/SKILL.md +48 -48
- package/.agent/skills/improve-ui/SKILL.md +70 -70
- package/.agent/skills/intelligent-routing/SKILL.md +204 -204
- package/.agent/skills/knowledge-graph/SKILL.md +71 -71
- package/.agent/skills/landing-page/SKILL.md +65 -65
- package/.agent/skills/lint-and-validate/SKILL.md +224 -224
- package/.agent/skills/llm-engineering/SKILL.md +360 -360
- package/.agent/skills/local-first/SKILL.md +138 -138
- package/.agent/skills/local-first-architecture/SKILL.md +62 -62
- package/.agent/skills/lottie-animation/SKILL.md +62 -62
- package/.agent/skills/marquee-loop/SKILL.md +72 -72
- package/.agent/skills/masked-reveal/SKILL.md +230 -230
- package/.agent/skills/mcp-builder/SKILL.md +105 -105
- package/.agent/skills/micro-interaction/SKILL.md +253 -253
- package/.agent/skills/mobile-design/SKILL.md +245 -245
- package/.agent/skills/monorepo-management/SKILL.md +295 -295
- package/.agent/skills/morphing-icons/SKILL.md +348 -348
- package/.agent/skills/motion-engineering/SKILL.md +197 -197
- package/.agent/skills/nextjs-react-expert/SKILL.md +218 -218
- package/.agent/skills/nodejs-best-practices/SKILL.md +542 -542
- package/.agent/skills/observability/SKILL.md +303 -303
- package/.agent/skills/opentelemetry-observability/SKILL.md +51 -51
- package/.agent/skills/page-transition-animation/SKILL.md +86 -86
- package/.agent/skills/parallel-agents/SKILL.md +110 -110
- package/.agent/skills/performance-profiling/SKILL.md +230 -230
- package/.agent/skills/plan-writing/SKILL.md +127 -127
- package/.agent/skills/platform-engineer/SKILL.md +108 -108
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +59 -59
- package/.agent/skills/playwright-ai-e2e/SKILL.md +52 -52
- package/.agent/skills/playwright-best-practices/SKILL.md +149 -149
- package/.agent/skills/polish/SKILL.md +39 -39
- package/.agent/skills/powershell-windows/SKILL.md +122 -122
- package/.agent/skills/pricing-page/SKILL.md +48 -48
- package/.agent/skills/product-aware-heuristics/SKILL.md +390 -390
- package/.agent/skills/progressive-blur/SKILL.md +80 -80
- package/.agent/skills/project-idioms/SKILL.md +91 -91
- package/.agent/skills/property-based-testing/SKILL.md +50 -50
- package/.agent/skills/python-patterns/SKILL.md +220 -220
- package/.agent/skills/python-pro/SKILL.md +305 -305
- package/.agent/skills/quieter/SKILL.md +49 -49
- package/.agent/skills/react-doctor/SKILL.md +51 -51
- package/.agent/skills/react-specialist/SKILL.md +280 -280
- package/.agent/skills/readme-builder/SKILL.md +270 -270
- package/.agent/skills/realtime-patterns/SKILL.md +283 -283
- package/.agent/skills/red-team-tactics/SKILL.md +191 -191
- package/.agent/skills/redesign-skill/SKILL.md +46 -46
- package/.agent/skills/review-animations/SKILL.md +45 -45
- package/.agent/skills/review-animations/STANDARDS.md +87 -87
- package/.agent/skills/rust-pro/SKILL.md +652 -652
- package/.agent/skills/semantic-filesystem-navigation/SKILL.md +24 -24
- package/.agent/skills/seo-fundamentals/SKILL.md +139 -139
- package/.agent/skills/server-management/SKILL.md +178 -178
- package/.agent/skills/session-log-interrogation/SKILL.md +29 -29
- package/.agent/skills/shadcn-ui-expert/SKILL.md +196 -196
- package/.agent/skills/shape/SKILL.md +56 -56
- package/.agent/skills/skill-creator/SKILL.md +177 -177
- package/.agent/skills/soft-skill/SKILL.md +53 -53
- package/.agent/skills/sounds-on-the-web/SKILL.md +76 -76
- package/.agent/skills/sql-pro/SKILL.md +624 -624
- package/.agent/skills/subagent-driven-development/SKILL.md +32 -32
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +57 -57
- package/.agent/skills/svg-animation/SKILL.md +356 -356
- package/.agent/skills/swiftui-expert/SKILL.md +164 -164
- package/.agent/skills/swiss-design/SKILL.md +44 -44
- package/.agent/skills/system-design-pro/SKILL.md +188 -318
- package/.agent/skills/systematic-debugging/SKILL.md +129 -129
- package/.agent/skills/systematic-debugging/condition-based-waiting.md +120 -120
- package/.agent/skills/systematic-debugging/defense-in-depth.md +128 -128
- package/.agent/skills/systematic-debugging/root-cause-tracing.md +183 -183
- package/.agent/skills/tailwind-patterns/SKILL.md +583 -583
- package/.agent/skills/taste-skill/SKILL.md +52 -52
- package/.agent/skills/tdd-workflow/SKILL.md +105 -105
- package/.agent/skills/test-result-analyzer/SKILL.md +270 -270
- package/.agent/skills/testing-patterns/SKILL.md +534 -534
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +62 -62
- package/.agent/skills/thinking-protocol/SKILL.md +21 -21
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +43 -43
- package/.agent/skills/transformers-js/references/CONFIGURATION.md +1 -1
- package/.agent/skills/transitions-dev/SKILL.md +90 -90
- package/.agent/skills/trend-researcher/SKILL.md +198 -198
- package/.agent/skills/tribunal-instincts-memory/SKILL.md +31 -31
- package/.agent/skills/typescript-advanced/SKILL.md +306 -306
- package/.agent/skills/typeset/SKILL.md +60 -60
- package/.agent/skills/ui-reasoning-engine/SKILL.md +155 -155
- package/.agent/skills/ui-skill-packs/SKILL.md +57 -57
- package/.agent/skills/ui-skills-root/SKILL.md +69 -69
- package/.agent/skills/ui-ux-pro-max/SKILL.md +110 -110
- package/.agent/skills/ui-ux-researcher/SKILL.md +199 -199
- package/.agent/skills/vector-search-pgvector/SKILL.md +70 -70
- package/.agent/skills/verification-before-completion/SKILL.md +107 -107
- package/.agent/skills/vue-expert/SKILL.md +259 -259
- package/.agent/skills/vulnerability-scanner/SKILL.md +378 -378
- package/.agent/skills/web-accessibility-auditor/SKILL.md +179 -179
- package/.agent/skills/web-design-guidelines/SKILL.md +49 -49
- package/.agent/skills/web-quality-audit/SKILL.md +47 -47
- package/.agent/skills/webapp-testing/SKILL.md +128 -128
- package/.agent/skills/webgpu-performance/SKILL.md +88 -88
- package/.agent/skills/whimsy-injector/SKILL.md +305 -305
- package/.agent/skills/workflow-optimizer/SKILL.md +188 -188
- package/.agent/skills/zero-trust-passkeys/SKILL.md +82 -82
- package/.agent/templates/DESIGN.md +843 -843
- package/.agent/templates/design-tokens.json +140 -140
- package/.agent/templates/sdd/implementer-prompt.md +62 -62
- package/.agent/templates/sdd/re-review-prompt.md +36 -36
- package/.agent/templates/sdd/task-reviewer-prompt.md +78 -78
- package/.agent/workflows/acf.md +153 -153
- package/.agent/workflows/api-tester.md +189 -189
- package/.agent/workflows/assimilate.md +21 -21
- package/.agent/workflows/audit-live.md +53 -53
- package/.agent/workflows/audit.md +172 -172
- package/.agent/workflows/brainstorm.md +157 -157
- package/.agent/workflows/changelog.md +152 -152
- package/.agent/workflows/compare-web.md +35 -35
- package/.agent/workflows/context.md +102 -102
- package/.agent/workflows/contract.md +79 -79
- package/.agent/workflows/create.md +182 -182
- package/.agent/workflows/debug.md +201 -201
- package/.agent/workflows/deploy.md +215 -215
- package/.agent/workflows/enhance.md +165 -165
- package/.agent/workflows/fix-ci.md +94 -94
- package/.agent/workflows/fix.md +149 -149
- package/.agent/workflows/generate.md +216 -216
- package/.agent/workflows/htop.md +22 -22
- package/.agent/workflows/marathon.md +291 -291
- package/.agent/workflows/migrate.md +198 -198
- package/.agent/workflows/minimal.md +101 -101
- package/.agent/workflows/orchestrate.md +205 -205
- package/.agent/workflows/performance-benchmarker.md +148 -148
- package/.agent/workflows/pipeline.md +165 -165
- package/.agent/workflows/plan.md +206 -206
- package/.agent/workflows/preview.md +116 -116
- package/.agent/workflows/refactor.md +207 -207
- package/.agent/workflows/resume.md +20 -20
- package/.agent/workflows/review-ai.md +139 -139
- package/.agent/workflows/review.md +155 -155
- package/.agent/workflows/sdd.md +137 -137
- package/.agent/workflows/session.md +135 -135
- package/.agent/workflows/skill-enhancement-engine.md +84 -84
- package/.agent/workflows/status.md +112 -112
- package/.agent/workflows/strengthen-skills.md +174 -174
- package/.agent/workflows/super-prompt.md +146 -146
- package/.agent/workflows/swarm.md +218 -218
- package/.agent/workflows/team-mode.md +22 -22
- package/.agent/workflows/test.md +224 -224
- package/.agent/workflows/tribunal-backend.md +149 -149
- package/.agent/workflows/tribunal-cicd.md +109 -109
- package/.agent/workflows/tribunal-database.md +142 -142
- package/.agent/workflows/tribunal-frontend.md +157 -157
- package/.agent/workflows/tribunal-full.md +156 -156
- package/.agent/workflows/tribunal-mobile.md +142 -142
- package/.agent/workflows/tribunal-performance.md +149 -149
- package/.agent/workflows/tribunal-speed.md +222 -222
- package/.agent/workflows/tribunal-ui.md +97 -97
- package/.agent/workflows/ui-ux-pro-max.md +103 -103
- package/.agents/skills/12-principles-of-animation/SKILL.md +51 -51
- package/.agents/skills/60fps-animation/SKILL.md +91 -91
- package/.agents/skills/accessible-animation/SKILL.md +189 -189
- package/.agents/skills/adapt/SKILL.md +56 -56
- package/.agents/skills/adr-generation/SKILL.md +57 -0
- package/.agents/skills/advanced-rag-pipelines/SKILL.md +94 -94
- package/.agents/skills/agent-organizer/SKILL.md +117 -117
- package/.agents/skills/agent-syscall-guidelines/SKILL.md +25 -25
- package/.agents/skills/agentic-patterns/SKILL.md +281 -281
- package/.agents/skills/agentic-workflows-2026/SKILL.md +91 -91
- package/.agents/skills/agentshield-security/SKILL.md +26 -26
- package/.agents/skills/ai-app-hardening/SKILL.md +51 -51
- package/.agents/skills/ai-prompt-injection-defense/SKILL.md +162 -162
- package/.agents/skills/animation-on-scroll/SKILL.md +196 -196
- package/.agents/skills/animation-systems/SKILL.md +198 -198
- package/.agents/skills/antfu-conventions/SKILL.md +54 -54
- package/.agents/skills/api-patterns/SKILL.md +218 -218
- package/.agents/skills/api-security-auditor/SKILL.md +155 -155
- package/.agents/skills/app-builder/SKILL.md +535 -535
- package/.agents/skills/app-builder/templates/SKILL.md +108 -108
- package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -126
- package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -127
- package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -172
- package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -139
- package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -122
- package/.agents/skills/appflow-wireframe/SKILL.md +96 -96
- package/.agents/skills/apple-design/SKILL.md +89 -89
- package/.agents/skills/architecture/SKILL.md +188 -188
- package/.agents/skills/architecture-drift/SKILL.md +45 -0
- package/.agents/skills/audit-and-fix/SKILL.md +100 -100
- package/.agents/skills/authentication-best-practices/SKILL.md +157 -157
- package/.agents/skills/autonomous-execution/SKILL.md +76 -0
- package/.agents/skills/backend-security-expert/SKILL.md +73 -73
- package/.agents/skills/baseline-ui/SKILL.md +55 -55
- package/.agents/skills/bash-linux/SKILL.md +139 -139
- package/.agents/skills/behavioral-modes/SKILL.md +200 -200
- package/.agents/skills/better-colors/SKILL.md +116 -116
- package/.agents/skills/better-typography/SKILL.md +90 -90
- package/.agents/skills/better-ui/SKILL.md +130 -130
- package/.agents/skills/bolder/SKILL.md +49 -49
- package/.agents/skills/brainstorming/SKILL.md +460 -460
- package/.agents/skills/browser-audit/SKILL.md +102 -102
- package/.agents/skills/browser-native-ai/SKILL.md +72 -72
- package/.agents/skills/build-primitive/SKILL.md +50 -50
- package/.agents/skills/building-native-ui/SKILL.md +162 -162
- package/.agents/skills/cicd-pro/SKILL.md +412 -412
- package/.agents/skills/clarify/SKILL.md +55 -55
- package/.agents/skills/clean-code/SKILL.md +367 -367
- package/.agents/skills/cloud-architect/SKILL.md +409 -409
- package/.agents/skills/cobejs/SKILL.md +70 -70
- package/.agents/skills/code-review-checklist/SKILL.md +163 -163
- package/.agents/skills/codebase-design/SKILL.md +76 -76
- package/.agents/skills/colorize/SKILL.md +57 -57
- package/.agents/skills/compact-landing/SKILL.md +50 -50
- package/.agents/skills/company-logos/SKILL.md +54 -54
- package/.agents/skills/config-validator/SKILL.md +125 -125
- package/.agents/skills/containerization-pro/SKILL.md +422 -422
- package/.agents/skills/context-engineering-pro/SKILL.md +69 -69
- package/.agents/skills/create-design-md/SKILL.md +92 -92
- package/.agents/skills/critique/SKILL.md +79 -79
- package/.agents/skills/csharp-developer/SKILL.md +478 -478
- package/.agents/skills/data-validation-schemas/SKILL.md +297 -297
- package/.agents/skills/database-design/SKILL.md +219 -219
- package/.agents/skills/delight/SKILL.md +46 -46
- package/.agents/skills/deployment-procedures/SKILL.md +132 -132
- package/.agents/skills/design-lab/SKILL.md +42 -42
- package/.agents/skills/devops-engineer/SKILL.md +305 -305
- package/.agents/skills/devops-incident-responder/SKILL.md +103 -103
- package/.agents/skills/diagnosing-bugs/SKILL.md +172 -172
- package/.agents/skills/distill/SKILL.md +45 -45
- package/.agents/skills/documentation-templates/SKILL.md +251 -251
- package/.agents/skills/domain-modeling/SKILL.md +61 -61
- package/.agents/skills/duckdb-analytical-sql/SKILL.md +51 -51
- package/.agents/skills/edge-ai-mobile/SKILL.md +42 -42
- package/.agents/skills/edge-computing/SKILL.md +143 -143
- package/.agents/skills/emil-design-eng/SKILL.md +134 -134
- package/.agents/skills/error-resilience/SKILL.md +403 -403
- package/.agents/skills/expo-router-v4/SKILL.md +72 -72
- package/.agents/skills/extract-design-system/SKILL.md +120 -120
- package/.agents/skills/fabel-protocol/SKILL.md +282 -282
- package/.agents/skills/failure-mode-analysis/SKILL.md +48 -0
- package/.agents/skills/fixing-accessibility/SKILL.md +87 -87
- package/.agents/skills/fixing-metadata/SKILL.md +83 -83
- package/.agents/skills/fixing-motion-performance/SKILL.md +78 -78
- package/.agents/skills/framer-motion-expert/SKILL.md +237 -237
- package/.agents/skills/frontend-design/SKILL.md +103 -103
- package/.agents/skills/frontend-security-expert/SKILL.md +56 -56
- package/.agents/skills/game-design-expert/SKILL.md +92 -92
- package/.agents/skills/game-engineering-expert/SKILL.md +108 -108
- package/.agents/skills/generative-ui-expert/SKILL.md +100 -100
- package/.agents/skills/geo-fundamentals/SKILL.md +108 -108
- package/.agents/skills/git-pro/SKILL.md +401 -401
- package/.agents/skills/github-operations/SKILL.md +295 -295
- package/.agents/skills/gpt-taste/SKILL.md +50 -50
- package/.agents/skills/graph-engineering/SKILL.md +28 -28
- package/.agents/skills/gsap-core/SKILL.md +277 -277
- package/.agents/skills/gsap-frameworks/SKILL.md +168 -168
- package/.agents/skills/gsap-performance/SKILL.md +94 -94
- package/.agents/skills/gsap-plugins/SKILL.md +441 -441
- package/.agents/skills/gsap-react/SKILL.md +213 -213
- package/.agents/skills/gsap-scrolltrigger/SKILL.md +312 -312
- package/.agents/skills/gsap-timeline/SKILL.md +122 -122
- package/.agents/skills/gsap-utils/SKILL.md +299 -299
- package/.agents/skills/harden/SKILL.md +55 -55
- package/.agents/skills/harness-protocol/SKILL.md +48 -48
- package/.agents/skills/huggingface-spaces/SKILL.md +1 -1
- package/.agents/skills/human-gate-negotiation/SKILL.md +30 -30
- package/.agents/skills/i18n-localization/SKILL.md +134 -134
- package/.agents/skills/impeccable/SKILL.md +52 -52
- package/.agents/skills/improve-codebase-architecture/SKILL.md +48 -48
- package/.agents/skills/improve-ui/SKILL.md +70 -70
- package/.agents/skills/intelligent-routing/SKILL.md +204 -204
- package/.agents/skills/knowledge-graph/SKILL.md +71 -71
- package/.agents/skills/landing-page/SKILL.md +65 -65
- package/.agents/skills/lint-and-validate/SKILL.md +224 -224
- package/.agents/skills/llm-engineering/SKILL.md +360 -360
- package/.agents/skills/local-first/SKILL.md +138 -138
- package/.agents/skills/local-first-architecture/SKILL.md +62 -62
- package/.agents/skills/lottie-animation/SKILL.md +62 -62
- package/.agents/skills/marquee-loop/SKILL.md +72 -72
- package/.agents/skills/masked-reveal/SKILL.md +230 -230
- package/.agents/skills/mcp-builder/SKILL.md +105 -105
- package/.agents/skills/micro-interaction/SKILL.md +253 -253
- package/.agents/skills/mobile-design/SKILL.md +245 -245
- package/.agents/skills/monorepo-management/SKILL.md +295 -295
- package/.agents/skills/morphing-icons/SKILL.md +348 -348
- package/.agents/skills/motion-engineering/SKILL.md +197 -197
- package/.agents/skills/nextjs-react-expert/SKILL.md +218 -218
- package/.agents/skills/nodejs-best-practices/SKILL.md +542 -542
- package/.agents/skills/observability/SKILL.md +303 -303
- package/.agents/skills/opentelemetry-observability/SKILL.md +51 -51
- package/.agents/skills/page-transition-animation/SKILL.md +86 -86
- package/.agents/skills/parallel-agents/SKILL.md +110 -110
- package/.agents/skills/performance-profiling/SKILL.md +230 -230
- package/.agents/skills/plan-writing/SKILL.md +127 -127
- package/.agents/skills/platform-engineer/SKILL.md +108 -108
- package/.agents/skills/platform-engineering-opentofu/SKILL.md +59 -59
- package/.agents/skills/playwright-ai-e2e/SKILL.md +52 -52
- package/.agents/skills/playwright-best-practices/SKILL.md +149 -149
- package/.agents/skills/polish/SKILL.md +39 -39
- package/.agents/skills/powershell-windows/SKILL.md +122 -122
- package/.agents/skills/pricing-page/SKILL.md +48 -48
- package/.agents/skills/product-aware-heuristics/SKILL.md +390 -390
- package/.agents/skills/progressive-blur/SKILL.md +80 -80
- package/.agents/skills/project-idioms/SKILL.md +91 -91
- package/.agents/skills/property-based-testing/SKILL.md +50 -50
- package/.agents/skills/python-patterns/SKILL.md +220 -220
- package/.agents/skills/python-pro/SKILL.md +305 -305
- package/.agents/skills/quieter/SKILL.md +49 -49
- package/.agents/skills/react-doctor/SKILL.md +51 -51
- package/.agents/skills/react-specialist/SKILL.md +280 -280
- package/.agents/skills/readme-builder/SKILL.md +270 -270
- package/.agents/skills/realtime-patterns/SKILL.md +283 -283
- package/.agents/skills/red-team-tactics/SKILL.md +191 -191
- package/.agents/skills/redesign-skill/SKILL.md +46 -46
- package/.agents/skills/review-animations/SKILL.md +45 -45
- package/.agents/skills/review-animations/STANDARDS.md +87 -87
- package/.agents/skills/rust-pro/SKILL.md +652 -652
- package/.agents/skills/semantic-filesystem-navigation/SKILL.md +24 -24
- package/.agents/skills/seo-fundamentals/SKILL.md +139 -139
- package/.agents/skills/server-management/SKILL.md +178 -178
- package/.agents/skills/session-log-interrogation/SKILL.md +29 -29
- package/.agents/skills/shadcn-ui-expert/SKILL.md +196 -196
- package/.agents/skills/shape/SKILL.md +56 -56
- package/.agents/skills/skill-creator/SKILL.md +177 -177
- package/.agents/skills/soft-skill/SKILL.md +53 -53
- package/.agents/skills/sounds-on-the-web/SKILL.md +76 -76
- package/.agents/skills/sql-pro/SKILL.md +624 -624
- package/.agents/skills/subagent-driven-development/SKILL.md +32 -32
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +57 -57
- package/.agents/skills/svg-animation/SKILL.md +356 -356
- package/.agents/skills/swiftui-expert/SKILL.md +164 -164
- package/.agents/skills/swiss-design/SKILL.md +44 -44
- package/.agents/skills/system-design-pro/SKILL.md +188 -318
- package/.agents/skills/systematic-debugging/SKILL.md +129 -129
- package/.agents/skills/systematic-debugging/condition-based-waiting.md +120 -120
- package/.agents/skills/systematic-debugging/defense-in-depth.md +128 -128
- package/.agents/skills/systematic-debugging/root-cause-tracing.md +183 -183
- package/.agents/skills/tailwind-patterns/SKILL.md +583 -583
- package/.agents/skills/taste-skill/SKILL.md +52 -52
- package/.agents/skills/tdd-workflow/SKILL.md +105 -105
- package/.agents/skills/test-result-analyzer/SKILL.md +270 -270
- package/.agents/skills/testing-patterns/SKILL.md +534 -534
- package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +62 -62
- package/.agents/skills/thinking-protocol/SKILL.md +21 -21
- package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +43 -43
- package/.agents/skills/transformers-js/references/CONFIGURATION.md +1 -1
- package/.agents/skills/transitions-dev/SKILL.md +90 -90
- package/.agents/skills/trend-researcher/SKILL.md +198 -198
- package/.agents/skills/tribunal-instincts-memory/SKILL.md +31 -31
- package/.agents/skills/typescript-advanced/SKILL.md +306 -306
- package/.agents/skills/typeset/SKILL.md +60 -60
- package/.agents/skills/ui-reasoning-engine/SKILL.md +155 -155
- package/.agents/skills/ui-skill-packs/SKILL.md +57 -57
- package/.agents/skills/ui-skills-root/SKILL.md +69 -69
- package/.agents/skills/ui-ux-pro-max/SKILL.md +110 -110
- package/.agents/skills/ui-ux-researcher/SKILL.md +199 -199
- package/.agents/skills/vector-search-pgvector/SKILL.md +70 -70
- package/.agents/skills/verification-before-completion/SKILL.md +107 -107
- package/.agents/skills/vue-expert/SKILL.md +259 -259
- package/.agents/skills/vulnerability-scanner/SKILL.md +378 -378
- package/.agents/skills/web-accessibility-auditor/SKILL.md +179 -179
- package/.agents/skills/web-design-guidelines/SKILL.md +49 -49
- package/.agents/skills/web-quality-audit/SKILL.md +47 -47
- package/.agents/skills/webapp-testing/SKILL.md +128 -128
- package/.agents/skills/webgpu-performance/SKILL.md +88 -88
- package/.agents/skills/whimsy-injector/SKILL.md +305 -305
- package/.agents/skills/workflow-optimizer/SKILL.md +188 -188
- package/.agents/skills/zero-trust-passkeys/SKILL.md +82 -82
- package/AGENTS.md +93 -93
- package/CLAUDE.md +444 -444
- package/CONTRIBUTING.md +134 -134
- package/README.md +242 -242
- package/SECURITY.md +58 -52
- package/bin/adapter-install.js +264 -264
- package/bin/global-store.js +48 -48
- package/bin/mcp-server.js +1653 -1653
- package/bin/proxy-server.js +122 -122
- package/bin/spawn-agent.js +45 -45
- package/bin/tk-proxy.js +34 -34
- package/bin/tribunal-kit.js +113 -113
- package/bin/wrapper.js +209 -211
- package/hooks/hooks-cursor.json +10 -10
- package/hooks/hooks.json +10 -10
- package/hooks/session-start.js +77 -77
- package/mcp_config.json +18 -18
- package/package.json +169 -179
- package/{.claude-plugin → plugins/claude}/marketplace.json +14 -14
- package/{.claude-plugin → plugins/claude}/plugin.json +26 -26
- package/{.codex-plugin → plugins/codex}/plugin.json +41 -41
- package/{plugin.json → plugins/core-plugin.json} +26 -26
- package/{.cursor-plugin → plugins/cursor}/plugin.json +26 -26
- package/{.devin-plugin → plugins/devin}/plugin.json +14 -14
- package/{gemini-extension.json → plugins/gemini/extension.json} +6 -6
- package/{.hermes-plugin → plugins/hermes}/__init__.py +102 -102
- package/{.hermes-plugin → plugins/hermes}/plugin.yaml +6 -6
- package/{.kimi-plugin → plugins/kimi}/plugin.json +34 -34
- package/{marketplace.json → plugins/marketplace.json} +14 -14
- package/{.opencode → plugins/opencode}/INSTALL.md +42 -42
- package/{.opencode → plugins/opencode}/plugins/tribunal.js +110 -110
- package/{.opencode → plugins/opencode}/rules.md +258 -258
- package/{.pi → plugins/pi}/extensions/tribunal.ts +130 -130
- package/scripts/apply-version.js +57 -57
- package/scripts/audit_skill_sdo.js +89 -89
- package/scripts/benchmark.js +231 -231
- package/scripts/build-graph.js +71 -71
- package/scripts/changelog.js +190 -190
- package/scripts/clean-pycache.js +42 -42
- package/scripts/context_compiler.js +1143 -1117
- package/scripts/fix-vbc.js +96 -96
- package/scripts/fix-vbc.ps1 +3 -3
- package/scripts/modernize_skills.js +268 -268
- package/scripts/package-cores.js +116 -116
- package/scripts/skill_enhancement_engine.js +608 -608
- package/scripts/stress_benchmark.js +358 -358
- package/scripts/sync-skills.js +61 -61
- package/scripts/sync-version.js +177 -177
- package/scripts/telemetry_gc.js +156 -156
- package/scripts/validate-payload.js +73 -73
- package/scripts/visual_audit.js +136 -136
- package/skills/12-principles-of-animation/SKILL.md +51 -51
- package/skills/60fps-animation/SKILL.md +91 -91
- package/skills/accessible-animation/SKILL.md +189 -189
- package/skills/adapt/SKILL.md +56 -56
- package/skills/adr-generation/SKILL.md +57 -0
- package/skills/advanced-rag-pipelines/SKILL.md +94 -94
- package/skills/agent-organizer/SKILL.md +117 -117
- package/skills/agent-syscall-guidelines/SKILL.md +25 -25
- package/skills/agentic-patterns/SKILL.md +281 -281
- package/skills/agentic-workflows-2026/SKILL.md +91 -91
- package/skills/agentshield-security/SKILL.md +26 -26
- package/skills/ai-app-hardening/SKILL.md +51 -51
- package/skills/ai-prompt-injection-defense/SKILL.md +162 -162
- package/skills/animation-on-scroll/SKILL.md +196 -196
- package/skills/animation-systems/SKILL.md +198 -198
- package/skills/antfu-conventions/SKILL.md +54 -54
- package/skills/api-patterns/SKILL.md +218 -218
- package/skills/api-security-auditor/SKILL.md +155 -155
- package/skills/app-builder/SKILL.md +535 -535
- package/skills/app-builder/templates/SKILL.md +108 -108
- package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -126
- package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -127
- package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -172
- package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -139
- package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -122
- package/skills/appflow-wireframe/SKILL.md +96 -96
- package/skills/apple-design/SKILL.md +89 -89
- package/skills/architecture/SKILL.md +188 -188
- package/skills/architecture-drift/SKILL.md +45 -0
- package/skills/audit-and-fix/SKILL.md +100 -100
- package/skills/authentication-best-practices/SKILL.md +157 -157
- package/skills/autonomous-execution/SKILL.md +76 -0
- package/skills/backend-security-expert/SKILL.md +73 -73
- package/skills/baseline-ui/SKILL.md +55 -55
- package/skills/bash-linux/SKILL.md +139 -139
- package/skills/behavioral-modes/SKILL.md +200 -200
- package/skills/better-colors/SKILL.md +116 -116
- package/skills/better-typography/SKILL.md +90 -90
- package/skills/better-ui/SKILL.md +130 -130
- package/skills/bolder/SKILL.md +49 -49
- package/skills/brainstorming/SKILL.md +460 -460
- package/skills/browser-audit/SKILL.md +102 -102
- package/skills/browser-native-ai/SKILL.md +72 -72
- package/skills/build-primitive/SKILL.md +50 -50
- package/skills/building-native-ui/SKILL.md +162 -162
- package/skills/cicd-pro/SKILL.md +412 -412
- package/skills/clarify/SKILL.md +55 -55
- package/skills/clean-code/SKILL.md +367 -367
- package/skills/cloud-architect/SKILL.md +409 -409
- package/skills/cobejs/SKILL.md +70 -70
- package/skills/code-review-checklist/SKILL.md +163 -163
- package/skills/codebase-design/SKILL.md +76 -76
- package/skills/colorize/SKILL.md +57 -57
- package/skills/compact-landing/SKILL.md +50 -50
- package/skills/company-logos/SKILL.md +54 -54
- package/skills/config-validator/SKILL.md +125 -125
- package/skills/containerization-pro/SKILL.md +422 -422
- package/skills/context-engineering-pro/SKILL.md +69 -69
- package/skills/create-design-md/SKILL.md +92 -92
- package/skills/critique/SKILL.md +79 -79
- package/skills/csharp-developer/SKILL.md +478 -478
- package/skills/data-validation-schemas/SKILL.md +297 -297
- package/skills/database-design/SKILL.md +219 -219
- package/skills/delight/SKILL.md +46 -46
- package/skills/deployment-procedures/SKILL.md +132 -132
- package/skills/design-lab/SKILL.md +42 -42
- package/skills/devops-engineer/SKILL.md +305 -305
- package/skills/devops-incident-responder/SKILL.md +103 -103
- package/skills/diagnosing-bugs/SKILL.md +172 -172
- package/skills/distill/SKILL.md +45 -45
- package/skills/documentation-templates/SKILL.md +251 -251
- package/skills/domain-modeling/SKILL.md +61 -61
- package/skills/duckdb-analytical-sql/SKILL.md +51 -51
- package/skills/edge-ai-mobile/SKILL.md +42 -42
- package/skills/edge-computing/SKILL.md +143 -143
- package/skills/emil-design-eng/SKILL.md +134 -134
- package/skills/error-resilience/SKILL.md +403 -403
- package/skills/expo-router-v4/SKILL.md +72 -72
- package/skills/extract-design-system/SKILL.md +120 -120
- package/skills/fabel-protocol/SKILL.md +282 -282
- package/skills/failure-mode-analysis/SKILL.md +48 -0
- package/skills/fixing-accessibility/SKILL.md +87 -87
- package/skills/fixing-metadata/SKILL.md +83 -83
- package/skills/fixing-motion-performance/SKILL.md +78 -78
- package/skills/framer-motion-expert/SKILL.md +237 -237
- package/skills/frontend-design/SKILL.md +103 -103
- package/skills/frontend-security-expert/SKILL.md +56 -56
- package/skills/game-design-expert/SKILL.md +92 -92
- package/skills/game-engineering-expert/SKILL.md +108 -108
- package/skills/generative-ui-expert/SKILL.md +100 -100
- package/skills/geo-fundamentals/SKILL.md +108 -108
- package/skills/git-pro/SKILL.md +401 -401
- package/skills/github-operations/SKILL.md +295 -295
- package/skills/gpt-taste/SKILL.md +50 -50
- package/skills/graph-engineering/SKILL.md +28 -28
- package/skills/gsap-core/SKILL.md +277 -277
- package/skills/gsap-frameworks/SKILL.md +168 -168
- package/skills/gsap-performance/SKILL.md +94 -94
- package/skills/gsap-plugins/SKILL.md +441 -441
- package/skills/gsap-react/SKILL.md +213 -213
- package/skills/gsap-scrolltrigger/SKILL.md +312 -312
- package/skills/gsap-timeline/SKILL.md +122 -122
- package/skills/gsap-utils/SKILL.md +299 -299
- package/skills/harden/SKILL.md +55 -55
- package/skills/harness-protocol/SKILL.md +48 -48
- package/skills/huggingface-spaces/SKILL.md +1 -1
- package/skills/human-gate-negotiation/SKILL.md +30 -30
- package/skills/i18n-localization/SKILL.md +134 -134
- package/skills/impeccable/SKILL.md +52 -52
- package/skills/improve-codebase-architecture/SKILL.md +48 -48
- package/skills/improve-ui/SKILL.md +70 -70
- package/skills/intelligent-routing/SKILL.md +204 -204
- package/skills/knowledge-graph/SKILL.md +71 -71
- package/skills/landing-page/SKILL.md +65 -65
- package/skills/lint-and-validate/SKILL.md +224 -224
- package/skills/llm-engineering/SKILL.md +360 -360
- package/skills/local-first/SKILL.md +138 -138
- package/skills/local-first-architecture/SKILL.md +62 -62
- package/skills/lottie-animation/SKILL.md +62 -62
- package/skills/marquee-loop/SKILL.md +72 -72
- package/skills/masked-reveal/SKILL.md +230 -230
- package/skills/mcp-builder/SKILL.md +105 -105
- package/skills/micro-interaction/SKILL.md +253 -253
- package/skills/mobile-design/SKILL.md +245 -245
- package/skills/monorepo-management/SKILL.md +295 -295
- package/skills/morphing-icons/SKILL.md +348 -348
- package/skills/motion-engineering/SKILL.md +197 -197
- package/skills/nextjs-react-expert/SKILL.md +218 -218
- package/skills/nodejs-best-practices/SKILL.md +542 -542
- package/skills/observability/SKILL.md +303 -303
- package/skills/opentelemetry-observability/SKILL.md +51 -51
- package/skills/page-transition-animation/SKILL.md +86 -86
- package/skills/parallel-agents/SKILL.md +110 -110
- package/skills/performance-profiling/SKILL.md +230 -230
- package/skills/plan-writing/SKILL.md +127 -127
- package/skills/platform-engineer/SKILL.md +108 -108
- package/skills/platform-engineering-opentofu/SKILL.md +59 -59
- package/skills/playwright-ai-e2e/SKILL.md +52 -52
- package/skills/playwright-best-practices/SKILL.md +149 -149
- package/skills/polish/SKILL.md +39 -39
- package/skills/powershell-windows/SKILL.md +122 -122
- package/skills/pricing-page/SKILL.md +48 -48
- package/skills/product-aware-heuristics/SKILL.md +390 -390
- package/skills/progressive-blur/SKILL.md +80 -80
- package/skills/project-idioms/SKILL.md +91 -91
- package/skills/property-based-testing/SKILL.md +50 -50
- package/skills/python-patterns/SKILL.md +220 -220
- package/skills/python-pro/SKILL.md +305 -305
- package/skills/quieter/SKILL.md +49 -49
- package/skills/react-doctor/SKILL.md +51 -51
- package/skills/react-specialist/SKILL.md +280 -280
- package/skills/readme-builder/SKILL.md +270 -270
- package/skills/realtime-patterns/SKILL.md +283 -283
- package/skills/red-team-tactics/SKILL.md +191 -191
- package/skills/redesign-skill/SKILL.md +46 -46
- package/skills/review-animations/SKILL.md +45 -45
- package/skills/review-animations/STANDARDS.md +87 -87
- package/skills/rust-pro/SKILL.md +652 -652
- package/skills/semantic-filesystem-navigation/SKILL.md +24 -24
- package/skills/seo-fundamentals/SKILL.md +139 -139
- package/skills/server-management/SKILL.md +178 -178
- package/skills/session-log-interrogation/SKILL.md +29 -29
- package/skills/shadcn-ui-expert/SKILL.md +196 -196
- package/skills/shape/SKILL.md +56 -56
- package/skills/skill-creator/SKILL.md +177 -177
- package/skills/soft-skill/SKILL.md +53 -53
- package/skills/sounds-on-the-web/SKILL.md +76 -76
- package/skills/sql-pro/SKILL.md +624 -624
- package/skills/subagent-driven-development/SKILL.md +32 -32
- package/skills/supabase-postgres-best-practices/SKILL.md +57 -57
- package/skills/svg-animation/SKILL.md +356 -356
- package/skills/swiftui-expert/SKILL.md +164 -164
- package/skills/swiss-design/SKILL.md +44 -44
- package/skills/system-design-pro/SKILL.md +188 -318
- package/skills/systematic-debugging/SKILL.md +129 -129
- package/skills/systematic-debugging/condition-based-waiting.md +120 -120
- package/skills/systematic-debugging/defense-in-depth.md +128 -128
- package/skills/systematic-debugging/root-cause-tracing.md +183 -183
- package/skills/tailwind-patterns/SKILL.md +583 -583
- package/skills/taste-skill/SKILL.md +52 -52
- package/skills/tdd-workflow/SKILL.md +105 -105
- package/skills/test-result-analyzer/SKILL.md +270 -270
- package/skills/testing-patterns/SKILL.md +534 -534
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +62 -62
- package/skills/thinking-protocol/SKILL.md +21 -21
- package/skills/to-spring-or-not-to-spring/SKILL.md +43 -43
- package/skills/transformers-js/references/CONFIGURATION.md +1 -1
- package/skills/transitions-dev/SKILL.md +90 -90
- package/skills/trend-researcher/SKILL.md +198 -198
- package/skills/tribunal-instincts-memory/SKILL.md +31 -31
- package/skills/typescript-advanced/SKILL.md +306 -306
- package/skills/typeset/SKILL.md +60 -60
- package/skills/ui-reasoning-engine/SKILL.md +155 -155
- package/skills/ui-skill-packs/SKILL.md +57 -57
- package/skills/ui-skills-root/SKILL.md +69 -69
- package/skills/ui-ux-pro-max/SKILL.md +110 -110
- package/skills/ui-ux-researcher/SKILL.md +199 -199
- package/skills/vector-search-pgvector/SKILL.md +70 -70
- package/skills/verification-before-completion/SKILL.md +107 -107
- package/skills/vue-expert/SKILL.md +259 -259
- package/skills/vulnerability-scanner/SKILL.md +378 -378
- package/skills/web-accessibility-auditor/SKILL.md +179 -179
- package/skills/web-design-guidelines/SKILL.md +49 -49
- package/skills/web-quality-audit/SKILL.md +47 -47
- package/skills/webapp-testing/SKILL.md +128 -128
- package/skills/webgpu-performance/SKILL.md +88 -88
- package/skills/whimsy-injector/SKILL.md +305 -305
- package/skills/workflow-optimizer/SKILL.md +188 -188
- package/skills/zero-trust-passkeys/SKILL.md +82 -82
- package/{dist → src}/browser/audit.js +229 -229
- package/{dist → src}/browser/case_bridge.js +189 -189
- package/{dist → src}/browser/cdp.js +513 -513
- package/{dist → src}/browser/compare.js +110 -110
- package/{dist → src}/browser/discovery.js +140 -140
- package/{dist → src}/browser/idpi.js +142 -142
- package/{dist → src}/browser/index.js +89 -89
- package/{dist → src}/browser/launcher.js +154 -154
- package/{dist → src}/browser/sentinel.js +202 -202
- package/{dist → src}/browser/synapse.js +251 -251
- package/{dist → src}/browser/trimmer.js +210 -210
- package/{dist → src}/commands/align.js +201 -201
- package/{dist → src}/commands/audit-web.js +112 -112
- package/{dist → src}/commands/browse.js +56 -56
- package/{dist → src}/commands/case.js +71 -73
- package/{dist → src}/commands/compare-web.js +61 -61
- package/{dist → src}/commands/compile.js +91 -91
- package/{dist → src}/commands/context.js +71 -71
- package/{dist → src}/commands/contract.js +440 -440
- package/{dist → src}/commands/deconstruct.js +58 -58
- package/{dist → src}/commands/graph.js +44 -44
- package/{dist → src}/commands/guardrail.js +275 -275
- package/{dist → src}/commands/heal.js +99 -99
- package/{dist → src}/commands/hook.js +28 -28
- package/{dist → src}/commands/init.js +393 -393
- package/{dist → src}/commands/learn.js +119 -117
- package/{dist → src}/commands/marathon.js +45 -45
- package/{dist → src}/commands/memory.js +508 -508
- package/{dist → src}/commands/minimal.js +71 -71
- package/{dist → src}/commands/mutate.js +30 -30
- package/{dist → src}/commands/native.js +264 -264
- package/{dist → src}/commands/optimize.js +332 -328
- package/{dist → src}/commands/sdd.js +265 -229
- package/{dist → src}/commands/status.js +66 -66
- package/{dist → src}/commands/sync.js +25 -25
- package/{dist → src}/commands/uninstall.js +54 -54
- package/{dist → src}/commands/update.js +37 -37
- package/{dist → src}/commands/validate.js +58 -58
- package/{dist → src}/esm/index.mjs +1 -1
- package/{dist → src}/mcp/server.js +8 -8
- package/{dist → src}/tui/banner.js +1 -1
- package/{dist → src}/tui/index.js +21 -21
- package/{dist → src}/tui/reviewer-grid.js +90 -90
- package/{dist → src}/tui/shimmer.js +91 -91
- package/{dist → src}/tui/theme.js +130 -130
- package/{dist → src}/tui/tree.js +93 -93
- package/{dist → src}/tui/wizard.js +148 -148
- package/{dist → src}/types.js +8 -8
- package/{dist → src}/utils/fs.js +102 -102
- package/{dist → src}/utils/hasher.js +142 -142
- package/{dist → src}/utils/helpers.js +53 -53
- package/{dist → src}/utils/logger.js +54 -54
- package/{dist → src}/utils/version.js +157 -157
- package/.agent/history/README.md +0 -53
- package/.agent/history/architecture-explorer.html +0 -352
- package/.agent/history/architecture-graph.yaml +0 -619
- package/.agent/history/case-law/cases/template-case.json +0 -19
- package/.agent/history/graph-cache.json +0 -1042
- package/.agent/history/integrity_manifest.json +0 -4694
- package/.agent/history/memory/.memory.idx +0 -7596
- package/.agent/history/memory/MEMORY.md +0 -512
- package/.agent/history/memory.db +0 -0
- package/.agent/history/snapshots/.opencode__plugins__tribunal.js.json +0 -12
- package/.agent/history/snapshots/.pi__extensions__tribunal.ts.json +0 -12
- package/.agent/history/snapshots/bin__adapter-install.js.json +0 -13
- package/.agent/history/snapshots/bin__global-store.js.json +0 -15
- package/.agent/history/snapshots/bin__mcp-server.js.json +0 -21
- package/.agent/history/snapshots/bin__proxy-server.js.json +0 -20
- package/.agent/history/snapshots/bin__spawn-agent.js.json +0 -12
- package/.agent/history/snapshots/bin__tk-proxy.js.json +0 -21
- package/.agent/history/snapshots/bin__tribunal-kit.js.json +0 -21
- package/.agent/history/snapshots/bin__wrapper.js.json +0 -14
- package/.agent/history/snapshots/eslint.config.js.json +0 -8
- package/.agent/history/snapshots/hooks__session-start.js.json +0 -11
- package/.agent/history/snapshots/scripts__apply-version.js.json +0 -11
- package/.agent/history/snapshots/scripts__audit_skill_sdo.js.json +0 -11
- package/.agent/history/snapshots/scripts__benchmark.js.json +0 -14
- package/.agent/history/snapshots/scripts__changelog.js.json +0 -12
- package/.agent/history/snapshots/scripts__clean-pycache.js.json +0 -11
- package/.agent/history/snapshots/scripts__context_compiler.js.json +0 -17
- package/.agent/history/snapshots/scripts__fix-vbc.js.json +0 -11
- package/.agent/history/snapshots/scripts__modernize_skills.js.json +0 -11
- package/.agent/history/snapshots/scripts__package-cores.js.json +0 -12
- package/.agent/history/snapshots/scripts__skill_enhancement_engine.js.json +0 -11
- package/.agent/history/snapshots/scripts__stress_benchmark.js.json +0 -15
- package/.agent/history/snapshots/scripts__sync-skills.js.json +0 -11
- package/.agent/history/snapshots/scripts__sync-version.js.json +0 -11
- package/.agent/history/snapshots/scripts__telemetry_gc.js.json +0 -11
- package/.agent/history/snapshots/scripts__validate-payload.js.json +0 -11
- package/.agent/history/snapshots/scripts__visual_audit.js.json +0 -11
- package/.agent/history/snapshots/test__integration__bridges.test.js.json +0 -13
- package/.agent/history/snapshots/test__integration__browser_cli.test.js.json +0 -12
- package/.agent/history/snapshots/test__integration__graceful_degradation.test.js.json +0 -12
- package/.agent/history/snapshots/test__integration__init.test.js.json +0 -13
- package/.agent/history/snapshots/test__integration__minimal_change_pipeline.test.js.json +0 -13
- package/.agent/history/snapshots/test__integration__parallel_tribunal.test.js.json +0 -12
- package/.agent/history/snapshots/test__integration__routing.test.js.json +0 -11
- package/.agent/history/snapshots/test__integration__swarm_dispatcher.test.js.json +0 -13
- package/.agent/history/snapshots/test__integration__sync_status.test.js.json +0 -13
- package/.agent/history/snapshots/test__integration__wave2.test.js.json +0 -13
- package/.agent/history/snapshots/test__integration__wrapper.test.js.json +0 -13
- package/.agent/history/snapshots/test__unit__align.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__args.test.js.json +0 -20
- package/.agent/history/snapshots/test__unit__ast_context_loader.test.js.json +0 -12
- package/.agent/history/snapshots/test__unit__audit_release.test.js.json +0 -16
- package/.agent/history/snapshots/test__unit__browser_case_bridge.test.js.json +0 -11
- package/.agent/history/snapshots/test__unit__browser_discovery.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__browser_idpi.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__browser_sentinel.test.js.json +0 -11
- package/.agent/history/snapshots/test__unit__browser_synapse.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__browser_trimmer.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__case_law_manager.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__cicd_validator.test.js.json +0 -12
- package/.agent/history/snapshots/test__unit__compile.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__context_broker.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__context_compiler.test.js.json +0 -26
- package/.agent/history/snapshots/test__unit__contract_engine.test.js.json +0 -13
- package/.agent/history/snapshots/test__unit__copyDir.test.js.json +0 -23
- package/.agent/history/snapshots/test__unit__graph_tools.test.js.json +0 -11
- package/.agent/history/snapshots/test__unit__guardrail_engine.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__impact_classifier.test.js.json +0 -12
- package/.agent/history/snapshots/test__unit__init.test.js.json +0 -14
- package/.agent/history/snapshots/test__unit__inner_loop_validator.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__integrity_manifest.test.js.json +0 -13
- package/.agent/history/snapshots/test__unit__learn.test.js.json +0 -11
- package/.agent/history/snapshots/test__unit__marathon.test.js.json +0 -22
- package/.agent/history/snapshots/test__unit__mcp_server.test.js.json +0 -16
- package/.agent/history/snapshots/test__unit__memory.test.js.json +0 -13
- package/.agent/history/snapshots/test__unit__minimal_change.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__native.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__optimize.test.js.json +0 -13
- package/.agent/history/snapshots/test__unit__path_resolution.test.js.json +0 -14
- package/.agent/history/snapshots/test__unit__platform_download_audit.test.js.json +0 -11
- package/.agent/history/snapshots/test__unit__production_readiness_evidence.test.js.json +0 -21
- package/.agent/history/snapshots/test__unit__prompt_compiler.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__sdd_integration.test.js.json +0 -12
- package/.agent/history/snapshots/test__unit__selfInstall.test.js.json +0 -23
- package/.agent/history/snapshots/test__unit__semver.test.js.json +0 -20
- package/.agent/history/snapshots/test__unit__skill_evolution.test.js.json +0 -11
- package/.agent/history/snapshots/test__unit__stress.test.js.json +0 -15
- package/.agent/history/snapshots/test__unit__swarm_dispatcher.test.js.json +0 -12
- package/.agent/history/snapshots/test__unit__token_budget_broker.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__tui.test.js.json +0 -10
- package/.agent/history/snapshots/test__unit__utils.test.js.json +0 -10
- package/.agents/plugins/marketplace.json +0 -20
- package/.claude/CLAUDE.md +0 -442
- /package/{dist → src}/cli.js +0 -0
- /package/{dist → src}/index.d.ts +0 -0
|
@@ -1,583 +1,583 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tailwind-patterns
|
|
3
|
-
description: "Use when Tailwind CSS v4+ mastery. CSS-first configuration, @theme directive, container queries, scroll-driven animations, logical properties, clamp(), fluid typography, responsive design, dark mode, custom variants, component extraction, and performance optimization. Use when styling with Tailwind, building design systems, or optimizing CSS output."
|
|
4
|
-
version: 5.0.0
|
|
5
|
-
last-updated: 2026-09-13
|
|
6
|
-
skills:
|
|
7
|
-
- baseline-ui
|
|
8
|
-
- better-colors
|
|
9
|
-
- shadcn-ui-expert
|
|
10
|
-
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
11
|
-
scripts-binding:
|
|
12
|
-
- .agent/scripts/lint_runner.js
|
|
13
|
-
- .agent/scripts/verify_all.js
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Tailwind CSS v4+ — CSS-First Mastery
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 🛠️ Technical Architecture & Reference Recipes
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## v4 Configuration (CSS-First)
|
|
27
|
-
|
|
28
|
-
### The @theme Directive
|
|
29
|
-
|
|
30
|
-
```css
|
|
31
|
-
/* app.css — THE configuration file in Tailwind v4 */
|
|
32
|
-
@import 'tailwindcss';
|
|
33
|
-
|
|
34
|
-
@theme {
|
|
35
|
-
/* Colors */
|
|
36
|
-
--color-primary-50: oklch(0.97 0.02 250);
|
|
37
|
-
--color-primary-100: oklch(0.93 0.04 250);
|
|
38
|
-
--color-primary-500: oklch(0.55 0.18 250);
|
|
39
|
-
--color-primary-600: oklch(0.48 0.18 250);
|
|
40
|
-
--color-primary-700: oklch(0.4 0.16 250);
|
|
41
|
-
--color-primary-900: oklch(0.25 0.1 250);
|
|
42
|
-
|
|
43
|
-
--color-surface: oklch(0.99 0 0);
|
|
44
|
-
--color-surface-alt: oklch(0.96 0 0);
|
|
45
|
-
--color-text: oklch(0.15 0 0);
|
|
46
|
-
--color-text-muted: oklch(0.45 0 0);
|
|
47
|
-
|
|
48
|
-
/* Typography */
|
|
49
|
-
--font-sans: 'Inter', 'system-ui', sans-serif;
|
|
50
|
-
--font-mono: 'JetBrains Mono', monospace;
|
|
51
|
-
|
|
52
|
-
/* Spacing (extends the default scale) */
|
|
53
|
-
--spacing-18: 4.5rem;
|
|
54
|
-
--spacing-88: 22rem;
|
|
55
|
-
|
|
56
|
-
/* Border radius */
|
|
57
|
-
--radius-pill: 9999px;
|
|
58
|
-
--radius-card: 1rem;
|
|
59
|
-
|
|
60
|
-
/* Shadows */
|
|
61
|
-
--shadow-card: 0 1px 3px oklch(0 0 0 / 0.08), 0 1px 2px oklch(0 0 0 / 0.06);
|
|
62
|
-
--shadow-elevated: 0 10px 25px oklch(0 0 0 / 0.1), 0 4px 10px oklch(0 0 0 / 0.05);
|
|
63
|
-
|
|
64
|
-
/* Animations */
|
|
65
|
-
--animate-fade-in: fade-in 0.3s ease-out;
|
|
66
|
-
--animate-slide-up: slide-up 0.4s cubic-bezier(0.16, 1, 0.3, 1);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@keyframes fade-in {
|
|
70
|
-
from {
|
|
71
|
-
opacity: 0;
|
|
72
|
-
}
|
|
73
|
-
to {
|
|
74
|
-
opacity: 1;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@keyframes slide-up {
|
|
79
|
-
from {
|
|
80
|
-
opacity: 0;
|
|
81
|
-
transform: translateY(12px);
|
|
82
|
-
}
|
|
83
|
-
to {
|
|
84
|
-
opacity: 1;
|
|
85
|
-
transform: translateY(0);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/* ❌ HALLUCINATION TRAP: Tailwind v4 does NOT use tailwind.config.js
|
|
90
|
-
❌ module.exports = { theme: { extend: { ... } } } ← REMOVED in v4
|
|
91
|
-
✅ Use @theme { } directive in your CSS file
|
|
92
|
-
✅ @import "tailwindcss" replaces the three @tailwind directives */
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Dark Mode
|
|
96
|
-
|
|
97
|
-
```css
|
|
98
|
-
/* Tailwind v4 dark mode with @theme */
|
|
99
|
-
@theme {
|
|
100
|
-
--color-surface: oklch(0.99 0 0);
|
|
101
|
-
--color-text: oklch(0.15 0 0);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/* Dark variant — override variables */
|
|
105
|
-
@variant dark {
|
|
106
|
-
@theme {
|
|
107
|
-
--color-surface: oklch(0.13 0.02 260);
|
|
108
|
-
--color-text: oklch(0.93 0 0);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/* Usage in HTML: */
|
|
113
|
-
/* <div class="bg-surface text-text dark:bg-surface dark:text-text"> */
|
|
114
|
-
/* With the @variant dark override, classes "just work" in dark mode */
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```html
|
|
118
|
-
<!-- Dark mode toggle pattern -->
|
|
119
|
-
<html class="dark">
|
|
120
|
-
<body class="bg-surface text-text transition-colors duration-300">
|
|
121
|
-
<!-- Automatically uses dark @theme values -->
|
|
122
|
-
</body>
|
|
123
|
-
</html>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### Custom Variants
|
|
127
|
-
|
|
128
|
-
```css
|
|
129
|
-
/* @variant — custom selector-based variants */
|
|
130
|
-
@variant scrolled (&:where([data-scrolled]));
|
|
131
|
-
@variant hocus (&:hover, &:focus-visible);
|
|
132
|
-
|
|
133
|
-
/* Usage: */
|
|
134
|
-
/* <nav class="scrolled:shadow-elevated hocus:ring-2"> */
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Layout Patterns
|
|
140
|
-
|
|
141
|
-
### Flexbox
|
|
142
|
-
|
|
143
|
-
```html
|
|
144
|
-
<!-- Centered hero -->
|
|
145
|
-
<section class="flex min-h-svh flex-col items-center justify-center gap-6 px-6">
|
|
146
|
-
<h1 class="text-5xl font-bold tracking-tight">Hero Title</h1>
|
|
147
|
-
<p class="max-w-2xl text-center text-lg text-text-muted">Subtitle text</p>
|
|
148
|
-
<div class="flex gap-3">
|
|
149
|
-
<button class="rounded-pill bg-primary-600 px-6 py-3 text-white">Primary</button>
|
|
150
|
-
<button class="rounded-pill border border-primary-600 px-6 py-3 text-primary-600">
|
|
151
|
-
Secondary
|
|
152
|
-
</button>
|
|
153
|
-
</div>
|
|
154
|
-
</section>
|
|
155
|
-
|
|
156
|
-
<!-- Sidebar layout -->
|
|
157
|
-
<div class="flex min-h-svh">
|
|
158
|
-
<aside class="w-64 shrink-0 border-r border-gray-200 p-4">Sidebar</aside>
|
|
159
|
-
<main class="flex-1 overflow-y-auto p-6">Content</main>
|
|
160
|
-
</div>
|
|
161
|
-
|
|
162
|
-
<!-- ❌ HALLUCINATION TRAP: Use min-h-svh (small viewport height), NOT min-h-screen
|
|
163
|
-
min-h-screen = 100vh (broken on mobile — includes browser chrome)
|
|
164
|
-
min-h-svh = 100svh (accounts for mobile browser chrome)
|
|
165
|
-
min-h-dvh = 100dvh (dynamic — updates as chrome shows/hides) -->
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### CSS Grid
|
|
169
|
-
|
|
170
|
-
```html
|
|
171
|
-
<!-- Auto-fit responsive grid (no breakpoints needed) -->
|
|
172
|
-
<div class="grid grid-cols-[repeat(auto-fit,minmax(280px,1fr))] gap-6">
|
|
173
|
-
<div class="rounded-card bg-surface p-6 shadow-card">Card 1</div>
|
|
174
|
-
<div class="rounded-card bg-surface p-6 shadow-card">Card 2</div>
|
|
175
|
-
<div class="rounded-card bg-surface p-6 shadow-card">Card 3</div>
|
|
176
|
-
</div>
|
|
177
|
-
|
|
178
|
-
<!-- Dashboard grid with named areas -->
|
|
179
|
-
<div class="grid grid-cols-[240px_1fr] grid-rows-[64px_1fr] min-h-svh">
|
|
180
|
-
<header class="col-span-2 border-b">Header</header>
|
|
181
|
-
<aside class="border-r p-4">Sidebar</aside>
|
|
182
|
-
<main class="overflow-y-auto p-6">Content</main>
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<!-- Bento grid -->
|
|
186
|
-
<div class="grid auto-rows-[180px] grid-cols-3 gap-4">
|
|
187
|
-
<div class="col-span-2 row-span-2 rounded-2xl bg-primary-100">Large</div>
|
|
188
|
-
<div class="rounded-2xl bg-surface-alt">Small 1</div>
|
|
189
|
-
<div class="rounded-2xl bg-surface-alt">Small 2</div>
|
|
190
|
-
<div class="col-span-3 rounded-2xl bg-primary-50">Full width</div>
|
|
191
|
-
</div>
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Container Queries
|
|
195
|
-
|
|
196
|
-
```html
|
|
197
|
-
<!-- Container queries — component-level responsiveness -->
|
|
198
|
-
<div class="@container">
|
|
199
|
-
<div class="flex flex-col gap-3 @sm:flex-row @sm:items-center @lg:gap-6">
|
|
200
|
-
<img class="size-16 rounded-full @sm:size-20" src="avatar.jpg" alt="" />
|
|
201
|
-
<div>
|
|
202
|
-
<h3 class="text-lg font-semibold @lg:text-xl">User Name</h3>
|
|
203
|
-
<p class="text-sm text-text-muted @lg:text-base">Description</p>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
|
|
208
|
-
<!-- Named container -->
|
|
209
|
-
<div class="@container/card">
|
|
210
|
-
<div class="@md/card:grid @md/card:grid-cols-2">
|
|
211
|
-
<!-- Responds to the card container's width, not viewport -->
|
|
212
|
-
</div>
|
|
213
|
-
</div>
|
|
214
|
-
|
|
215
|
-
<!-- ❌ HALLUCINATION TRAP: Container queries use @sm, @md, @lg (with @ prefix)
|
|
216
|
-
NOT sm:, md:, lg: — those are VIEWPORT breakpoints
|
|
217
|
-
@sm = container >= 320px (component-level)
|
|
218
|
-
sm: = viewport >= 640px (page-level) -->
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## Typography
|
|
224
|
-
|
|
225
|
-
### Fluid Typography with clamp()
|
|
226
|
-
|
|
227
|
-
```html
|
|
228
|
-
<!-- Fluid heading — scales smoothly from 2rem to 4rem -->
|
|
229
|
-
<h1 class="text-[clamp(2rem,5vw,4rem)] font-bold leading-tight tracking-tight">
|
|
230
|
-
Responsive Heading
|
|
231
|
-
</h1>
|
|
232
|
-
|
|
233
|
-
<!-- Fluid body text -->
|
|
234
|
-
<p class="text-[clamp(1rem,1.2vw,1.25rem)] leading-relaxed text-text-muted">
|
|
235
|
-
Body text that scales with viewport
|
|
236
|
-
</p>
|
|
237
|
-
|
|
238
|
-
<!-- Prose (for long-form content) -->
|
|
239
|
-
<article class="prose prose-lg mx-auto max-w-3xl dark:prose-invert">
|
|
240
|
-
<!-- @tailwindcss/typography plugin handles all typography -->
|
|
241
|
-
<h1>Article Title</h1>
|
|
242
|
-
<p>Paragraph with <a href="#">links</a> and <code>code</code>.</p>
|
|
243
|
-
</article>
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Font Loading
|
|
247
|
-
|
|
248
|
-
```css
|
|
249
|
-
/* @font-face in your CSS (Tailwind v4 approach) */
|
|
250
|
-
@font-face {
|
|
251
|
-
font-family: 'Inter';
|
|
252
|
-
font-weight: 100 900;
|
|
253
|
-
font-display: swap;
|
|
254
|
-
src: url('/fonts/inter-variable.woff2') format('woff2');
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
@theme {
|
|
258
|
-
--font-sans: 'Inter', system-ui, sans-serif;
|
|
259
|
-
}
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
|
|
264
|
-
## Component Patterns
|
|
265
|
-
|
|
266
|
-
### Button System
|
|
267
|
-
|
|
268
|
-
```html
|
|
269
|
-
<!-- Base button with variants -->
|
|
270
|
-
<button
|
|
271
|
-
class="inline-flex items-center justify-center gap-2 rounded-lg px-4 py-2.5
|
|
272
|
-
text-sm font-medium transition-all duration-150
|
|
273
|
-
focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500
|
|
274
|
-
active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50"
|
|
275
|
-
>
|
|
276
|
-
Button Text
|
|
277
|
-
</button>
|
|
278
|
-
|
|
279
|
-
<!-- Primary variant -->
|
|
280
|
-
<button class="... bg-primary-600 text-white shadow-sm hover:bg-primary-700">Primary</button>
|
|
281
|
-
|
|
282
|
-
<!-- Ghost variant -->
|
|
283
|
-
<button class="... text-text hover:bg-gray-100 dark:hover:bg-gray-800">Ghost</button>
|
|
284
|
-
|
|
285
|
-
<!-- Destructive variant -->
|
|
286
|
-
<button class="... bg-red-600 text-white hover:bg-red-700">Delete</button>
|
|
287
|
-
|
|
288
|
-
<!-- Icon button -->
|
|
289
|
-
<button class="grid size-10 place-items-center rounded-lg hover:bg-gray-100" aria-label="Settings">
|
|
290
|
-
<svg class="size-5" ...></svg>
|
|
291
|
-
</button>
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
### Input System
|
|
295
|
-
|
|
296
|
-
```html
|
|
297
|
-
<!-- Text input -->
|
|
298
|
-
<div class="space-y-1.5">
|
|
299
|
-
<label for="email" class="text-sm font-medium text-text">Email</label>
|
|
300
|
-
<input
|
|
301
|
-
id="email"
|
|
302
|
-
type="email"
|
|
303
|
-
placeholder="you@example.com"
|
|
304
|
-
class="w-full rounded-lg border border-gray-300 bg-surface px-3.5 py-2.5
|
|
305
|
-
text-sm text-text placeholder:text-text-muted
|
|
306
|
-
transition-colors duration-150
|
|
307
|
-
focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20
|
|
308
|
-
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:opacity-60"
|
|
309
|
-
/>
|
|
310
|
-
<p class="text-xs text-red-500">Error message here</p>
|
|
311
|
-
</div>
|
|
312
|
-
|
|
313
|
-
<!-- Checkbox -->
|
|
314
|
-
<label class="flex items-center gap-2.5 text-sm">
|
|
315
|
-
<input
|
|
316
|
-
type="checkbox"
|
|
317
|
-
class="size-4 rounded border-gray-300 text-primary-600
|
|
318
|
-
focus:ring-2 focus:ring-primary-500/20"
|
|
319
|
-
/>
|
|
320
|
-
Remember me
|
|
321
|
-
</label>
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
### Card Pattern
|
|
325
|
-
|
|
326
|
-
```html
|
|
327
|
-
<div
|
|
328
|
-
class="group overflow-hidden rounded-card bg-surface shadow-card
|
|
329
|
-
transition-shadow duration-200 hover:shadow-elevated"
|
|
330
|
-
>
|
|
331
|
-
<div class="aspect-video overflow-hidden bg-gray-100">
|
|
332
|
-
<img
|
|
333
|
-
src="cover.jpg"
|
|
334
|
-
alt="Cover"
|
|
335
|
-
class="size-full object-cover transition-transform duration-300
|
|
336
|
-
group-hover:scale-105"
|
|
337
|
-
/>
|
|
338
|
-
</div>
|
|
339
|
-
<div class="space-y-2 p-5">
|
|
340
|
-
<span
|
|
341
|
-
class="inline-block rounded-full bg-primary-100 px-2.5 py-0.5
|
|
342
|
-
text-xs font-medium text-primary-700"
|
|
343
|
-
>Category</span
|
|
344
|
-
>
|
|
345
|
-
<h3 class="text-lg font-semibold text-text line-clamp-2">Card Title</h3>
|
|
346
|
-
<p class="text-sm text-text-muted line-clamp-3">Description text...</p>
|
|
347
|
-
</div>
|
|
348
|
-
</div>
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
### Modal / Dialog
|
|
352
|
-
|
|
353
|
-
```html
|
|
354
|
-
<!-- Backdrop -->
|
|
355
|
-
<div
|
|
356
|
-
class="fixed inset-0 z-50 flex items-center justify-center bg-black/50
|
|
357
|
-
backdrop-blur-sm animate-fade-in"
|
|
358
|
-
>
|
|
359
|
-
<!-- Modal -->
|
|
360
|
-
<div
|
|
361
|
-
class="w-full max-w-md rounded-2xl bg-surface p-6 shadow-elevated animate-slide-up"
|
|
362
|
-
role="dialog"
|
|
363
|
-
aria-modal="true"
|
|
364
|
-
aria-labelledby="modal-title"
|
|
365
|
-
>
|
|
366
|
-
<h2 id="modal-title" class="text-lg font-semibold">Dialog Title</h2>
|
|
367
|
-
<p class="mt-2 text-sm text-text-muted">Dialog description.</p>
|
|
368
|
-
|
|
369
|
-
<div class="mt-6 flex justify-end gap-3">
|
|
370
|
-
<button class="rounded-lg px-4 py-2 text-sm hover:bg-gray-100">Cancel</button>
|
|
371
|
-
<button
|
|
372
|
-
class="rounded-lg bg-primary-600 px-4 py-2 text-sm text-white
|
|
373
|
-
hover:bg-primary-700"
|
|
374
|
-
>
|
|
375
|
-
Confirm
|
|
376
|
-
</button>
|
|
377
|
-
</div>
|
|
378
|
-
</div>
|
|
379
|
-
</div>
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
## Responsive Design Rules
|
|
385
|
-
|
|
386
|
-
```html
|
|
387
|
-
<!-- Tailwind breakpoints (mobile-first) -->
|
|
388
|
-
<!-- sm: 640px │ md: 768px │ lg: 1024px │ xl: 1280px │ 2xl: 1536px -->
|
|
389
|
-
|
|
390
|
-
<!-- Stack on mobile, row on tablet+ -->
|
|
391
|
-
<div class="flex flex-col gap-4 md:flex-row md:items-center">
|
|
392
|
-
<div class="md:w-1/2">Left</div>
|
|
393
|
-
<div class="md:w-1/2">Right</div>
|
|
394
|
-
</div>
|
|
395
|
-
|
|
396
|
-
<!-- Hide/show at breakpoints -->
|
|
397
|
-
<nav class="hidden lg:flex">Desktop nav</nav>
|
|
398
|
-
<button class="lg:hidden">☰ Mobile menu</button>
|
|
399
|
-
|
|
400
|
-
<!-- Responsive padding -->
|
|
401
|
-
<section class="px-4 py-12 sm:px-6 lg:px-8 lg:py-24">
|
|
402
|
-
<div class="mx-auto max-w-7xl">Content</div>
|
|
403
|
-
</section>
|
|
404
|
-
|
|
405
|
-
<!-- Responsive grid -->
|
|
406
|
-
<div class="grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
|
407
|
-
<!-- Cards -->
|
|
408
|
-
</div>
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
---
|
|
412
|
-
|
|
413
|
-
## Animations & Transitions
|
|
414
|
-
|
|
415
|
-
### Transition Utilities
|
|
416
|
-
|
|
417
|
-
```html
|
|
418
|
-
<!-- Smooth hover transitions -->
|
|
419
|
-
<a class="text-text-muted transition-colors duration-150 hover:text-primary-600">Link</a>
|
|
420
|
-
|
|
421
|
-
<!-- Transform transitions -->
|
|
422
|
-
<div class="transition-transform duration-300 hover:-translate-y-1 hover:scale-105">Hover me</div>
|
|
423
|
-
|
|
424
|
-
<!-- Combined transition -->
|
|
425
|
-
<button
|
|
426
|
-
class="rounded-lg bg-primary-600 px-4 py-2 text-white
|
|
427
|
-
transition-all duration-200
|
|
428
|
-
hover:bg-primary-700 hover:shadow-lg
|
|
429
|
-
active:scale-95"
|
|
430
|
-
>
|
|
431
|
-
Click me
|
|
432
|
-
</button>
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### Custom Keyframe Animations
|
|
436
|
-
|
|
437
|
-
```css
|
|
438
|
-
@theme {
|
|
439
|
-
--animate-bounce-in: bounce-in 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
440
|
-
--animate-spin-slow: spin 3s linear infinite;
|
|
441
|
-
--animate-pulse-soft: pulse-soft 2s ease-in-out infinite;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
@keyframes bounce-in {
|
|
445
|
-
0% {
|
|
446
|
-
opacity: 0;
|
|
447
|
-
transform: scale(0.3);
|
|
448
|
-
}
|
|
449
|
-
50% {
|
|
450
|
-
transform: scale(1.05);
|
|
451
|
-
}
|
|
452
|
-
70% {
|
|
453
|
-
transform: scale(0.9);
|
|
454
|
-
}
|
|
455
|
-
100% {
|
|
456
|
-
opacity: 1;
|
|
457
|
-
transform: scale(1);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
@keyframes pulse-soft {
|
|
462
|
-
0%,
|
|
463
|
-
100% {
|
|
464
|
-
opacity: 1;
|
|
465
|
-
}
|
|
466
|
-
50% {
|
|
467
|
-
opacity: 0.7;
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
### Scroll-Driven Animations (CSS Native)
|
|
473
|
-
|
|
474
|
-
```css
|
|
475
|
-
/* Progress bar that fills as user scrolls */
|
|
476
|
-
.scroll-progress {
|
|
477
|
-
animation: grow-width linear;
|
|
478
|
-
animation-timeline: scroll();
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
@keyframes grow-width {
|
|
482
|
-
from {
|
|
483
|
-
transform: scaleX(0);
|
|
484
|
-
}
|
|
485
|
-
to {
|
|
486
|
-
transform: scaleX(1);
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
```
|
|
490
|
-
|
|
491
|
-
```html
|
|
492
|
-
<div class="scroll-progress fixed top-0 left-0 z-50 h-1 w-full origin-left bg-primary-600"></div>
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
---
|
|
496
|
-
|
|
497
|
-
## Performance
|
|
498
|
-
|
|
499
|
-
### Purging & Bundle Size
|
|
500
|
-
|
|
501
|
-
```css
|
|
502
|
-
/* Tailwind v4 automatically tree-shakes unused CSS at build time */
|
|
503
|
-
/* No manual purge configuration needed */
|
|
504
|
-
|
|
505
|
-
/* @source — explicitly add content paths for scanning */
|
|
506
|
-
@source "../components/**/*.tsx";
|
|
507
|
-
@source "../pages/**/*.tsx";
|
|
508
|
-
|
|
509
|
-
/* ❌ HALLUCINATION TRAP: Tailwind v4 does NOT use purge: [] config
|
|
510
|
-
❌ purge: ['./src/**/*.{html,tsx}'] ← REMOVED in v4
|
|
511
|
-
✅ Uses automatic content detection based on your project structure
|
|
512
|
-
✅ Use @source directive for custom paths */
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
### Avoiding Bloat
|
|
516
|
-
|
|
517
|
-
```html
|
|
518
|
-
<!-- ✅ GOOD: Use component extraction for repeated patterns -->
|
|
519
|
-
<!-- Create a .btn class in CSS instead of repeating 15 utilities -->
|
|
520
|
-
|
|
521
|
-
<!-- ❌ BAD: One-off arbitrary values everywhere -->
|
|
522
|
-
<div class="mt-[13px] mr-[7px] p-[11px] text-[15px]">
|
|
523
|
-
<!-- Every arbitrary value = unique CSS rule = bundle bloat -->
|
|
524
|
-
</div>
|
|
525
|
-
|
|
526
|
-
<!-- ✅ GOOD: Use your design scale -->
|
|
527
|
-
<div class="mt-3 mr-2 p-3 text-sm">
|
|
528
|
-
<!-- Maps to existing utilities = zero extra CSS -->
|
|
529
|
-
</div>
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
### Component Extraction (When to @apply)
|
|
533
|
-
|
|
534
|
-
```css
|
|
535
|
-
/* Use @apply ONLY for highly reused component patterns */
|
|
536
|
-
/* Do NOT @apply everything — it defeats Tailwind's purpose */
|
|
537
|
-
|
|
538
|
-
.btn {
|
|
539
|
-
@apply inline-flex items-center justify-center gap-2 rounded-lg px-4 py-2.5
|
|
540
|
-
text-sm font-medium transition-all duration-150
|
|
541
|
-
focus-visible:outline-2 focus-visible:outline-offset-2
|
|
542
|
-
active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
.btn-primary {
|
|
546
|
-
@apply btn bg-primary-600 text-white shadow-sm hover:bg-primary-700
|
|
547
|
-
focus-visible:outline-primary-500;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
/* ❌ HALLUCINATION TRAP: @apply is for component patterns shared across files
|
|
551
|
-
If a pattern appears in only 1-2 places, just use inline utilities
|
|
552
|
-
Over-extracting with @apply = recreating regular CSS with extra steps */
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
---
|
|
556
|
-
|
|
557
|
-
## Accessibility with Tailwind
|
|
558
|
-
|
|
559
|
-
```html
|
|
560
|
-
<!-- Focus visible (keyboard only, not mouse click) -->
|
|
561
|
-
<a
|
|
562
|
-
class="rounded-lg focus-visible:outline-2 focus-visible:outline-primary-500
|
|
563
|
-
focus-visible:outline-offset-2"
|
|
564
|
-
>
|
|
565
|
-
Keyboard accessible link
|
|
566
|
-
</a>
|
|
567
|
-
|
|
568
|
-
<!-- Screen reader only text -->
|
|
569
|
-
<button>
|
|
570
|
-
<svg class="size-5" aria-hidden="true"></svg>
|
|
571
|
-
<span class="sr-only">Close menu</span>
|
|
572
|
-
</button>
|
|
573
|
-
|
|
574
|
-
<!-- Motion-safe / motion-reduce -->
|
|
575
|
-
<div class="motion-safe:animate-bounce-in motion-reduce:animate-none">
|
|
576
|
-
<!-- Only animates if user hasn't enabled "reduce motion" -->
|
|
577
|
-
</div>
|
|
578
|
-
|
|
579
|
-
<!-- Forced colors mode (high contrast) -->
|
|
580
|
-
<button class="bg-primary-600 forced-colors:bg-[Highlight] forced-colors:text-[HighlightText]">
|
|
581
|
-
Accessible button
|
|
582
|
-
</button>
|
|
583
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: tailwind-patterns
|
|
3
|
+
description: "Use when Tailwind CSS v4+ mastery. CSS-first configuration, @theme directive, container queries, scroll-driven animations, logical properties, clamp(), fluid typography, responsive design, dark mode, custom variants, component extraction, and performance optimization. Use when styling with Tailwind, building design systems, or optimizing CSS output."
|
|
4
|
+
version: 5.0.0
|
|
5
|
+
last-updated: 2026-09-13
|
|
6
|
+
skills:
|
|
7
|
+
- baseline-ui
|
|
8
|
+
- better-colors
|
|
9
|
+
- shadcn-ui-expert
|
|
10
|
+
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
11
|
+
scripts-binding:
|
|
12
|
+
- .agent/scripts/lint_runner.js
|
|
13
|
+
- .agent/scripts/verify_all.js
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Tailwind CSS v4+ — CSS-First Mastery
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## v4 Configuration (CSS-First)
|
|
27
|
+
|
|
28
|
+
### The @theme Directive
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
/* app.css — THE configuration file in Tailwind v4 */
|
|
32
|
+
@import 'tailwindcss';
|
|
33
|
+
|
|
34
|
+
@theme {
|
|
35
|
+
/* Colors */
|
|
36
|
+
--color-primary-50: oklch(0.97 0.02 250);
|
|
37
|
+
--color-primary-100: oklch(0.93 0.04 250);
|
|
38
|
+
--color-primary-500: oklch(0.55 0.18 250);
|
|
39
|
+
--color-primary-600: oklch(0.48 0.18 250);
|
|
40
|
+
--color-primary-700: oklch(0.4 0.16 250);
|
|
41
|
+
--color-primary-900: oklch(0.25 0.1 250);
|
|
42
|
+
|
|
43
|
+
--color-surface: oklch(0.99 0 0);
|
|
44
|
+
--color-surface-alt: oklch(0.96 0 0);
|
|
45
|
+
--color-text: oklch(0.15 0 0);
|
|
46
|
+
--color-text-muted: oklch(0.45 0 0);
|
|
47
|
+
|
|
48
|
+
/* Typography */
|
|
49
|
+
--font-sans: 'Inter', 'system-ui', sans-serif;
|
|
50
|
+
--font-mono: 'JetBrains Mono', monospace;
|
|
51
|
+
|
|
52
|
+
/* Spacing (extends the default scale) */
|
|
53
|
+
--spacing-18: 4.5rem;
|
|
54
|
+
--spacing-88: 22rem;
|
|
55
|
+
|
|
56
|
+
/* Border radius */
|
|
57
|
+
--radius-pill: 9999px;
|
|
58
|
+
--radius-card: 1rem;
|
|
59
|
+
|
|
60
|
+
/* Shadows */
|
|
61
|
+
--shadow-card: 0 1px 3px oklch(0 0 0 / 0.08), 0 1px 2px oklch(0 0 0 / 0.06);
|
|
62
|
+
--shadow-elevated: 0 10px 25px oklch(0 0 0 / 0.1), 0 4px 10px oklch(0 0 0 / 0.05);
|
|
63
|
+
|
|
64
|
+
/* Animations */
|
|
65
|
+
--animate-fade-in: fade-in 0.3s ease-out;
|
|
66
|
+
--animate-slide-up: slide-up 0.4s cubic-bezier(0.16, 1, 0.3, 1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@keyframes fade-in {
|
|
70
|
+
from {
|
|
71
|
+
opacity: 0;
|
|
72
|
+
}
|
|
73
|
+
to {
|
|
74
|
+
opacity: 1;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@keyframes slide-up {
|
|
79
|
+
from {
|
|
80
|
+
opacity: 0;
|
|
81
|
+
transform: translateY(12px);
|
|
82
|
+
}
|
|
83
|
+
to {
|
|
84
|
+
opacity: 1;
|
|
85
|
+
transform: translateY(0);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* ❌ HALLUCINATION TRAP: Tailwind v4 does NOT use tailwind.config.js
|
|
90
|
+
❌ module.exports = { theme: { extend: { ... } } } ← REMOVED in v4
|
|
91
|
+
✅ Use @theme { } directive in your CSS file
|
|
92
|
+
✅ @import "tailwindcss" replaces the three @tailwind directives */
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Dark Mode
|
|
96
|
+
|
|
97
|
+
```css
|
|
98
|
+
/* Tailwind v4 dark mode with @theme */
|
|
99
|
+
@theme {
|
|
100
|
+
--color-surface: oklch(0.99 0 0);
|
|
101
|
+
--color-text: oklch(0.15 0 0);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Dark variant — override variables */
|
|
105
|
+
@variant dark {
|
|
106
|
+
@theme {
|
|
107
|
+
--color-surface: oklch(0.13 0.02 260);
|
|
108
|
+
--color-text: oklch(0.93 0 0);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Usage in HTML: */
|
|
113
|
+
/* <div class="bg-surface text-text dark:bg-surface dark:text-text"> */
|
|
114
|
+
/* With the @variant dark override, classes "just work" in dark mode */
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
<!-- Dark mode toggle pattern -->
|
|
119
|
+
<html class="dark">
|
|
120
|
+
<body class="bg-surface text-text transition-colors duration-300">
|
|
121
|
+
<!-- Automatically uses dark @theme values -->
|
|
122
|
+
</body>
|
|
123
|
+
</html>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Custom Variants
|
|
127
|
+
|
|
128
|
+
```css
|
|
129
|
+
/* @variant — custom selector-based variants */
|
|
130
|
+
@variant scrolled (&:where([data-scrolled]));
|
|
131
|
+
@variant hocus (&:hover, &:focus-visible);
|
|
132
|
+
|
|
133
|
+
/* Usage: */
|
|
134
|
+
/* <nav class="scrolled:shadow-elevated hocus:ring-2"> */
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Layout Patterns
|
|
140
|
+
|
|
141
|
+
### Flexbox
|
|
142
|
+
|
|
143
|
+
```html
|
|
144
|
+
<!-- Centered hero -->
|
|
145
|
+
<section class="flex min-h-svh flex-col items-center justify-center gap-6 px-6">
|
|
146
|
+
<h1 class="text-5xl font-bold tracking-tight">Hero Title</h1>
|
|
147
|
+
<p class="max-w-2xl text-center text-lg text-text-muted">Subtitle text</p>
|
|
148
|
+
<div class="flex gap-3">
|
|
149
|
+
<button class="rounded-pill bg-primary-600 px-6 py-3 text-white">Primary</button>
|
|
150
|
+
<button class="rounded-pill border border-primary-600 px-6 py-3 text-primary-600">
|
|
151
|
+
Secondary
|
|
152
|
+
</button>
|
|
153
|
+
</div>
|
|
154
|
+
</section>
|
|
155
|
+
|
|
156
|
+
<!-- Sidebar layout -->
|
|
157
|
+
<div class="flex min-h-svh">
|
|
158
|
+
<aside class="w-64 shrink-0 border-r border-gray-200 p-4">Sidebar</aside>
|
|
159
|
+
<main class="flex-1 overflow-y-auto p-6">Content</main>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<!-- ❌ HALLUCINATION TRAP: Use min-h-svh (small viewport height), NOT min-h-screen
|
|
163
|
+
min-h-screen = 100vh (broken on mobile — includes browser chrome)
|
|
164
|
+
min-h-svh = 100svh (accounts for mobile browser chrome)
|
|
165
|
+
min-h-dvh = 100dvh (dynamic — updates as chrome shows/hides) -->
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### CSS Grid
|
|
169
|
+
|
|
170
|
+
```html
|
|
171
|
+
<!-- Auto-fit responsive grid (no breakpoints needed) -->
|
|
172
|
+
<div class="grid grid-cols-[repeat(auto-fit,minmax(280px,1fr))] gap-6">
|
|
173
|
+
<div class="rounded-card bg-surface p-6 shadow-card">Card 1</div>
|
|
174
|
+
<div class="rounded-card bg-surface p-6 shadow-card">Card 2</div>
|
|
175
|
+
<div class="rounded-card bg-surface p-6 shadow-card">Card 3</div>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<!-- Dashboard grid with named areas -->
|
|
179
|
+
<div class="grid grid-cols-[240px_1fr] grid-rows-[64px_1fr] min-h-svh">
|
|
180
|
+
<header class="col-span-2 border-b">Header</header>
|
|
181
|
+
<aside class="border-r p-4">Sidebar</aside>
|
|
182
|
+
<main class="overflow-y-auto p-6">Content</main>
|
|
183
|
+
</div>
|
|
184
|
+
|
|
185
|
+
<!-- Bento grid -->
|
|
186
|
+
<div class="grid auto-rows-[180px] grid-cols-3 gap-4">
|
|
187
|
+
<div class="col-span-2 row-span-2 rounded-2xl bg-primary-100">Large</div>
|
|
188
|
+
<div class="rounded-2xl bg-surface-alt">Small 1</div>
|
|
189
|
+
<div class="rounded-2xl bg-surface-alt">Small 2</div>
|
|
190
|
+
<div class="col-span-3 rounded-2xl bg-primary-50">Full width</div>
|
|
191
|
+
</div>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Container Queries
|
|
195
|
+
|
|
196
|
+
```html
|
|
197
|
+
<!-- Container queries — component-level responsiveness -->
|
|
198
|
+
<div class="@container">
|
|
199
|
+
<div class="flex flex-col gap-3 @sm:flex-row @sm:items-center @lg:gap-6">
|
|
200
|
+
<img class="size-16 rounded-full @sm:size-20" src="avatar.jpg" alt="" />
|
|
201
|
+
<div>
|
|
202
|
+
<h3 class="text-lg font-semibold @lg:text-xl">User Name</h3>
|
|
203
|
+
<p class="text-sm text-text-muted @lg:text-base">Description</p>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<!-- Named container -->
|
|
209
|
+
<div class="@container/card">
|
|
210
|
+
<div class="@md/card:grid @md/card:grid-cols-2">
|
|
211
|
+
<!-- Responds to the card container's width, not viewport -->
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<!-- ❌ HALLUCINATION TRAP: Container queries use @sm, @md, @lg (with @ prefix)
|
|
216
|
+
NOT sm:, md:, lg: — those are VIEWPORT breakpoints
|
|
217
|
+
@sm = container >= 320px (component-level)
|
|
218
|
+
sm: = viewport >= 640px (page-level) -->
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Typography
|
|
224
|
+
|
|
225
|
+
### Fluid Typography with clamp()
|
|
226
|
+
|
|
227
|
+
```html
|
|
228
|
+
<!-- Fluid heading — scales smoothly from 2rem to 4rem -->
|
|
229
|
+
<h1 class="text-[clamp(2rem,5vw,4rem)] font-bold leading-tight tracking-tight">
|
|
230
|
+
Responsive Heading
|
|
231
|
+
</h1>
|
|
232
|
+
|
|
233
|
+
<!-- Fluid body text -->
|
|
234
|
+
<p class="text-[clamp(1rem,1.2vw,1.25rem)] leading-relaxed text-text-muted">
|
|
235
|
+
Body text that scales with viewport
|
|
236
|
+
</p>
|
|
237
|
+
|
|
238
|
+
<!-- Prose (for long-form content) -->
|
|
239
|
+
<article class="prose prose-lg mx-auto max-w-3xl dark:prose-invert">
|
|
240
|
+
<!-- @tailwindcss/typography plugin handles all typography -->
|
|
241
|
+
<h1>Article Title</h1>
|
|
242
|
+
<p>Paragraph with <a href="#">links</a> and <code>code</code>.</p>
|
|
243
|
+
</article>
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Font Loading
|
|
247
|
+
|
|
248
|
+
```css
|
|
249
|
+
/* @font-face in your CSS (Tailwind v4 approach) */
|
|
250
|
+
@font-face {
|
|
251
|
+
font-family: 'Inter';
|
|
252
|
+
font-weight: 100 900;
|
|
253
|
+
font-display: swap;
|
|
254
|
+
src: url('/fonts/inter-variable.woff2') format('woff2');
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
@theme {
|
|
258
|
+
--font-sans: 'Inter', system-ui, sans-serif;
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Component Patterns
|
|
265
|
+
|
|
266
|
+
### Button System
|
|
267
|
+
|
|
268
|
+
```html
|
|
269
|
+
<!-- Base button with variants -->
|
|
270
|
+
<button
|
|
271
|
+
class="inline-flex items-center justify-center gap-2 rounded-lg px-4 py-2.5
|
|
272
|
+
text-sm font-medium transition-all duration-150
|
|
273
|
+
focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500
|
|
274
|
+
active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50"
|
|
275
|
+
>
|
|
276
|
+
Button Text
|
|
277
|
+
</button>
|
|
278
|
+
|
|
279
|
+
<!-- Primary variant -->
|
|
280
|
+
<button class="... bg-primary-600 text-white shadow-sm hover:bg-primary-700">Primary</button>
|
|
281
|
+
|
|
282
|
+
<!-- Ghost variant -->
|
|
283
|
+
<button class="... text-text hover:bg-gray-100 dark:hover:bg-gray-800">Ghost</button>
|
|
284
|
+
|
|
285
|
+
<!-- Destructive variant -->
|
|
286
|
+
<button class="... bg-red-600 text-white hover:bg-red-700">Delete</button>
|
|
287
|
+
|
|
288
|
+
<!-- Icon button -->
|
|
289
|
+
<button class="grid size-10 place-items-center rounded-lg hover:bg-gray-100" aria-label="Settings">
|
|
290
|
+
<svg class="size-5" ...></svg>
|
|
291
|
+
</button>
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Input System
|
|
295
|
+
|
|
296
|
+
```html
|
|
297
|
+
<!-- Text input -->
|
|
298
|
+
<div class="space-y-1.5">
|
|
299
|
+
<label for="email" class="text-sm font-medium text-text">Email</label>
|
|
300
|
+
<input
|
|
301
|
+
id="email"
|
|
302
|
+
type="email"
|
|
303
|
+
placeholder="you@example.com"
|
|
304
|
+
class="w-full rounded-lg border border-gray-300 bg-surface px-3.5 py-2.5
|
|
305
|
+
text-sm text-text placeholder:text-text-muted
|
|
306
|
+
transition-colors duration-150
|
|
307
|
+
focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/20
|
|
308
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:opacity-60"
|
|
309
|
+
/>
|
|
310
|
+
<p class="text-xs text-red-500">Error message here</p>
|
|
311
|
+
</div>
|
|
312
|
+
|
|
313
|
+
<!-- Checkbox -->
|
|
314
|
+
<label class="flex items-center gap-2.5 text-sm">
|
|
315
|
+
<input
|
|
316
|
+
type="checkbox"
|
|
317
|
+
class="size-4 rounded border-gray-300 text-primary-600
|
|
318
|
+
focus:ring-2 focus:ring-primary-500/20"
|
|
319
|
+
/>
|
|
320
|
+
Remember me
|
|
321
|
+
</label>
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Card Pattern
|
|
325
|
+
|
|
326
|
+
```html
|
|
327
|
+
<div
|
|
328
|
+
class="group overflow-hidden rounded-card bg-surface shadow-card
|
|
329
|
+
transition-shadow duration-200 hover:shadow-elevated"
|
|
330
|
+
>
|
|
331
|
+
<div class="aspect-video overflow-hidden bg-gray-100">
|
|
332
|
+
<img
|
|
333
|
+
src="cover.jpg"
|
|
334
|
+
alt="Cover"
|
|
335
|
+
class="size-full object-cover transition-transform duration-300
|
|
336
|
+
group-hover:scale-105"
|
|
337
|
+
/>
|
|
338
|
+
</div>
|
|
339
|
+
<div class="space-y-2 p-5">
|
|
340
|
+
<span
|
|
341
|
+
class="inline-block rounded-full bg-primary-100 px-2.5 py-0.5
|
|
342
|
+
text-xs font-medium text-primary-700"
|
|
343
|
+
>Category</span
|
|
344
|
+
>
|
|
345
|
+
<h3 class="text-lg font-semibold text-text line-clamp-2">Card Title</h3>
|
|
346
|
+
<p class="text-sm text-text-muted line-clamp-3">Description text...</p>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Modal / Dialog
|
|
352
|
+
|
|
353
|
+
```html
|
|
354
|
+
<!-- Backdrop -->
|
|
355
|
+
<div
|
|
356
|
+
class="fixed inset-0 z-50 flex items-center justify-center bg-black/50
|
|
357
|
+
backdrop-blur-sm animate-fade-in"
|
|
358
|
+
>
|
|
359
|
+
<!-- Modal -->
|
|
360
|
+
<div
|
|
361
|
+
class="w-full max-w-md rounded-2xl bg-surface p-6 shadow-elevated animate-slide-up"
|
|
362
|
+
role="dialog"
|
|
363
|
+
aria-modal="true"
|
|
364
|
+
aria-labelledby="modal-title"
|
|
365
|
+
>
|
|
366
|
+
<h2 id="modal-title" class="text-lg font-semibold">Dialog Title</h2>
|
|
367
|
+
<p class="mt-2 text-sm text-text-muted">Dialog description.</p>
|
|
368
|
+
|
|
369
|
+
<div class="mt-6 flex justify-end gap-3">
|
|
370
|
+
<button class="rounded-lg px-4 py-2 text-sm hover:bg-gray-100">Cancel</button>
|
|
371
|
+
<button
|
|
372
|
+
class="rounded-lg bg-primary-600 px-4 py-2 text-sm text-white
|
|
373
|
+
hover:bg-primary-700"
|
|
374
|
+
>
|
|
375
|
+
Confirm
|
|
376
|
+
</button>
|
|
377
|
+
</div>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Responsive Design Rules
|
|
385
|
+
|
|
386
|
+
```html
|
|
387
|
+
<!-- Tailwind breakpoints (mobile-first) -->
|
|
388
|
+
<!-- sm: 640px │ md: 768px │ lg: 1024px │ xl: 1280px │ 2xl: 1536px -->
|
|
389
|
+
|
|
390
|
+
<!-- Stack on mobile, row on tablet+ -->
|
|
391
|
+
<div class="flex flex-col gap-4 md:flex-row md:items-center">
|
|
392
|
+
<div class="md:w-1/2">Left</div>
|
|
393
|
+
<div class="md:w-1/2">Right</div>
|
|
394
|
+
</div>
|
|
395
|
+
|
|
396
|
+
<!-- Hide/show at breakpoints -->
|
|
397
|
+
<nav class="hidden lg:flex">Desktop nav</nav>
|
|
398
|
+
<button class="lg:hidden">☰ Mobile menu</button>
|
|
399
|
+
|
|
400
|
+
<!-- Responsive padding -->
|
|
401
|
+
<section class="px-4 py-12 sm:px-6 lg:px-8 lg:py-24">
|
|
402
|
+
<div class="mx-auto max-w-7xl">Content</div>
|
|
403
|
+
</section>
|
|
404
|
+
|
|
405
|
+
<!-- Responsive grid -->
|
|
406
|
+
<div class="grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
|
|
407
|
+
<!-- Cards -->
|
|
408
|
+
</div>
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Animations & Transitions
|
|
414
|
+
|
|
415
|
+
### Transition Utilities
|
|
416
|
+
|
|
417
|
+
```html
|
|
418
|
+
<!-- Smooth hover transitions -->
|
|
419
|
+
<a class="text-text-muted transition-colors duration-150 hover:text-primary-600">Link</a>
|
|
420
|
+
|
|
421
|
+
<!-- Transform transitions -->
|
|
422
|
+
<div class="transition-transform duration-300 hover:-translate-y-1 hover:scale-105">Hover me</div>
|
|
423
|
+
|
|
424
|
+
<!-- Combined transition -->
|
|
425
|
+
<button
|
|
426
|
+
class="rounded-lg bg-primary-600 px-4 py-2 text-white
|
|
427
|
+
transition-all duration-200
|
|
428
|
+
hover:bg-primary-700 hover:shadow-lg
|
|
429
|
+
active:scale-95"
|
|
430
|
+
>
|
|
431
|
+
Click me
|
|
432
|
+
</button>
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
### Custom Keyframe Animations
|
|
436
|
+
|
|
437
|
+
```css
|
|
438
|
+
@theme {
|
|
439
|
+
--animate-bounce-in: bounce-in 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
440
|
+
--animate-spin-slow: spin 3s linear infinite;
|
|
441
|
+
--animate-pulse-soft: pulse-soft 2s ease-in-out infinite;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
@keyframes bounce-in {
|
|
445
|
+
0% {
|
|
446
|
+
opacity: 0;
|
|
447
|
+
transform: scale(0.3);
|
|
448
|
+
}
|
|
449
|
+
50% {
|
|
450
|
+
transform: scale(1.05);
|
|
451
|
+
}
|
|
452
|
+
70% {
|
|
453
|
+
transform: scale(0.9);
|
|
454
|
+
}
|
|
455
|
+
100% {
|
|
456
|
+
opacity: 1;
|
|
457
|
+
transform: scale(1);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
@keyframes pulse-soft {
|
|
462
|
+
0%,
|
|
463
|
+
100% {
|
|
464
|
+
opacity: 1;
|
|
465
|
+
}
|
|
466
|
+
50% {
|
|
467
|
+
opacity: 0.7;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
### Scroll-Driven Animations (CSS Native)
|
|
473
|
+
|
|
474
|
+
```css
|
|
475
|
+
/* Progress bar that fills as user scrolls */
|
|
476
|
+
.scroll-progress {
|
|
477
|
+
animation: grow-width linear;
|
|
478
|
+
animation-timeline: scroll();
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
@keyframes grow-width {
|
|
482
|
+
from {
|
|
483
|
+
transform: scaleX(0);
|
|
484
|
+
}
|
|
485
|
+
to {
|
|
486
|
+
transform: scaleX(1);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
```html
|
|
492
|
+
<div class="scroll-progress fixed top-0 left-0 z-50 h-1 w-full origin-left bg-primary-600"></div>
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## Performance
|
|
498
|
+
|
|
499
|
+
### Purging & Bundle Size
|
|
500
|
+
|
|
501
|
+
```css
|
|
502
|
+
/* Tailwind v4 automatically tree-shakes unused CSS at build time */
|
|
503
|
+
/* No manual purge configuration needed */
|
|
504
|
+
|
|
505
|
+
/* @source — explicitly add content paths for scanning */
|
|
506
|
+
@source "../components/**/*.tsx";
|
|
507
|
+
@source "../pages/**/*.tsx";
|
|
508
|
+
|
|
509
|
+
/* ❌ HALLUCINATION TRAP: Tailwind v4 does NOT use purge: [] config
|
|
510
|
+
❌ purge: ['./src/**/*.{html,tsx}'] ← REMOVED in v4
|
|
511
|
+
✅ Uses automatic content detection based on your project structure
|
|
512
|
+
✅ Use @source directive for custom paths */
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
### Avoiding Bloat
|
|
516
|
+
|
|
517
|
+
```html
|
|
518
|
+
<!-- ✅ GOOD: Use component extraction for repeated patterns -->
|
|
519
|
+
<!-- Create a .btn class in CSS instead of repeating 15 utilities -->
|
|
520
|
+
|
|
521
|
+
<!-- ❌ BAD: One-off arbitrary values everywhere -->
|
|
522
|
+
<div class="mt-[13px] mr-[7px] p-[11px] text-[15px]">
|
|
523
|
+
<!-- Every arbitrary value = unique CSS rule = bundle bloat -->
|
|
524
|
+
</div>
|
|
525
|
+
|
|
526
|
+
<!-- ✅ GOOD: Use your design scale -->
|
|
527
|
+
<div class="mt-3 mr-2 p-3 text-sm">
|
|
528
|
+
<!-- Maps to existing utilities = zero extra CSS -->
|
|
529
|
+
</div>
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Component Extraction (When to @apply)
|
|
533
|
+
|
|
534
|
+
```css
|
|
535
|
+
/* Use @apply ONLY for highly reused component patterns */
|
|
536
|
+
/* Do NOT @apply everything — it defeats Tailwind's purpose */
|
|
537
|
+
|
|
538
|
+
.btn {
|
|
539
|
+
@apply inline-flex items-center justify-center gap-2 rounded-lg px-4 py-2.5
|
|
540
|
+
text-sm font-medium transition-all duration-150
|
|
541
|
+
focus-visible:outline-2 focus-visible:outline-offset-2
|
|
542
|
+
active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.btn-primary {
|
|
546
|
+
@apply btn bg-primary-600 text-white shadow-sm hover:bg-primary-700
|
|
547
|
+
focus-visible:outline-primary-500;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
/* ❌ HALLUCINATION TRAP: @apply is for component patterns shared across files
|
|
551
|
+
If a pattern appears in only 1-2 places, just use inline utilities
|
|
552
|
+
Over-extracting with @apply = recreating regular CSS with extra steps */
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## Accessibility with Tailwind
|
|
558
|
+
|
|
559
|
+
```html
|
|
560
|
+
<!-- Focus visible (keyboard only, not mouse click) -->
|
|
561
|
+
<a
|
|
562
|
+
class="rounded-lg focus-visible:outline-2 focus-visible:outline-primary-500
|
|
563
|
+
focus-visible:outline-offset-2"
|
|
564
|
+
>
|
|
565
|
+
Keyboard accessible link
|
|
566
|
+
</a>
|
|
567
|
+
|
|
568
|
+
<!-- Screen reader only text -->
|
|
569
|
+
<button>
|
|
570
|
+
<svg class="size-5" aria-hidden="true"></svg>
|
|
571
|
+
<span class="sr-only">Close menu</span>
|
|
572
|
+
</button>
|
|
573
|
+
|
|
574
|
+
<!-- Motion-safe / motion-reduce -->
|
|
575
|
+
<div class="motion-safe:animate-bounce-in motion-reduce:animate-none">
|
|
576
|
+
<!-- Only animates if user hasn't enabled "reduce motion" -->
|
|
577
|
+
</div>
|
|
578
|
+
|
|
579
|
+
<!-- Forced colors mode (high contrast) -->
|
|
580
|
+
<button class="bg-primary-600 forced-colors:bg-[Highlight] forced-colors:text-[HighlightText]">
|
|
581
|
+
Accessible button
|
|
582
|
+
</button>
|
|
583
|
+
```
|