Topics / #javascript-library
JavaScript-library projects on GitHub
Reusable JavaScript and TypeScript libraries
As of , the most-starred JavaScript-library projects on GitHub are d3 (113.8K stars), anime (73.7K stars) and echarts (67.5K stars). GitHub.Locker tracks 230 JavaScript-library repositories with 4.3M stars combined. The fastest-growing on October 16 was shaders, with +50 stars in a day.
Hot right now
Most stars gained in a day · Oct 16
+50shaders
shader-effects-inc/shaders · ★ 5KShaders is a library of 200+ WebGPU visual effects (gradients, noise, glass, metal, light, distortions, transitions, blurs, cursor effects) shipped as ready-to-use components for React, Vue, Svelte, Solid and plain JavaScript.
+46GSAP
greensock/GSAP · ★ 29.3KGSAP (GreenSock Animation Platform) is a framework-agnostic JavaScript library for building high-performance animations that work in every major browser.
+43Libraries.dev
Jakubantalik/Libraries.dev · ★ 4.3KLibraries.dev is a monorepo of seven React UI libraries for building animated AI-agent interfaces: border beam, thinking orbs, bot avatars, liquid gooey shapes, voice glow, liquid metal, and an image mosaic loader.
motion
motiondivision/motion · ★ 34.2KMotion is an open source animation library for JavaScript, React and Vue — you may know it by its former name, Framer Motion.
The all-time top
Top 100 of 230 · by stars
- 113.8K
- 73.7K
#2 · juliangarnier/animeanime
Anime.js is a fast, multipurpose and lightweight JavaScript animation library with a simple yet powerful API for animating things on the web.
- 67.5K
#3 · apache/echartsecharts
Apache ECharts is a free, powerful charting and data visualization library for browsers, written in pure JavaScript, used to add interactive and highly customizable charts to products.
- 4
redux
61.5Kreduxjs/redux · TypeScriptRedux is a JavaScript library for predictable and maintainable global state management — it helps apps behave consistently and makes them easy to test.
- 5

jquery
59.9Kjquery/jquery · JavaScriptjQuery is the classic JavaScript library for DOM manipulation, events, AJAX and effects — this repo holds its source, fresh off the jQuery 4.0.0 release.
- 6

zustand
58.8Kpmndrs/zustand · TypeScriptZustand is a small, fast state-management library for React built on simplified flux principles, with a hook-based API that is not boilerplate-heavy or opinionated.
- 7

pdf.js
54Kmozilla/pdf.js · JavaScriptPDF.js is a PDF viewer built with HTML5, community-driven and supported by Mozilla. Its goal is a general-purpose, web standards-based platform for parsing and rendering PDFs.
- 8

pretext
50.8Kchenglou/pretext · TypeScriptPretext is a pure JavaScript/TypeScript library for multiline text measurement and layout — fast and accurate, including for languages you may not even know about.
- 9

swiper
41.9Knolimits4web/swiper · TypeScriptSwiper is a free open-source mobile touch slider with hardware accelerated transitions and native-like feel, made for mobile websites, mobile web apps and native/hybrid apps.
- 10

styled-components
41.1Kstyled-components/styled-components · TypeScriptA CSS-in-JS library for React: styles are written in JavaScript and turned into styled components, with one API across server components, client components, streaming SSR and React Native.
- 11

chakra-ui
40.7Kchakra-ui/chakra-ui · TypeScriptChakra UI is a component system for building SaaS products with speed: a set of accessible React components for creating web apps and design systems.
- 12

tiptap
38.8Kueberdosis/tiptap · TypeScriptTiptap is a headless, framework-agnostic rich text editor framework for web apps, built on top of ProseMirror and extended through extensions.
- 13

