create-component
Create CVA + DaisyUI components following Iridium patterns. Use when asked to create UI components, buttons, inputs, cards, modals, alerts, or any reusable UI element.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Create Component
When to Use
- Creating new UI components (buttons, inputs, cards, modals)
- Building form elements with labels and error states
- User asks to "add a component" or "create a component"
Critical Rules
1. Always Import from CVA Config
// CORRECT
import type { VariantProps } from 'cva';
import { cva, cx } from '~/cva.config';
// WRONG
import { cva } from 'cva'; // Wrong package
import { cn } from '~/lib/utils'; // Wrong utility
2. className Last in cx()
className={cx(buttonVariants({ size, status }), className)} // className always last
Quick Start
import type { VariantProps } from 'cva';
import { cva, cx } from '~/cva.config';
export const buttonVariants = cva({
base: 'btn',
variants: {
status: {
primary: 'btn-primary',
secondary: 'btn-secondary',
},
size: {
sm: 'btn-sm',
md: 'btn-md',
lg: 'btn-lg',
},
},
defaultVariants: {
status: 'primary',
size: 'md',
},
});
interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
loading?: boolean;
}
export function Button({ status, size, className, children, ...props }: ButtonProps) {
return (
<button className={cx(buttonVariants({ status, size }), className)} {...props}>
{children}
</button>
);
}
Component Directories
| Category | Directory | Examples |
|---|---|---|
| Actions | app/components/actions/ |
Button |
| Data Display | app/components/data-display/ |
Card, Badge |
| Data Input | app/components/data-input/ |
TextInput, Select |
| Feedback | app/components/feedback/ |
Alert, Modal |
| Layout | app/components/layout/ |
Container |
Checklist
- Create in appropriate category directory
- Define CVA variants with
base,variants,defaultVariants - Extend native HTML attributes in props interface
- Put
classNamelast incx()call - Add JSDoc with usage example
Templates
Full Reference
See .github/instructions/component-patterns.instructions.md and .github/instructions/cva.instructions.md for:
- Form component patterns
- Boolean variants
- Compound variants
- DaisyUI class reference
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-26
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!