agentleFS
Prisma-Labs-DevPrisma-Labs-Dev/apple-skills/skills/core-animation/SKILL.md

core-animation

Skill336 starsChanged 7 months agoMITView on GitHub

API reference: Core Animation (QuartzCore). Query for CALayer, CAAnimation, CABasicAnimation, CAKeyframeAnimation, CASpringAnimation, CATransaction, CAShapeLayer, CAGradientLayer, CAEmitterLayer, CATransform3D, CADisplayLink.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Search these docs to answer questions about Core Animation (the QuartzCore framework).

    line 11
  2. Very specific:

    If your problem fits inside withAnimation { ...

    line 58
  3. Very specific:

    Search this skill's local .md files first.

    line 62
  4. Distinctive:

    If the topic is not here, check the other installed Apple skills, then grep their local files.

    line 63
  5. Very specific:

    If no installed skill has the page, the QuartzCore path on Apple's site is /documentation/quartzcore/<symbol> — fetch via the sosumi.ai …

    line 64

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

FileContent
core-animation-index.mdFull QuartzCore framework index — layer basics, animation classes, transactions, layer subclasses
calayer.mdCALayer — the root layer class: geometry, contents, hierarchy, layout, animations
caanimation.mdCAAnimation — abstract base class for all Core Animation animation types
capropertyanimation.mdCAPropertyAnimation — abstract subclass animating a single layer property
cabasicanimation.mdCABasicAnimation — interpolate a layer property between two values
cakeyframeanimation.mdCAKeyframeAnimation — animate a property through a sequence of keyframes
caspringanimation.mdCASpringAnimation — spring-based interpolation with mass, stiffness, damping
caanimationgroup.mdCAAnimationGroup — run multiple animations together with a shared duration
catransition.mdCATransition — fade, push, reveal, and move-in transitions between layer states
camediatiming.mdCAMediaTiming — protocol shared by layers and animations (beginTime, duration, repeat, speed)
catransaction.mdCATransaction — batch property changes, disable implicit animations, set default duration/timing
catransform3d.mdCATransform3D — 4×4 matrix used by CALayer.transform for 3D transforms
cashapelayer.mdCAShapeLayer — vector-shape layer driven by a CGPath (stroke, fill, line dash)
cagradientlayer.mdCAGradientLayer — axial, radial, and conic gradient layers
caemitterlayer.mdCAEmitterLayer — particle emitter layer (fire, smoke, confetti, sparkles)
caemittercell.mdCAEmitterCell — individual particle definition used by CAEmitterLayer
careplicatorlayer.mdCAReplicatorLayer — replicate a sublayer with offsets and transforms
cametallayer.mdCAMetalLayer — layer backed by a Metal drawable for GPU-rendered content
catextlayer.mdCATextLayer — layer that renders plain or attributed text
catiledlayer.mdCATiledLayer — tile-based asynchronous content rendering for large or zoomable layers
cadisplaylink.mdCADisplayLink — timer synchronized to the display's refresh rate

When to Reach for Core Animation

  • You need to animate a layer property SwiftUI/UIKit doesn't expose declaratively (e.g., CAGradientLayer.colors, CAShapeLayer.strokeEnd, CAEmitterLayer.birthRate).
  • You need explicit keyframe or spring control with timing functions (CAMediaTimingFunction) per segment.
  • You want to batch implicit animations off (CATransaction.setDisableActions(true)).
  • You need a CADisplayLink per-frame callback (custom drawing loops, scrubbing, physics).
  • You're rendering thousands of particles with CAEmitterLayer or replicating sublayers with CAReplicatorLayer.

If your problem fits inside withAnimation { ... } in SwiftUI or UIView.animate { ... } in UIKit, prefer those — Core Animation sits underneath both and is rarely the right starting point in 2026-era code.

Fetching More Docs

  1. Search this skill's local .md files first.
  2. If the topic is not here, check the other installed Apple skills, then grep their local files.
  3. If no installed skill has the page, the QuartzCore path on Apple's site is /documentation/quartzcore/<symbol> — fetch via the sosumi.ai Markdown mirror (e.g. https://sosumi.ai/documentation/quartzcore/camediatimingfunction) or by running pnpm fetch-doc against the apple-skills tooling.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.