The Yahoo! User Interface Library

By YUI TeamFebruary 13, 2006

The Yahoo! User Interface Library is a collection of JavaScript components that help developers enrich web applications with desktop-style, event-driven interactions. We’ve focused on creating a lightweight and modular library with an a la carte deployment style, minimizing the pageweight associated with this move toward greater richness. During the past six months, we’ve seen much enthusiasm for the library and rapid adoption among Yahoo!’s front-end engineers. All of us who do web development at Yahoo! are committed to improving the sharpness and immediacy of our products’ interfaces, and we see this platform as an important element of that effort.

These are industrial-grade components. Their design has benefited from the input of more than 100 web engineers at Yahoo!, and we’re working hard to make usage both clear and flexible. Each utility and widget in the library has been battle-hardened in the browsers of millions of users and in the aggregate this code provides the foundation for some of our most heavily trafficked applications, including the My Yahoo! customizable news portal. Each member of the library supports the full suite of A-grade Browsers within our Graded Browser Support scheme, providing a consistent cross-browser platform for developing richly interactive features. In short, these are the same utilities and widgets that power an increasingly broad spectrum of Yahoo! properties today; they are alive in our flagship products and at massive scale; we’re committed to this library’s growth and refinement because we’re committed to being more ambitious in the interactive idioms we create for Yahoo!’s 400 million users.

Best of all, and in the spirit of other excellent libraries in the JavaScript ecosystem, the Yahoo! User Interface Library is free for all developers to implement and deploy thanks to a wide-open BSD license. This work represents some of the best we have to offer, and we’re really pleased to be able to share this evolving work with you — even as it continues to evolve.

The creation and open-sourcing of the Yahoo! User Interface Library highlights two of our core convictions about the current state of the Web and the nature of front-end engineering:

  1. Web users in the mainstream are demanding more from the Web today. For a decade, we’ve operated within a browser canvas characterized by reduced expectations. Users have been taught to expect dramatically less from web applications than from similar applications on the desktop. Innovative companies — including Yahoo!, but also including prominent competitors (like Google) and creative new entrants (like Zimbra) — are helping to break down the dichotomy between browser and desktop interactions. In order to do this effectively, we’re all challenged to improve the tools available for in-browser development so that product designers can demand more and so that we as engineers can deliver.
  2. A rising tide lifts all boats. We’ve been inspired and motivated by the work done on other open-source JavaScript libraries — Sam Stephenson at Protoype, Thomas Fuchs at Scriptaculous, and Alex Russell at Dojo, to name just three. While these existing resources weren’t a perfect fit for Yahoo! when we began work on the Yahoo! User Interface Library almost a year ago, their continued growth and excellence exemplify why we love this discipline: Front-end engineers are more committed than anyone in the industry to the idea that a rising tide lifts all boats, to the notion that the more we do to improve users’ experience across the Web the better it is for all of us who create and compete in its economy. From the beginning, we wanted to make sure that the Yahoo! User Interface Library would be a part of this process — an acknowledgement of how much we value our community’s creativity and openness and a small, hopefully meaningful reciprocation for all the learning and inspiration provided by our colleagues across the industry.

The initial collection we’re announcing today includes five core utilities and three widgets; more utilities and numerous additional widgets are in process. We’ve dedicated a wonderful team of engineers to this effort and we’re increasingly drawing from the expertise of engineers throughout the company. In our release today we are providing, along with fully-commented JavaScript code, a body of detailed developer documentation on each component; we’ll continue to make documentation a serious priority as the library continues to grow. In posts later this week, we’ll write more about the utilities, the widgets, and the underlying vision driving the Yahoo! User Interface Library’s development.

We’re excited to share this work with you today as we join more publicly in the vibrant ecosystem of front-end engineering. The web has been reborn with ideation and experimentation during the past several years, and much of its buoyancy has been driven by the creative essence of this discipline’s membership. We hope in this library you find ideas and solutions that, in ways however small or humble, energize your participation in web’s current renaissance.

Thomas Sha, Nate Koechley, and Eric Miraglia
Yahoo! Presentation Platform Engineering