20 December 2018 - Elementals 3.7.0 Final, and Future Roadplan
By Jason M. Knight (aka Deathshadow)


It has been three quarters of a year since the last update. This release -- version 3.7 -- will be the last of the 3.x branch pending a code audit, addition of some 'essential' functionality for modern site construction, and removal of some legacy support.

The biggest thing planned to be removed are the polyfills needed for IE 8/earlier support. Whilst when the original elementals library was created these were an essential tool, this is 2018 not 2008. Since any well written website should have a fallback for if scripting doesn't load, I have come to the conclusion that the best plan for supporting older versions of IE is to simply bomb out completely and not given them scripting at all.

Much of the delay between updates is again my fault, I've been busy working on projects that fill my coffers instead of my personal ones. An equal share of that is the people I entrusted to maintain the site, library, and every other aspect of this project either had their own nefarious purposes, or were as busy as I was and should never have comitted themselves to helping with this.

Hence the need for a proper code audit, a lot of changes were made without approval in 3.4 and I've been struggling to get things back to normal ever since. The current version is now "fixed" and should be problem free, but the struggle to get there has me ready to wholesale pitch large chunks of the codebase that we just don't need anymore.

Functionality improvements that are planned is a 'view' style system so that you can enqueue changes to contents of sections of the DOM to be rendered when code execution ends. Setting a timeout of zero will actually not trigger until after the current scripting ends, making it the ideal way to intercept when changes should be rendered on the DOM if they have not already been manually done. This will allow DOM-JON structures to act as proper templates, without the 'stupidity' other systems use of trying to template using HTML in a manner that isn't always the best for maintaining separation of concerns.

As always if you find any bugs or issues please report them through the contact form on the official site.


  • elementals.js
    A lightweight JavaScript library focusing on cross browser support, ECMAScript polyfills, and DOM manipulation.
  • eFlipper.js
    An image carousel script using elementals.js
  • eProgress.js
    A JavaScript controllable progress bar using elementals.js. Based on the nProgress project that relies on the much heavier jQuery library.


Browse code samples of people I've helped on various forums. These code snippets, images, and full rewrites of websites date back a decade or more, and are organized by the forum username of who I was helping. You'll find all sorts of oddball bits and pieces in here. You find any of it useful, go ahead, pick up the ball, and run with it.


Best Viewed With Eyeballs