• Home
  • Quick Start
    • Configurator
    • Download YUI 3
  • Documentation
    • User Guides
    • Examples
    • Tutorials
    • API Docs
  • Community
    • Gallery
    • Blog
    • Forums
    • YUI Theater
    • Calendar
  • Contribute
    • YUI on GitHub »
    • File a Ticket
    • View Tickets
    • Dashboard
  • Other Projects
    • YUI 2
    • YUI Compressor
    • YUI Doc »
    • YUI Builder
    • YUI PHP Loader
    • YUI Test
    • YUI Website

Blog: Archive for May, 2006

Video: Joe Hewitt Talks About FireBug

Joe Hewitt, a longtime Mozilla/Firefox engineer and the author of DOM Inspector, recently made a return to frontend development after many years working on browser code. He found that the state of the art in terms of tooling hadn’t advanced much since his days as a DHTML author in the late 1990s.

While many frontend engineers have lamented the state of debugging tools in the JavaScript development arena, Joe reacted in a singularly useful fashion: He set about in January 2006 to create a Firefox extension that brought together some of the great strengths of Venkman and DOM Inspector in an integrated, lightweight interface. Adding features inspired by sources ranging from Python to Prototype, he’s been evolving FireBug for the past five months and developing a cult following of developers who are finding FireBug to be an essential part of their toolkit.

Joe stopped by Yahoo! last week to talk to the Y! frontend engineering community about FireBug. He was kind enough to let us capture the talk on video, and we’re pleased to share the core part of his talk with you here. We apologize for the poor audio quality, which does not do full justice to the quality of Joe’s presentation, but we wanted to help get the message out about FireBug.

Note: This presentation can be viewed directly on Yahoo! Video

By Eric MiragliaMay 30th, 2006

Design Patterns Conversation

Luke Wroblewski (formerly eBay patterns; current Yahoo!), Jenifer Tidwell (author of Designing Interfaces & Common Grounds pattern library), Martijn van Welie (pattern author), James Refell (eBay patterns) and myself (Yahoo! patterns) have started a series of conversations around Design Patterns. You can find the first installments on Luke’s blog.

Here is how Luke introduces the conversation thread:

In the Spring of 2006, a group of designers intimately familiar with the organization and development of design pattern resources got together to discuss the current and future role of design patterns in the real world. We talked about defining and documenting patterns, the context required to communicate how patterns should be applied, what it takes to develop a design language, and how disparate lists of patterns could converge. It’s our hope this conversation continues.

Here are the current posts:

  • Design Patterns Introduction
  • Design Patterns: Part 1
  • Design Patterns: Part 2

Enjoy the conversations, and we look forward to your contributions!

By Bill ScottMay 24th, 2006

Patterns Behind the Yahoo! Home Page Beta

The yahoo.com home page team has been very busy over the last few months testing the new home page to create a richer experience for our users. There are many challenges to changing any home page. Just imagine the challenges with changing the most trafficked home page on the entire web!

One of the design principles I regularly discuss is to

Cross Page Boundaries Reluctantly

This principle captures the idea that every piece of logical content does not have to be on a different page. Instead when we design a content page, especially a home page, we should consider how we can expand the user’s virtual space. In many ways this is similar to creating a play. At any given time the view on the stage is only a small part of the action. The backstage, props, and other actors are all being prepared for the next scene. A home page can provide ways to allow a user to take a “sneak peek” at additional content and essentially “open up” the page space.

This is just what the new Yahoo! home page has done.

Personal Assistant

One of the really nice additions is the Personal Assistant. It gives a quick glance at what is happening in your personal space. All of the content that appears when you rollover the different areas is pulled in via an Ajax lookup. It also does a nice job of exposing and hiding content during exploration.

So here are some of the benefits of Ajax-ifying the home page.

Live Information

Since each rollover is actually an Ajax lookup, you get the latest content. Rolling over Mail, will give you your last 5 messages.

Personal assistant mail panel

Dynamic Paging

When looking at your Messenger contacts notice the Next/Previous links. You can sub-page through the content in this exploded tab view. The paging is very fast since it uses Ajax to pull in content.

Personal assistant messenger paging

Another variation on paging is found in the Movies and Radio Panels. Content can be scrolled in by using the Left/Right arrows.

Personal assistant movie paging

