Announcing YUI 3.4.0 and the new YUILibrary.com

By George PuckettAugust 18th, 2011

The YUI team has not one, but two announcements to share today. First, we have launched a completely revised YUILibrary.com. The new site is a ground up rewrite providing a unified destination for all YUI documentation, a cleaner UI, and more intuitive organization on top of a robust new architecture. Take some time to look around. We hope you’ll be very happy with what you see.

The new site index includes examples, community updates, and clearer links to documentation and getting started content

In addition, YUI 3.4.0 is now available on CDN as well as download. Some highlights of this release include:

  • App Framework (beta): YUI 3.4.0 marks the debut of the App Framework by Ryan Grove and Eric Ferraiuolo. The App Framework is a rollup of the Controller, Model, Model List, and View components that provides a simple MVC-style framework for writing single-page JavaScript applications. These components can be used separately or together to create anything from simple non-interactive views to rich applications with URL-based routing, data binding, and full client-server synchronization.
  • calendar image Calendar (beta): Allen Rabinovich has added Calendar to YUI 3′s collection of widgets in the 3.4.0 release. Calendar is a flexible widget that provides month-to-month navigation, single or multiple date selection, custom formatting and internationalization. It also introduces a novel approach to date filtering that uses nested rule sets, and a fully template-based rendering, which allows developers to quickly and easily customize it for a variety of uses.
  • Loader: The YUI Loader has undergone a significant update for 3.4.0 by Dav Glass, with a focus on improving performance. The seed file contains Loader and its meta-data which makes the loading of modules faster since all of its meta-data requirements are already on the page. Rollups have been removed from the system and allowRollup defaults to false in the Loader config. As a result,YUI will now only load the modules specified rather than additional modules included as part of a rollup. Finally, the build directory has been exploded and submodules have been removed from the core system reducing the number of iterations executed by Loader in the calculation of dependencies. You can refer to the blog post about Loader changes in 3.4.0 for more details.
  • graphics image Graphics (beta): Tripp Bridges introduces the Graphics module in YUI 3.4.0. This component provides a JavaScript API that allows you to create predefined shapes and free-form polygons with fill and stroke properties in a variety of formats. Based on the capabilities of the browser and device, Graphics will render the shapes using SVG, HTML, Canvas, or VML.
  • Panel (beta) and Widget: YUI intern Tilo Mitra spent another productive summer in California working on a rewrite of Panel. He has also made several enhancements to Widget including the conversion of Widget-autohide and Widget-modality from plugins to extensions, and the introduction of WidgetButtons, a new Widget extension that allows you to place css-styled buttons in the header and footer of any widget that implements standard module support.
  • ScrollView: Tilo has also enhanced ScrollView for 3.4.0 to support vertical paging and include a scrollview-list plugin to add CSS classnames to immediate list elements.

In addition to providing designs for YUILibrary.com, YUI developer and designer, Jeff Coniff, also contributed a number of items for the 3.4.0 release. Enhancements have been made to the design and rendering of some of the widgets for better appearance and usability on mobile devices. He has also put is artistic talents to work in the creation of a number of new examples such as the Complex Drawing: Violin example in Graphics.

In YUI 3.4.0, several components have been promoted from Beta to GA status including AutoComplete, Console, DataSchema, DataSource, DataType, History, JSONP, RecordSet, Resize, Slider, SWF Utility, TabView, and YQL Query. You will also notice the removal of the Compat component from the library in addition to History-deprecated and CSSGrids-deprecated.

We are very excited to share YUI 3.4.0 and the new website with the YUI community. You can learn more about YUI 3.4.0 by reviewing the documentation on YUILibrary.com. You can can also review the summary of all changes noted in the component history files for YUI 3.4.0 as well as the full list of tickets addressed during YUI 3.4.0 development. As always, we would appreciate that you file any suggestions you might have or defects you might uncover in our ticket database. Feedback for YUI 3.4.0 can be entered in the YUI 3 ticket database. Tickets for YUILibrary.com can be entered in the YUILibrary repository. If you are interested in a behind the scenes look at the creation of the new YUILibrary.com, be sure to join us for Open Hours Thursday, August 18th where we will be discussing the design and implementation.

