Core Animation logo

Core Animation

Organization
Prisma-Labs-Dev
core-animation

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

Overview

PublisherPrisma-Labs-Dev
Repositoryapple-skills
Skill namecore-animation
Stars
348
Forks
21
Bundled files
21
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 21 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Prisma-Labs-Dev on GitHub. Read the source before you install it.

Installation

Install the Core Animation AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Prisma-Labs-Dev/apple-skills/tree/main/skills/core-animation
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Prisma-Labs-Dev/apple-skills.git /tmp/apple-skills
mkdir -p .claude/skills
cp -r /tmp/apple-skills/skills/core-animation .claude/skills/core-animation
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Core Animation in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Core Animation on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Core Animation is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Core Animation AI skill do?

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

Why use Core Animation on TypingMind?

Because you install it once and use it with any model. Core Animation is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Core Animation in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Prisma-Labs-Dev/apple-skills/tree/main/skills/core-animation. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Core Animation?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Core Animation?

As many as you like. As long as a model supports skills, you can use Core Animation with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Core Animation AI skill free?

Yes. It is published on GitHub by Prisma-Labs-Dev under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