impress.js
38.2Kimpress/impress.js · JavaScriptimpress.js is a presentation framework that uses CSS3 3D transforms and transitions in modern browsers to create slide decks, inspired by prezi.com.
- 14
marked
37.2Kmarkedjs/marked · JavaScriptMarked is a markdown parser and compiler built for speed. You feed it markdown text and get HTML back, and it runs in a browser, on a server, or from the command line.
- 15
date-fns
36.6Kdate-fns/date-fns · TypeScriptA modern JavaScript date utility library: 200+ functions for manipulating dates in the browser and Node.js. The README describes it as 'like Lodash for dates'.
- 16
motion
34.2Kmotiondivision/motion · TypeScriptMotion is an open source animation library for JavaScript, React and Vue — you may know it by its former name, Framer Motion.
- 17

clipboard.js
34.1Kzenorocha/clipboard.js · JavaScriptclipboard.js is a tiny JavaScript library that lets you copy text to the clipboard with a button click, without Flash or any heavy framework.
- 18

floating-ui
32.8Kfloating-ui/floating-ui · TypeScriptFloating UI is a small JavaScript library for creating floating elements like tooltips, popovers, and dropdowns, and for wiring up their user interactions.
- 19

lottie-web
32.2Kairbnb/lottie-web · JavaScriptLottie-web is a JavaScript library that parses Adobe After Effects animations exported as JSON via the Bodymovin plugin and renders them natively in the browser, so designers can ship real animations without an engineer hand-coding them.
- 20

editor.js
32Kcodex-team/editor.js · TypeScriptA free, open-source, block-style text editor for the web: writers compose content from blocks like text, images, lists and quotes, and it saves the result as clean JSON instead of heavy HTML markup.
- 21

rxjs
31.7KReactiveX/rxjs · TypeScriptRxJS is a JavaScript library for composing asynchronous and event-based programs with Observable values. This repo is the platform-based next generation of RxJS, planned for release as RxJS 9.
- 22

webtorrent
31.4Kwebtorrent/webtorrent · JavaScriptA streaming torrent client written entirely in JavaScript that runs in node.js and the browser — in the browser it moves data over WebRTC data channels, with no plugins, extensions, or installs.
- 23
jsPDF
31.3Kparallax/jsPDF · JavaScriptjsPDF is a JavaScript library for generating PDF documents directly on the client side, in the browser, so you don't need a server to produce PDFs.
- 24
Sortable
31.2KSortableJS/Sortable · JavaScriptSortable is a standalone JavaScript library that turns ordinary lists into reorderable drag-and-drop lists, working in modern browsers and on touch devices.
- 25

cheerio
30.5Kcheeriojs/cheerio · TypeScriptCheerio is a fast, flexible library for parsing and manipulating HTML and XML. It implements a subset of the core jQuery API, so if you know jQuery selectors you already know most of it.
- 26

particles.js
30.2KVincentGarreau/particles.js · JavaScriptA lightweight JavaScript library for creating particles: you add it to a web page to get animated, interactive particle backgrounds and effects.
- 27

plyr
30Ksampotts/plyr · JavaScriptPlyr is a simple, lightweight, accessible and customizable HTML5, YouTube and Vimeo media player that supports modern browsers.
- 28

Hover
29.4KIanLunn/Hover · SCSSHover.css is a collection of ready-made CSS3 hover effects for links, buttons, logos, SVG, and featured images that you can apply, tweak, or just use as inspiration.
- 29

GSAP
29.3Kgreensock/GSAP · JavaScriptGSAP (GreenSock Animation Platform) is a framework-agnostic JavaScript library for building high-performance animations that work in every major browser.
- 30

JavaScript30
29.3Kwesbos/JavaScript30 · HTMLThis is Wes Bos's free '30 Day Vanilla JS Challenge': a collection of 30 small projects that teach JavaScript, HTML and CSS fundamentals without any frameworks or libraries, one project per day.
- 31
immer
29Kimmerjs/immer · JavaScriptImmer is a small JavaScript library for working with immutable state: you write code that mutates your current state, and it produces the next immutable state tree for you.
- 32
fingerprintjs
28.6Kfingerprintjs/fingerprintjs · TypeScriptFingerprintJS is an open-source, client-side browser fingerprinting library: it queries browser attributes and computes a hashed visitor identifier from them.
- 33

