YUI 2.8.0: Storage Utility, ProgressBar Control, Swf and SwfStore Utilities

By YUI TeamSeptember 14, 2009

The YUI team and project contributors are pleased to announce the immediate availability of YUI 2.8.0. This release brings in four new components (Storage Utility, SWFStore Utility, SWF Utility, and the ProgressBar Control) along with hundreds of fixes and enhancements. George Puckett's release notes for YUI 2.8.0 provide a comprehensive overview of the changes.

Download the Core YUI package; ~13KB.
Download the Core YUI package plus the YUI Loader; ~19KB.
Download the full YUI developer package, including source, documentation and more; ~14MB.
Visit YUI on GitHub
Configure your YUI implementation using the YUI Configurator.

New for 2.8.0

Four significant components make their debut in this release:

  • The YUI Storage Utility provids a common interface into backends supplied by HTML 5, Flash, and Gears.Matt Snider's Storage Utility: Matt is the lead frontend engineer (and the first employee) at Mint.com (which uses YUI extensively; congratulations on their big news today) and the author of a popular JavaScript blog. Matt contributed the Storage Utility for 2.8.0, a meta-component for client-side storage that provides HTML5-style local and session storage interfaces across various storage mechanisms. With this initial release, Storage can employ one of three storage mechanisms: HTML5 Storage, Google Gears, and storage via the Flash Shared Object. With HTML5-capable browsers growing share rapidly, and with the prevalence of Flash as a fallback, this gives you reliable coverage for the vast majority of your users. The Storage API allows you to specify which of these three mechanisms to use and in what order to try them.
  • Daniel Barreiro (Satyam)Satyam's ProgressBar Control: Satyam (Daniel Barreiro) is best known to the YUI community as one of the foremost experts on YUI's powerful DataTable Control, and he's the author of important tutorials that have helped tens of thousands of developers make full use of DataTable. He's also known as one of the most helpful members of the YUI community. With 2.8.0, Satyam contributes a new component, the ProgressBar, that further deepens YUI's portfolio of UI controls. ProgressBar offers a convenient API, a wide range of custom events, and full support for Animation and its wide range of easing effects.

    Basic ProgressBar example.
  • Alaric Cole's SWFStore Utility: SWFStore provides the Flash Shared Object functionality to the meta Storage Utility and comprises a JavaScript API for storing text data with FSO. SWFStore supports on-the-fly gzipping of your stored key/value pairs, which helps you get better mileage out of Flash's 100KB default limit (this can be extended if the user permits). While many developers will use SWFStore in the context of Storage Utility, we've also presented it as a standalone feature for those who wish to use it directly.
  • Allen Rabinovich's SWF Utility: In 2.8.0, we've broken out Flash detection and embedding functionality into a separate shared utility. We have begun moving YUI's hybrid Flash/JS components — including Charts and SWF Store — onto Allen's new base component. (Note: If you only want to check for Flash version, you can independently included the swfdetect module, which populates YAHOO.env.ua.flash.

Additional Highlights

  • Cross-Domain Support in Connection Manager: Connection Manager (YUI's XMLHttpRequest component) gets support for basic cross-domain (XDR) requests in 2.8.0. We have implemented the Flash-based XDR mechanism that was first released as part of the YUI 3 IO component. We've also broken out core Connection Manager functionality into a connection-core module, reducing your code footprint if you're only using the basic XHR capability. Head over to the Configurator to update your dependency list if you want to opt in to this more slender package.
  • Event delegation example on the YUI website shows how to use the new event delelgate support to reduce the number of event listeners on the page while building rich, event-driven web apps.Event Delegation Support in Event Utility: YUI has long included a detailed event delegation example/tutorial, and we talked up the technique here on YUIBlog back in 2007. With 2.8.0, Todd Kloots has built support for event delegation directly into the library with the new Event Delegate module, bringing 2.8.0 to parity with the event delegation support we delivered in YUI 3.
  • Carousel Gets a Gallery: Andres Narvaez and Gamaiel Zavala, frontend engineers for Yahoo!'s media properties, have worked with Gopal Venkatasen to extend the YUI Carousel Control to provide "gallery-style" support with multiple rows of items. At Yahoo!, Andres and Gamaiel have implemented this feature on redesigned video galleries for sites like Yahoo! Sports:

  • Calendar Control with year offset example on the YUI website.Calendar Adds Support for Year Offsets: The new year_offset configuration property in the Calendar Control provides support for calendaring systems that are fundamentally Gregorian but whose zero-year is different than 0 C.E. (the Thai calendar is one of several such systems).
  • Dual Axis Support in Charts: Tripp Bridges has been hard at work on YUI Charts, and among many improvements for 2.8.0 he has added support for multi-axis charts.
    Multi-axis chart example.
  • Much More: Hundreds of bug fixes and enhancements are included in YUI 2.8.0; George Puckett's release manifest provides component-by-component details of these changes.


Some of the most interesting new work in YUI 2.8.0 (including Matt's Storage and Satyam's ProgressBar) come from outside of Yahoo, and community involvement in the project continues to grow month by month. To those of you who contributed timely bug fixes and enhancements in this release, and to the hundreds who helped refine the library through high-quality enhancement requests and bug reports, thank you!

What's Next?

YUI 2 development and maintenance continues. You can follow this work on YUILibrary.com, where the Roadmap will soon tick over to the priority list for 2.9.0. As bug fixes roll into the YUI 2 development tree, you can follow them in near-real time on GitHub. If there's anything that's not moving fast enough for you, fork the repo, sign a CLA, and start making pull requests.

The team remains hard at work on YUI 3, and we're now finalizing the documentation for the upcoming 3.0.0 GA release that will bring the new YUI 3 core and most utilities out of beta. YUI 3 is also available on GitHub, so feel free to clone the YUI 3 repo and start exercising the upcoming release. Beyond the GA, we'll continue to work on bringing widgets to YUI 3 on the new Widget stack and making it easier for the community to make contributions across the project.