sdd-jc-methodology 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/sdd-archive.md +122 -0
- package/.claude/commands/sdd-constitution.md +240 -0
- package/.claude/commands/sdd-execute.md +132 -0
- package/.claude/commands/sdd-propose.md +149 -0
- package/.claude/commands/sdd-seo.md +251 -0
- package/.claude/commands/sdd-specify.md +264 -0
- package/.claude/commands/sdd-test.md +128 -0
- package/.claude/commands/sdd-validate.md +165 -0
- package/.claude/skills/api-design-principles/SKILL.md +528 -0
- package/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/.claude/skills/aws-serverless/SKILL.md +323 -0
- package/.claude/skills/brainstorming/SKILL.md +96 -0
- package/.claude/skills/error-handling-patterns/SKILL.md +641 -0
- package/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/.claude/skills/frontend-design/SKILL.md +272 -0
- package/.claude/skills/nestjs-expert/SKILL.md +552 -0
- package/.claude/skills/product-manager-toolkit/SKILL.md +351 -0
- package/.claude/skills/product-manager-toolkit/references/prd_templates.md +317 -0
- package/.claude/skills/product-manager-toolkit/scripts/customer_interview_analyzer.py +441 -0
- package/.claude/skills/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
- package/.claude/skills/react-doctor/AGENTS.md +15 -0
- package/.claude/skills/react-doctor/SKILL.md +19 -0
- package/.claude/skills/shadcn-ui/SKILL.md +1677 -0
- package/.claude/skills/shadcn-ui/references/learn.md +145 -0
- package/.claude/skills/shadcn-ui/references/official-ui-reference.md +1725 -0
- package/.claude/skills/shadcn-ui/references/reference.md +586 -0
- package/.claude/skills/shadcn-ui/references/ui-reference.md +1578 -0
- package/.claude/skills/stitch-design/README.md +50 -0
- package/.claude/skills/stitch-design/SKILL.md +84 -0
- package/.claude/skills/stitch-design/examples/DESIGN.md +22 -0
- package/.claude/skills/stitch-design/examples/enhanced-prompt.md +28 -0
- package/.claude/skills/stitch-design/references/design-mappings.md +45 -0
- package/.claude/skills/stitch-design/references/prompt-keywords.md +114 -0
- package/.claude/skills/stitch-design/references/tool-schemas.md +76 -0
- package/.claude/skills/stitch-design/workflows/edit-design.md +44 -0
- package/.claude/skills/stitch-design/workflows/generate-design-md.md +63 -0
- package/.claude/skills/stitch-design/workflows/text-to-design.md +47 -0
- package/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/.claude/skills/systematic-debugging/SKILL.md +296 -0
- package/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/.claude/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.claude/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.claude/skills/systematic-debugging/find-polluter.sh +63 -0
- package/.claude/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.claude/skills/systematic-debugging/test-academic.md +14 -0
- package/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/.claude/skills/tailwind-design-system/SKILL.md +874 -0
- package/.claude/skills/ui-ux-pro-max/SKILL.md +377 -0
- package/.claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.claude/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.claude/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/.claude/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.claude/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.claude/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/.claude/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.claude/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.claude/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.claude/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/.claude/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.claude/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/.claude/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/.claude/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/.mcp.json.example +12 -0
- package/CHANGELOG.md +61 -0
- package/LICENSE +21 -0
- package/README.md +571 -0
- package/assets/jc-fox-mark.svg +10 -0
- package/assets/jc-methodology-badge.png +0 -0
- package/bin/sdd-jc.js +379 -0
- package/package.json +43 -0
- package/scripts/gsc_verify.py +162 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# shadcn/ui Learning Guide
|
|
2
|
+
|
|
3
|
+
This guide helps you learn shadcn/ui from basics to advanced patterns.
|
|
4
|
+
|
|
5
|
+
## Learning Path
|
|
6
|
+
|
|
7
|
+
### 1. Understanding the Philosophy
|
|
8
|
+
|
|
9
|
+
shadcn/ui is different from traditional component libraries:
|
|
10
|
+
|
|
11
|
+
- **Copy-paste components**: Components are copied into your project, not installed as packages
|
|
12
|
+
- **Full customization**: You own the code and can modify it freely
|
|
13
|
+
- **Built on Radix UI**: Provides accessibility primitives
|
|
14
|
+
- **Styled with Tailwind**: Uses utility classes for consistent styling
|
|
15
|
+
|
|
16
|
+
### 2. Core Concepts to Master
|
|
17
|
+
|
|
18
|
+
#### Class Variance Authority (CVA)
|
|
19
|
+
Most components use CVA for variant management:
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
const buttonVariants = cva(
|
|
23
|
+
"base-classes",
|
|
24
|
+
{
|
|
25
|
+
variants: {
|
|
26
|
+
variant: {
|
|
27
|
+
default: "variant-classes",
|
|
28
|
+
destructive: "destructive-classes",
|
|
29
|
+
},
|
|
30
|
+
size: {
|
|
31
|
+
default: "size-classes",
|
|
32
|
+
sm: "small-classes",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
variant: "default",
|
|
37
|
+
size: "default",
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### cn Utility Function
|
|
44
|
+
The `cn` function combines classes and resolves conflicts:
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { clsx, type ClassValue } from "clsx"
|
|
48
|
+
import { twMerge } from "tailwind-merge"
|
|
49
|
+
|
|
50
|
+
export function cn(...inputs: ClassValue[]) {
|
|
51
|
+
return twMerge(clsx(inputs))
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Installation Checklist
|
|
56
|
+
|
|
57
|
+
- [ ] Initialize a new project (Next.js, Vite, or Remix)
|
|
58
|
+
- [ ] Install Tailwind CSS
|
|
59
|
+
- [ ] Run `npx shadcn@latest init`
|
|
60
|
+
- [ ] Configure CSS variables
|
|
61
|
+
- [ ] Install first component: `npx shadcn@latest add button`
|
|
62
|
+
|
|
63
|
+
### 4. Essential Components to Learn First
|
|
64
|
+
|
|
65
|
+
1. **Button** - Learn variants and sizes
|
|
66
|
+
2. **Input** - Form inputs with labels
|
|
67
|
+
3. **Card** - Container components
|
|
68
|
+
4. **Form** - Form handling with React Hook Form
|
|
69
|
+
5. **Dialog** - Modal windows
|
|
70
|
+
6. **Select** - Dropdown selections
|
|
71
|
+
7. **Toast** - Notifications
|
|
72
|
+
|
|
73
|
+
### 5. Common Patterns
|
|
74
|
+
|
|
75
|
+
#### Form Pattern
|
|
76
|
+
Every form follows this structure:
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
1. Define Zod schema
|
|
80
|
+
2. Create form with useForm
|
|
81
|
+
3. Wrap with Form component
|
|
82
|
+
4. Add FormField for each input
|
|
83
|
+
5. Handle submission
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
#### Component Customization Pattern
|
|
87
|
+
To customize a component:
|
|
88
|
+
|
|
89
|
+
1. Copy component to your project
|
|
90
|
+
2. Modify the variants
|
|
91
|
+
3. Add new props if needed
|
|
92
|
+
4. Update types
|
|
93
|
+
|
|
94
|
+
### 6. Best Practices
|
|
95
|
+
|
|
96
|
+
- Always use TypeScript
|
|
97
|
+
- Follow the existing component structure
|
|
98
|
+
- Use semantic HTML when possible
|
|
99
|
+
- Test with screen readers for accessibility
|
|
100
|
+
- Keep components small and focused
|
|
101
|
+
|
|
102
|
+
### 7. Advanced Topics
|
|
103
|
+
|
|
104
|
+
- Creating custom components from scratch
|
|
105
|
+
- Building complex forms with validation
|
|
106
|
+
- Implementing dark mode
|
|
107
|
+
- Optimizing for performance
|
|
108
|
+
- Testing components
|
|
109
|
+
|
|
110
|
+
## Practice Exercises
|
|
111
|
+
|
|
112
|
+
### Exercise 1: Basic Setup
|
|
113
|
+
1. Create a new Next.js project
|
|
114
|
+
2. Set up shadcn/ui
|
|
115
|
+
3. Install and customize a Button component
|
|
116
|
+
4. Add a new variant "gradient"
|
|
117
|
+
|
|
118
|
+
### Exercise 2: Form Building
|
|
119
|
+
1. Create a contact form with:
|
|
120
|
+
- Name input (required)
|
|
121
|
+
- Email input (email validation)
|
|
122
|
+
- Message textarea (min length)
|
|
123
|
+
- Submit button with loading state
|
|
124
|
+
|
|
125
|
+
### Exercise 3: Component Combination
|
|
126
|
+
1. Build a settings page using:
|
|
127
|
+
- Card for layout
|
|
128
|
+
- Sheet for mobile menu
|
|
129
|
+
- Select for dropdowns
|
|
130
|
+
- Switch for toggles
|
|
131
|
+
- Toast for notifications
|
|
132
|
+
|
|
133
|
+
### Exercise 4: Custom Component
|
|
134
|
+
1. Create a custom Badge component
|
|
135
|
+
2. Support variants: default, secondary, destructive, outline
|
|
136
|
+
3. Support sizes: sm, default, lg
|
|
137
|
+
4. Add icon support
|
|
138
|
+
|
|
139
|
+
## Resources
|
|
140
|
+
|
|
141
|
+
- [Official Documentation](https://ui.shadcn.com)
|
|
142
|
+
- [GitHub Repository](https://github.com/shadcn/ui)
|
|
143
|
+
- [Examples Gallery](https://ui.shadcn.com/examples)
|
|
144
|
+
- [Radix UI Primitives](https://www.radix-ui.com/primitives)
|
|
145
|
+
- [Tailwind CSS Documentation](https://tailwindcss.com/docs)
|