agentsclimarketplace

Frontend patterns

Skill vibeeval/vibecosystem/skills/frontend-patterns

AI software team for Claude Code - 138 agents, 295 skills, 73 hooks. Self-learning, multi-agent swarm, autonomous skill evolution.

Install
npx -y skills add vibeeval/vibecosystem --skill frontend-patterns

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

React, Next.js, TypeScript frontend patterns - component design, state management, performance

SKILL.md

3.9 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Frontend Patterns

Component Design

Composition over Inheritance

// DOGRU: Composition
function Card({ children, header }: { children: ReactNode; header: ReactNode }) {
  return (
    <div className="card">
      <div className="card-header">{header}</div>
      <div className="card-body">{children}</div>
    </div>
  );
}

// Kullanim
<Card header={<h2>Title</h2>}>
  <p>Content here</p>
</Card>

Container/Presenter Pattern

// Container: Data fetching + logic
function UserListContainer() {
  const { data, isLoading } = useQuery(['users'], fetchUsers);
  if (isLoading) return <Skeleton />;
  return <UserList users={data} />;
}

// Presenter: Pure rendering
function UserList({ users }: { users: User[] }) {
  return (
    <ul>
      {users.map(u => <UserItem key={u.id} user={u} />)}
    </ul>
  );
}

State Management

CozumNe ZamanKarmasiklik
useStateLocal component stateDusuk
useReducerComplex local stateOrta
ContextTheme, auth, localeDusuk-Orta
ZustandGlobal client stateOrta
React QueryServer stateOrta
URL paramsNavigation stateDusuk

Performance

// React.memo: Expensive render onleme
const ExpensiveList = React.memo(({ items }: { items: Item[] }) => (
  <ul>{items.map(i => <ListItem key={i.id} item={i} />)}</ul>
));

// useMemo: Expensive hesaplama cache
const filtered = useMemo(
  () => items.filter(i => i.status === status),
  [items, status]
);

// useCallback: Referans stabilitesi
const handleClick = useCallback((id: string) => {
  setSelected(id);
}, []);

Next.js Patterns

FeatureNe Zaman
Server ComponentData fetch, no interactivity
Client ComponentonClick, useState, useEffect
Route HandlerAPI endpoint
MiddlewareAuth, redirect, rewrite
StreamingBuyuk data, progressive rendering

shadcn/ui Best Practices

// Theme config: globals.css'te CSS variable kullan
// shadcn/ui dark mode: class strategy (Tailwind darkMode: 'class')

// Component override: cn() ile extend et, fork etme
import { Button } from '@/components/ui/button'
<Button variant="outline" className={cn('custom-class', className)} />

// Compose, override etme:
function SubmitButton({ children, ...props }: ButtonProps) {
  return <Button type="submit" variant="default" {...props}>{children}</Button>
}

// A11y: shadcn radix tabanli, otomatik ARIA ama kontrol et
// Dark mode: CSS variable'lar otomatik switch eder

Performance Budget

MetrikEsikOlcum
LCP (Largest Contentful Paint)< 2.5sCore Web Vital
CLS (Cumulative Layout Shift)< 0.1Core Web Vital
INP (Interaction to Next Paint)< 200msCore Web Vital
FCP (First Contentful Paint)< 1.8sLighthouse
TTI (Time to Interactive)< 3.8sLighthouse
Total JS bundle< 200KB gzippedBuild analiz

React Performance Top 10

  1. React.memo sadece gercekten expensive render'larda
  2. useMemo/useCallback sadece referans stability gerektiginde
  3. Code splitting: React.lazy() + Suspense route bazli
  4. Image optimization: next/image, lazy loading, WebP/AVIF
  5. Virtual scroll: 100+ item listede @tanstack/virtual
  6. Debounce: Arama input'unda 300ms debounce
  7. Skeleton UI: Loading state icin layout shift onleme
  8. Bundle analyze: @next/bundle-analyzer ile kontrol
  9. Prefetch: <Link prefetch> kritik navigation'larda
  10. Server Component: Default RSC, client sadece interactive icin

Anti-Patterns

Anti-PatternDogru Yol
Prop drilling (5+ level)Context veya state library
useEffect for derived stateuseMemo kullan
Index as keyUnique ID kullan
Premature optimizationProfiler ile olc, sonra optimize et

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.