19 Comments

  1. What happened to the new TreeView? Do you know in what version it will come?

  2. Great work! Thank you YUI team.

  3. Ilya Goberman said:
    August 18, 2011 at 12:37 pm

    Great work. What is the plan for porting YUI2 widgets to YUI3? I have to mix YUI2 and YUI3 because DataTable, TreeView, ColorPicker, SimpleDialog etc are not ported. DataTable is especially important.

  4. Hi guys, terrific job!
    It’s getting more and more difficult to find something to complain about ;-)
    Nice layout, good navigation, a wealth of new information, lots to explore

  5. Ilya Goberman said:
    August 18, 2011 at 2:24 pm

    I have to say that documentation for the YUI3 in general is still much worse than one for YUI2. Granted, YUI2 documentation is close to perfect, but still…
    For example, I started to look at YUI3 Overlay class: http://new.yuilibrary.com/yui/docs/overlay/. Looking at “overlay.on(“xyChange”, function(e) {“, you would think that xyChange is an event name. Going to http://new.yuilibrary.com/yui/docs/api/classes/Overlay.html, there are no events named “xyChange” or “xy” and search for xy returns Plugin.DDProxy(?). Where the heck is it documented? I had to guess that “widthChange” is supposed to be used for Overlay resize events…
    Also, it was very nice in YUI2 to open samples in new window (so called ‘cleaned’ samples). It is not possible in YUI3, so if I look at page source, I have to filter out a lot of text not relevant to the samples.

  6. @Ilya: An improved DataTable and TreeView are in the works for 3.5.0, as are more overlay-based widgets along the lines of SimpleDialog.

    In the new API docs, attribute change events are displayed alongside their related attributes rather than being listed in the Events tab. This was done to keep attribute change events from adding too much noise to the list of a component’s other events, which was a frequent complaint about the old API docs.

    Overlay’s xyChange event is documented here: http://yuilibrary.com/yui/docs/api/classes/Overlay.html#attr_xy

  7. On yuilibrary.com I could find the download section only by doing a search, there is no link.

    Also, one used to be able to use an online tool to assemble a download manually, now I can only download teh full zip.

    Even more, the download does not include the API docs or the sources and there is only that one zip in the download section.

  8. #2

    Okay, I found the configurator – by doing a Google search. It seems a few essential links are still missing from the new homepage.

  9. Ilya Goberman said:
    August 19, 2011 at 11:22 am

    Ryan, thanks for your reply. The new documentation will take some time to get used to.

    Some comments about functionality:
    It would be nice to have more samples for Overlay. I have the following component coded in YUI2: DataTable wrapped in Layout wrapped in draggable resizable Panel. I have ported it to draggable resizable Overlay, but it was not easy and not without issues:
    1) I had to customize header to look more like YUI2 panel via css. It would be nice if a good looking header was built into Overlay.
    2) My widget in YUI2 was dragged via header. But now the whole overlay is draggable. Not too bad, not exactly what I want. An example would be helpful because I would think it is a common task.
    3) There is no ‘close’ button built in. Nice to have.
    Maybe a new class similar to YUI2 Panel is needed to support these fetaures.

    Now as far as DataTable. I have evaluated some other 3rd part libraries and found YUI2 DataTable to be the best. These are the features I use, do not think they exist in YUI3, but I did not look closely:
    1) Cell Editors.
    2) Context menus. I did not see support for menues in YUI3 at all. Pity.
    3) Update cell value. It is critical that it is fast. It is very fast in YUI2.
    4) Column reordering and resizing.
    5) I did not see support for column row delete/ add.
    6) Row lookup by id. Maybe it exist. But it is nice that a Record in YUI2 table had a unique id: record.getId().
    In general, it would be nice to eventually port all YUI2 DataTable examples to YUI3.

  10. I tend to leave the API Docs open in a tab all the time, 24/7, and now there’s a pesky 1×1 gif from ping.chartbeat.net going out every minute or so after using the docs for a bit (I think it starts after changing a tab, say between events and attributes, after the spinner.gif is requested). Wouldn’t have noticed except the new docs seem to stop working every once in a while and Chrome shows it being stuck loading the ping.chartbeat.net request(s).

    On the actual content, it would be nice if it had some better prioritization in the search results too. For instance searching for “on” in the everything tab really ought to list the methods with the exact name and then items with words starting with those characters before random items that simply have those letters in the middle of their names.

  11. @Adrian: The Chartbeat ping is used to gather real-time metrics on how people are using the site (things like how much time people spend actively reading vs. just idling, for example). It shouldn’t interfere with any of the site functionality though. I’ll take a look and see if I can reproduce the problem you described.

    We’ve got big plans for search improvements, so stay tuned. Better query intent prioritization is at the top of the list.

    Thanks for the feedback!

  12. Felipe Gasper said:
    August 22, 2011 at 11:55 am

    Where are the YUI 2 docs on the site? I mean the pages like:

    http://developer.yahoo.com/yui/container/dialog/

  13. @Felipe: YUI 2 docs are all still available at http://developer.yahoo.com/yui/2/. We’ll add the link to the YUI 2 project page. Thanks!

  14. Jason Remisoski said:
    August 25, 2011 at 11:58 am

    Your YUI projects have changed my life. Great Job. Jenny and team – I love the grid – its my most favorite feature.

  15. Marc Schipperheyn said:
    August 30, 2011 at 6:57 am

    Is there some kind of open discussion on priorities for the next release(s)? Personally I would really like to see a Button-menu version that properly works on a mobile environment as a native looking select component, a WYSIWYG editor and an iPhone style checkbox-switch. But I guess it’s all up to preference and it would be good to get some community support on those choices.

    I would also love to see some more eye candy style components, such as the iPhone checkbox-switch. When I find the time to package it I’ll be releasing an autocomplete based tag selector myself.

  16. Hi Marc — For discussion of priorities, hop onto #yui on freenode.net IRC. :) That channel has experienced YUI community members + core devs, so that’s a good place to hash through ideas. Of course if you already have a reasonably well-fleshed out request, you can always file a ticket on the yuilibrary website.

  17. The theme of YUI3′s Api docs is so beautiful(http://yuilibrary.com/yui/docs/api/classes/Anim.html), when I use yuidoc tool(http://yuilibrary.com/download/yuidoc/) to generate my docs, it not much like YUI3′s docs.How can I get the newest theme?

  18. @yumi301 –

    The latest version of our docs are generated with a development version of our next YUIDoc release. The next version has been completely rewritten from the ground up in Javascript and runs on NodeJS.

    You can see my work in progress here:
    https://github.com/davglass/yuidocjs/

    Note that the theme on the site is still under development in that repo under the `newtheme` branch.

  19. @Dav Glass
    I had try yuidocjs today, and couldn’t make it work.Waiting for the release version.Thanks for you job.