The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several core CSS resources. It is available under a BSD License.[3] Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006.[1] It was actively developed by a core team of Yahoo! engineers.

In September 2009, Yahoo! released YUI 3, a new version of YUI rebuilt from the ground up to modernize the library and incorporate lessons learned from YUI 2. Among the enhancements are a CSS selector driven engine, like jQuery, for retrieving DOM elements, a greater emphasis on granularity of modules, a smaller seed file that loads other modules when necessary, and a variety of syntactic changes intended to make writing code faster and easier.[4]

The YUI Library project at Yahoo! was founded by Thomas Sha and sponsored internally by Yahoo! co-founder Jerry Yang; its principal architects have been Sha, Adam Moore, and Matt Sweeney. The library's developers maintain the YUIBlog; the YUI community discusses the library and implementations in its community forum.

On August 29, 2014, it was announced that active development of YUI by Yahoo! would end, citing the evolution of the JavaScript standards, steadily decreasing interest in large JavaScript libraries by developers, and the proliferation of server-side solutions. Future development will be limited to maintenance releases addressing issues which are "absolutely critical to Yahoo properties."[5]

Provides a common configurable interface for other components to interact with different types of data, from simple JavaScript arrays to online servers over XHR.

Drag and drop

The YUI Drag and Drop Utility makes it easy to make elements "draggable" and to create drop targets that respond to drag events.

Element

Provides a wrapper for HTML elements in the DOM and makes simpler common tasks such as adding listeners, manipulating the DOM, and setting and getting attributes.

Get

The Get Utility supports the asynchronous loading of data and scripts through script nodes and the dynamic loading of external CSS files.

ImageLoader

YUI's ImageLoader allows you to defer the loading of images that are not visible in the viewport at the time the page loads. This can result in big performance boosts.

JSON

The JSON Utility provides methods for validation of incoming JSON data to verify that it is safe and methods to convert JavaScript data to a JSON-formatted string. These methods are based on Douglas Crockford's work at JSON.org.

Used in combination with Profiler to provide rich visualizations of your profiling data — both graphically (using the Charts Control) and in tabular format (using DataTable).

YUI Test

YUI Test is a testing framework for browser-based JavaScript solutions. Using YUI Test, you can easily add unit testing to your JavaScript solutions. While not a direct port from any specific xUnit framework, YUI Test does derive some characteristics from nUnit and JUnit.

YUIDoc is a tool written in JavaScript that generates searchable API documentation of JavaScript code. It is typically used as part of a build process. YUIDoc is comment-driven and is compatible with a variety of coding styles and programming languages.