Happy Birthday to the Pattern Library, Too!

By YUI TeamMarch 5th, 2007

We recently celebrated the one-year anniversary of the open-source release of the YUI Library. It is also the one-year anniversary of the public release of the Yahoo! Design Pattern Library. Not wanting to miss out on the fun, we published two new patterns: Calendar Picker and Alphanumeric Filter Links.

This is also a good opportunity to introduce myself. My name is Christian Crumlish. I am an information architect, interaction designer, writer, and the new curator of the Pattern Library. I think of myself as a pattern detective because a big part of my job is to uncover successful patterns on the Yahoo! network and “in the wild” and capture and document them for eventual publication in the Pattern Library.

I’ve got some big shoes to fill. Matt Leacock was our first pattern librarian, launched our internal pattern library, developed many of the earliest patterns, and established a structure and process for the library. Bill Scott oversaw the public release of the pattern library as you you probably remember from his posts on this blog and the slew of fantastic Ajax patterns (among others) that he shepherded into the library. Fortunately they’re both still nearby for me to hassle when I’m not sure what to do, as is Erin Malone whose leadership has driven the development and release of the library all along.

The two newest patterns

The Calendar Picker comes in handy when users need to select dates or date ranges. Probably the canonical scenario is travel planning. Airline reservation systems all use some variation on the calendar picker pattern and the best ones do a good job of anticipating the date vicinity, especially for the return portion of a round trip. The YUI Library has a Calendar control which this pattern complements.

Alphanumeric Filter Links sound deceptively simple: a common segmentation of large information repositories for easier navigation. (Of course this only works in alphabetic languages!) However, our internal review process uncovered a number of gotchas related to alphabetization and found a number of variations of this pattern to address distinct scenarios. Basic list filtering driven by text-links is so “Web 1.0″ so we’ll be sure to relate this context to Auto Complete and other dynamic ways of sorting and filtering long lists of data. As we build up the Pattern Library we’ll group them together under an umbrella parent pattern.

As always, we welcome discussion, feedback, and suggestions about these patterns on the ydn-patterns list. I’ll be announcing new pattern releases here on the YUI Blog, and will continue the series of exploratory posts and essays Bill Scott started. Together I expect we will contribute to the public discussion of design pattern, interaction design, information architecture, and user experience in general.


  1. Does this mean we’ll start to see more patterns being added regularly? The pattern library still has no definition for some of the more popular patterns like Faceted Navigation or Fly-Out Menus. Personally, I’d much rather see you finishing defining the ones you already have instead of adding new patterns. Just my 2 cents.

  2. its great to have a such a open source pattern library.

  3. Peter, yes we will definitely be adding patterns regularly and, just as you suggest, we will also be working on filling in some of those patterns listed in the navigation but not yet published.

    Vikram, thanks for the kind words!

  4. I have a bug report on YUI. This may be an inappropriate place to leave one, but I didn’t want to open up a Sourceforge account. However, I do want to inform the dev team of this, since I think it’s simple and important.

    In v2.2.0a, YAHOO.lang.isArray(obj) fails if obj == null || obj == undefined. I believe it should return false.

  5. @Sean,

    Bugs and feature requests are accepted via Sourceforge, which does allow anonymously/accountless submission. Please follow these guidelines when submitting issues, especially if you’re posting anonymously because in that case we don’t have a way to contact you if we need additional information:


    Sourceforge Trackers:


  6. I would like to develop a scheduling program that determines the criteria for a/b/m/p/c on either a bi-weekly or monthly basis, but I don’t have any idea how to get started. It involves 4 shifts and a total of 7 per shift and may duplicate.

    Any suggestions. It has to be simple, since I have to be able to explain it to may people in elementary terms.

    We do have Sharepoint available to us……

    Any thoughts would be GREATLY APPRECIATED.

  7. Thanks for thil library.
    I use it in my work