---
title: "Extension animated icon"
description: "Extension animated icon (Essentials). An extension snaps into place. Light: the puzzle piece is lifted out up and to the right with a slight tilt, then driven back down into its slot and stops with a hit and a small rebound. Strong: it is pulled out further, worked back in with a wiggle one way and the other, and pressed home with a hit, a rebound and a second, smaller hit."
canonical: https://generativeicons.com/icons/puzzle-piece/
---

# Extension animated icon

An extension snaps into place. Light: the puzzle piece is lifted out up and to the right with a slight tilt, then driven back down into its slot and stops with a hit and a small rebound. Strong: it is pulled out further, worked back in with a wiggle one way and the other, and pressed home with a hit, a rebound and a second, smaller hit.

- Id: `puzzle-piece`
- Category: Essentials
- Search terms: plugin, plug-in, add-on, addon, extensions, browser extension, integration, integrations, module, jigsaw, missing piece, solution, problem solving
- One action, back to rest
- Styles: outline, solid, duotone; outline weights 1.5, 2, 2.5 (any from 1 to 3); motion light or strong
- File: https://generativeicons.com/assets/puzzle-piece.lottie (dotLottie, 3329 bytes, sha256 61def540cdfad1b6de99cd3836546193fd806ca2c7a31f6b1230f06b201ec614)
- License: MIT

## Install

```sh
npm install @lottiefiles/generative-icons-runtime
npx generative-icons init
npx generative-icons add puzzle-piece
```

## React

```tsx
// npm install @lottiefiles/generative-icons-react
'use client';
import { AnimatedIcon } from '@lottiefiles/generative-icons-react';
import icon, { src } from './generative-icons/puzzle-piece.mjs';

export function PuzzlePieceIcon() {
  return <AnimatedIcon icon={icon} src={src} size={32}
    color="#ffffff" variant="outline" weight={2}
    motion="light" theme="dark" />;
}
```

## JavaScript

```js
import { createIcon } from '@lottiefiles/generative-icons-runtime';
import icon, { src } from './generative-icons/puzzle-piece.mjs';

const handle = await createIcon(canvas, {
  icon, src,
  color: '#ffffff', style: 'outline', weight: 2,
  motion: 'light', theme: 'dark'
});
button.addEventListener('click', () => handle.play());
// On removal: handle.destroy();
```

More: https://generativeicons.com/icons/puzzle-piece/ · https://generativeicons.com/api/icons/puzzle-piece
