claudeinone-cli 1.0.2 → 1.0.3
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/kit/.claude/.ck.json +9 -0
- package/kit/.claude/.ckignore +12 -0
- package/kit/.claude/agents/accessibility-auditor.md +46 -0
- package/kit/.claude/agents/api-designer.md +43 -0
- package/kit/.claude/agents/backend-developer.md +54 -0
- package/kit/.claude/agents/brainstormer.md +33 -0
- package/kit/.claude/agents/campaign-manager.md +36 -0
- package/kit/.claude/agents/code-reviewer.md +39 -0
- package/kit/.claude/agents/content-creator.md +38 -0
- package/kit/.claude/agents/copywriter.md +42 -0
- package/kit/.claude/agents/database-admin.md +37 -0
- package/kit/.claude/agents/debugger.md +46 -0
- package/kit/.claude/agents/devops-engineer.md +41 -0
- package/kit/.claude/agents/docs-manager.md +33 -0
- package/kit/.claude/agents/email-wizard.md +40 -0
- package/kit/.claude/agents/frontend-developer.md +52 -0
- package/kit/.claude/agents/fullstack-developer.md +55 -0
- package/kit/.claude/agents/git-manager.md +40 -0
- package/kit/.claude/agents/i18n-specialist.md +46 -0
- package/kit/.claude/agents/integration-specialist.md +48 -0
- package/kit/.claude/agents/journal-writer.md +39 -0
- package/kit/.claude/agents/mcp-manager.md +57 -0
- package/kit/.claude/agents/mobile-developer.md +38 -0
- package/kit/.claude/agents/performance-optimizer.md +38 -0
- package/kit/.claude/agents/planner.md +56 -0
- package/kit/.claude/agents/project-manager.md +34 -0
- package/kit/.claude/agents/refactorer.md +43 -0
- package/kit/.claude/agents/researcher.md +45 -0
- package/kit/.claude/agents/risk-analyst.md +33 -0
- package/kit/.claude/agents/scalability-consultant.md +39 -0
- package/kit/.claude/agents/scout.md +25 -0
- package/kit/.claude/agents/security-auditor.md +42 -0
- package/kit/.claude/agents/seo-specialist.md +44 -0
- package/kit/.claude/agents/skill-creator.md +64 -0
- package/kit/.claude/agents/social-media-manager.md +35 -0
- package/kit/.claude/agents/systems-designer.md +35 -0
- package/kit/.claude/agents/technology-strategist.md +43 -0
- package/kit/.claude/agents/tester.md +40 -0
- package/kit/.claude/agents/ui-ux-designer.md +40 -0
- package/kit/.claude/commands/co/ask.md +29 -0
- package/kit/.claude/commands/co/bootstrap-auto-fast.md +28 -0
- package/kit/.claude/commands/co/bootstrap-auto-parallel.md +29 -0
- package/kit/.claude/commands/co/bootstrap-auto.md +30 -0
- package/kit/.claude/commands/co/bootstrap.md +31 -0
- package/kit/.claude/commands/co/brainstorm.md +27 -0
- package/kit/.claude/commands/co/campaign.md +28 -0
- package/kit/.claude/commands/co/changelog.md +25 -0
- package/kit/.claude/commands/co/checkpoint.md +25 -0
- package/kit/.claude/commands/co/ci.md +26 -0
- package/kit/.claude/commands/co/ck-help.md +24 -0
- package/kit/.claude/commands/co/coding-level.md +24 -0
- package/kit/.claude/commands/co/content-cro.md +26 -0
- package/kit/.claude/commands/co/content-enhance.md +26 -0
- package/kit/.claude/commands/co/content-fast.md +24 -0
- package/kit/.claude/commands/co/content-good.md +26 -0
- package/kit/.claude/commands/co/cook.md +33 -0
- package/kit/.claude/commands/co/debug.md +26 -0
- package/kit/.claude/commands/co/deploy.md +25 -0
- package/kit/.claude/commands/co/design-3d.md +27 -0
- package/kit/.claude/commands/co/design-describe.md +25 -0
- package/kit/.claude/commands/co/design-fast.md +25 -0
- package/kit/.claude/commands/co/design-good.md +28 -0
- package/kit/.claude/commands/co/design-screenshot.md +26 -0
- package/kit/.claude/commands/co/design-video.md +26 -0
- package/kit/.claude/commands/co/docker.md +24 -0
- package/kit/.claude/commands/co/docs-api.md +25 -0
- package/kit/.claude/commands/co/docs-init.md +26 -0
- package/kit/.claude/commands/co/docs-readme.md +24 -0
- package/kit/.claude/commands/co/docs-summarize.md +25 -0
- package/kit/.claude/commands/co/docs-update.md +25 -0
- package/kit/.claude/commands/co/env-check.md +25 -0
- package/kit/.claude/commands/co/fix-ci.md +29 -0
- package/kit/.claude/commands/co/fix-fast.md +28 -0
- package/kit/.claude/commands/co/fix-hard.md +33 -0
- package/kit/.claude/commands/co/fix-logs.md +28 -0
- package/kit/.claude/commands/co/fix-types.md +28 -0
- package/kit/.claude/commands/co/fix-ui.md +28 -0
- package/kit/.claude/commands/co/fix.md +27 -0
- package/kit/.claude/commands/co/git-cm.md +26 -0
- package/kit/.claude/commands/co/git-cp.md +26 -0
- package/kit/.claude/commands/co/git-pr.md +26 -0
- package/kit/.claude/commands/co/index.md +24 -0
- package/kit/.claude/commands/co/integrate-polar.md +29 -0
- package/kit/.claude/commands/co/integrate-sepay.md +29 -0
- package/kit/.claude/commands/co/journal.md +27 -0
- package/kit/.claude/commands/co/k8s.md +24 -0
- package/kit/.claude/commands/co/kanban.md +25 -0
- package/kit/.claude/commands/co/lint-fix.md +24 -0
- package/kit/.claude/commands/co/load.md +25 -0
- package/kit/.claude/commands/co/migrate.md +28 -0
- package/kit/.claude/commands/co/mock.md +26 -0
- package/kit/.claude/commands/co/mode.md +24 -0
- package/kit/.claude/commands/co/monitor.md +25 -0
- package/kit/.claude/commands/co/new-feature.md +27 -0
- package/kit/.claude/commands/co/optimize.md +26 -0
- package/kit/.claude/commands/co/plan-archive.md +24 -0
- package/kit/.claude/commands/co/plan-ci.md +28 -0
- package/kit/.claude/commands/co/plan-cro.md +27 -0
- package/kit/.claude/commands/co/plan-fast.md +24 -0
- package/kit/.claude/commands/co/plan-hard.md +27 -0
- package/kit/.claude/commands/co/plan-parallel.md +25 -0
- package/kit/.claude/commands/co/plan-two.md +29 -0
- package/kit/.claude/commands/co/plan-validate.md +27 -0
- package/kit/.claude/commands/co/plan.md +27 -0
- package/kit/.claude/commands/co/pr.md +25 -0
- package/kit/.claude/commands/co/preview.md +26 -0
- package/kit/.claude/commands/co/refactor.md +25 -0
- package/kit/.claude/commands/co/release.md +25 -0
- package/kit/.claude/commands/co/review-a11y.md +24 -0
- package/kit/.claude/commands/co/review-codebase-parallel.md +27 -0
- package/kit/.claude/commands/co/review-codebase.md +27 -0
- package/kit/.claude/commands/co/review-perf.md +24 -0
- package/kit/.claude/commands/co/review-security.md +25 -0
- package/kit/.claude/commands/co/scaffold.md +25 -0
- package/kit/.claude/commands/co/scout.md +26 -0
- package/kit/.claude/commands/co/secure.md +26 -0
- package/kit/.claude/commands/co/seed.md +25 -0
- package/kit/.claude/commands/co/seo-audit.md +24 -0
- package/kit/.claude/commands/co/seo-keywords.md +25 -0
- package/kit/.claude/commands/co/skill-create.md +29 -0
- package/kit/.claude/commands/co/skill-fix-logs.md +28 -0
- package/kit/.claude/commands/co/slide-create.md +24 -0
- package/kit/.claude/commands/co/spawn.md +24 -0
- package/kit/.claude/commands/co/terraform.md +24 -0
- package/kit/.claude/commands/co/test-gen.md +24 -0
- package/kit/.claude/commands/co/test-ui.md +27 -0
- package/kit/.claude/commands/co/test.md +26 -0
- package/kit/.claude/commands/co/use-mcp.md +25 -0
- package/kit/.claude/commands/co/video-script.md +25 -0
- package/kit/.claude/commands/co/watzup.md +25 -0
- package/kit/.claude/commands/co/worktree.md +25 -0
- package/kit/.claude/commands/co/write-blog.md +25 -0
- package/kit/.claude/commands/co/write-copy.md +24 -0
- package/kit/.claude/commands/co/write-email.md +25 -0
- package/kit/.claude/commands/content/content-cro.md +26 -0
- package/kit/.claude/commands/content/content-enhance.md +26 -0
- package/kit/.claude/commands/content/content-fast.md +24 -0
- package/kit/.claude/commands/content/content-good.md +26 -0
- package/kit/.claude/commands/content/enhance.md +26 -0
- package/kit/.claude/commands/content/good.md +26 -0
- package/kit/.claude/commands/core/ask.md +29 -0
- package/kit/.claude/commands/core/bootstrap-auto-fast.md +28 -0
- package/kit/.claude/commands/core/bootstrap-auto-parallel.md +29 -0
- package/kit/.claude/commands/core/bootstrap-auto.md +30 -0
- package/kit/.claude/commands/core/bootstrap.md +31 -0
- package/kit/.claude/commands/core/ck-help.md +24 -0
- package/kit/.claude/commands/core/coding-level.md +24 -0
- package/kit/.claude/commands/core/cook.md +33 -0
- package/kit/.claude/commands/core/debug.md +26 -0
- package/kit/.claude/commands/core/journal.md +27 -0
- package/kit/.claude/commands/core/kanban.md +25 -0
- package/kit/.claude/commands/core/preview.md +26 -0
- package/kit/.claude/commands/core/scout.md +26 -0
- package/kit/.claude/commands/core/test-ui.md +27 -0
- package/kit/.claude/commands/core/test.md +26 -0
- package/kit/.claude/commands/core/use-mcp.md +25 -0
- package/kit/.claude/commands/core/watzup.md +25 -0
- package/kit/.claude/commands/core/worktree.md +25 -0
- package/kit/.claude/commands/design/3d.md +27 -0
- package/kit/.claude/commands/design/design-3d.md +27 -0
- package/kit/.claude/commands/design/design-describe.md +25 -0
- package/kit/.claude/commands/design/design-fast.md +25 -0
- package/kit/.claude/commands/design/design-good.md +28 -0
- package/kit/.claude/commands/design/design-screenshot.md +26 -0
- package/kit/.claude/commands/design/design-video.md +26 -0
- package/kit/.claude/commands/design/good.md +28 -0
- package/kit/.claude/commands/design/video.md +26 -0
- package/kit/.claude/commands/docs/docs-init.md +26 -0
- package/kit/.claude/commands/docs/docs-summarize.md +25 -0
- package/kit/.claude/commands/docs/docs-update.md +25 -0
- package/kit/.claude/commands/docs/init.md +26 -0
- package/kit/.claude/commands/docs/summarize.md +25 -0
- package/kit/.claude/commands/fix/ci.md +29 -0
- package/kit/.claude/commands/fix/fast.md +28 -0
- package/kit/.claude/commands/fix/fix-ci.md +29 -0
- package/kit/.claude/commands/fix/fix-fast.md +28 -0
- package/kit/.claude/commands/fix/fix-hard.md +33 -0
- package/kit/.claude/commands/fix/fix-logs.md +28 -0
- package/kit/.claude/commands/fix/fix-types.md +28 -0
- package/kit/.claude/commands/fix/fix-ui.md +28 -0
- package/kit/.claude/commands/fix/hard.md +33 -0
- package/kit/.claude/commands/fix/logs.md +28 -0
- package/kit/.claude/commands/fix/types.md +28 -0
- package/kit/.claude/commands/fix/ui.md +28 -0
- package/kit/.claude/commands/git/cp.md +26 -0
- package/kit/.claude/commands/git/git-cm.md +26 -0
- package/kit/.claude/commands/git/git-cp.md +26 -0
- package/kit/.claude/commands/git/git-pr.md +26 -0
- package/kit/.claude/commands/integrate/integrate-polar.md +29 -0
- package/kit/.claude/commands/integrate/integrate-sepay.md +29 -0
- package/kit/.claude/commands/integrate/sepay.md +29 -0
- package/kit/.claude/commands/plan/ci.md +28 -0
- package/kit/.claude/commands/plan/cro.md +27 -0
- package/kit/.claude/commands/plan/hard.md +27 -0
- package/kit/.claude/commands/plan/plan-archive.md +24 -0
- package/kit/.claude/commands/plan/plan-ci.md +28 -0
- package/kit/.claude/commands/plan/plan-cro.md +27 -0
- package/kit/.claude/commands/plan/plan-fast.md +24 -0
- package/kit/.claude/commands/plan/plan-hard.md +27 -0
- package/kit/.claude/commands/plan/plan-parallel.md +25 -0
- package/kit/.claude/commands/plan/plan-two.md +29 -0
- package/kit/.claude/commands/plan/plan-validate.md +27 -0
- package/kit/.claude/commands/plan/plan.md +27 -0
- package/kit/.claude/commands/plan/validate.md +27 -0
- package/kit/.claude/commands/skill/fix-logs.md +28 -0
- package/kit/.claude/commands/skill/skill-create.md +29 -0
- package/kit/.claude/commands/skill/skill-fix-logs.md +28 -0
- package/kit/.claude/settings.json +16 -0
- package/kit/.claude/skills/ai-anthropic.md +100 -0
- package/kit/.claude/skills/ai-context-engineering.md +113 -0
- package/kit/.claude/skills/ai-gemini.md +152 -0
- package/kit/.claude/skills/ai-langchain.md +93 -0
- package/kit/.claude/skills/ai-llamaindex.md +179 -0
- package/kit/.claude/skills/ai-mcp-builder.md +101 -0
- package/kit/.claude/skills/ai-openai.md +250 -0
- package/kit/.claude/skills/ai-prompt-engineering.md +173 -0
- package/kit/.claude/skills/ai-rag.md +91 -0
- package/kit/.claude/skills/ai-vectordb.md +215 -0
- package/kit/.claude/skills/analytics-segment.md +161 -0
- package/kit/.claude/skills/api-caching.md +103 -0
- package/kit/.claude/skills/api-documentation.md +50 -0
- package/kit/.claude/skills/api-graphql.md +234 -0
- package/kit/.claude/skills/api-openapi.md +116 -0
- package/kit/.claude/skills/api-pagination-filtering.md +239 -0
- package/kit/.claude/skills/api-rate-limiting.md +179 -0
- package/kit/.claude/skills/api-rest-advanced.md +50 -0
- package/kit/.claude/skills/api-rest.md +217 -0
- package/kit/.claude/skills/api-trpc.md +173 -0
- package/kit/.claude/skills/api-versioning.md +70 -0
- package/kit/.claude/skills/api-webhooks.md +226 -0
- package/kit/.claude/skills/arch-clean-code.md +226 -0
- package/kit/.claude/skills/arch-clean.md +91 -0
- package/kit/.claude/skills/arch-cqrs.md +229 -0
- package/kit/.claude/skills/arch-ddd.md +85 -0
- package/kit/.claude/skills/arch-event-driven.md +189 -0
- package/kit/.claude/skills/arch-microservices.md +80 -0
- package/kit/.claude/skills/arch-monorepo.md +87 -0
- package/kit/.claude/skills/arch-multi-tenant.md +81 -0
- package/kit/.claude/skills/arch-serverless.md +86 -0
- package/kit/.claude/skills/auth-clerk.md +97 -0
- package/kit/.claude/skills/auth-jwt.md +143 -0
- package/kit/.claude/skills/auth-lucia.md +93 -0
- package/kit/.claude/skills/auth-nextauth.md +446 -0
- package/kit/.claude/skills/auth-oauth.md +208 -0
- package/kit/.claude/skills/auth-oauth2.md +110 -0
- package/kit/.claude/skills/auth-passkeys.md +109 -0
- package/kit/.claude/skills/auth-session.md +88 -0
- package/kit/.claude/skills/backend-dotnet.md +414 -0
- package/kit/.claude/skills/backend-express.md +129 -0
- package/kit/.claude/skills/backend-fastify.md +104 -0
- package/kit/.claude/skills/backend-go.md +205 -0
- package/kit/.claude/skills/backend-graphql.md +149 -0
- package/kit/.claude/skills/backend-grpc.md +382 -0
- package/kit/.claude/skills/backend-hono.md +95 -0
- package/kit/.claude/skills/backend-java-spring.md +198 -0
- package/kit/.claude/skills/backend-nodejs-express.md +165 -0
- package/kit/.claude/skills/backend-nodejs.md +143 -0
- package/kit/.claude/skills/backend-php-laravel.md +156 -0
- package/kit/.claude/skills/backend-python-django.md +200 -0
- package/kit/.claude/skills/backend-python-fastapi.md +169 -0
- package/kit/.claude/skills/backend-ruby-rails.md +190 -0
- package/kit/.claude/skills/backend-rust.md +182 -0
- package/kit/.claude/skills/backend-websockets.md +392 -0
- package/kit/.claude/skills/cache-redis.md +195 -0
- package/kit/.claude/skills/caching-strategies.md +100 -0
- package/kit/.claude/skills/cloud-aws.md +165 -0
- package/kit/.claude/skills/cloud-azure.md +187 -0
- package/kit/.claude/skills/cloud-cloudflare.md +74 -0
- package/kit/.claude/skills/cloud-fly.md +94 -0
- package/kit/.claude/skills/cloud-gcp.md +160 -0
- package/kit/.claude/skills/cloud-railway.md +92 -0
- package/kit/.claude/skills/cloud-render.md +70 -0
- package/kit/.claude/skills/cloud-serverless.md +68 -0
- package/kit/.claude/skills/cloud-vercel.md +76 -0
- package/kit/.claude/skills/component-patterns.md +50 -0
- package/kit/.claude/skills/content-management.md +197 -0
- package/kit/.claude/skills/cors-security.md +50 -0
- package/kit/.claude/skills/data-csv-excel.md +210 -0
- package/kit/.claude/skills/database-optimization.md +196 -0
- package/kit/.claude/skills/databases-transactions.md +68 -0
- package/kit/.claude/skills/db-cassandra.md +89 -0
- package/kit/.claude/skills/db-drizzle.md +363 -0
- package/kit/.claude/skills/db-dynamodb.md +83 -0
- package/kit/.claude/skills/db-elasticsearch.md +105 -0
- package/kit/.claude/skills/db-firebase-firestore.md +191 -0
- package/kit/.claude/skills/db-mongodb.md +198 -0
- package/kit/.claude/skills/db-mysql.md +50 -0
- package/kit/.claude/skills/db-neon.md +72 -0
- package/kit/.claude/skills/db-planetscale.md +76 -0
- package/kit/.claude/skills/db-postgresql.md +50 -0
- package/kit/.claude/skills/db-prisma.md +414 -0
- package/kit/.claude/skills/db-redis.md +50 -0
- package/kit/.claude/skills/db-sqlite.md +149 -0
- package/kit/.claude/skills/db-supabase.md +445 -0
- package/kit/.claude/skills/devops-ci-cd.md +271 -0
- package/kit/.claude/skills/devops-database-backup.md +77 -0
- package/kit/.claude/skills/devops-docker.md +93 -0
- package/kit/.claude/skills/devops-github-actions.md +82 -0
- package/kit/.claude/skills/devops-health-checks.md +50 -0
- package/kit/.claude/skills/devops-kubernetes.md +109 -0
- package/kit/.claude/skills/devops-logging.md +163 -0
- package/kit/.claude/skills/devops-monitoring.md +203 -0
- package/kit/.claude/skills/devops-pulumi.md +94 -0
- package/kit/.claude/skills/devops-secrets.md +166 -0
- package/kit/.claude/skills/devops-terraform.md +226 -0
- package/kit/.claude/skills/error-boundaries.md +84 -0
- package/kit/.claude/skills/file-storage.md +50 -0
- package/kit/.claude/skills/frontend-angular.md +104 -0
- package/kit/.claude/skills/frontend-astro.md +94 -0
- package/kit/.claude/skills/frontend-bundle-analysis.md +147 -0
- package/kit/.claude/skills/frontend-forms.md +134 -0
- package/kit/.claude/skills/frontend-htmx.md +86 -0
- package/kit/.claude/skills/frontend-nextjs.md +188 -0
- package/kit/.claude/skills/frontend-pwa.md +105 -0
- package/kit/.claude/skills/frontend-react-hooks.md +238 -0
- package/kit/.claude/skills/frontend-react.md +129 -0
- package/kit/.claude/skills/frontend-remix-advanced.md +106 -0
- package/kit/.claude/skills/frontend-remix.md +101 -0
- package/kit/.claude/skills/frontend-solid.md +99 -0
- package/kit/.claude/skills/frontend-state-management.md +134 -0
- package/kit/.claude/skills/frontend-state.md +106 -0
- package/kit/.claude/skills/frontend-svelte.md +121 -0
- package/kit/.claude/skills/frontend-testing.md +100 -0
- package/kit/.claude/skills/frontend-vite.md +94 -0
- package/kit/.claude/skills/frontend-vue.md +133 -0
- package/kit/.claude/skills/frontend-webpack.md +93 -0
- package/kit/.claude/skills/functional-programming.md +50 -0
- package/kit/.claude/skills/hooks-custom.md +50 -0
- package/kit/.claude/skills/http-server.md +50 -0
- package/kit/.claude/skills/i18n-general.md +89 -0
- package/kit/.claude/skills/i18n-localization.md +191 -0
- package/kit/.claude/skills/i18n-nextjs.md +127 -0
- package/kit/.claude/skills/infrastructure-docker-compose.md +77 -0
- package/kit/.claude/skills/infrastructure-serverless.md +177 -0
- package/kit/.claude/skills/jwt-tokens.md +50 -0
- package/kit/.claude/skills/logging-winston.md +106 -0
- package/kit/.claude/skills/messaging-kafka.md +102 -0
- package/kit/.claude/skills/messaging-rabbitmq.md +50 -0
- package/kit/.claude/skills/mobile-capacitor.md +109 -0
- package/kit/.claude/skills/mobile-expo.md +101 -0
- package/kit/.claude/skills/mobile-flutter.md +259 -0
- package/kit/.claude/skills/mobile-react-native.md +238 -0
- package/kit/.claude/skills/monitoring-apm.md +50 -0
- package/kit/.claude/skills/monitoring-error-tracking.md +217 -0
- package/kit/.claude/skills/nodejs-streams.md +168 -0
- package/kit/.claude/skills/oauth-integration.md +50 -0
- package/kit/.claude/skills/patterns-dependency-injection.md +218 -0
- package/kit/.claude/skills/patterns-factory-singleton.md +209 -0
- package/kit/.claude/skills/patterns-observer-pubsub.md +210 -0
- package/kit/.claude/skills/payment-lemonsqueezy.md +101 -0
- package/kit/.claude/skills/payment-square.md +178 -0
- package/kit/.claude/skills/payment-stripe.md +206 -0
- package/kit/.claude/skills/perf-bundle.md +100 -0
- package/kit/.claude/skills/perf-web-vitals.md +102 -0
- package/kit/.claude/skills/performance-database-connection-pooling.md +67 -0
- package/kit/.claude/skills/performance-metrics.md +73 -0
- package/kit/.claude/skills/performance-optimization.md +208 -0
- package/kit/.claude/skills/performance-web-vitals.md +169 -0
- package/kit/.claude/skills/rate-limiting.md +77 -0
- package/kit/.claude/skills/reactive-programming.md +50 -0
- package/kit/.claude/skills/realtime-database.md +50 -0
- package/kit/.claude/skills/realtime-subscriptions.md +218 -0
- package/kit/.claude/skills/saas-ab-testing.md +90 -0
- package/kit/.claude/skills/saas-analytics.md +113 -0
- package/kit/.claude/skills/saas-billing.md +106 -0
- package/kit/.claude/skills/saas-email.md +88 -0
- package/kit/.claude/skills/saas-feature-flags.md +83 -0
- package/kit/.claude/skills/saas-onboarding.md +96 -0
- package/kit/.claude/skills/saas-user-onboarding.md +207 -0
- package/kit/.claude/skills/security-encryption.md +216 -0
- package/kit/.claude/skills/security-owasp.md +212 -0
- package/kit/.claude/skills/security-secrets-rotation.md +64 -0
- package/kit/.claude/skills/seo-content.md +94 -0
- package/kit/.claude/skills/seo-technical.md +101 -0
- package/kit/.claude/skills/serverless-framework.md +151 -0
- package/kit/.claude/skills/sharding-scaling.md +50 -0
- package/kit/.claude/skills/styling-css-modules.md +219 -0
- package/kit/.claude/skills/styling-styled-components.md +206 -0
- package/kit/.claude/skills/styling-tailwind.md +206 -0
- package/kit/.claude/skills/test-e2e.md +86 -0
- package/kit/.claude/skills/test-integration.md +216 -0
- package/kit/.claude/skills/test-performance.md +162 -0
- package/kit/.claude/skills/test-tdd.md +170 -0
- package/kit/.claude/skills/test-unit.md +301 -0
- package/kit/.claude/skills/testing-accessibility.md +117 -0
- package/kit/.claude/skills/testing-contract.md +75 -0
- package/kit/.claude/skills/testing-e2e-advanced.md +50 -0
- package/kit/.claude/skills/testing-load-stress.md +79 -0
- package/kit/.claude/skills/testing-mutation.md +92 -0
- package/kit/.claude/skills/testing-snapshot.md +50 -0
- package/kit/.claude/skills/testing-vitest.md +172 -0
- package/kit/.claude/skills/tooling-biome.md +91 -0
- package/kit/.claude/skills/tooling-build-tools.md +166 -0
- package/kit/.claude/skills/tooling-bun.md +94 -0
- package/kit/.claude/skills/tooling-eslint.md +103 -0
- package/kit/.claude/skills/tooling-git.md +79 -0
- package/kit/.claude/skills/tooling-monorepo.md +162 -0
- package/kit/.claude/skills/tooling-testing-frameworks.md +207 -0
- package/kit/.claude/skills/tooling-typescript.md +156 -0
- package/kit/.claude/skills/ui-a11y.md +106 -0
- package/kit/.claude/skills/ui-framer.md +106 -0
- package/kit/.claude/skills/ui-gsap.md +102 -0
- package/kit/.claude/skills/ui-radix.md +82 -0
- package/kit/.claude/skills/ui-shadcn.md +463 -0
- package/kit/.claude/skills/ui-tailwind.md +98 -0
- package/kit/.claude/skills/ui-threejs.md +110 -0
- package/kit/.claude/skills/ui-tokens.md +97 -0
- package/kit/.claude/skills/utilities-date-time.md +170 -0
- package/kit/.claude/skills/validation-schemas.md +110 -0
- package/kit/.claude/skills/version-control-git.md +144 -0
- package/kit/.claude/skills/web-accessibility-wcag.md +102 -0
- package/kit/.claude/skills/web-astro.md +197 -0
- package/kit/.claude/skills/web-html-css.md +224 -0
- package/kit/.claude/skills/web-htmx.md +99 -0
- package/kit/.claude/skills/web-nextjs-advanced.md +202 -0
- package/kit/.claude/skills/web-remix.md +194 -0
- package/kit/.claude/skills/web-seo.md +99 -0
- package/kit/.claude/skills/web-svelte.md +234 -0
- package/kit/.claude/skills/websocket-server.md +50 -0
- package/kit/.claude/skills/writing-marketing.md +89 -0
- package/kit/.claude/skills/writing-technical.md +119 -0
- package/kit/CLAUDE.md +206 -0
- package/kit/README.md +150 -0
- package/kit/SKILLS_INDEX.md +188 -0
- package/kit/docs/README.md +3 -0
- package/kit/journals/README.md +3 -0
- package/kit/plans/README.md +3 -0
- package/package.json +3 -1
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
# shadcn/ui
|
|
2
|
+
|
|
3
|
+
High-quality React component library built on Radix UI and Tailwind CSS for accessible interfaces.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx shadcn-ui@latest init
|
|
9
|
+
|
|
10
|
+
# Choose your preferences:
|
|
11
|
+
# - TypeScript: Yes
|
|
12
|
+
# - Style: Default
|
|
13
|
+
# - Base color: Slate
|
|
14
|
+
# - CSS variables: Yes
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Install Components
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Single component
|
|
21
|
+
npx shadcn-ui@latest add button
|
|
22
|
+
|
|
23
|
+
# Multiple components
|
|
24
|
+
npx shadcn-ui@latest add button input card dialog
|
|
25
|
+
|
|
26
|
+
# All components
|
|
27
|
+
npx shadcn-ui@latest add --all
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Button Component
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
import { Button } from '@/components/ui/button';
|
|
34
|
+
|
|
35
|
+
export default function ButtonDemo() {
|
|
36
|
+
return (
|
|
37
|
+
<div className="flex gap-4">
|
|
38
|
+
<Button>Default</Button>
|
|
39
|
+
<Button variant="secondary">Secondary</Button>
|
|
40
|
+
<Button variant="destructive">Destructive</Button>
|
|
41
|
+
<Button variant="outline">Outline</Button>
|
|
42
|
+
<Button variant="ghost">Ghost</Button>
|
|
43
|
+
<Button variant="link">Link</Button>
|
|
44
|
+
|
|
45
|
+
<Button size="sm">Small</Button>
|
|
46
|
+
<Button size="lg">Large</Button>
|
|
47
|
+
<Button disabled>Disabled</Button>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Form with Input Components
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
'use client';
|
|
57
|
+
|
|
58
|
+
import { useState } from 'react';
|
|
59
|
+
import { Button } from '@/components/ui/button';
|
|
60
|
+
import { Input } from '@/components/ui/input';
|
|
61
|
+
import { Label } from '@/components/ui/label';
|
|
62
|
+
import { Card } from '@/components/ui/card';
|
|
63
|
+
|
|
64
|
+
export default function FormExample() {
|
|
65
|
+
const [email, setEmail] = useState('');
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<Card className="w-full max-w-md p-6">
|
|
69
|
+
<form onSubmit={(e) => {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
console.log('Submitting:', email);
|
|
72
|
+
}}>
|
|
73
|
+
<div className="space-y-4">
|
|
74
|
+
<div>
|
|
75
|
+
<Label htmlFor="email">Email</Label>
|
|
76
|
+
<Input
|
|
77
|
+
id="email"
|
|
78
|
+
type="email"
|
|
79
|
+
placeholder="john@example.com"
|
|
80
|
+
value={email}
|
|
81
|
+
onChange={(e) => setEmail(e.target.value)}
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<Button type="submit" className="w-full">
|
|
86
|
+
Sign In
|
|
87
|
+
</Button>
|
|
88
|
+
</div>
|
|
89
|
+
</form>
|
|
90
|
+
</Card>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Dialog Component
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
'use client';
|
|
99
|
+
|
|
100
|
+
import { useState } from 'react';
|
|
101
|
+
import { Button } from '@/components/ui/button';
|
|
102
|
+
import {
|
|
103
|
+
Dialog,
|
|
104
|
+
DialogContent,
|
|
105
|
+
DialogDescription,
|
|
106
|
+
DialogHeader,
|
|
107
|
+
DialogTitle,
|
|
108
|
+
DialogTrigger
|
|
109
|
+
} from '@/components/ui/dialog';
|
|
110
|
+
|
|
111
|
+
export default function DialogExample() {
|
|
112
|
+
const [open, setOpen] = useState(false);
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<Dialog open={open} onOpenChange={setOpen}>
|
|
116
|
+
<DialogTrigger asChild>
|
|
117
|
+
<Button>Open Dialog</Button>
|
|
118
|
+
</DialogTrigger>
|
|
119
|
+
<DialogContent>
|
|
120
|
+
<DialogHeader>
|
|
121
|
+
<DialogTitle>Are you sure?</DialogTitle>
|
|
122
|
+
<DialogDescription>
|
|
123
|
+
This action cannot be undone. This will permanently delete your account.
|
|
124
|
+
</DialogDescription>
|
|
125
|
+
</DialogHeader>
|
|
126
|
+
<div className="flex justify-end gap-2">
|
|
127
|
+
<Button variant="outline" onClick={() => setOpen(false)}>
|
|
128
|
+
Cancel
|
|
129
|
+
</Button>
|
|
130
|
+
<Button variant="destructive">Delete</Button>
|
|
131
|
+
</div>
|
|
132
|
+
</DialogContent>
|
|
133
|
+
</Dialog>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Dropdown Menu
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
'use client';
|
|
142
|
+
|
|
143
|
+
import { Button } from '@/components/ui/button';
|
|
144
|
+
import {
|
|
145
|
+
DropdownMenu,
|
|
146
|
+
DropdownMenuContent,
|
|
147
|
+
DropdownMenuItem,
|
|
148
|
+
DropdownMenuLabel,
|
|
149
|
+
DropdownMenuSeparator,
|
|
150
|
+
DropdownMenuTrigger
|
|
151
|
+
} from '@/components/ui/dropdown-menu';
|
|
152
|
+
|
|
153
|
+
export default function DropdownExample() {
|
|
154
|
+
return (
|
|
155
|
+
<DropdownMenu>
|
|
156
|
+
<DropdownMenuTrigger asChild>
|
|
157
|
+
<Button variant="outline">Actions</Button>
|
|
158
|
+
</DropdownMenuTrigger>
|
|
159
|
+
<DropdownMenuContent align="end">
|
|
160
|
+
<DropdownMenuLabel>My Account</DropdownMenuLabel>
|
|
161
|
+
<DropdownMenuSeparator />
|
|
162
|
+
<DropdownMenuItem>Profile</DropdownMenuItem>
|
|
163
|
+
<DropdownMenuItem>Settings</DropdownMenuItem>
|
|
164
|
+
<DropdownMenuItem>Support</DropdownMenuItem>
|
|
165
|
+
<DropdownMenuSeparator />
|
|
166
|
+
<DropdownMenuItem>Logout</DropdownMenuItem>
|
|
167
|
+
</DropdownMenuContent>
|
|
168
|
+
</DropdownMenu>
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Modal/Sheet (Side Panel)
|
|
174
|
+
|
|
175
|
+
```tsx
|
|
176
|
+
'use client';
|
|
177
|
+
|
|
178
|
+
import { Button } from '@/components/ui/button';
|
|
179
|
+
import {
|
|
180
|
+
Sheet,
|
|
181
|
+
SheetContent,
|
|
182
|
+
SheetDescription,
|
|
183
|
+
SheetHeader,
|
|
184
|
+
SheetTitle,
|
|
185
|
+
SheetTrigger
|
|
186
|
+
} from '@/components/ui/sheet';
|
|
187
|
+
|
|
188
|
+
export default function SheetExample() {
|
|
189
|
+
return (
|
|
190
|
+
<Sheet>
|
|
191
|
+
<SheetTrigger asChild>
|
|
192
|
+
<Button>Open Settings</Button>
|
|
193
|
+
</SheetTrigger>
|
|
194
|
+
<SheetContent>
|
|
195
|
+
<SheetHeader>
|
|
196
|
+
<SheetTitle>Settings</SheetTitle>
|
|
197
|
+
<SheetDescription>
|
|
198
|
+
Make changes to your account settings here.
|
|
199
|
+
</SheetDescription>
|
|
200
|
+
</SheetHeader>
|
|
201
|
+
<div className="space-y-4 py-4">
|
|
202
|
+
{/* Settings content */}
|
|
203
|
+
</div>
|
|
204
|
+
</SheetContent>
|
|
205
|
+
</Sheet>
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Select Component
|
|
211
|
+
|
|
212
|
+
```tsx
|
|
213
|
+
'use client';
|
|
214
|
+
|
|
215
|
+
import {
|
|
216
|
+
Select,
|
|
217
|
+
SelectContent,
|
|
218
|
+
SelectItem,
|
|
219
|
+
SelectTrigger,
|
|
220
|
+
SelectValue
|
|
221
|
+
} from '@/components/ui/select';
|
|
222
|
+
|
|
223
|
+
export default function SelectExample() {
|
|
224
|
+
const [value, setValue] = useState('');
|
|
225
|
+
|
|
226
|
+
return (
|
|
227
|
+
<Select value={value} onValueChange={setValue}>
|
|
228
|
+
<SelectTrigger className="w-[200px]">
|
|
229
|
+
<SelectValue placeholder="Select a role" />
|
|
230
|
+
</SelectTrigger>
|
|
231
|
+
<SelectContent>
|
|
232
|
+
<SelectItem value="admin">Admin</SelectItem>
|
|
233
|
+
<SelectItem value="user">User</SelectItem>
|
|
234
|
+
<SelectItem value="guest">Guest</SelectItem>
|
|
235
|
+
</SelectContent>
|
|
236
|
+
</Select>
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Tabs Component
|
|
242
|
+
|
|
243
|
+
```tsx
|
|
244
|
+
'use client';
|
|
245
|
+
|
|
246
|
+
import {
|
|
247
|
+
Tabs,
|
|
248
|
+
TabsContent,
|
|
249
|
+
TabsList,
|
|
250
|
+
TabsTrigger
|
|
251
|
+
} from '@/components/ui/tabs';
|
|
252
|
+
|
|
253
|
+
export default function TabsExample() {
|
|
254
|
+
return (
|
|
255
|
+
<Tabs defaultValue="account" className="w-[400px]">
|
|
256
|
+
<TabsList className="grid w-full grid-cols-2">
|
|
257
|
+
<TabsTrigger value="account">Account</TabsTrigger>
|
|
258
|
+
<TabsTrigger value="password">Password</TabsTrigger>
|
|
259
|
+
</TabsList>
|
|
260
|
+
<TabsContent value="account">
|
|
261
|
+
<div>Account settings here</div>
|
|
262
|
+
</TabsContent>
|
|
263
|
+
<TabsContent value="password">
|
|
264
|
+
<div>Password settings here</div>
|
|
265
|
+
</TabsContent>
|
|
266
|
+
</Tabs>
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
## Alert Component
|
|
272
|
+
|
|
273
|
+
```tsx
|
|
274
|
+
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
|
|
275
|
+
import { AlertCircle } from 'lucide-react';
|
|
276
|
+
|
|
277
|
+
export default function AlertExample() {
|
|
278
|
+
return (
|
|
279
|
+
<Alert variant="destructive">
|
|
280
|
+
<AlertCircle className="h-4 w-4" />
|
|
281
|
+
<AlertTitle>Error</AlertTitle>
|
|
282
|
+
<AlertDescription>
|
|
283
|
+
Your session has expired. Please sign in again.
|
|
284
|
+
</AlertDescription>
|
|
285
|
+
</Alert>
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Data Table
|
|
291
|
+
|
|
292
|
+
```tsx
|
|
293
|
+
'use client';
|
|
294
|
+
|
|
295
|
+
import {
|
|
296
|
+
Table,
|
|
297
|
+
TableBody,
|
|
298
|
+
TableCell,
|
|
299
|
+
TableHead,
|
|
300
|
+
TableHeader,
|
|
301
|
+
TableRow
|
|
302
|
+
} from '@/components/ui/table';
|
|
303
|
+
|
|
304
|
+
const users = [
|
|
305
|
+
{ id: 1, name: 'John Doe', email: 'john@example.com' },
|
|
306
|
+
{ id: 2, name: 'Jane Smith', email: 'jane@example.com' }
|
|
307
|
+
];
|
|
308
|
+
|
|
309
|
+
export default function TableExample() {
|
|
310
|
+
return (
|
|
311
|
+
<Table>
|
|
312
|
+
<TableHeader>
|
|
313
|
+
<TableRow>
|
|
314
|
+
<TableHead>Name</TableHead>
|
|
315
|
+
<TableHead>Email</TableHead>
|
|
316
|
+
</TableRow>
|
|
317
|
+
</TableHeader>
|
|
318
|
+
<TableBody>
|
|
319
|
+
{users.map((user) => (
|
|
320
|
+
<TableRow key={user.id}>
|
|
321
|
+
<TableCell>{user.name}</TableCell>
|
|
322
|
+
<TableCell>{user.email}</TableCell>
|
|
323
|
+
</TableRow>
|
|
324
|
+
))}
|
|
325
|
+
</TableBody>
|
|
326
|
+
</Table>
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Toast Notifications
|
|
332
|
+
|
|
333
|
+
```tsx
|
|
334
|
+
'use client';
|
|
335
|
+
|
|
336
|
+
import { Button } from '@/components/ui/button';
|
|
337
|
+
import { useToast } from '@/components/ui/use-toast';
|
|
338
|
+
|
|
339
|
+
export default function ToastExample() {
|
|
340
|
+
const { toast } = useToast();
|
|
341
|
+
|
|
342
|
+
return (
|
|
343
|
+
<Button
|
|
344
|
+
onClick={() => {
|
|
345
|
+
toast({
|
|
346
|
+
title: 'Success',
|
|
347
|
+
description: 'Your changes have been saved.',
|
|
348
|
+
variant: 'default'
|
|
349
|
+
});
|
|
350
|
+
}}
|
|
351
|
+
>
|
|
352
|
+
Show Toast
|
|
353
|
+
</Button>
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
## Themeing with CSS Variables
|
|
359
|
+
|
|
360
|
+
```css
|
|
361
|
+
/* globals.css */
|
|
362
|
+
@layer base {
|
|
363
|
+
:root {
|
|
364
|
+
--background: 0 0% 100%;
|
|
365
|
+
--foreground: 0 0% 3.6%;
|
|
366
|
+
|
|
367
|
+
--card: 0 0% 100%;
|
|
368
|
+
--card-foreground: 0 0% 3.6%;
|
|
369
|
+
|
|
370
|
+
--primary: 0 0% 9%;
|
|
371
|
+
--primary-foreground: 0 0% 100%;
|
|
372
|
+
|
|
373
|
+
--secondary: 0 0% 96.1%;
|
|
374
|
+
--secondary-foreground: 0 0% 9%;
|
|
375
|
+
|
|
376
|
+
--muted: 0 0% 89.5%;
|
|
377
|
+
--muted-foreground: 0 0% 45.1%;
|
|
378
|
+
|
|
379
|
+
--accent: 0 0% 9%;
|
|
380
|
+
--accent-foreground: 0 0% 100%;
|
|
381
|
+
|
|
382
|
+
--destructive: 0 84.2% 60.2%;
|
|
383
|
+
--destructive-foreground: 0 0% 100%;
|
|
384
|
+
|
|
385
|
+
--border: 0 0% 89.5%;
|
|
386
|
+
--input: 0 0% 89.5%;
|
|
387
|
+
--ring: 0 0% 3.6%;
|
|
388
|
+
|
|
389
|
+
--radius: 0.5rem;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.dark {
|
|
393
|
+
--background: 0 0% 3.6%;
|
|
394
|
+
--foreground: 0 0% 98%;
|
|
395
|
+
/* ... more dark variables ... */
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
## Custom Component Usage
|
|
401
|
+
|
|
402
|
+
```tsx
|
|
403
|
+
'use client';
|
|
404
|
+
|
|
405
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
|
406
|
+
import { Button } from '@/components/ui/button';
|
|
407
|
+
import { Badge } from '@/components/ui/badge';
|
|
408
|
+
|
|
409
|
+
export default function DashboardCard() {
|
|
410
|
+
return (
|
|
411
|
+
<Card>
|
|
412
|
+
<CardHeader>
|
|
413
|
+
<CardTitle>Dashboard</CardTitle>
|
|
414
|
+
<CardDescription>View your analytics</CardDescription>
|
|
415
|
+
</CardHeader>
|
|
416
|
+
<CardContent className="space-y-4">
|
|
417
|
+
<div className="flex items-center justify-between">
|
|
418
|
+
<span>Status</span>
|
|
419
|
+
<Badge>Active</Badge>
|
|
420
|
+
</div>
|
|
421
|
+
<Button className="w-full">View Details</Button>
|
|
422
|
+
</CardContent>
|
|
423
|
+
</Card>
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
## Best Practices
|
|
429
|
+
|
|
430
|
+
✅ **Use headless** - Base components on Radix UI for accessibility
|
|
431
|
+
✅ **Customize with CSS** - Modify colors in globals.css CSS variables
|
|
432
|
+
✅ **Combine components** - Build complex UIs from simple primitives
|
|
433
|
+
✅ **Type-safe** - Full TypeScript support out of the box
|
|
434
|
+
✅ **Accessible** - All components follow WAI-ARIA standards
|
|
435
|
+
✅ **Dark mode** - Built-in dark mode support via CSS classes
|
|
436
|
+
✅ **Responsive** - Mobile-first design with Tailwind breakpoints
|
|
437
|
+
|
|
438
|
+
## Common Patterns
|
|
439
|
+
|
|
440
|
+
- Always use the `asChild` prop for custom triggers
|
|
441
|
+
- Nest components properly (Dialog > DialogContent > DialogHeader)
|
|
442
|
+
- Use `className` for Tailwind customization
|
|
443
|
+
- Import icons from `lucide-react` for consistency
|
|
444
|
+
- Combine multiple components for complex UIs
|
|
445
|
+
|
|
446
|
+
## When to Use shadcn/ui
|
|
447
|
+
|
|
448
|
+
✅ Next.js projects
|
|
449
|
+
✅ Need accessible components
|
|
450
|
+
✅ Want customizable UI library
|
|
451
|
+
✅ TypeScript projects
|
|
452
|
+
✅ Tailwind CSS styling
|
|
453
|
+
|
|
454
|
+
❌ Non-React projects
|
|
455
|
+
❌ Need pre-built templates
|
|
456
|
+
❌ Simple static sites
|
|
457
|
+
|
|
458
|
+
## Resources
|
|
459
|
+
|
|
460
|
+
- [shadcn/ui Documentation](https://ui.shadcn.com/)
|
|
461
|
+
- [Component Gallery](https://ui.shadcn.com/docs/components/accordion)
|
|
462
|
+
- [Radix UI Docs](https://www.radix-ui.com/docs/primitives/overview/introduction)
|
|
463
|
+
- [Tailwind CSS Docs](https://tailwindcss.com/docs)
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Tailwind CSS v4
|
|
2
|
+
|
|
3
|
+
Utility-first CSS framework for rapid UI development.
|
|
4
|
+
|
|
5
|
+
## Basic Usage
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<div class="flex items-center justify-between p-4 bg-blue-500">
|
|
9
|
+
<h1 class="text-2xl font-bold text-white">Header</h1>
|
|
10
|
+
<button class="px-4 py-2 bg-white text-blue-500 rounded hover:bg-gray-100">
|
|
11
|
+
Click Me
|
|
12
|
+
</button>
|
|
13
|
+
</div>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Layout
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<!-- Flex layout -->
|
|
20
|
+
<div class="flex gap-4">
|
|
21
|
+
<div class="flex-1">Sidebar</div>
|
|
22
|
+
<div class="flex-2">Main Content</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<!-- Grid layout -->
|
|
26
|
+
<div class="grid grid-cols-3 gap-4">
|
|
27
|
+
<div>Item 1</div>
|
|
28
|
+
<div>Item 2</div>
|
|
29
|
+
<div>Item 3</div>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<!-- Responsive -->
|
|
33
|
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
|
|
34
|
+
<div>Responsive Grid</div>
|
|
35
|
+
</div>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Styling
|
|
39
|
+
|
|
40
|
+
```html
|
|
41
|
+
<!-- Colors -->
|
|
42
|
+
<div class="bg-blue-500 text-white">Blue Background</div>
|
|
43
|
+
|
|
44
|
+
<!-- Shadows & Borders -->
|
|
45
|
+
<div class="border border-gray-300 rounded-lg shadow-lg">Card</div>
|
|
46
|
+
|
|
47
|
+
<!-- Spacing -->
|
|
48
|
+
<div class="p-4 m-2">Padded and Margined</div>
|
|
49
|
+
|
|
50
|
+
<!-- Opacity & Hover -->
|
|
51
|
+
<button class="bg-blue-500 hover:bg-blue-600 active:bg-blue-700 opacity-80">
|
|
52
|
+
Interactive
|
|
53
|
+
</button>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Dark Mode
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<div class="bg-white dark:bg-gray-900 text-black dark:text-white">
|
|
60
|
+
Toggles with dark mode
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<!-- In CSS -->
|
|
64
|
+
<html class="dark">
|
|
65
|
+
<!-- Content -->
|
|
66
|
+
</html>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Custom Configuration
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
// tailwind.config.js
|
|
73
|
+
module.exports = {
|
|
74
|
+
theme: {
|
|
75
|
+
extend: {
|
|
76
|
+
colors: {
|
|
77
|
+
brand: '#FF6B6B',
|
|
78
|
+
},
|
|
79
|
+
spacing: {
|
|
80
|
+
'128': '32rem',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Best Practices
|
|
88
|
+
|
|
89
|
+
1. **Use utility classes**
|
|
90
|
+
2. **Avoid inline styles**
|
|
91
|
+
3. **Create component classes for reuse**
|
|
92
|
+
4. **Use @apply for custom components**
|
|
93
|
+
5. **Responsive-first design**
|
|
94
|
+
6. **Dark mode support**
|
|
95
|
+
|
|
96
|
+
## Resources
|
|
97
|
+
|
|
98
|
+
- [Tailwind CSS Docs](https://tailwindcss.com/docs)
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Three.js
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Three.js renders 3D scenes in the browser using WebGL — for product visualizations, games, and immersive UIs.
|
|
5
|
+
|
|
6
|
+
## Setup
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install three @types/three
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Basic Scene Setup
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import * as THREE from 'three';
|
|
16
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
17
|
+
|
|
18
|
+
// Scene
|
|
19
|
+
const scene = new THREE.Scene();
|
|
20
|
+
scene.background = new THREE.Color(0xf0f0f0);
|
|
21
|
+
|
|
22
|
+
// Camera
|
|
23
|
+
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
|
24
|
+
camera.position.set(0, 2, 5);
|
|
25
|
+
|
|
26
|
+
// Renderer
|
|
27
|
+
const renderer = new THREE.WebGLRenderer({ antialias: true });
|
|
28
|
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
|
29
|
+
renderer.shadowMap.enabled = true;
|
|
30
|
+
document.body.appendChild(renderer.domElement);
|
|
31
|
+
|
|
32
|
+
// Controls
|
|
33
|
+
const controls = new OrbitControls(camera, renderer.domElement);
|
|
34
|
+
controls.enableDamping = true;
|
|
35
|
+
|
|
36
|
+
// Geometry + Material + Mesh
|
|
37
|
+
const geometry = new THREE.BoxGeometry(1, 1, 1);
|
|
38
|
+
const material = new THREE.MeshStandardMaterial({ color: 0x00aaff });
|
|
39
|
+
const cube = new THREE.Mesh(geometry, material);
|
|
40
|
+
cube.castShadow = true;
|
|
41
|
+
scene.add(cube);
|
|
42
|
+
|
|
43
|
+
// Lighting
|
|
44
|
+
const light = new THREE.DirectionalLight(0xffffff, 1);
|
|
45
|
+
light.position.set(5, 10, 5);
|
|
46
|
+
light.castShadow = true;
|
|
47
|
+
scene.add(light);
|
|
48
|
+
scene.add(new THREE.AmbientLight(0xffffff, 0.4));
|
|
49
|
+
|
|
50
|
+
// Animation loop
|
|
51
|
+
function animate() {
|
|
52
|
+
requestAnimationFrame(animate);
|
|
53
|
+
cube.rotation.y += 0.01;
|
|
54
|
+
controls.update();
|
|
55
|
+
renderer.render(scene, camera);
|
|
56
|
+
}
|
|
57
|
+
animate();
|
|
58
|
+
|
|
59
|
+
// Resize handler
|
|
60
|
+
window.addEventListener('resize', () => {
|
|
61
|
+
camera.aspect = window.innerWidth / window.innerHeight;
|
|
62
|
+
camera.updateProjectionMatrix();
|
|
63
|
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## React with React Three Fiber
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm install @react-three/fiber @react-three/drei
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
import { Canvas } from '@react-three/fiber';
|
|
75
|
+
import { OrbitControls, Box, Environment } from '@react-three/drei';
|
|
76
|
+
import { useRef } from 'react';
|
|
77
|
+
import { useFrame } from '@react-three/fiber';
|
|
78
|
+
|
|
79
|
+
function RotatingBox() {
|
|
80
|
+
const meshRef = useRef<THREE.Mesh>(null);
|
|
81
|
+
useFrame(() => { if (meshRef.current) meshRef.current.rotation.y += 0.01; });
|
|
82
|
+
return (
|
|
83
|
+
<Box ref={meshRef} args={[1, 1, 1]}>
|
|
84
|
+
<meshStandardMaterial color="#00aaff" />
|
|
85
|
+
</Box>
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function ThreeScene() {
|
|
90
|
+
return (
|
|
91
|
+
<Canvas camera={{ position: [0, 2, 5] }} shadows>
|
|
92
|
+
<ambientLight intensity={0.4} />
|
|
93
|
+
<directionalLight position={[5, 10, 5]} castShadow />
|
|
94
|
+
<RotatingBox />
|
|
95
|
+
<OrbitControls enableDamping />
|
|
96
|
+
<Environment preset="city" />
|
|
97
|
+
</Canvas>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Best Practices
|
|
103
|
+
- Always dispose of geometries, materials, and textures on cleanup: `geometry.dispose()`
|
|
104
|
+
- Use `GLTFLoader` for 3D models: `new GLTFLoader().load('/model.glb', ...)`
|
|
105
|
+
- Keep polygon count low for web performance
|
|
106
|
+
- Use React Three Fiber for React projects — much cleaner than imperative Three.js
|
|
107
|
+
|
|
108
|
+
## Resources
|
|
109
|
+
- [Three.js docs](https://threejs.org/docs/)
|
|
110
|
+
- [React Three Fiber](https://docs.pmnd.rs/react-three-fiber)
|