---
name: heroui-component
description: Scaffolds new HeroUI v3 React components using compound component patterns. Enforces named exports, onPress handlers, and direct imports from @heroui/react. Use when creating new UI components.
---
# HeroUI Component Scaffolding Skill
Creates new components following HeroUI v3 Beta 3 compound patterns.
## Before Creating Any Component
**MANDATORY**: Use HeroUI MCP tools first:
1. `mcp_heroui-react_list_components` — Check if component exists
2. `mcp_heroui-react_get_component_info` — Understand compound anatomy
3. `mcp_heroui-react_get_component_props` — Get TypeScript types
4. `mcp_heroui-react_get_component_examples` — See correct usage
## Decision Tree
```text
Does HeroUI v3 have it?
├─ YES → Import directly from @heroui/react (NO wrappers!)
├─ ALMOST → Extend with tv() variants or composition
└─ NO → Only then build custom (with justification)
```
## Component Template
```tsx
// src/components/{ComponentName}.tsx
import { Card, Button } from "@heroui/react";
import { tv } from "tailwind-variants";
interface {ComponentName}Props {
title: string;
onAction?: () => void;
}
const styles = tv({
base: "p-4",
variants: {
variant: {
default: "",
highlighted: "ring-2 ring-primary",
},
},
});
export function {ComponentName}({ title, onAction }: {ComponentName}Props) {
return (
{title}
{onAction && (
)}
);
}
```
## Rules (from dev_instruction_v3.md)
| Rule | Example |
|------|---------|
| Named exports only | `export function ComponentName()` |
| Use onPress | `