# Frontend Patterns

Frontend development patterns for React, Next.js, state management, performance...

- Repository: https://github.com/WorldFlowAI/everything-claude-code (5734 stars)
- Category: Design
- License: see repository
- Last updated: 2026-01-23
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add WorldFlowAI/everything-claude-code --skill frontend-patterns -g -a claude-code -y`
Codex: `npx skills add WorldFlowAI/everything-claude-code --skill frontend-patterns -g -a codex -y`
Cursor: `npx skills add WorldFlowAI/everything-claude-code --skill frontend-patterns -g -a cursor -y`
Gemini CLI: `npx skills add WorldFlowAI/everything-claude-code --skill frontend-patterns -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add WorldFlowAI/everything-claude-code`

## Description

Frontend development patterns for React, Next.js, state management, performance optimization, and UI best practices.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Frontend Development Patterns

Modern frontend patterns for React, Next.js, and performant user interfaces.

## Component Patterns

### Composition Over Inheritance

```typescript
// ✅ GOOD: Component composition
interface CardProps {
  children: React.ReactNode
  variant?: 'default' | 'outlined'
}

export function Card({ children, variant = 'default' }: CardProps) {
  return <div className={`card card-${variant}`}>{children}</div>
}

export function CardHeader({ children }: { children: React.ReactNode }) {
  return <div className="card-header">{children}</div>
}

export function CardBody({ children }: { children: React.ReactNode }) {
  return <div className="card-body">{children}</div>
}

// Usage
<Card>
  <CardHeader>Title</CardHeader>
  <CardBody>Content</CardBody>
</Card>
```

### Compound Components

```typescript
interface TabsContextValue {
  activeTab: string
  setActiveTab: (tab: string) => void
}

const TabsContext = createContext<TabsContextValue | undefined>(undefined)

export function Tabs({ children, defaultTab }: {
  children: React.ReactNode
  defaultTab: string
}) {
  const [activeTab, setActiveTab] = useState(defaultTab)

  return (
    <TabsContext.Provider value={{ activeTab, setActiveTab }}>
      {children}
    </TabsContext.Provider>
  )
}

export function TabList({ children }: { children: React.ReactNode }) {
  return <div className="tab-list">{children}</div>
}

export function Tab({ id, children }: { id: string, children: React.ReactNode }) {
  const context = useContext(TabsContext)
  if (!context) throw new Error('Tab must be used within Tabs')

  return (
    <button
      className={context.activeTab === id ? 'active' : ''}
      onClick={() => context.setActiveTab(id)}
    >
      {children}
    </button>
  )
}

// Usage
<Tabs defaultTab="overview">
  <TabList>
    <Tab id="overview">Overview</Tab>
    <Tab id="details">Details</Tab>
  </TabList>
</Tabs>
```

### Render Props Pattern

The rest: https://github.com/WorldFlowAI/everything-claude-code/blob/HEAD/skills/frontend-patterns/SKILL.md
