The Yahoo! User Interface Library ( YUI ) is a discontinued open-source JavaScript library for building richly interactive web applications using such techniques 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 in February 2006. [1] Yahoo! engineers.

In September 2009, Yahoo! released YUI 3, a new version of 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, and a variety of methods for making data 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 main 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 YUI by Yahoo! JavaScript libraries by developers, and the proliferation of server-side solutions. Future development will be limited to maintenance releases that are “absolutely critical to Yahoo properties.” [5]

Features

The YUI Library is fully documented on its website; detailed API documentation accompanies the library download. It has six types of components: YUI core, utilities, UI controls, CSS components, developer tools, and build tools.

Core

The YUI Core is a light (31KB minified) set of tools for event management and DOM manipulation.

YUI Global Object
The YUI Global Object contains language utilities, a script loader, and other baseline infrastructure for YUI.
Dom Collection
Helps with common DOM scripting tasks, Including element positioning and CSS management style.
Event Utility
Provides developers with easy and safe access to browser events (such as mouse clicks and key presses). It also provides the Custom Event object for publishing and subscribing to custom events.

Utilities

Animation
Helps create “effects” by animating the position, size, opacity or other characteristics of page elements.
Browser History Manager
Helps web applications use the browser’s back button and bookmarking functionality.
Connection Manager
Helps manage XMLHttpRequest transactions in a cross-browser fashion. It has integrated support for form posts, error handling , callbacks and file uploading.
cookie
Allows you to manage cookies and subcookies through a simple API.
DataSource
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 it simpler to use the same functions as adding listeners, manipulating the DOM, and setting and getting attributes.
Get
CSS files. The Get Utility supports the data loading.
ImageLoader
YUI’s ImageLoader makes it easy for you to load up the images that are not visible in the viewport. 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 data to a JavaScript JSON-formatted string. These methods are based on Douglas Crockford ‘s work at JSON.org.
Resize
Allows you to make any block-level HTML element resizable.
Selector
The YUI Selector Utility allows you to grab references to HTML elements via CSS3 selector syntax.
YUI Loader
YUI Loader is a client-side loader that can dynamically load any YUI component (and dependencies) on the fly.

Controls

AutoComplete
Provides autocomplete feature (suggestion lists and type-ahead functionality) for user interactions involving text-entry. It supports a variety of data-source formats. It also supports server-side data-sources via XMLHttpRequest.
button
Enables the creation of rich, graphical buttons that function like traditional HTML form buttons.
Calendar
A graphical, dynamic control used for date selection.
Charts
The Charts Control retrieves data via the DataSource Utility and displays the data in a variety of common formats (line, bar, pie, etc.).
Color Picker
The Color Picker Control provides a rich visual interface for color selection.
container
Supports a variety of DHTML windowing patterns including Tooltip , Panel, Dialog, SimpleDialog, Module and Overlay.
DataTable
Simple yet powerful API to display accessible screen-reader tabular data on a web page. Notable features include sortable columns, pagination, scrolling, row selection, resizable columns, and inline editing.
ImageCropper
ImageCropper provides the UI and interactive elements for a client-side image cropper.
Layout Manager
Allows you to create cross-browser, pixel perfect layouts with little effort by providing a fixed layout containing, top, bottom, left, right and center layout units.
Menu
Provides an easy API for creating fly-out menus , menu bars, and context menus.
Rich Text Editor
The YUI Rich Text Editor is a sophisticated client-side text-processor that is modular and highly configurable, suitable for any open-ended text-entry situation.
slider
Provides a generic slider element that allows the user to choose from a range of values ​​on one or two axes.
TabView
Provides navigable tabbed views of content; supports dynamic loading of tab content via XMLHttpRequest.
TreeView
Produces a content tree whose nodes can be expanded and contracted.
Uploader
Allows for multi-file upload with feedback on upload progress.

CSS resources

CSS Base
Cross-browser replacement for the standard browser CSS rules to which web developers are accustomed.
CSS Grids
Seven basic page wireframes with subsection components to support over 1000 different page layouts.
CSS Fonts
Standardized cross-browser makes families and size rendering.
CSS Reset
CSS statements remove margins and standardize cross-browser rendering on common elements.

Developer tools

Logger
Provides a quick and easy way to write log messages to an on-screen console, the Firebug extension for Mozilla Firefox , or the Safari JavaScript console.
Profile
A cross-browser, non-visual code profiler for JavaScript.
ProfilerViewer
Used in combination with Profiling to provide rich visualizations of your data profiling – 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 JavaScript. While not a direct port of any specific XUnit framework, YUI Test does derive some features from nUnit and JUnit.

Build tools

YUI Compressor
YUI Compressor is a tool that uses JavaScript and CSS safely.
YUIDoc
YUIDoc is a tool written in JavaScript that generates JavaScript API documentation. 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.

See also

  • Comparison of JavaScript frameworks
  • CSS framework

References

  1. ^ Jump up to:b “The Yahoo! User Interface Library ‘ . Yahoo! User Interface Blog . February 13, 2006.
  2. Jump up^ “YUI 3.17.2 Released” . http://www.yuiblog.com . Retrieved 14 September 2014 . External link in( help ) |publisher=
  3. Jump up^ “YUI Library” . Retrieved 13 June 2008 .
  4. Jump up^ “YUI 3.0.0: First GA Release of YUI’s Next-Generation Codeline” . Yahoo! User Interface Blog . September 29, 2009 . Retrieved 18 November 2009 .
  5. Jump up^ “Important Announcement Regarding YUI” . Yahoo! Engineering . Retrieved 29 August 2014 .