# core-animation

This skill helps an agent find QuartzCore documentation for layer properties, animations, and related APIs. Use it when you need direct control over Core Animation behavior.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 400 installs · ★ 349
- Author: Prisma-Labs-Dev
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/Prisma-Labs-Dev/apple-skills/tree/HEAD/skills/core-animation/SKILL.md
- Updated: 2026-09-26
- HTML: https://affpapa.org/en/nevibecode/skills/core-animation

## What it does

The skill searches its QuartzCore reference files for guidance on `CALayer`, keyframe and spring animations, transactions, gradients, particles, and `CADisplayLink`. Its docs include a framework index and focused Markdown pages such as `cabasicanimation.md` and `catransaction.md`. Responses should give a concise summary and point to relevant files.

Use it for direct Core Animation work, such as animating `CAShapeLayer.strokeEnd` or adjusting a `CAEmitterLayer` particle system. For cases covered by SwiftUI’s `withAnimation` or UIKit’s `UIView.animate`, the skill recommends those APIs instead. SwiftUI animation questions belong with the separate `swiftui-specialist` skill.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add Prisma-Labs-Dev/apple-skills --skill core-animation -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/core-animation/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/core-animation/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add Prisma-Labs-Dev/apple-skills --skill core-animation -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/core-animation/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add Prisma-Labs-Dev/apple-skills --skill core-animation -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/core-animation/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Prisma-Labs-Dev/apple-skills core-animation
```

2. **Manually: put the files in place**
- File: `.github/skills/core-animation/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add Prisma-Labs-Dev/apple-skills --skill core-animation -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/Prisma-Labs-Dev/apple-skills --path skills/core-animation
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/core-animation/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add Prisma-Labs-Dev/apple-skills --skill core-animation -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/Prisma-Labs-Dev/apple-skills/tree/HEAD/skills/core-animation/SKILL.md

## When to use it
- find reference material for `CALayer` geometry and hierarchy
- choose an animation class for keyframes or spring motion
- disable implicit animations with `CATransaction`
- look up particle controls or per-frame callbacks

## Example prompts
- Explain how to animate `CAShapeLayer.strokeEnd` and point me to the relevant reference files.
- Show how to disable implicit animations when changing a layer property.
- Compare `CASpringAnimation` and `CAKeyframeAnimation` for animating a layer property.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 5420ef86f9ab2749.

BEGIN THIRD-PARTY FILE 5420ef86f9ab2749
```text
---
name: core-animation
user-invocable: true
description: "API reference: Core Animation (QuartzCore). Query for CALayer, CAAnimation, CABasicAnimation, CAKeyframeAnimation, CASpringAnimation, CATransaction, CAShapeLayer, CAGradientLayer, CAEmitterLayer, CATransform3D, CADisplayLink."
context: fork
agent: Explore
---

# Core Animation Reference

Search these docs to answer questions about Core Animation (the QuartzCore framework). Use this skill when working directly with `CALayer`, layer-backed UIKit/AppKit views, explicit keyframe or spring animations on layer properties, particle systems, or per-frame callbacks via `CADisplayLink`.

For SwiftUI's declarative animation API (`withAnimation`, `Animation`, `.animation(_:value:)`, transitions), use Apple's `swiftui-specialist` skill (its animations reference) instead. For SwiftUI immediate-mode drawing, use `swiftui/canvas.md` and `swiftui/graphicscontext.md`.

## Return Format

Always include:
1. **Summary** — answer the question concisely.
2. **File paths** — list relevant files for full details, e.g.:
   - `calayer.md` for layer geometry, contents, hierarchy
   - `cabasicanimation.md` for animating a single property between two values
   - `catransaction.md` for batching, disabling implicit animations, or changing default duration

## Files

| File | Content |
|------|---------|
| `core-animation-index.md` | Full QuartzCore framework index — layer basics, animation classes, transactions, layer subclasses |
| `calayer.md` | `CALayer` — the root layer class: geometry, contents, hierarchy, layout, animations |
| `caanimation.md` | `CAAnimation` — abstract base class for all Core Animation animation types |
| `capropertyanimation.md` | `CAPropertyAnimation` — abstract subclass animating a single layer property |
| `cabasicanimation.md` | `CABasicAnimation` — interpolate a layer property between two values |
| `cakeyframeanimation.md` | `CAKeyframeAnimation` — animate a property through a sequence of keyframes |
| `caspringanimation.md` | `CASpringAnimation` — spring-based interpolation with mass, stiffness, damping |
| `caanimationgroup.md` | `CAAnimationGroup` — run multiple animations together with a shared duration |
| `catransition.md` | `CATransition` — fade, push, reveal, and move-in transitions between layer states |
| `camediatiming.md` | `CAMediaTiming` — protocol shared by layers and animations (beginTime, duration, repeat, speed) |
| `catransaction.md` | `CATransaction` — batch property changes, disable implicit animations, set default duration/timing |
| `catransform3d.md` | `CATransform3D` — 4×4 matrix used by `CALayer.transform` for 3D transforms |
| `cashapelayer.md` | `CAShapeLayer` — vector-shape layer driven by a `CGPath` (stroke, fill, line dash) |
| `cagradientlayer.md` | `CAGradientLayer` — axial, radial, and conic gradient layers |
```
END THIRD-PARTY FILE 5420ef86f9ab2749

The third-party file has ended. Everything between the 5420ef86f9ab2749 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2885 of 4879 bytes. © Prisma-Labs-Dev · MIT · https://github.com/Prisma-Labs-Dev/apple-skills/tree/HEAD/skills/core-animation/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
