YUI Library
| Company type | Open-source software library |
|---|---|
| Industry | Software development |
| Founded | 2005 |
| Founder | Thomas Sha, Jerry Yang (internal backing) |
| Defunct | 2014-08-29 |
| Fate | Discontinued, maintenance only |
| Headquarters | Sunnyvale , United States |
Area served | Worldwide |
Key people | Thomas Sha, Adam Moore, Matt Sweeney |
| Products | JavaScript library, CSS assets, developer tools, build tools |
| Owner | Yahoo! |
| Website | https://yuilibrary.com/ |
Yahoo! User Interface Library (YUI) was an open-source JavaScript library created to develop dynamic web applications utilizing technologies such as Ajax, DHTML, and DOM scripting. It also offered core CSS assets and was released under a BSD License. Initiated in 2005, Yahoo! integrated YUI into services like My Yahoo! by that summer. The library became publicly accessible in February 2006 and was actively maintained by Yahoo! engineers.
In September 2009, Yahoo! introduced YUI 3, a comprehensive redesign aimed at modernizing the framework and applying insights gained from YUI 2. This version featured a CSS selector-based mechanism for DOM element retrieval, improved modularity through smaller seed files that load modules as needed, and syntax enhancements to simplify coding practices.
YUI’s original creators included Thomas Sha, with internal backing from Yahoo! co-founder Jerry Yang. The lead developers were Sha, Adam Moore, and Matt Sweeney. The team managed the YUIBlog, while user interaction occurred via community forums.
On August 29, 2014, Yahoo! declared the cessation of active YUI development due to the evolution of JavaScript standards, reduced demand for extensive libraries, and the growing preference for server-side alternatives. Subsequent releases were limited to essential maintenance supporting Yahoo’s own platforms.
Features
The YUI Library offers comprehensive online documentation alongside detailed API references included in the distribution package. It consists of six categories: YUI core, utilities, UI controls, CSS components, developer tools, and build tools.
Core
The YUI Core is a compact (31KB minified) toolkit designed for event handling and DOM operations.
- YUI Global Object
- Incorporates language utilities, a script loader, and fundamental infrastructure.
- Dom Collection
- Supports frequent DOM scripting functions such as element positioning and managing CSS styles.
- Event Utility
- Facilitates straightforward interaction with browser events like mouse clicks and key presses, also enabling custom event creation and subscription.
Utilities
- Animation
- Allows developers to create animated transformations on page elements including position, size, and opacity.
- Browser History Manager
- Helps web applications leverage the browser’s back button functionality and bookmarking.
- Connection Manager
- Handles cross-browser XMLHttpRequest processes with capabilities for form submissions, error management, callbacks, and file uploads.
- Cookie
- Provides an API to manage browser cookies and subcookies efficiently.
- DataSource
- Offers a unified interface for components to access diverse data types ranging from JavaScript arrays to remote servers via XHR.
- Drag and drop
- Enables elements to be "draggable" while creating interactive drop zones.
- Element
- Wraps around HTML elements to simplify adding event listeners, manipulating the DOM, and managing attributes.
- Get
- Supports asynchronous retrieval of data, scripts, and external CSS resources.
- ImageLoader
- Delays loading images outside the viewport to enhance performance.
- JSON
- Validates incoming JSON data and converts JavaScript objects into JSON strings following JSON.org standards.
- Resize
- Makes any block-level HTML element resizable by users.
- Selector
- Provides selection of HTML elements using CSS3 selector syntax.
- YUI Loader
- Dynamically loads YUI components along with their dependencies on the client side.
Controls
- AutoComplete
- Delivers autocomplete functionality featuring suggestion lists and type-ahead support for text inputs, compatible with various data sources including server-side retrieval via XMLHttpRequest.
- Button
- Generates visually enhanced buttons that operate similarly to standard HTML form buttons.
- Calendar
- Provides an interactive graphical date picker.
- Charts
- Utilizes the DataSource Utility to fetch data and render visualizations such as line, bar, and pie charts.
- Color Picker
- Offers a graphical user interface for selecting colors.
- Container
- Implements DHTML windowing models including Tooltip, Panel, Dialog, SimpleDialog, Module, and Overlay components.
- DataTable
- Presents accessible tabular data with capabilities like sortable columns, pagination controls, scrolling, row selection, resizable columns, and inline editing options.
- ImageCropper
- Supplies user interface elements enabling client-side image cropping with interactive controls.
- Layout Manager
- Assists in creating pixel-precise layouts across browsers with fixed units positioned at the top, bottom, left, right, and center.
- Menu
- Facilitates the development of fly-out menus, menu bars, and context menus with ease.
- Rich Text Editor
- A customizable modular client-side text editor designed for flexible text input scenarios.
- Slider
- Introduces a slider component allowing users to select values within defined ranges along one or two axes.
- TabView
- Supports tabbed navigation with content loading dynamically through XMLHttpRequest.
- TreeView
- Constructs hierarchical content trees that can be expanded or collapsed.
- Uploader
- Enables uploading multiple files simultaneously while providing progress indicators.
CSS resources
- CSS Base
- Establishes a uniform cross-browser baseline by applying Reset techniques that override default browser CSS rules familiar to developers.
- CSS Grids
- Provides seven fundamental page templates with elements supporting more than 1000 distinct page layouts.
- CSS Fonts
- Ensures consistent rendering of font families and sizes across different browsers.
- CSS Reset
- Eliminates default margins and normalizes cross-browser display of common HTML elements.
Developer tools
- Logger
- Allows rapid logging output to an on-screen console or integrates with Firebug for Firefox and Safari’s JavaScript console.
- Profiler
- A cross-browser JavaScript code profiler that operates without a visual interface.
- ProfilerViewer
- Complements Profiler by presenting profiling results graphically using the Charts Control and in tabular form via DataTable.
- YUI Test
- A browser-based JavaScript testing framework supporting unit tests inspired by nUnit and JUnit methodologies.
Build tools
- YUI Compressor
- Efficiently minifies JavaScript and CSS files while preserving safety.
- YUIDoc
- Produces searchable API documentation derived from JavaScript source code comments, commonly integrated into automated build workflows.