← Open Source
LottieFiles

dotlottie-web

High-performance Lottie & dotLottie web player powered by Rust + WASM, with React, Vue, Svelte, Solid & Web Components.

MiscTypeScript
Open on GitHub
Momentum
+2stars in 24 hours+0.2%
914
Stars
56
Forks
+22
This week
24
Contributors
Created 2023-10-20 · Updated 2026-10-16 · #4050 today
Top developers

LottieFiles/dotlottie-web is ranked 4,050 with 914 stars.

Same-category comparison

LottieFiles/dotlottie-web is ranked 4,050 among these 8 peers; Junyi-99/ChatGPT-API-Scanner is ranked 3,948.

Same-category comparison
NameRankMetrics
openai/NavierStokesAndEuler3,722
Language:
Lean
Stars:
2,098
Forks:
221
Description:
Lean certificates accompanying Navier-Stokes and Euler results.
YanCchen/YCursor3,813
Stars:
1,635
Forks:
101
semgrep/semgrep-rules3,914
Language:
HCL
Stars:
1,275
Forks:
601
Description:
Semgrep Community Edition rules, maintained by Semgrep and the community. Free to use under the Semgrep Rules License.
Junyi-99/ChatGPT-API-Scanner3,948
Language:
Python
Stars:
1,138
Forks:
217
Description:
Scan GitHub for available OpenAI API Keys.
SillyTavern/SillyTavern-Launcher4,241
Language:
Batchfile
Stars:
588
Forks:
128
Description:
Launcher scripts for SillyTavern and ST-Extras.
Kong/insomnia4,330
Language:
TypeScript
Stars:
40,049
Forks:
2,384
Description:
The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage.
puaclaw/PUAClaw4,969
Language:
HTML
Stars:
2,699
Forks:
242
Classiq/classiq-library5,193
Language:
Jupyter Notebook
Stars:
2,048
Forks:
885
Description:
The Classiq Library is the largest collection of quantum algorithms and applications. It is the best way to explore quantum computing software. We welcome community contributions to our Library 🙌.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguageTypeScript
CategoryMisc
Stars914
Forks56
Contributors24
Created date2023-10-20
Updated date2026-10-16
Stars in 1 day2
Stars in 7 days22
Rank4,050
Previous rank1,510
Rank change-2,540
7-day stars rank2,603
Previous 7-day stars rank2,758
7-day stars rank change155
Total stars rank11,918
Previous total stars rank11,913
Total stars rank change-5
README summary

The format bundles multiple animations, themes, state machines, and embedded assets into a single compressed file. One battle-tested implementation across every platform. Quick Start Install the package for your framework, then drop in a few lines. Define states, transitions, and inputs in a single and drive them at runtime through pointer events, custom events, or input values. Themes can be embedded in the manifest or supplied programmatically. Audio is decoded and played in lockstep with the animation timeline. 🧵 Off

-Main-Thread Rendering For pages with many animations, swap for . Identical API, but rendering happens on a Web Worker with an , freeing the main thread for layout, scrolling, and your app code. All methods are async (Promise-returning) since they cross a worker boundary. ⚡ Hardware-Accelerated Rendering The default Software backend works everywhere. Each backend ships its own optimized WASM build via package. Want to see the difference on your own hardware? The hosted perf-test page compares Software vs

