Announcing YUI 3.9.0

By YUI TeamMarch 13, 2013

We have released YUI 3.9.0 today. It is now available via Yahoo! CDN, download, and npm. The YUI Library website has been updated with the latest documentation.

This release has seen quite a progression of features and fixes since YUI 3.8.1 and the subsequent Preview Releases. Some of these are highlighted below.

Responsive Grids and Chrome 25 Fix

Tilo Mitra (@tilomitra) has continued the work started in his ongoing gridbuilder development and folded this into CSSGrids. He's introducing a new file structure that creates cssgrids-responsive.css which includes cssgrids-units.css, cssgrids-base.css, and cssgrids-responsive-base.css. This also changes the classname yui3-g-responsive to yui3-g-r. Also he's merged in changes to deprecate CSSBase and replace it with Normalize.css. What this means for you as a developer is that you can take advantage of Normalize.css in Forms, Tables, Lists and much more. You can use Normalize.css in a whole page context as well as in a more isolated way (for say an embedded widget) via a new class .yui3-normalized. For more details check out the pull request.

Note: also included in this release is a fix for anyone using YUI Grids. Chrome 25 has added word-spacing for inline-block elements which breaks YUI Grids because they become over-collapsed. This patch fixes that. You can get the updated YUI Grids styles without having to update any of your YUI javascript. You can simply update the CSS file you are linking to on the CDN - separate from your javascript.

You can check out the Grid Builder on GitHub as well as Skin Builder from Jeff Conniff (@jeffconniff). Both of these applications are continually updated, so please feel free to file issues or pull requests!


Ryan Grove (@yaypie) has been working on a tree module as a part of his work at SmugMug and has taken the next steps via a pull request to get it into YUI. The description on the request gives a good idea of the speed and utility of this new module. Note that his is not a TreeView, but is a lower level data structure that can support items like Menu, TreeView, or a DOM node.

A+ Compatible Promises

Juan Dopazo (@juandopazo) and Luke Smith (@ls_n) have been working hard on a new module for promises called <a href="">Y.Promise</a>. This has been named promise instead of deferred to avoid confusion and there is an additional object called Y.Promise.Resolver which behaves like the old deferred. You can find more detail about this module on the pull request description.

Graphics and Charts

Tripp Bridges made many behind-the-scenes changes to refactor Charts (see this pull request for details) as well as Graphics (via this pull request).

Deprecated and Removed Modules

datatable-deprecated and uploader-deprecated have been removed. substitute has been moved to deprecated status. You should use Y.Lang.sub or Y.Template instead. If you rely on substitute in your codebase, this is a good time to start migrating to these alternative methods. Also note, Y.Template has added the concept of default options. CSSBase is also being deprecated in this release (see below). Also deprecated are node-menunav and node-focusmanager which have no replacements yet but this is meant to notify developers so they can focus on other modules.

And More!

The number of community pull requests and issues has been steadily increasing since we have introduced our Contributor Model and associated Contributor Mailing List. There were a total of 374 commits by 17 authors between pr1 and pr3 and over 627 total commits by 18 authors between 3.8.1 and 3.9.0. You can find further details about this release by reviewing the previous blog entries for PR1, PR2, and PR3. Also check out the change history rollup for this release.