A rugged, minimal framework for composing JavaScript behavior in your markup.
Alternatives To Alpine
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Alpine24,884108a day ago115July 02, 202319mitHTML
A rugged, minimal framework for composing JavaScript behavior in your markup.
React Transition Group9,77147,7156,1635 months ago43August 01, 2022218otherJavaScript
An easy way to perform animations when a React component enters or leaves the DOM
Ramjet5,4412377 years ago9February 05, 201611mitJavaScript
Morph DOM elements from one state to another with smooth animations and transitions
8 years ago2JavaScript
Animate DOM transitions.
React Tiger Transition477
19 months ago27February 14, 202040mitJavaScript
Full page transitions with react-router.
Dom Helpers39161,0616882 months ago34April 26, 202127mitTypeScript
tiny, extremely modular, DOM helper library for IE9+
Touchpoint Js296
2 years ago3mitJavaScript
A vanilla JavaScript library that visually shows taps/clicks for HTML prototypes using CSS3 transitions on desktop and mobile.
Jquery Ui Carousel196
7 years ago12JavaScript
jQuery RS Carousel is a responsive and touch-enabled carousel written on top of jQuery and the jQuery UI Widget Factory providing a full and familiar API in less than 2.6kB minified and gzipped.
7 years agoFebruary 22, 20214JavaScript
A glitched effect for DOM elements
React.animate167342 years ago1July 25, 20151mitJavaScript
state animation plugin for react.js
Alternatives To Alpine
Select To Compare

Alternative Project Comparisons


Go to the Alpine docs for most things: Alpine Docs

You are welcome to submit updates to the docs by submitting a PR to this repo. Docs are located in the /packages/docs directory.

Stay here for contribution-related information.

Looking for V2 docs? here they are

Alpine Component Patterns

Contribution Guide:


  • clone this repo locally
  • run npm install & npm run build
  • Include the /packages/alpinejs/dist/cdn.js file from a <script> tag on a webpage and you're good to go!

Brief Tour

You can get everything installed with: npm install in the root directory of this repo after cloning it locally.

This repo is a "mono-repo" using npm workspaces for managing the packages. Each package has its own folder in the /packages directory.

Rather than having to run separate builds for each package, all package bundles are handled with the same command: npm run build

Here's a brief look at each package in this repo:

Package Description
alpinejs The main Alpine repo with all of Alpine's core
collapse A plugin for expanding and collapsing elements using smooth animations
csp A repo to provide a "CSP safe" build of Alpine
docs The Alpine documentation
focus A plugin that allows you to manage focus inside an element
history A plugin for binding data to query string parameters using the history API (name is likely to change)
intersect A plugin for triggering JS expressions based on elements intersecting with the viewport
mask A plugin for automatically formatting a text input field as a user types
morph A plugin for morphing HTML (like morphdom) inside the page intelligently
persist A plugin for persisting Alpine state across page loads

The compiled JS files (as a result of running npm run [build/watch]) to be included as a <script> tag for example are stored in each package's packages/[package]/dist directory.

Each package should at least have: a "cdn" build that is self-initializing and can be included using the src attribute in a <script defer> tag, and a module.[esm/cjs].js file that is used for importing as a JS module (cjs for node, esm for everything else).

The bundling for Alpine V3 is handled exclusively by ESBuild. All of the configuration for these builds is stored in the scripts/build.js file.


There are 2 different testing tools used in this repo: Cypress (for integration tests), and Jest (for unit tests).

All tests are stored inside the /tests folder under /tests/cypress and /tests/jest.

You can run them both from the command line using: npm run test

If you wish to only run cypress and open it's user interface (recommended during development), you can run: npm run cypress

If you wish to only run Jest tests, you can run npm run jest like normal and target specific tests. You can specify command line config options to forward to the jest command with -- like so: npm run jest -- --watch

Popular Dom Projects
Popular Transition Projects
Popular Web User Interface Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.