WebGL vs WebGPU vs Skottie/CanvasKit head-to-head. dotLottie Viewer A hosted companion app at **lottiefiles. js) | Server-side rendering to a buffer | | react | | Renderer selection (canvas/webgl/webgpu) | | vue | | Theme toggling, ref/event patterns | | solid | | Signal-based state, theme/animation switching | | wc | | Web Component usage and event delegation | | next | (Next. js 22+, pnpm 10+ Contributing Contributions are welcome! Read the Contributing Guidelines and Code of Conduct before opening an issue or PR.

Frequently asked questions

How many stars and forks are recorded?

LottieFiles/dotlottie-web has 914 stars and 56 forks.

What is the repository rank?

LottieFiles/dotlottie-web is ranked 4,050.

What language and category are recorded?

LottieFiles/dotlottie-web has 914 stars, uses TypeScript and belongs to Misc.

Which repository is closest in rank?

LottieFiles/dotlottie-web is compared with Junyi-99/ChatGPT-API-Scanner, ranked 3,948 with 1,138 stars.

README

dotLottie Web

The official LottieFiles player for Lottie (.json) and dotLottie (.lottie) animations on the web — a Rust + WASM core powered by ThorVG, with Software, WebGL2, and WebGPU rendering backends and full dotLottie v2 support (theming, state machines, and audio).

🌐 Live Viewer · 📊 Perf Playground · 📚 Docs · 🦀 dotLottie-rs

Why dotLottie Web

  • 📦 Lottie + dotLottie, one player — point src at a classic Lottie .json or a .lottie archive. The .lottie format bundles multiple animations, themes, state machines, and embedded assets into a single compressed file.
  • 🦀 Rust + WASM core — powered by dotlottie-rs, the same engine that ships in iOS, Android, and native dotLottie players. One battle-tested implementation across every platform.
  • 🎨 ThorVG renderer — an industrial-grade vector graphics engine with the broadest Lottie feature coverage of any web renderer. See the ThorVG Lottie support matrix.
  • ⚡ Three rendering backends — Software (Canvas2D), WebGL2, and WebGPU (experimental). Switch with a one-line import change — same DotLottie class everywhere.
  • 📁 dotLottie v2 ready — first-class theming, interactive state machines, and audio in a single .lottie file. No userland wiring required.
  • 🧵 Off-main-thread — DotLottieWorker renders on a Web Worker with OffscreenCanvas, keeping your UI buttery-smooth even with dozens of animations.
  • ⚛️ 6 first-party SDKs — Vanilla JS, React, Vue, Svelte, Solid, and a Web Component. Plus SSR-safe (Next.js example included) and Node.js 18+ support.
  • 🎛️ Rich runtime control — themes, slots (color/scalar/vector/gradient/text/image), markers, segments, layouts (fit + align), playback modes (forward/reverse/bounce), frame interpolation, 25+ typed events.

Quick Start

Install the package for your framework, then drop in a few lines. The same player loads both Lottie .json and dotLottie .lottie files — just point src at either:

Vanilla JS

npm install @lottiefiles/dotlottie-web

import { DotLottie } from '@lottiefiles/dotlottie-web';

const dotLottie = new DotLottie({
  canvas: document.getElementById('canvas'),
  src: 'https://your-animation-url.lottie',
  autoplay: true,
  loop: true,
});

⚛️ React

npm install @lottiefiles/dotlottie-react
import { DotLottieReact } from '@lottiefiles/dotlottie-react';

const App = () => (
  
);

💚 Vue

npm install @lottiefiles/dotlottie-vue



  

🧡 Svelte

npm install @lottiefiles/dotlottie-svelte



🔵 Solid

npm install @lottiefiles/dotlottie-solid
import { DotLottieSolid } from '@lottiefiles/dotlottie-solid';

const App = () => (
  
);

🌐 Web Component (drop-in, no build step)




Or via npm:

npm install @lottiefiles/dotlottie-wc
import '@lottiefiles/dotlottie-wc';

Features

🤖 Interactive State Machines

dotLottie v2 ships state machines built into the file format — no JS glue required. Define states, transitions, and inputs in a single .lottie and drive them at runtime through pointer events, custom events, or input values.

const dotLottie = new DotLottie({
  canvas: document.getElementById('canvas'),
  src: 'interactive-button.lottie',
  stateMachineId: 'main',
  autoplay: true,
});

The player exposes typed events for stateMachineStart, stateMachineTransition, stateMachineStateEntered, custom events, and input changes — perfect for wiring animations into your UI logic.

🎨 Runtime Theming

Switch palettes, animate gradients, swap text, or replace images at runtime — without re-exporting from After Effects. Themes can be embedded in the .lottie manifest or supplied programmatically.

// Use a theme defined in the .lottie manifest
dotLottie.setTheme('dark');

// Or supply a theme object at runtime
dotLottie.setThemeData({
  rules: [
    { id: 'primary', type: 'Color', value: [0.9, 0.2, 0.4, 1.0] },
  ],
});

The full Theme type covers color, scalar, position, vector, gradient, image, and text rules — all keyframe-aware.

🔊 Audio Support

dotLottie files can carry embedded audio tracks alongside the animation timeline — handy for UI sound effects, onboarding flows, or interactive characters. Audio is decoded and played in lockstep with the animation timeline.

Audio is an experimental feature in dotlottie-rs. Browser autoplay policies still apply — initiate playback from a user gesture.

🧵 Off-Main-Thread Rendering

For pages with many animations, swap DotLottie for DotLottieWorker. Identical API, but rendering happens on a Web Worker with an OffscreenCanvas, freeing the main thread for layout, scrolling, and your app code.

import { DotLottieWorker } from '@lottiefiles/dotlottie-web';

const player = new DotLottieWorker({
  canvas: document.getElementById('canvas'),
  src: 'animation.lottie',
  autoplay: true,
  loop: true,
  workerId: 'shared-pool', // optional: share one worker across many instances
});

All DotLottieWorker methods are async (Promise-returning) since they cross a worker boundary.

⚡ Hardware-Accelerated Rendering

The default Software backend works everywhere. For demanding workloads — many concurrent animations, large canvases, complex masks — opt in to GPU rendering via subpath imports:

// WebGL2 — broadly supported
import { DotLottie } from '@lottiefiles/dotlottie-web/webgl';

// WebGPU — experimental, modern Chromium / Safari TP
import { DotLottie } from '@lottiefiles/dotlottie-web/webgpu';

The class name (DotLottie) and API surface are identical across all three backends, so swapping renderers is a one-line change. Each backend ships its own optimized WASM build via package.json conditional exports.

Want to see the difference on your own hardware? The hosted perf-test page compares Software vs WebGL vs WebGPU vs Skottie/CanvasKit head-to-head.

🖼️ More built-in capabilities

  • Multi-animation .lottie files — animationId config + loadAnimation(id) to switch between bundled animations
  • Named markers — setMarker(name) and markers() to play AE-defined segments
  • Frame segments — setSegment(start, end) for arbitrary frame ranges
  • Layout — fit (contain / cover / fill / fit-width / fit-height / none) + normalized align: [x, y]
  • Slots — bind dynamic data to color, scalar, vector, gradient, text, and image slots at runtime
  • Playback modes — forward / reverse / bounce / reverse-bounce with configurable loop counts
  • Frame interpolation — smooth subframe playback (default on) or pinned to the original AE frame rate
  • Freeze on offscreen — automatically pause rendering when the canvas leaves the viewport
  • 25+ typed events — play, pause, frame, complete, loop, load, loadError, freeze, plus the full state-machine event suite

Packages

All packages render both Lottie (.json) and dotLottie (.lottie) animations.

Package Description
@lottiefiles/dotlottie-web Core Lottie & dotLottie player — Rust/WASM via dotlottie-rs, Canvas2D / WebGL / WebGPU, Node-isomorphic
@lottiefiles/dotlottie-react React component for Lottie & dotLottie
@lottiefiles/dotlottie-vue Vue 3 component for Lottie & dotLottie
@lottiefiles/dotlottie-svelte Svelte component for Lottie & dotLottie
@lottiefiles/dotlottie-solid Solid component for Lottie & dotLottie
@lottiefiles/dotlottie-wc Framework-agnostic Web Component for Lottie & dotLottie

Each package README contains its full API reference, prop tables, and event documentation.

dotLottie Viewer

A hosted companion app at lottiefiles.github.io/dotlottie-web for inspecting, debugging, and benchmarking animations:

Page What it does
Home Drop a .lottie or .json file to preview rendering and inspect manifest details
Playground Interactive editor for player config, themes, markers, and animation switching
Performance Stress test across 40+ animations — compare Software / WebGL / WebGPU / Skottie head-to-head on your own hardware, with seedable runs for reproducibility
List Gallery of curated animations
Embed Embedding patterns and demos

Source: apps/viewer/.

Live Examples (CodePen)

@lottiefiles/dotlottie-web — Getting Started · Playback Controls · Dynamic Loading · Worker · Multi Animations · Advanced Layout · Named Markers · Theming · Interactivity

@lottiefiles/dotlottie-react — Getting Started · Custom Controls

@lottiefiles/dotlottie-vue — Getting Started

Local Examples

Runnable example apps in examples/:

Example Package Highlights
web @lottiefiles/dotlottie-web State machines, themes, segments, layout
web-node @lottiefiles/dotlottie-web (Node.js) Server-side rendering to a buffer
react @lottiefiles/dotlottie-react Renderer selection (canvas/webgl/webgpu)
vue @lottiefiles/dotlottie-vue Theme toggling, ref/event patterns
solid @lottiefiles/dotlottie-solid Signal-based state, theme/animation switching
wc @lottiefiles/dotlottie-wc Web Component usage and event delegation
next @lottiefiles/dotlottie-react (Next.js) SSR-safe rendering with the App Router
pnpm install && pnpm run build
cd examples/web
pnpm run dev

Browser & Runtime Support

Required: WebAssembly · Canvas 2D · Fetch API Optional (enhances perf): Web Workers · OffscreenCanvas · WebGL2 (for /webgl) · WebGPU (for /webgpu)

Browser Minimum version
Chrome 57+ (Mar 2017)
Firefox 52+ (Mar 2017)
Safari 11+ (Sep 2017)
Edge 16+ (Oct 2017)
iOS Safari 11+ (Sep 2017)

Node.js: 18+ — @lottiefiles/dotlottie-web is isomorphic and runs server-side for thumbnail generation, frame extraction, or static rendering.

Development

Prerequisites: Node.js 22+, pnpm 10+

git clone https://github.com/LottieFiles/dotlottie-web.git
cd dotlottie-web
pnpm install
pnpm run build    # Build all packages
pnpm run dev      # Watch mode
pnpm run test     # Run tests
pnpm run lint     # Lint
pnpm run format   # Format

Contributing

Contributions are welcome! Read the Contributing Guidelines and Code of Conduct before opening an issue or PR.

License

MIT © LottieFiles

Nearby in the ranking
Similar items