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.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- apple-asoSkill
- apple-docs-indexSkill
- backgroundtasksSkill
- combineSkill
- corehapticsSkill
- eventkitSkill
- guide-macos-spm-packagingSkill
- guide-swift-concurrencySkill
- guide-swiftdataSkill
- guide-swift-testingSkill
- guide-swiftui-chartsSkill
- guide-swiftui-performance-auditSkill
- healthkitSkill
- higSkill
- ios-devSkill
- ios-liquid-glassSkill
- mapkitSkill
- photosuiSkill
- storekitSkill
- swift-concurrencySkill
- swiftdataSkill
- swift-testingSkill
- swiftuiSkill
- tipkitSkill
- uikitSkill
- usernotificationsSkill
- widgetkitSkill
- xcuitestSkill
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
- Distinctive: line 11
Search these docs to answer questions about Core Animation (the QuartzCore framework).
- Very specific: line 58
If your problem fits inside withAnimation { ...
- Very specific: line 62
Search this skill's local .md files first.
- Distinctive: line 63
If the topic is not here, check the other installed Apple skills, then grep their local files.
- Very specific: line 64
If no installed skill has the page, the QuartzCore path on Apple's site is /documentation/quartzcore/<symbol> — fetch via the sosumi.ai …
≈ “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.
Files
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:
- Summary — answer the question concisely.
- File paths — list relevant files for full details, e.g.:
calayer.mdfor layer geometry, contents, hierarchycabasicanimation.mdfor animating a single property between two valuescatransaction.mdfor 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 |
caemitterlayer.md | CAEmitterLayer — particle emitter layer (fire, smoke, confetti, sparkles) |
caemittercell.md | CAEmitterCell — individual particle definition used by CAEmitterLayer |
careplicatorlayer.md | CAReplicatorLayer — replicate a sublayer with offsets and transforms |
cametallayer.md | CAMetalLayer — layer backed by a Metal drawable for GPU-rendered content |
catextlayer.md | CATextLayer — layer that renders plain or attributed text |
catiledlayer.md | CATiledLayer — tile-based asynchronous content rendering for large or zoomable layers |
cadisplaylink.md | CADisplayLink — 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
CADisplayLinkper-frame callback (custom drawing loops, scrubbing, physics). - You're rendering thousands of particles with
CAEmitterLayeror replicating sublayers withCAReplicatorLayer.
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
- Search this skill's local
.mdfiles first. - If the topic is not here, check the other installed Apple skills, then grep their local files.
- If no installed skill has the page, the QuartzCore path on Apple's site is
/documentation/quartzcore/<symbol>— fetch via thesosumi.aiMarkdown mirror (e.g.https://sosumi.ai/documentation/quartzcore/camediatimingfunction) or by runningpnpm fetch-docagainst the apple-skills tooling.
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
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.

