CAT
/Skills
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Animating React Native Expo

tristanmanchester/agent-skills
253 installs1 stars
Summary

This walks you through building performant animations in React Native Expo apps using Reanimated v4 and Gesture Handler's hook API. It gives you a three-tier mental model: CSS transitions for simple state changes, layout animations for mount/unmount, and shared values plus worklets for gesture-driven interactions. The defaults are opinionated (which is good), the code samples are copy-pasteable, and it includes a troubleshooting checklist for the usual worklet footguns. What I like is the emphasis on keeping work on the UI thread and not updating React state every frame. The bundled references cover threading, gesture composition, and scroll-linked recipes without dumping everything upfront.

Install to Claude Code

npx -y skills add tristanmanchester/agent-skills --skill animating-react-native-expo --agent claude-code

Installs into .claude/skills of the current project.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Files
SKILL.mdView on GitHub

React Native (Expo) animations — Reanimated v4 + Gesture Handler

Defaults (pick these unless there’s a reason not to)

  1. Simple state change (hover/pressed/toggled, small style changes): use Reanimated CSS Transitions.
  2. Mount/unmount + layout changes (lists, accordions, reflow): use Reanimated Layout Animations.
  3. Interactive / per-frame (gestures, scroll, physics, drag): use Shared Values + worklets (UI thread).

If an existing codebase already uses a different pattern, stay consistent and only migrate when necessary.

Quick start

Install (Expo)

npx expo install react-native-reanimated react-native-worklets react-native-gesture-handler

Run the setup check (optional):

node {baseDir}/scripts/check-setup.mjs

1) Shared value + withTiming

import { Pressable } from 'react-native';
import Animated, { useSharedValue, useAnimatedStyle, withTiming } from 'react-native-reanimated';

export function FadeInBox() {
  const opacity = useSharedValue(0);

  const style = useAnimatedStyle(() => ({ opacity: opacity.value }));

  return (
    <Pressable onPress={() => (opacity.value = withTiming(opacity.value ? 0 : 1, { duration: 200 }))}>
      <Animated.View style={[{ width: 80, height: 80 }, style]} />
    </Pressable>
  );
}

2) Pan gesture driving translation (UI thread)

import Animated, { useSharedValue, useAnimatedStyle, withSpring } from 'react-native-reanimated';
import { GestureDetector, usePanGesture } from 'react-native-gesture-handler';

export function Draggable() {
  const x = useSharedValue(0);
  const y = useSharedValue(0);

  const pan = usePanGesture({
    onUpdate: (e) => {
      x.value = e.translationX;
      y.value = e.translationY;
    },
    onDeactivate: () => {
      x.value = withSpring(0);
      y.value = withSpring(0);
    },
  });

  const style = useAnimatedStyle(() => ({ transform: [{ translateX: x.value }, { translateY: y.value }] }));

  return (
    <GestureDetector gesture={pan}>
      <Animated.View style={[{ width: 100, height: 100 }, style]} />
    </GestureDetector>
  );
}

3) CSS-style transition (best for “style changes when state changes”)

import Animated from 'react-native-reanimated';

export function ExpandingCard({ expanded }: { expanded: boolean }) {
  return (
    <Animated.View
      style={{
        width: expanded ? 260 : 180,
        transitionProperty: 'width',
        transitionDuration: 220,
      }}
    />
  );
}

Workflow (copy this and tick it off)

  • Identify the driver: state, layout, gesture, or scroll.
  • Choose the primitive:
    • state → CSS transition / CSS animation
    • layout/mount → entering/exiting/layout transitions
    • gesture/scroll → shared values + worklets
  • Keep per-frame work on the UI thread (worklets); avoid React state updates every frame.
  • If a JS-side effect is required (navigation, analytics, state set), call it via scheduleOnRN.
  • Verify on-device (Hermes inspector), not “Remote JS Debugging”.

Core patterns

Shared values are the “wire format” between runtimes

  • Use useSharedValue for numbers/strings/objects that must be read/written from both UI and JS.
  • Derive styles with useAnimatedStyle.
  • Prefer withTiming for UI tweens; withSpring for physics.

UI thread vs JS thread: the only rule that matters

  • Gesture callbacks and animated styles should stay workletized (UI runtime).
  • Only bridge to JS when you must (via scheduleOnRN).

See: references/worklets-and-threading.md

