Skip to content
Back to skills

Lesson Animations

ASecurity

Design and build animations that make a lesson topic genuinely easier to understand — visual, moving explanations of the core idea (not decoration), authored as reusable React islands using the project's motion tokens and always respecting prefers-reduced-motion. Use when authoring a lesson that has a process/relationship/transformation worth showing, or when the user asks to "animate X", "add a visual", "make it move", or "explain this with an animation".

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
developmentgoreactnodeperformance

Works with

  • cli

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add alexfdez1010/mental-models --skill lesson-animations --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lesson Animations?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lesson Animations
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alexfdez1010-lesson-animations/badge)](https://www.skillsdirectory.com/skills/alexfdez1010-lesson-animations)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lesson-animations
description: Design and build animations that make a lesson topic genuinely easier to understand — visual, moving explanations of the core idea (not decoration), authored as reusable React islands using the project's motion tokens and always respecting prefers-reduced-motion. Use when authoring a lesson that has a process/relationship/transformation worth showing, or when the user asks to "animate X", "add a visual", "make it move", or "explain this with an animation".
---

# Animations that teach

Every lesson should include animations that explain the topic **better than text
or a static image could**. Animation is a teaching tool here, not decoration — if
it doesn't increase understanding, don't add it.

**More, not one**: aim for an animation at *each* major
transformation/process/relationship in the lesson, placed next to the
explanation it illustrates — not a single hero animation per lesson.

## When an animation earns its place

Animate when the idea is about **change over time, a process, or a relationship**:
- a process with steps (a lifecycle, a recipe, a sorting pass)
- a transformation (input → output, before → after)
- a relationship where moving one knob changes another (turn one dial, watch
  another respond)
- accumulation / growth / decay

If the idea is a static fact or definition, use a `Callout`, diagram, or
`MatchConcepts` exercise instead.

## How to build it (reusable island)

**The template ships no subject-specific animation islands** — the chart/visual
islands are something *you build* for your topic. The generic building blocks
below exist; the moving explanation of *your* concept does not yet, so author it.

Author animations as React islands in `src/components/react/` and follow the
**same rules as every component** (see `exercise-components`): barrel export,
`@` alias + `cx`, design tokens only, JSDoc'd props, `bun run check` clean.
Prefer an **interactive** island (user scrubs a slider / steps through) over a
passive loop — interaction cements understanding.

Generic building blocks already in the project (`@/components/react`):

- **`MindMap`** — the **chunking close**. End each lesson with a learner-facing
  "big picture" mind map (Mermaid `mindmap`) that links the section concepts into
  one structure, so the learner *chunks* the lesson instead of reading a passive
  summary. Author it as structured data — the component renders both the diagram
  and an accessible text outline from the same tree:

  ```mdx
  import { MindMap } from '@/components/react';

  <MindMap
    client:visible
    title="The lesson in one picture"
    root={{
      label: 'Core idea',
      children: [
        { label: 'First concept', children: [{ label: 'Why it matters' }] },
        { label: 'Second concept', children: [{ label: 'How it connects' }] },
        { label: 'Third concept', children: [{ label: 'Common trap' }] },
      ],
    }}
  />
  ```

  Spanish twins translate `title`/`caption`/`eyebrow`/`outlineLabel` and every
  node `label`. Keep node labels short — Mermaid mindmap strips `()[]{}:` etc.
- **Motion tokens** in `src/styles/global.css`: `animate-fade-up`, `animate-float`
  (Tailwind: `animate-fade-up`, `animate-float`). Add new `@keyframes` + an
  `--animate-*` token there if you need more — never inline hard-coded hex or
  one-off CSS in a component.
- **`Reveal`** — to animate an element in on scroll. (For a discrete sequence of
  stages, author a numbered Markdown list — there is no `StepThrough`.)
- Plain React state + CSS transitions / SVG for custom interactive visuals
  (sliders driving a value, an animated SVG graph, a canvas).

## Non-negotiables

1. **Accessibility / motion safety.** Wrap motion in
   `@media (prefers-reduced-motion: reduce)` (the project already does this
   globally in `global.css`) — provide a static, equally-informative fallback.
   No essential information conveyed by motion alone.
2. **Performance.** Animate `transform`/`opacity`, not layout properties. Keep
   islands light; hydrate with `client:visible`.
3. **Labeled & controllable.** Interactive controls are real, keyboard-operable
   inputs with labels and visible focus rings; loops should be calm and not
   distract from reading.
4. **Tokens & alias only.** Tailwind design tokens, `@` imports, `cx` helper.

## Wire it into the lesson

```mdx
import { Reveal } from '@/components/react';
// or the custom island you authored for this topic, e.g.:
import { ConceptPlayground } from '@/components/react';

<ConceptPlayground client:visible />
```

(`ConceptPlayground` is illustrative — the kind of interactive visual you would
build for your subject. No such island ships with the template; you create it.)

Add Spanish label props in the `es` twin. Then `bun run check` and regenerate OG.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.