In Context Configuration

On the Weather (or Local) panel, you can change the location by clicking the “Change Location” link. This overlays a configuration panel over the weather info. Change the location to see weather for a different area.

Personal assistant weather panel

Dynamic Local Content

In the Local panel, you can toggle between a view of traffic conditions or local events on a map. Ajax makes it easy to toggle and get the latest information since it is fetched just-in-time and live. And the map is live and draggable.

Personal assistant local map

Tabbed Content Areas

While tabbed areas are not new, coupled with Ajax they make it fast to load the page and then get the additional content on demand. You can see Featured content as well as Entertainment, Sports, Money, News, World and Video in the tabbed content areas.

Notice the creative way the sub-content is handled in each of the tabbed areas. A hyper-linked area in the content shows more information when clicked on.

Tabs with sub-content

Tour

To aid in discoverability, the Yahoo! home page introduces a nice tour technology. Clicking the Tour button takes you through a Tour Wizard. The Dim and Brighten patterns are used to call attention to the area being shown.

Yahoo! home tour

Slide Outs

Both the “All Yahoo! Services” and the “Page Options” provide slide outs and drop downs that expose more navigation choices and configuration options.

Yahoo! home configuration

Taken together, the changes make it possible to have a cleaner, more streamlined home page while at the same time allowing a lot more content to be easily accessible.

By Bill ScottMay 15th, 2006

Peeling Back the Interface of the Yahoo! Home Page Beta

To celebrate the launch of the public beta of the new Yahoo! home page, I want to peel back the interface and point out a few things of interest to developers.

First of all, I’m very proud that the new Yahoo! home page uses the open-source Yahoo! User Interface Library extensively. To be clear, the exact lines of code available to the world for free are used by Yahoo!’s new flagship page. The Library’s a la carte design lets them use just the components they need: Connection, DOM, Animation, and Event, as well as CSS Fonts and CSS Reset. This illustrates several things, including the industrial-grade functionality of the YUI Library, the validity of an a la carte approach, and our commitment to continued development and support of this library.

Now, notice how the page is optimized with “download-on-demand.” If a JavaScript, CSS, HTML or JSON file isn’t absolutely and immediately necessary, it is not loaded until after the onLoad event fires. Many of the features that Bill Scott discusses in his design patterns coverage of this launch, such as In Context Configuration and Dynamic Local Content, aren’t used by each user on each visit. By downloading the code for these pieces of functionality either automatically post-load or strictly on-demand, unnecessary overhead is reduced and the page is much faster.

Download-on-demand takes at least two forms. Script nodes are used to get JavaScript Libraries after page load. The JS for the Traffic and Local sections are an example of this technique. In other cases, for example the Personal Assistant module’s inbox preview, HTML is retrieved directly via YUI’s Connection utility (which wraps the XMLHttpRequest object).

JSON, (the light-weight data interchange format well suited to Ajax applications and championed by our own Douglas Crockford), is used extensively on the new home page. JSON has many advantages, as Douglas most-recently spoke about at The Ajax Experience conference last week. Of the many advantages of JSON, three were quoted repeatedly in my talks with the home page team. First, it’s a native JS data structure so no extensive parsing is required (like there is when using XML). Second, there is less data to transport compared to XML. And finally, since it is so readable, development and debugging are more pleasant and efficient.

On the CSS side, notice the extensive use of CSS Sprites. Though not new, this technique is one of the best ways to optimize a site. By using sprites instead of individual images, 15 separate home page image calls are combined into a single HTTP request. Every HTTP request has a significant negative effect on performance — therefore reducing requests should always be a priority.

As you can imagine, the home page team has been hard at work. The hard work continues as they continue improving the beta, rolling out enhancements, and expanding to more countries. If you have technical questions, please feel free to leave a comment and I’ll do my best to get answers from the team for a followup in-depth article here.

