26 December 2018 - The 'hidden' Attribute - Finally a way to 'abuse' INPUT safely
By Jason M. Knight (aka Deathshadow)

For a while now as we've transitioned from using JavaScript for things like menus and modals to CSS using pseudo-classes such as :checked, there has been the problem that for non-CSS users you end up with a empty unassociated checkbox and label in the markup. This could be considered bad accessibility and confusing to users who do not get your screen media layout.

But now the W3C has added the hidden attribute to the HTML specification:


By using it all modern UA's are supposed to ignore the element as if it does not exist. Whilst this doesn't help in older user agents, it is a step in the right direction and is supported by Gecko, Blink, and Chakra... meaning support is surprisingly far along. No shock really though, since it's basically treated as display:none; -- just even screen readers and CSS disabled it is supposed to be obeyed.

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.

13 April 2018 - Elementals 3.6.4 Relased!
By Jason M. Knight (aka Deathshadow)


This latest update to elementals.js brings with it some code efficiency improvements that speeds up some functions and shrunk others, making room for some new functionality. At 7.71k in size gzipped and minified it still fits under the 8k hard ceiling we have set for a code limit... more than enough room to add a few new features shoould anything come up.

The most noteworthy addition to the codebase is the forceThis argument on _.Event.add(), which lets you pass an object that inside the event callback will be treated as the this object. It is passed using Function.call() so that the headaches -- and legacy compatibility woes -- of Function.bind don't get involved. Be warned though, this means that if you omit said parameter inside your event callbacks this will be NULL.


  • 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