
ui-components
by Intellifill
Intelligent document processing and form automation platform
SKILL.md
name: ui-components description: UI component generation patterns for IntelliFill. Replaces magic/21st.dev MCP to save ~3.4k tokens.
UI Components
This skill covers component creation patterns for IntelliFill's React frontend. It replaces the 21st.dev/magic MCP server with lazy-loaded guidance.
When I Need This
- Creating new React components
- Building forms with validation
- Adding modal dialogs
- Creating data tables
- Implementing loading states
Component Stack
IntelliFill uses: React 18, Radix UI, TailwindCSS 4.0, CVA for variants, Zustand for state.
File Location
New components go in quikadmin-web/src/components/ with structure:
components/
├── ui/ # Base primitives (Button, Input, Dialog)
├── forms/ # Form-related (ProfileForm, UploadForm)
├── documents/ # Document-specific (DocumentList, DocumentViewer)
└── layout/ # Layout (Sidebar, Header, ProtectedRoute)
Component Template
// quikadmin-web/src/components/ui/ComponentName.tsx
import { cva, type VariantProps } from 'class-variance-authority';
import { cn } from '@/lib/utils';
const componentVariants = cva(
'base-classes-here',
{
variants: {
variant: {
default: 'variant-default-classes',
secondary: 'variant-secondary-classes',
},
size: {
sm: 'text-sm px-2 py-1',
md: 'text-base px-4 py-2',
},
},
defaultVariants: {
variant: 'default',
size: 'md',
},
}
);
interface Props extends VariantProps<typeof componentVariants> {
children: React.ReactNode;
className?: string;
}
export function ComponentName({ variant, size, className, children }: Props) {
return (
<div className={cn(componentVariants({ variant, size }), className)}>
{children}
</div>
);
}
Common Patterns
Form Field
<div className="space-y-2">
<Label htmlFor="field">Label</Label>
<Input id="field" placeholder="Placeholder" {...register('field')} />
{errors.field && <p className="text-sm text-red-500">{errors.field.message}</p>}
</div>
Modal Dialog
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<Button>Open</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Title</DialogTitle>
<DialogDescription>Description</DialogDescription>
</DialogHeader>
{/* Content */}
<DialogFooter>
<Button onClick={() => setOpen(false)}>Close</Button>
</DialogFooter>
</DialogContent>
</Dialog>
Loading State
{isLoading ? (
<div className="flex items-center justify-center p-8">
<Loader2 className="h-8 w-8 animate-spin text-primary" />
</div>
) : (
<>{/* Content */}</>
)}
Existing UI Components
Check quikadmin-web/src/components/ui/ for existing primitives before creating new ones. We have: Button, Input, Label, Dialog, Select, Card, Table, Tabs, Toast.
For Inspiration
If you need design inspiration for a component, use Web Search to find examples or check the existing components in the codebase first.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です