Skip to content

28 icons · MIT licensed

Animated media player icons

Play and pause, volume, microphone, camera, skip and shuffle for audio and video players. The toggling icons switch between their two states, play to pause or mic to muted, so the button always shows what a click will do.

Of the 28 icons, 1 loops continuously, 10 toggle between two states on click, 6 replay on every click and 11 play once on hover. Each one comes as a React component, a shadcn/ui component and a Lottie JSON animation with static SVGs, free for commercial use under the MIT license.

All media icons

Where to use them

  • Play and pause buttons in audio and video players
  • Mute and unmute controls in video calls
  • Camera on and off toggles in meeting apps
  • Playlist controls for skip, repeat and shuffle
  • Casting and AirPlay buttons
  • Podcast and music app controls

By interaction

  • Looping animated icons · 1

    Plays continuously; stays on the static first frame when reduced motion is preferred. Airplay.

  • Click-to-toggle animated icons · 10

    Toggles between two states on click, or switches immediately when reduced motion is preferred. Camera Off, Mic Off, Microphone, Microphone V2, Play/Pause, Play/Pause circle, Video, Video Off, Video V2, Volume.

  • Click animated icons · 6

    Replays once from the start on every click unless reduced motion is preferred. Camera, Repeat, Shuffle, Skip back, Skip forward, Stop Circle.

  • Hover-to-play animated icons · 11

    Plays once on mouseenter unless reduced motion is preferred. Leaving does not stop it; entering during playback does not restart it. Aperture, Cast, Disc, Fast Forward, Film, Headphones, Music, Radio, Rewind, Speaker, TV.

Add one to your app

With React, install react-useanimations and import the icon; it plays its click toggle interaction on its own. Every icon in this category works the same way: swap playPause for the name on its page.

npm install react-useanimations
import UseAnimations from 'react-useanimations';
import playPause from 'react-useanimations/lib/playPause';

<UseAnimations animation={playPause} size={32} />

With shadcn/ui, the CLI adds a ready-made component:

npx shadcn@latest add https://useanimations.com/r/play-pause.json
import { AnimatedPlayPause } from '@/components/animations/play-pause';

<AnimatedPlayPause size={24} />

Not using React? Each icon is a Lottie JSON file at /icons/<id>.json; see Lottie icons for web, iOS, Android and Flutter players.

FAQ

Which animated media player icons are included?

28 icons: Airplay, Aperture, Camera, Camera Off, Cast, Disc, Fast Forward, Film, Headphones, Mic Off, Microphone, Microphone V2 and 16 more. All of them are free for personal and commercial projects under the MIT license, with no attribution required.

How do I use these animated media player icons in React?

Install react-useanimations, add import playPause from 'react-useanimations/lib/playPause' and render <UseAnimations animation={playPause} size={32} />. The icon plays its click toggle interaction and follows the text color. With shadcn/ui, run npx shadcn@latest add https://useanimations.com/r/play-pause.json instead.

Can I use these animated media player icons without React?

Yes. Each icon is a Lottie JSON file at https://useanimations.com/icons/<id>.json (for example https://useanimations.com/icons/play-pause.json), playable with lottie-web, lottie-ios, lottie-android or Flutter's lottie package; static SVGs are on each icon page. None of them use expressions, so lottie-web's light build is enough.