vuex
28.3Kvuejs/vuex · JavaScriptVuex is a state management pattern and library for Vue.js applications: one centralized store shared by all components, changed only in predictable ways.
- 34

async
28.1Kcaolan/async · JavaScriptAsync is a utility module with straight-forward, powerful functions for working with asynchronous JavaScript, originally designed for Node.js.
- 35

backbone
28.1Kjashkenas/backbone · JavaScriptBackbone.js gives structure to JavaScript-heavy applications through Models with key-value binding and custom events, Collections with a rich enumerable API, and Views with declarative event handling, all tied together by syncing data over a RESTful JSON interface.
- 36

mongoose
27.5KAutomattic/mongoose · JavaScriptMongoose is a MongoDB object modeling tool — an ODM for Node.js. You define schemas and work with models that carry validation, defaults, middleware and rich queries, instead of talking to the raw driver.
- 37

ace
27.1Kajaxorg/ace · JavaScriptAce is a standalone, open-source code editor written in JavaScript, built to match the features, usability and performance of native editors like TextMate, Vim, or Eclipse, and it can be dropped into any web page or JS app.
- 38
fetch
25.8KJakeChampion/fetch · JavaScriptA window.fetch polyfill — a Promise-based mechanism for making web requests in the browser, giving older browsers the fetch API as a replacement for XMLHttpRequest.
- 39

Modernizr
25.7KModernizr/Modernizr · JavaScriptModernizr is a JavaScript library that detects which HTML5 and CSS3 features the visitor's browser actually supports, so you can adapt the page to each browser instead of assuming they all behave the same.
- 40

core-js
25.5Kzloirock/core-js · JavaScriptA modular standard library for JavaScript: polyfills for ECMAScript features up to 2025 — promises, symbols, collections, iterators, typed arrays — plus ECMAScript proposals and some WHATWG/W3C features like URL.
- 41

howler.js
25.4Kgoldfire/howler.js · JavaScripthowler.js is a JavaScript audio library for the web that gives you one consistent API for playing and controlling sound, defaulting to the Web Audio API and falling back to HTML5 Audio automatically.
- 42
PhotoSwipe
25.3Kdimsemenov/PhotoSwipe · JavaScriptPhotoSwipe is a JavaScript image gallery and lightbox for mobile and desktop — modular, framework-independent code you add to your own web pages.
- 43

devtools-v6
24.7Kvuejs/devtools-v6 · TypeScriptThis is Vue Devtools - a browser devtools extension for debugging Vue.js applications. The devtools-v6 repo is its version 6 codebase.
- 44

winston
24.5Kwinstonjs/winston · JavaScriptWinston is a logging library for Node.js that lets you send log messages to multiple destinations at once, like the console, a file, or a database.
- 45

hammer.js
24.3Khammerjs/hammer.js · JavaScriptHammer.js is a JavaScript library that lets a web page recognize touch gestures, so you don't have to interpret raw touch events yourself.
- 46

ramda
24Kramda/ramda · JavaScriptRamda is a practical functional library for JavaScript: a set of functions for building functional pipelines in a style that never mutates your data.
- 47

validator.js
23.7Kvalidatorjs/validator.js · JavaScriptvalidator.js is a JavaScript library of string validators and sanitizers — ready-made checks like isEmail, isCreditCard and isDate that you call on user input instead of writing your own regex.
- 48

intro.js
23.5Kusablica/intro.js · TypeScriptIntro.js is a lightweight user-onboarding and product-walkthrough library for the web — it adds guided, step-by-step tours that introduce a site or app to its users.
- 49
svgo
22.7Ksvg/svgo · JavaScriptSVGO (SVG Optimizer) is a Node.js library and command-line application that optimizes SVG files — cutting away redundant information so they weigh less while rendering the same.
- 50

