- Rewrote Support This Project section.
- Enhanced Become a Community Sponsor section to reflect the heart behind Triggle and why sponsorship truly matters
- Clarified how sponsorship directly supports ongoing open-source development and community education
These updates aim to connect more deeply with users, attract meaningful support, and build a shared sense of purpose around motion and creativity.
Thanks for believing in open-source and supporting tools made with love
- Removed the standalone
COMMERCIAL_LICENSE.mdfile from the repository- License details for Triggle will now be maintained within the main project documentation (
README.mdand/docs) to reduce redundancy and streamline license management - Commercial usage terms remain the same, but will be easier to find and updated alongside core documentation
- License details for Triggle will now be maintained within the main project documentation (
- This change does not affect the licensing terms or dual-licensing structure (Parity for open-source, commercial for proprietary use)
- If you're using Triggle in a commercial or client project, please refer to the updated documentation for licensing and purchasing instructions
Changed
- Removed the standalone
COMMERCIAL_LICENSE.mdfile for Triggle.
Licensing details will be consolidated into the main documentation to reduce clutter and improve clarity.
- Updated project license to Apache License, Version 2.0
- Introduced a
NOTICEfile with attribution details for legal clarity- Author: Shafayetul Islam Pavel
- Project: Triggle
- Attribution is now required when using, modifying, or redistributing the software
- Updated all instances of
triggle.jsto Triggle in README for consistent branding and cleaner presentation.
data-triggle-target: New attribute to animate elements other than the trigger itself- Preset support via
data-triggle-presetusing{css}animationclasses likeca__fx-bounceIn - Manual control via
window.triggle.apply(...)now works as expected
- More robust
getTargetElements()logic — supports document-wide target lookups - Modular architecture ready for scale (MutationObserver, cache, scroll observers, etc.)
- Animation would not trigger when
data-triggle-targetreferenced an external element - Cleaned up event + observer memory handling for safer
.destroy()calls
- README.md now includes clear usage examples for both builds:
triggle.js(unminified, default for bundlers)triggle.min.js(manually importable for production)
- Documented how to import Triggle via:
import 'triggle'import 'triggle/triggle.min.js'<script src="...">using CDN like jsDelivr
- Updated
package.json"exports"field:.maps todist/triggle.js./triggle.min.jsadded as an optional import target
- Ensures consumers can choose between unminified and minified builds
- Improved clarity and modular import support for bundlers
- Dual output build system: Generates both
triggle.js(unminified) andtriggle.min.js(minified) using Vite. - Sourcemaps for both builds for easier debugging.
- Custom
vite.config.jsfor the unminified output. - New
vite.min.config.jsusing@rollup/plugin-terserfor production minification. - File-safe
dist/build process usingemptyOutDir: false.
- Replaced deprecated
rollup-plugin-terserwith@rollup/plugin-terserfor modern ES module compatibility. - Updated
package.jsonscripts:npm run buildnow runs both buildsbuild:minifiedandbuild:unminifiedavailable separately
- Switched license model to dual-license:
- Parity License for open-source and personal use
- Commercial license required for closed-source or revenue-generating projects
- LICENSE updated to reflect Parity 7.0.0
- New COMMERCIAL-LICENSE.md for paid usage terms
- README badge and footer updated for clarity
data-triggle-scrollnow supports scroll-triggered group animations usingIntersectionObserverdata-triggle-staggernow works with scroll-triggered groups- Added support for placing scroll observers separately from animated targets
- Group scroll animation now works even if group items are already in the viewport
- Better modularity of scroll-triggered logic for staggered groups
- Only first 1–2 elements animating when scroll-stagger was used — now resolved by isolating trigger element
- Fully backward compatible with click, hover, chained, and keydown triggers
data-triggle-stagger: Staggered animation delay across grouped elements (e.g., cards, list items)data-triggle-chain-delay: Adds delay before triggering chained animation targetsdata-triggle-group: Now fully supports animating multiple elements simultaneously- New
applyAnimation()chaining support with custom callbacks
- Group animations are now modular and support flexible timing strategies
- Debug logging for groups, chaining, and staggered sequences
- README.md updated with new examples and explanations
- All core features now documented and consistent with HTML attribute usage
- Fully backward compatible with previous
data-triggle,data-triggle-class, and key/mouse event handling
- Passive event listeners for
touchstart,touchend, andscrollto enhance mobile responsiveness - Compatibility fix for Chrome warning about non-passive touch events
- Global trigger control renamed from
window.caTriggertowindow.trigglefor consistency with project branding
- If using manual reinitialization, update your code to
triggle.init()instead ofcaTrigger.init()
- Documented support for key filters using
data-triggle-keyincluding modifier keys and wildcards. - Detailed table of supported triggers in README.
- Examples for delay, duration, and reset usage in README.
- Custom event trigger documentation (
customTriggleEvent).
- Polished the entire README.md content:
- Improved clarity and structure.
- Added CDN and NPM installation instructions.
- Added better attribute reference and examples.
- Enhanced integration tips and usage notes.
- Linked to live demo and cssanimation.io usage.
- Improved documentation for
data-triggleattribute.