Thanks,
Nate

  • By Nate KoechleyMay 15th, 2006

    AutoComplete, Windowing, Menu and More: A Second Beta Release for the YUI Library

    I’m very happy to announce today a whole bunch of new stuff in both the Yahoo! Design Patterns Library and the Yahoo! User Interface Library. On the design side, there are more than a dozen new patterns (as well as oft-requested examples for some existing patterns like Tabs and AutoComplete). On the development side, we’ve updated all the existing components and broadened the platform’s reach with several important UI controls. With this release, we’re offering CSS packages for the first time. And, as part of the evolution of our open-source processes, we’ve migrated YUI Library distribution to SourceForge.

    Development

    Let me call your attention to several things on the development side: We’re proud to offer three new JavaScript packages. The first is a suite of DHTML windowing controls, each of which implements a distinct contextual-window interaction with just a few lines of JavaScript. These components — we call them the Container family of controls — build upon a standard unit for modular content (the Module control) and a common foundation in which a module floats over its page context (the Overlay control). Four Container-family UI controls build upon the Module/Overlay system: Tooltip, Panel, Dialog, and SimpleDialog.

    A fifth control, Menu, shares the same Module/Overlay foundation and allows you to create mouse-and-keyboard-accessible, application-style fly-out menus in just a few lines of code. Extending Progressive Enhancement into the world of UI controls, Menu can be dynamically generated or layered on top of simple, semantic unordered lists.

    Our third new YUI Library component for this release is the highly-anticipated AutoComplete control which allows you to streamline a variety of user interactions involving text-entry. It’s robust, configurable, and easy to implement; I hope you’ll agree it was worth the wait.

    In addition to these new additions to the Library, we’ve updated and improved all existing packages with numerous optimizations, bug fixes, increased functionality, and improved consistency. Each component includes reworked and expanded examples and more detailed documentation on our Yahoo! Developer Network website. In the distribution, you’ll find a README file with a detailed change log accompanying each component.

    This time around, we’re going beyond new and updated JavaScript components and including what we think is some important, useful work around the intrinsic challenges of CSS. Three CSS packages are included in this initial release. CSS Reset is a simple foundational file that normalizes browser-supplied CSS defaults. CSS Fonts provides cross-browser font families, and, importantly, recommends what we think is the optimal font-sizing strategy. CSS Fonts also works to normalize the width of an em across browsers and platforms. The normalizing strategies applied in CSS Reset and CSS Fonts provide a stable foundation for my favorite CSS package, the CSS Page Grids. Its single file, weighing less than 2KB (minified), provides seven basic wireframes and numerous subsection grid components which together offer more than 100 page layouts — all of which scale up in size when the user applies browser-level font zooming.

    Design

    On the Design side, our User Experience and Design team has published over a dozen new patterns codifying our language of Invitations and Transitions, and they’ve added a companion pattern for Page Grids. These topics are critical as richer interfaces proliferate. Discoverability of new functionality remains a challenge, and as content change continues to be divorced from page-load events we need new types of transitions to help sustain the user’s intuition about what’s happening on the screen. We hope you’ll find information in these new patterns that helps you boost the intuitiveness of your applications even as you increase their richness.

    Many of you have asked since our debut in February for implementation code to support both Tabs and AutoComplete. With this release, code for both of these patterns is now available. Moreover, all of the new patterns link to code samples.

    Infrastructure

    The YUI Library’s emergence as an open-source project important to the work of developers throughout the world during the past four months has been exciting and gratifying. Much work remains to be done with respect to managing community-contributed bug reports, feature requests, implementation samples, and code patches. However, we’re taking an important step in that process with this release, moving our code distribution and public bug reporting to SourceForge. This move will give us better and more flexible control over distribution of the code — and it will improve our ability to release critical patches between releases in a timely, convenient manner. Formalizing our public bug reporting on SourceForge will make it easier for the YUI community to report, research and track issues related to library components.

    Note that we will continue to rely on the YDN-JavaScript group for community communications and we will not, as yet, be using SourceForge for community-contributed code submission.

    We hope you find a lot to smile about in this major step in the YUI Library’s beta cycle. I know I speak on behalf of the entire team when I say that I can’t wait for you to get your hands on these new components. Go check it out. Don’t forget to stop back here, or over at YDN-JavaScript or YDN-patterns, to let us know what you think.

    Thanks,
    Nate Koechley
    Yahoo! Presentation Platform Engineering

    By Nate KoechleyMay 9th, 2006

    Design Pattern: Transition

    In this release of the Yahoo! Design Pattern Library we are offering a set of 11 patterns for creating visual transitions. These come under the umbrella of the Transition pattern.

    There is no doubt that visual transitions can be abused. In fact, many of them could become in Web 2.0 what the <blink> tag became for Web 1.0.

    We offer this set of patterns to help create a language around the various effects as well as hopefully provide some sane guidance to their use.

    I recently wrote a detailed blog article on this topic. It’s called Mind Hacking Visual Transitions. In it I explore what makes transitions work. Here’s a hint: the brain has a special processing place for visual transitions! That’s right. That’s why ads are often so distracting. I invite you to read the article and then check out our set of Transition patterns.

    By Bill ScottMay 9th, 2006

    Design Pattern: Invitation

    With the widespread acceptance of Ajax (and the resurgence of Flash) new ways of interacting on the web have emerged. In many ways, these interactions are not new. Interactions like drag and drop and inline editing have been mainstream on desktop applications for over 20 years. What is new, though, is the emergence of these idioms on the web.

    This leads to two challenges.

    First, users must learn the idiom. For example, inline editing on the web allows the user to actually change content on the page that looks like normal content. For years we have conditioned our users to expect a read-only web page. The ability to change content on-the-fly is unexpected. The classic example of this is editing photo titles in flickr.

    Editing in flickr

    Instead of having to moving to a new page to edit the photo title, the user can just click to edit and save their changes inline and in context to the page.

    Second, let's say that a user learns this technique (idiom). How do they actually know that they can edit the photo title? How do they discover the idiom?

    Repeated user research has confirmed the obvious fact that these deeper, richer interactions are less discoverable.

    One solution to the problems of learning and discovering idioms is a set of patterns we are introducing in this release of the Design Pattern Library — Invitations.

    Offer an Invitation

    Rollover effects have been used for years on the web. Primarily they have given users a way to find out where the links or buttons on the page are at.

    Invitations are a twist on rollover effects. They are sometimes as simple as a basic rollover (area lights up) but can also be more engaging by providing more feedback and animation when the mouse hovers over the area.

    Additionally, as designers, we are often providing richer interactions like inline text editing (flickr.com), drag and drop of content modules (My Yahoo!) and rating movies directly (Netflix or Yahoo! News). It is no longer just about discovering a button but allowing the user to discover a deeper in page interaction.

    Looking back at flickr.com we can see that when the mouse rolls over the area that can be edited the user is presented with three types of invitations:

    • Tool Tip Invitation. It simply says “Click to edit”
    • Cursor Invitation. The cursor changes to an I-Beam (insertion) indicating editability.
    • Hover Invitation. The editable area highlights as light yellow to indicate the scope of the edit. li>
    flickr invitations

    Together these invitations tell the user exactly what area will be affected (where), what operation will be performed and how to perform the edit.

    You can see a similar set of invitations at 37 Signals in their backpackit product.

    Editing in backpackit

    Notice they use the Hover and the Cursor invitations. The hover highlights as light yellow and displays a couple of inline context tools (Edit link and trashcan icon). The tooltip is not needed since the edit hyperlink is a fairly known idiom.

    Invitations are powerful ways to clue the user in to deeper interaction. Its an invitation to call the user into deeper water. While it cannot solve all of the problems of discoverability it can make idioms and features more discoverable.

    Here are two related articles you might find interesting:

    • Luke Wroblewski’s article – Bringing Desktop Interactions Online
    • My article on – Musings on Mouse Hover

    You can find the Invitation pattern here.

    By Bill ScottMay 9th, 2006

    Pages

    • About
    • Contribute
    • YUI Jobs

    Recent Posts

    • YUI Weekly for June 14th, 2013
    • Pure 0.2.0 Released
    • YUI Weekly for June 7th, 2013
    • YUI 3.10.3 Released to Fix Reintroduced SWF Vulnerability
    • YUI 3.10.2 Released

    Archives

    Categories

    • Accessibility (25)
    • CSS 101 (8)
    • Design (51)
    • Development (594)
    • Frontend Jobs at Yahoo (13)
    • Graded Browser Support (8)
    • In the Wild (63)
    • Miscellany (11)
    • Open Hours (44)
    • Performance (23)
    • Releases (26)
    • Target Environments (11)
    • Yeti (4)
    • YUI 3 Gallery (29)
    • YUI Events (45)
    • YUI Implementations (55)
    • YUI Theater (146)
    • YUI Weekly (41)

    Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org
    © 2013 YUI Blog