react-bootstrap
22.6Kreact-bootstrap/react-bootstrap · TypeScriptReact-Bootstrap is a library that rebuilds Bootstrap 5's UI components as native React components. It is written in TypeScript, published on npm, and lets you use the familiar Bootstrap component set directly inside a React app.
- 51
draft-js
22.6Kfacebookarchive/draft-js · JavaScriptIt is a JavaScript rich text editor framework built for React and backed by an immutable model — a way to build rich text editing into web apps.
- 52
scrollreveal
22.5Kjlmakes/scrollreveal · JavaScriptScrollReveal is a JavaScript library that animates elements on a web page as they scroll into view.
- 53

react-grid-layout
22.5Kreact-grid-layout/react-grid-layout · TypeScriptReact-Grid-Layout is a draggable and resizable grid layout system for React, similar to Packery or Gridster but with responsive breakpoints built in.
- 54

redux-saga
22.4Kredux-saga/redux-saga · JavaScriptIt's a Redux middleware library for managing side effects — async work like data fetching or impure stuff like browser-cache access. Each saga is modelled as a separate thread in your app, solely responsible for those side effects.
- 55

tabler-icons
22.3Ktabler/tabler-icons · JavaScriptTabler Icons is a collection of over 6200 free, MIT-licensed SVG icons for web projects, every icon drawn on a 24x24 grid with a 2px stroke.
- 56

sweetalert
22.2Kt4t5/sweetalert · TypeScriptSweetAlert is a drop-in replacement for JavaScript's native alert() that shows beautiful popups - error messages, warning dialogs and prompt modals - on web pages.
- 57

react-native-web
22.1Knecolas/react-native-web · JavaScriptReact Native for Web is a set of cross-platform React UI packages; this repository is the development monorepo where the react-native-web package and related projects are built.
- 58

dragula
22.1Kbevacqua/dragula · JavaScriptDragula is a vanilla JavaScript drag-and-drop library: you hand it container elements, and users can drag items between them to reorder or move them, with a shadow preview and almost no configuration.
- 59

polymer
22KPolymer/polymer · HTMLPolymer is Google's original open-source library for building Web Components — encapsulated, reusable custom HTML elements that work just like standard HTML tags in web applications. This repo holds the current stable release, Polymer 3.0.
- 60

markdown-it
22Kmarkdown-it/markdown-it · TypeScriptmarkdown-it is a fast Markdown parser for JavaScript with 100% CommonMark support. It also adds syntax extensions and sugar like URL autolinking and a typographer.
- 61

FileSaver.js
22Keligrey/FileSaver.js · JavaScriptFileSaver.js is a client-side JavaScript library that implements the saveAs() interface, letting web apps trigger a file download for data generated right in the browser.
- 62

chosen
21.9Kharvesthq/chosen · HTMLChosen is a JavaScript library for making long, unwieldy select boxes more user-friendly. You include it in a web page and it upgrades standard HTML select elements.
- 63
lit
21.9Klit/lit · TypeScriptLit is a small open-source library for building fast, lightweight web components — reusable custom HTML elements that work in any modern browser or alongside any framework.
- 64
pug
21.8Kpugjs/pug · JavaScriptPug is a high-performance template engine for Node.js and browsers, heavily influenced by Haml: you write HTML in a clean, whitespace-sensitive syntax and Pug compiles it.
- 65
Inquirer.js
21.6KSBoudrias/Inquirer.js · TypeScriptInquirer.js is a collection of ready-made interactive command line prompts for Node.js CLIs — input fields, selectable lists, checkboxes, confirms and more — so you don't build terminal question UIs by hand.
- 66

jotai
21.3Kpmndrs/jotai · TypeScriptJotai is a primitive and flexible state management library for React. It scales from a simple useState replacement all the way to an enterprise TypeScript application.
- 67

