Best for
- Building or reviewing React components.
- Diagnosing unnecessary re-renders or stale state.
- Deciding where state belongs: local, lifted, context, or server.
nimadorostkar/Claude-Skills-collection/skills/frontend/react/SKILL.md
Use when writing or reviewing React. Covers component and state design, hook correctness, memoization that is actually needed, data fetching, and the render behavior behind most React performance problems.
Decision brief
Covers component and state design, hook correctness, memoization that is actually needed, data fetching, and the render behavior behind most React performance problems.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill "skills/frontend/react"Inspect the Agent Skill "react" from https://github.com/nimadorostkar/Claude-Skills-collection/blob/03f39b7041ec2679255f8d6bb5b18421561821ae/skills/frontend/react/SKILL.md at commit 03f39b7041ec2679255f8d6bb5b18421561821ae. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Locate the state — Put it as close to where it is used as possible. Lift only when two siblings need it. Reach for context only when prop drilling exceeds about three levels. 2. Separate server state from client state — Data from an API is cache, not state. It has staleness,…
Write React where state lives in one place, effects are rare, and re-renders are understood rather than suppressed with memoization applied at random.
Building or reviewing React components.
Component decomposition and state colocation.
The component tree and where data enters it.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 26 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Write React where state lives in one place, effects are rare, and re-renders are understood rather than suppressed with memoization applied at random.
useEffect calls that should not exist.useState, useReducer, context, external store, server state.useState does not model. Use a query library.key. Most useEffect calls in a typical codebase should not exist.useMemo on a cheap computation costs more than it saves.useEffect is for synchronizing with something outside React: a subscription, a DOM API, a timer. It is not for reacting to state changes.An effect that should not exist:
// Wrong: derived state, an extra render, and a chance to be out of sync.
function Cart({ items }) {
const [total, setTotal] = useState(0);
useEffect(() => {
setTotal(items.reduce((sum, i) => sum + i.price * i.qty, 0));
}, [items]);
return <Total value={total} />;
}
// Right: compute it during render. It is always correct, by construction.
function Cart({ items }) {
const total = items.reduce((sum, i) => sum + i.price * i.qty, 0);
return <Total value={total} />;
}
Server state belongs in a query, not in useState plus useEffect:
function OrderList({ status }) {
const { data, isPending, error } = useQuery({
queryKey: ["orders", status],
queryFn: ({ signal }) => fetchOrders(status, { signal }),
staleTime: 30_000,
});
if (isPending) return <Skeleton />;
if (error) return <ErrorState error={error} onRetry={() => refetch()} />;
return <List items={data} />;
}
The manual version needs loading state, error state, cancellation on unmount, a race-condition guard when status changes mid-flight, and a cache. That is what the library is.
useMemo and useCallback. Do not spend effort on memoization you are about to delete.key on a component is the idiomatic way to reset its state when an identity changes. It is far cleaner than an effect that resets fields.Frequently asked questions
Covers component and state design, hook correctness, memoization that is actually needed, data fetching, and the render behavior behind most React performance problems.
The source record exposes this install command: npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill "skills/frontend/react". Inspect the command and pinned source before running it.
Alternatives
fcakyon/claude-codex-settings
Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view
theBGuy/GitDesktop
Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view
vibeeval/vibecosystem
Full-stack frontend development combining premium UI design, cinematic animations, AI-generated media assets, persuasive copywriting, and visual art. Builds complete, visually striking web pages with real media, advanced motion, and compelling copy. Use when: building landing pages, marketing sites, product pages, dashboards, generating media assets (image/video/audio/music), writing conversion copy, creating generative art, or implementing cinematic scroll animations.
first-fluke/oh-my-agent
Frontend specialist for React, Next.js, Angular, TypeScript with FSD-lite architecture, shadcn/ui, and design system alignment. Use for UI, component, page, layout, CSS, Tailwind, shadcn, Angular, and RxJS work.