All notable changes to EaseMotion CSS are documented here.
Format follows Keep a Changelog.
This release transforms EaseMotion CSS from a CSS utility library into a full animation engineering platform — adding a runtime motion engine, interactive playground, performance benchmarks, and a comprehensive test suite.
A four-module animation DSL compiler and runtime:
parser.js— Tokenizesem=""attribute strings into a typed AST.
em="fade-in 500ms ease-out delay-200ms repeat-2"→ structured object.compiler.js— Converts AST into minimal CSS rules with stable hash-based class names. Automatically injectsprefers-reduced-motionguards on every compiled rule.runtime.js—MutationObserver-powered browser runtime. Watches forem=""attributes, compiles them, and injects CSS on-the-fly. Auto-starts onimport 'easemotion-css/engine'. Fully degrades when JS is disabled — pure CSS classes still work.optimizer.js— Build-time CSS tree-shaker. Strips unused@keyframesand.ease-*classes from the bundle based on what your HTML actually uses.easemotion/index.js— Public entry point. Re-exports all engine APIs.
Usage example:
<!-- No class needed — the engine compiles and injects the CSS -->
<div em="slide-up 800ms spring delay-100ms"></div>
<script type="module">
import 'easemotion-css/engine'; // opt-in
</script>Zero-dependency animation studio hosted on GitHub Pages:
- Live preview of all animations with real-time parameter controls
- Duration slider (100ms–3000ms), easing selector, delay, repeat
- Three output modes: CSS class,
em=attribute, npm/CDN snippet - One-click copy button for any output format
bundle-size.mjs— measures gzip size vs Animate.css and Framer Motionbenchmarks.yml— GitHub Actions CI workflow that runs on every release tag and commits results back tobenchmarks/results/latest.json
tests/engine.test.js— 29 new unit tests for parser, compiler, and optimizer- Total test suite: 61 tests (up from 32)
package.jsonbumped tov1.2.0- Added full ESM
exportsmap — tree-shaking-aware bundlers (Vite, Rollup, webpack 5) can now import individual engine modules:import { parse } from 'easemotion-css/engine/parser'; import { compile } from 'easemotion-css/engine/compiler'; import { optimizeHtml } from 'easemotion-css/engine/optimizer';
- Added
benchmarkandbenchmark:fpsnpm scripts - Added
test:watchscript (vitestin watch mode) - Description and keywords updated to reflect animation engine positioning
- Zero breaking changes. The engine is fully opt-in. Pure CSS users (
<link rel="stylesheet">) are completely unaffected. - The
em=""runtime requires JavaScript. CSS class-based animations work without any JS.
.ease-text-underline-draw— Animated left-to-right underline drawing on hover.ease-text-strikethrough-draw— Animated strikethrough sweep across text.ease-text-gradient-flow— Smooth 3-color looping text gradient animation.ease-ambient-glow— Pulsing glowing ambient box-shadow background utility.ease-glass-card— Glassmorphism card utility with backdrop blur and border styling
- Bumped package version to
1.1.0and updated minified bundle builds - Streamlined
submissions/examples/directory by pruning 152 redundant duplicate clone folders while maintaining clean representative submissions
EaseMotion CSS v1.0.0 is the first public release of the framework. This version establishes the core architecture, animation system, component library, and contribution pipeline.
-
core/variables.css— Complete design token system- Transition speeds:
--ease-speed-fast,--ease-speed-medium,--ease-speed-slow - Easing curves:
--ease-ease,--ease-ease-out,--ease-ease-bounce - Color palette: primary, success, danger, warning, neutrals (50–900 scale)
- Glow tokens:
--ease-glow-primary,--ease-glow-success,--ease-glow-danger - Spacing scale:
--ease-space-1through--ease-space-16 - Border radius scale, shadow system, typography tokens, z-index scale
- Transition speeds:
-
core/base.css— Reset and typographic foundation- Box-model reset, smooth scroll, font smoothing
- Inter (Google Fonts) as default sans-serif
- Semantic element defaults: headings, paragraphs, links, lists, code, pre
- Accessible focus ring, custom selection color
-
core/animations.css— Animation library (12 keyframes, 20+ classes)- Entrance:
ease-fade-in,ease-fade-out,ease-slide-up,ease-slide-down,ease-slide-in-left,ease-slide-in-right,ease-zoom-in,ease-flip - Looping:
ease-bounce,ease-rotate,ease-pulse,ease-ping,ease-shake - Hover:
ease-hover-grow,ease-hover-shrink,ease-hover-glow,ease-hover-lift,ease-hover-underline - Stagger delays:
ease-delay-75,ease-delay-100,ease-delay-150,ease-delay-200,ease-delay-300,ease-delay-400,ease-delay-500,ease-delay-600,ease-delay-700,ease-delay-800,ease-delay-1000 - Duration overrides:
ease-duration-fast/medium/slow prefers-reduced-motionsupport
- Entrance:
-
core/utilities.css— 80+ layout and styling utilities- Display:
ease-block,ease-flex,ease-grid,ease-hidden - Flexbox:
ease-center,ease-flex-col,ease-items-*,ease-self-*,ease-justify-* - Grid:
ease-grid-cols-1/2/3/4,ease-grid-auto - Gap, padding, margin scales
- Width/height, container, positioning, overflow
- Typography: size, alignment, weight, transform
- Color: text and background variants
- Border, radius, shadow, opacity, cursor
- Responsive helpers (
ease-sm-*)
- Display:
-
components/buttons.css— Full button system- Variants: primary, success, danger, outline, ghost, link
- Sizes: sm, base, lg, xl
- Modifiers: pill, block, icon, loading spinner
- States: disabled, active
ease-btn-hover— composable lift+glow hover animation- Button group layout
-
components/cards.css— 12 card variants- Base card with header/body/footer sections
- Modifiers: shadow, hover, glow, flat, outlined, glass, accent, image, compact, horizontal
- Alert colors: info, success, danger
- Stat card with value + label layout
ease-hover-grow— [INTEGRATED] fromsubmissions/examples/hover-grow/ease-hover-shimmer— [INTEGRATED] fromsubmissions/examples/hover-shimmer/ease-card-lift— [INTEGRATED] fromsubmissions/examples/card-lift/
easemotion.css— Single-import entry pointexamples/demo.html— Interactive showcase with dark theme, click-to-replay animationsdocs/index.html— Full sidebar documentation sitesubmissions/— Curated contribution pipelinesubmissions/README.md— Full workflow guidesubmissions/examples/hover-grow/— Reference submission (integrated)submissions/examples/hover-shimmer/— Reference submission (integrated)submissions/examples/card-lift/— Reference submission (integrated)submissions/examples/button-glow/— Pending review
.github/CODEOWNERS— Maintainer enforced on all critical paths.github/ISSUE_TEMPLATE/feature_request.md— Structured feature request template.github/PULL_REQUEST_TEMPLATE.md— Strict PR checklist.gitignore
See VISION.md for the long-term direction.
Maintained by Saptarshi Sadhu