rough
21.3Krough-stuff/rough · HTMLRough.js is a small (<9 kB) JavaScript graphics library that makes drawings look sketchy and hand-drawn instead of clean and geometric.
- 68

joi
21.2Khapijs/joi · JavaScriptjoi is a schema description language and data validator for JavaScript: you describe what valid data looks like, and joi checks objects against that description. It comes from the hapi ecosystem but works in any JavaScript project.
- 69

normalizr
20.8Kpaularmstrong/normalizr · JavaScriptNormalizr is an open-source JavaScript library that normalizes nested JSON according to a schema you define: hand it a deeply nested API response and it returns a flat, normalized structure. It is typically used in React, Redux and Flux apps.
- 70
Vue.Draggable
20.6KSortableJS/Vue.Draggable · JavaScriptA Vue component that adds drag-and-drop to your lists and keeps the view-model array in sync — it wraps Sortable.js and supports all of its features. For Vue 1.0 it works as a directive instead.
- 71

popmotion
20.2KPopmotion/popmotion · JavaScriptPopmotion is a set of simple, low-level animation libraries for JavaScript user interfaces: keyframe and spring animations for numbers, colors and complex strings, built to be composable.
- 72

You-Dont-Need-jQuery
20.1Kcamsong/You-Dont-Need-jQuery · JavaScriptA reference guide that shows the plain JavaScript (native DOM/BOM) equivalent for common jQuery methods like querying, styling, DOM manipulation, ajax, events, utilities, promises and animation.
- 73
trix
20Kbasecamp/trix · JavaScriptTrix is a free, open-source WYSIWYG rich text editor for web applications, built by 37signals (the creators of Ruby on Rails) and used in Basecamp. It is made for everyday writing: messages, comments, articles, and lists.
- 74
apollo-client
19.8Kapollographql/apollo-client · TypeScriptApollo Client is a GraphQL client library for JavaScript and TypeScript apps, providing caching, data fetching, and state management for apps built with React, Vue, Angular, or vanilla JS.
- 75

react-testing-library
19.7Ktesting-library/react-testing-library · JavaScriptA lightweight set of React DOM testing utilities that helps you write maintainable component tests which exercise your app the way a user actually uses it.
- 76

Mock
19.6Knuysoft/Mock · JavaScriptMock.js is a JavaScript library that generates simulated data and mocks ajax requests, so front-end development and automated tests can run without waiting on a real back-end.
- 77

Recoil
19.4Kfacebookexperimental/Recoil · JavaScriptRecoil is an experimental state management library for React apps, built to add capabilities that are hard to get with plain React (like shared derived state and fine-grained updates), while staying compatible with React's newest features.
- 78

hyperapp
19.2Khyperapp/hyperapp · JavaScriptHyperapp is a tiny (about 1kB) JavaScript framework for building purely functional, browser-based 'hypertext applications' using views, actions, effects and subscriptions.
- 79

tfjs
19.1Ktensorflow/tfjs · TypeScriptAn open-source, hardware-accelerated JavaScript library for training and deploying machine learning models in the browser and in Node.js.
- 80

relay
19Kfacebook/relay · RustRelay is a JavaScript framework for building data-driven React applications: you declare what data your components need with GraphQL, and Relay handles how and when to fetch it.
- 81

vue-router
18.9Kvuejs/vue-router · JavaScriptIt is vue-router 3.x, the official router for Vue 2 — it maps URLs to components so a Vue 2 single-page app can move between views. It is part of the Vue Ecosystem.
- 82
mojs
18.8Kmojs/mojs · CoffeeScriptmo.js is an open source JavaScript motion graphics library for the web — fast, retina ready and modular. Using it on a site enhances the user experience and enriches content visually with precise, delightful animations.
- 83

fastclick
18.5Kftlabs/fastclick · HTMLA small open-source JavaScript library from FT Labs, part of the Financial Times. It removes the 300ms delay between a physical tap and the firing of the click event on mobile browsers, so apps feel less laggy and more responsive.
- 84