Gesture Handler: use one API style per subtree

  • Default to hook API (usePanGesture, useTapGesture, etc.).
  • Do not nest GestureDetectors that use different API styles (hook vs builder).
  • Do not reuse the same gesture instance across multiple detectors.

See: references/gestures.md

CSS Transitions (Reanimated 4)

Use when a style value changes due to React state/props and you just want it to animate.

Rules of thumb:

  • Always set transitionProperty + transitionDuration.
  • Avoid transitionProperty: 'all' (perf + surprise animations).
  • Discrete properties (e.g. flexDirection) won’t transition smoothly; use Layout Animations instead.

See: references/css-transitions-and-animations.md

Layout animations

Use when elements enter/exit, or when layout changes due to conditional rendering/reflow.

Prefer presets first (entering/exiting, keyframes, layout transitions). Only reach for fully custom layout animations when presets can’t express the motion.

See: references/layout-animations.md

Scroll-linked animations

Prefer Reanimated scroll handlers/shared values; keep worklet bodies tiny. For full recipes, see:

  • references/recipes.md

Troubleshooting checklist

  1. “Failed to create a worklet” / worklet not running
  • Ensure the correct Babel plugin is configured for your environment.
    • Expo: handled by babel-preset-expo when installed via expo install.
    • Bare RN: Reanimated 4 uses react-native-worklets/plugin.
  1. Gesture callbacks not firing / weird conflicts
  • Ensure the app root is wrapped with GestureHandlerRootView.
  • Don’t reuse gestures across detectors; don’t mix hook and builder API in nested detectors.
  1. Needing to call JS from a worklet
  • Use scheduleOnRN(fn, ...args).
  • fn must be defined in JS scope (component body or module scope), not created inside a worklet.
  1. Jank / dropped frames
  • Check for large objects captured into worklets; capture primitives instead.
  • Avoid transitionProperty: 'all'.
  • Don’t set React state every frame.

See: references/debugging-and-performance.md

Bundled references (open only when needed)

  • references/setup-and-compat.md: Expo vs bare setup, New Architecture requirement, common incompatibilities.
  • references/worklets-and-threading.md: UI runtime, scheduleOnUI/scheduleOnRN, closure capture, migration notes.
  • references/gestures.md: GestureDetector, hook API patterns, composition, gotchas.
  • references/css-transitions-and-animations.md: Reanimated 4 CSS transitions/animations quick reference.
  • references/layout-animations.md: entering/exiting/layout transitions and how to pick.
  • references/recipes.md: copy-paste components (drag, swipe, pinch, bottom sheet-ish, scroll effects).
  • references/debugging-and-performance.md: diagnosing worklet issues, profiling, common perf traps.

Quick search

grep -Rni "scheduleOnRN" {baseDir}/references
grep -Rni "transitionProperty" {baseDir}/references
grep -Rni "usePanGesture" {baseDir}/references

Primary docs

  • Reanimated (v4): https://docs.swmansion.com/react-native-reanimated/
  • Gesture Handler (latest): https://docs.swmansion.com/react-native-gesture-handler/
  • Expo Reanimated: https://docs.expo.dev/versions/latest/sdk/reanimated/
  • Expo Gesture Handler: https://docs.expo.dev/versions/latest/sdk/gesture-handler/
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Frontend DevelopmentAI & Agent BuildingMobile Development
First SeenJun 3, 2026
View on GitHub

Recommended

More Frontend Development →
nextjs-react-redux-typescript-cursor-rules

mindrally/skills

nextjs react redux typescript cursor rules
460
128
tailwind-css-patterns

giuseppe-trisciuoglio/developer-kit

Utility-first CSS framework patterns for responsive, component-based styling with Tailwind v4.1+.
11.7k
265
syncfusion-react-dashboard-layout

syncfusion/react-ui-components-skills

syncfusion react dashboard layout
157
3
ui-component-patterns

supercent-io/skills-template

Modern React component patterns for building scalable, maintainable UI libraries.
10.7k
88
ui-ux-pro-max

binjuhor/shadcn-lar

Frontend UI/UX design intelligence - activate FIRST when user requests beautiful, stunning, gorgeous, or aesthetic interfaces. The primary skill for design decisions before implementation. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check frontend UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.
59
flutter-build-responsive-layout

flutter/skills

flutter build responsive layout
13.5k
2.3k