Atomic Design methodology for React component architecture. Use for structuring component libraries, organizing UI hierarchies, and creating scalable design systems. Triggers on requests for component organization, design system structure, UI hierarchy, or questions about Atoms/Molecules/Organisms/Templates/Pages.
Applies Atomic Design methodology to structure React component libraries. Triggers on requests for component organization, design system architecture, or UI hierarchy questions.
/plugin marketplace add iButters/ClaudeCodePlugins/plugin install ui-kit-generator@claude-code-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
src/components/
├── atoms/ # Smallest building blocks
├── molecules/ # Simple component groups
├── organisms/ # Complex UI sections
├── templates/ # Page layouts
└── pages/ # Complete views
Indivisible UI elements. No dependencies on other components.
// atoms/Button/Button.tsx
export const Button: FC<ButtonProps> = ({ children, variant, size, ...props }) => (
<button className={cn('btn', `btn--${variant}`, `btn--${size}`)} {...props}>
{children}
</button>
);
// atoms/Input/Input.tsx
export const Input: FC<InputProps> = ({ label, error, ...props }) => (
<div className="input-wrapper">
{label && <label>{label}</label>}
<input className={cn('input', error && 'input--error')} {...props} />
{error && <span className="input-error">{error}</span>}
</div>
);
// atoms/Icon/Icon.tsx
export const Icon: FC<IconProps> = ({ name, size = 24 }) => (
<svg className="icon" width={size} height={size}>
<use href={`#icon-${name}`} />
</svg>
);
Examples: Button, Input, Label, Icon, Avatar, Badge, Spinner, Divider
Combine atoms into functional units with single responsibility.
// molecules/SearchField/SearchField.tsx
export const SearchField: FC<SearchFieldProps> = ({ onSearch, placeholder }) => {
const [value, setValue] = useState('');
return (
<div className="search-field">
<Input
value={value}
onChange={(e) => setValue(e.target.value)}
placeholder={placeholder}
/>
<Button variant="ghost" onClick={() => onSearch(value)}>
<Icon name="search" />
</Button>
</div>
);
};
// molecules/FormField/FormField.tsx
export const FormField: FC<FormFieldProps> = ({ label, error, children }) => (
<div className="form-field">
<Label>{label}</Label>
{children}
{error && <ErrorMessage>{error}</ErrorMessage>}
</div>
);
Examples: SearchField, FormField, NavItem, Card, MenuItem, Toast
Complex, self-contained sections with business logic.
// organisms/Header/Header.tsx
export const Header: FC<HeaderProps> = ({ user, onLogout }) => (
<header className="header">
<Logo />
<Navigation />
<SearchField onSearch={handleSearch} />
<UserMenu user={user} onLogout={onLogout} />
</header>
);
// organisms/ProductCard/ProductCard.tsx
export const ProductCard: FC<ProductCardProps> = ({ product, onAddToCart }) => (
<article className="product-card">
<Image src={product.image} alt={product.name} />
<div className="product-card__content">
<Heading level={3}>{product.name}</Heading>
<Price value={product.price} />
<Rating value={product.rating} />
<Button onClick={() => onAddToCart(product)}>Add to Cart</Button>
</div>
</article>
);
Examples: Header, Footer, ProductCard, CommentSection, Sidebar, DataTable
Page-level layouts without real content. Define structure only.
// templates/DashboardLayout/DashboardLayout.tsx
export const DashboardLayout: FC<DashboardLayoutProps> = ({
sidebar,
header,
content
}) => (
<div className="dashboard-layout">
<aside className="dashboard-layout__sidebar">{sidebar}</aside>
<div className="dashboard-layout__main">
<header className="dashboard-layout__header">{header}</header>
<main className="dashboard-layout__content">{content}</main>
</div>
</div>
);
Templates filled with real data. Connect to state/APIs.
// pages/DashboardPage/DashboardPage.tsx
export const DashboardPage: FC = () => {
const { data: stats } = useStats();
const { user } = useAuth();
return (
<DashboardLayout
sidebar={<DashboardSidebar />}
header={<Header user={user} />}
content={<StatsGrid stats={stats} />}
/>
);
};
| Question | Atom | Molecule | Organism |
|---|---|---|---|
| Has child components? | No | Yes | Yes |
| Has business logic? | No | Minimal | Yes |
| Reusable across projects? | Yes | Usually | Sometimes |
| Contains API calls? | No | No | Possible |
Button, Input, Icon)SearchField, NavItem)ProductCard, CheckoutForm)DashboardLayout, AuthLayout)HomePage, ProductPage)// components/atoms/index.ts
export { Button } from './Button';
export { Input } from './Input';
export { Icon } from './Icon';
// components/index.ts
export * from './atoms';
export * from './molecules';
export * from './organisms';
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.