Install
$ agentstack add skill-vabole-apple-skills-core-animation ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 guide-swiftui-animations 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/— fetch via thesosumi.aiMarkdown mirror (e.g.https://sosumi.ai/documentation/quartzcore/camediatimingfunction) or by runningpnpm fetch-docagainst the apple-skills tooling.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: vabole
- Source: vabole/apple-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.