draggable
18.5KShopify/draggable · JavaScriptDraggable is an open-source JavaScript drag & drop library from Shopify. It abstracts native browser events into a comprehensive API so you can build fully custom drag-and-drop experiences in the browser.
- 85
matter-js
18.5Kliabru/matter-js · JavaScriptMatter.js is a JavaScript 2D rigid body physics engine for the web — a physics simulation you drop into web pages and Node.js apps.
- 86
dropzone
18.4Kenyo/dropzone · JavaScriptDropzone is a JavaScript library that turns any HTML element into a dropzone: users drag files onto it, and it shows previews and progress bars while handling the upload via XHR.
- 87

skrollr
18.4KPrinzhorn/skrollr · HTMLA stand-alone JavaScript library for parallax scrolling effects, about 12k minified, working on desktop and mobile (Android, iOS) browsers — really a full-fledged scrolling-animation library, with parallax just one use case.
- 88

plotly.js
18.4Kplotly/plotly.js · JavaScriptPlotly.js is an open-source JavaScript charting library that draws interactive charts in the browser. It also powers the plotly modules for Python and R (Plotly.py, Plotly.R) and sits behind Plotly and Dash.
- 89

wangEditor
18.3Kwangeditor-team/wangEditor · TypeScriptwangEditor is an open-source WYSIWYG rich text editor for the web, currently at version 5. It is built to work out of the box with simple configuration.
- 90

sweetalert2
18.1Ksweetalert2/sweetalert2 · JavaScriptA replacement for JavaScript's built-in popup boxes: beautiful, responsive, highly customizable, accessible (WAI-ARIA) dialogs — alerts, confirms, prompts, toasts and modals — with zero dependencies.
- 91

emotion
18Kemotion-js/emotion · JavaScriptEmotion is a performant and flexible CSS-in-JS library for JavaScript: you write styles in your JS code instead of separate CSS files. It is one of the most popular libraries in this space.
- 92

twemoji
17.8Ktwitter/twemoji · HTMLTwemoji is Twitter's open-source emoji library: it swaps standard Unicode emoji for Twitter's own set so they look the same on every platform. v14.0 follows the Unicode 14.0 and Emoji 14.0 specs.
- 93

classnames
17.8KJedWatson/classnames · JavaScriptA tiny JavaScript utility that conditionally joins className strings together, commonly used to build dynamic 'className' props for React and other UI code.
- 94

lazysizes
17.7KaFarkas/lazysizes · JavaScriptlazysizes is a fast, jank-free, SEO-friendly lazy loader for images (including responsive picture/srcset), iframes, scripts and widgets. It self-initializes and loads assets only as they become visible, with no configuration.
- 95

million
17.7Kaidenybai/million · TypeScriptMillion.js is an extremely fast and lightweight optimizing compiler for React that makes components up to 70% faster by speeding up reconciliation.
- 96

redux-thunk
17.7Kreduxjs/redux-thunk · TypeScriptA small middleware for Redux that lets action creators return a function instead of a plain action object. That function can run async logic or decide whether and when to dispatch.
- 97
pouchdb
17.6Kapache/pouchdb · JavaScriptPouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run well within the browser, letting web developers build apps that work offline as well as online.
- 98
flux
17.4Kfacebookarchive/flux · JavaScriptFlux is an application architecture for building user interfaces with React, centered on a unidirectional data flow.
- 99

velocity
17.2Kjulianshapiro/velocity · JavaScriptA fast, feature-rich JavaScript animation engine for web pages: it animates UI elements with better performance than jQuery's $.animate(), and companies like WhatsApp and Uber rely on it.
- 100

masonry
16.7Kdesandro/masonry · HTMLMasonry is a JavaScript grid layout library. It places elements in optimal position based on available vertical space, sort of like a mason fitting stones in a wall.
Showing the 100 most-starred of 230. See every one in the catalog.
Related topics
Often tagged together