Alpine Release Notes
Last updated: Apr 2, 2026
- Apr 2, 2026
- Date parsed from source:Apr 2, 2026
- First seen by Releasebot:Apr 2, 2026
v3.15.11
Alpine ships fixes and usability updates, including CSP cleanup, smoother x-trap scrollbar behavior, template-based x-sort handles, a new x-anchor.noflip modifier, better x-for warnings, and a morph $refs regression fix.
What's Changed
- fix(csp): skip sharedStorage when enumerating globalThis properties by @PierreBultez in #4787
- Fix x-trap.noscroll layout shift conflict with scrollbar-gutter by @dotfrag in #4512
- Add support for [x-sort:handle] attributes defined in template tags by @SimoTod in #4483
- Add x-anchor.noflip modifier by @calebporzio in #4791
- Warn when x-for template has multiple root elements by @calebporzio in #4752
- Fix $refs unavailable during morph (v3.15.9 regression) by @calebporzio in #4793
New Contributors
- @PierreBultez made their first contribution in #4787
- @dotfrag made their first contribution in #4512
Full Changelog: v3.15.10...v3.15.11
Original source - Apr 1, 2026
- Date parsed from source:Apr 1, 2026
- First seen by Releasebot:Apr 1, 2026
v3.15.10
Alpine fixes x-anchor crash during wire:navigate cleanup.
All of your release notes in one feed
Join Releasebot and get updates from Alpine.js and hundreds of other software products.
- Mar 27, 2026
- Date parsed from source:Mar 27, 2026
- First seen by Releasebot:Mar 27, 2026
v3.15.9
Alpine ships a maintenance release with smoother dialog and focus handling, stronger x-model and x-for behavior, improved morph and x-anchor support, better class and attribute handling, and a handful of bug fixes plus performance updates.
What's Changed
- fix(morph): close dialogs properly when removing open attribute by @calebporzio in #4739
- Update tabbable and focus-trap dependencies in focus plugin by @joshhanley in #4737
- feat(x-anchor): allow dynamic reference to be used with x-anchor by @maximbelyayev in #4735
- Handle all types of whitespace in class lists, not just spaces by @calebporzio in #4743
- docs: clearer variable name in x-bind example by @calebporzio in #4742
- Fix x-model.parent when inside of x-teleport by @willrowe in #4676
- feat: x-on.passive.false modifier by @hirasso in #4610
- Add support for Set objects in x-for loop function by @alfanzain in #4672
- Add support for custom options and cancelable $dispatch by @nicolagianelli in #4608
- Fix how x-html handles undefined by @willrowe in #4555
- move dependencies from monorepo root to correct packages by @Igloczek in #4550
- Don't assign the normalEvaluator per default by @JeroenBoersma in #4548
- Fix class setters invocation on nested x-data by @helio3197 in #4528
- 🐛 Masks model updates by @ekwoka in #4175
- Allow debouncing/throttling x-model when using x-modelable by @Spitfire972 in #4186
- UI x-radio: fix keyboard navigation when value of first/last radio option is null by @gdebrauwer in #4308
- Improve handling of autocomplete values in X-Mask by @robertmarney in #4260
- ⚡ Improves x-for performance by @ekwoka in #4361
- Fix x-ref crash during child-element morph by @calebporzio in #4748
- Fix $watch oldValue for objects by @calebporzio in #4749
- Escape attribute values in morph setAttribute patch by @joshhanley in #4770
- Fix x-model setting .value instead of .checked on checkboxes by @ganyicz in #4779
- Fix x-model.blur crash when input is removed from a form by @joshhanley in #4783
New Contributors
- @maximbelyayev made their first contribution in #4735
- @hirasso made their first contribution in #4610
- @alfanzain made their first contribution in #4672
- @nicolagianelli made their first contribution in #4608
- @Igloczek made their first contribution in #4550
- @JeroenBoersma made their first contribution in #4548
- @helio3197 made their first contribution in #4528
- @Spitfire972 made their first contribution in #4186
- @robertmarney made their first contribution in #4260
Full Changelog: v3.15.8...v3.15.9
Original source - Feb 2, 2026
- Date parsed from source:Feb 2, 2026
- First seen by Releasebot:Feb 3, 2026
v3.15.8
- Feb 2, 2026
- Date parsed from source:Feb 2, 2026
- First seen by Releasebot:Feb 2, 2026
v3.15.7
- Jan 30, 2026
- Date parsed from source:Jan 30, 2026
- First seen by Releasebot:Jan 31, 2026
- Jan 26, 2026
- Date parsed from source:Jan 26, 2026
- First seen by Releasebot:Jan 26, 2026
v3.15.5
- Jan 13, 2026
- Date parsed from source:Jan 13, 2026
- First seen by Releasebot:Jan 14, 2026
v3.15.4
- Dec 16, 2025
- Date parsed from source:Dec 16, 2025
- First seen by Releasebot:Dec 23, 2025
v3.15.3
Changes
- Improve evaluator #4711
- fix add support for ShadowRoot in findClosest function and export of injectMagics/initInterceptors #4699
- fix(docs): initialise data, fix typo in x-on example #4701
- Nov 15, 2025
- Date parsed from source:Nov 15, 2025
- First seen by Releasebot:Dec 23, 2025
v3.15.2
- Oct 26, 2025
- Date parsed from source:Oct 26, 2025
- First seen by Releasebot:Dec 23, 2025
v3.15.1
Changed
- x-sort improvements
- CSP build allowGlobals now defaults to false instead of true
- Sep 3, 2025
- Date parsed from source:Sep 3, 2025
- First seen by Releasebot:Dec 23, 2025
v3.15.0
Changed
- Improve CSP build #4671
- Add Alpine.morphBetween() #4629
- style: use let instead of var in x-model.js #4645
- style: use let/const instead of var in debounce.js #4644
- style: remove useless param #4650
- feat(persist): add 'exports' field for proper ESM/CJS resolution #4611
- Fix Chrome warning when using x-trap.inert #4640
- Fixes license #4647
- Mar 12, 2025
- Date parsed from source:Mar 12, 2025
- First seen by Releasebot:Dec 23, 2025
v3.14.9
What's Changed
- Fix focus documentation example code by @iamshcc in #4496
- Add skip children to morph by @joshhanley in #4568
New Contributors
- @iamshcc made their first contribution in #4496
Full Changelog: v3.14.8...v3.14.9
Original source - Dec 23, 2024
- Date parsed from source:Dec 23, 2024
- First seen by Releasebot:Dec 23, 2025
v3.14.8
- Dec 6, 2024
- Date parsed from source:Dec 6, 2024
- First seen by Releasebot:Dec 23, 2025