Skip to main content
Introducing packages.sweber.dev
All posts
Release1 min read

Lagrangian Pro 1.0: a stable API for interfaces that move like real objects

Lagrangian Pro reaches 1.0 with a frozen API, semantic versioning, React hooks for every part and tests in jsdom and in real Chromium.

By Seya Weber

Lagrangian Pro 1.0 is out. @weber-development/lagrangian-pro and @weber-development/lagrangian-pro-react are on GitHub Packages for every Lagrangian Pro licence. The API is the same as in 0.9, so updating is a version bump.

What 1.0 means

From now on Lagrangian Pro follows semantic versioning. A minor version adds parts and options, a patch fixes bugs, and an option or method is only removed in a major version after it has been marked as deprecated. The API reference lists everything that is covered.

What is in it

  • Overlays: bottom sheet with detents, side drawer, modal dialog, popover and a toast stack.
  • Gestures: swipe stack with undo, carousel, pull to refresh, zoom and pan.
  • Reordering: sortable lists, grids and kanban boards with keyboard and screen reader support, scrolling while you drag.
  • Motion: layout transitions for any DOM change, sliding indicators, jelly deformation, ropes and chains, a page effect that lets a section fall apart, and synthesized impact sounds.
  • React: a hook for every part, tested with React 18 and 19 and Strict Mode.
  • Quality: unit tests in jsdom and end-to-end tests in real Chromium on every change, a written accessibility overview and recipes for a form in a sheet, an image gallery and a kanban board.

Everything runs on the free Lagrangian physics, which stays MIT licensed.

Upgrading

Update both packages and read Migrating to 1.0; it is short.

Package in this post

Lagrangian

Animation with real physics: springs that keep their momentum when interrupted, throws with friction onto snap points, and a small 2D world with gravity, collisions, joints and rolling. About 10 kB.

pnpm add @sweberdev/lagrangian
View package

Related posts