// the find
hakimel/Ladda
Buttons with built-in loading indicators.
Ladda adds a spinner animation directly inside a button element, so users get immediate visual feedback when they click something that kicks off async work. It's a focused, single-purpose UI library — no framework required, just data attributes on your buttons.
The data-attribute API means you can drop it into server-rendered HTML without writing JavaScript at all. The animation set is genuinely varied (expand, zoom, slide, contract) and works without requiring a separate icon font or SVG. TypeScript definitions are included. The themeless CSS option makes it easy to compose with your own design system without fighting specificity wars.
Last commit was December 2021 — this project is effectively unmaintained. Modern component frameworks (React, Vue, Svelte) each have purpose-built equivalents that don't require wiring up imperative `l.start()` / `l.stop()` calls alongside your async logic. The spinner is a CSS animation stacked on a custom DOM structure that Ladda injects, which can conflict with button content using flexbox or grid. Browser support list mentions IE10/11, which dates the codebase more than the star count implies.