We’re pleased today to announce the second preview release of the new YUI 3.x codeline. This release adds significantly to PR1, providing an all-new widget foundation, two sample widgets, a new plugin architecture, a new ultralight plugin for menu-style navigation, and enhancements throughout the library. We’ve ported YUI Test and Profiler from 2.6.0, moving two steps closer to parity with the YUI 2.x core and utility platform. YUI 3.0 PR2 is available for download immediately from YUILibrary.com; you can discuss the release with the YUI community in the YUI3 forum on Yahoo Groups.
A key part of our focus in YUI 3.x is to provide more granularity so that you can fine-tune your implementation to include only the features that you’re actually using for a given component (watch the 3.x overview video for more on the larger goals for this codeline). Each 3.x component ships with a small functional core, and advanced features are added in the form of plugins or optional submodules. The submodule pattern was illustrated in PR1. In PR2, we’re adding in the Widget infrastructure, designed to promote maximal modularity and code reuse, along with two reference widgets. We’re also debuting the Plugin infrastructure. Plugins can be written to supplement a simple Node or to add features to a widget in a lightweight, a la carte fashion.
Here are the highlights of PR2:
overlay.plug({fn:StdModIOPlugin, cfg:pluginCfg}) instantiates the StdModIOPlugin class and adds it to the host widget as the io property (the namespace defined by the plugin), adding input/output capabilities. In addition to adding completely new functionality, plugins may also modify existing functionality on the host by listening for events or by injecting code before or after the execution of methods on the host. For example, an Animation plugin might provide configurable animation effects that modify the base widget’s native hide and show methods.
Node Plugins: The MenuNav Node Plugin provides a lightweight but feature-rich navigation menu as a simple one-line plugin to Node, with content/functionality driven entirely through markup/CSS. MenuNav, and Node plugins in general, are ideal choices for light implementations that don’t need programmatic (API/event) access to the control once instantiated. MenuNav is the first such Node plugin implementation for YUI 3.x, and it replicates the most commonly used functionality from the YUI 2.x Menu Control in under 5KB (gzipped) JavaScript and CSS.subscribe/publish methods have been expanded to support subscribing to or publishing mutliple events in a single call. Supplementary global events (available, contentready, focus, blur) and keyboard event support has been added.Again, we’re eager for your feedback and hope you enjoy checking out this second Preview Release.
December 9, 2008 at 7:41 pm
YUI gets even more awesome with each release. The bar is already high, but here’s something that would make it even [i]more awesomer[/i]: open up some kind of forge to host YUI plugins development and distribution. It would encourage people to write plugins for YUI and would help YUI’s ecosystem to grow.
December 9, 2008 at 10:21 pm
NDC – I like the way you think. -Eric
December 10, 2008 at 12:20 am
Eric, NDC – Maybe github would be a cool place to host plugins. a forge would be great to search through the github repositories.
- Dennis
December 10, 2008 at 1:27 am
This is exactly what I thought yesterday when I was implementing multiple lists reordering and mixing – kind of things that’s so simple in jQuery or Prototype (with plugins) and so complex in YUI at the moment. This would not only encourage people to write plugins, but also to choose YUI in a first place when they work on small to moderate websites (where there is no time to develop so common functionalities).
BTW, YUI 3 architecture and simplicity makes YUI 2 look so obsolete and unpleasing to work with that if only PR2 is stable enough in IE then I am going to stick with 3.x starting now. Great Job!
December 10, 2008 at 2:44 am
Great news. So… when is the next release? ;-)
December 10, 2008 at 10:06 am
Awesome….
It’s totally sweet to see how far the library has come. I’ve been using since the good ol’ 0.1X days and I’m really excited about the path it’s on now.
Just wondering I’ve been noticing other libraries adopting sizzle as their selector engine, and then some not adopting due to various reasons. Is the YUI team considering using sizzle? Or are you taking the approach that you know your code, its codebase, it’s written in the YUI style and we’re just gonna keep it that way :)
Just wondering.
Keep up the awesome work.
December 10, 2008 at 10:14 am
NDC i like the way you think. It is really cool.
December 10, 2008 at 2:28 pm
Dylan, here’s the answer to your question:
http://tech.groups.yahoo.com/group/yui3/message/281
December 10, 2008 at 3:13 pm
I may be jumping in out of place here but, Eric Miraglia addressed this in the YUI3 group: http://tech.groups.yahoo.com/group/yui3/message/281
“We’re in touch with John Resig and we’re evaluating whether Sizzle would be a good thing to standardize on — no conclusions yet, but you can be sure we’re evaluating it.
-Eric”
December 10, 2008 at 8:00 pm
Thanks for taking a look at the preview and the feedback.
Hope to hear back from you on the forum as you get a chance to dig into the details and start creating your own widgets/plugins.
NDC, Dennis:
Eric’s post on the ydn-javascript forum provides more info about where we’re headed with git based source code hosting and contribution infrastructure:
http://tech.groups.yahoo.com/group/ydn-javascript/message/42131
Dylan:
sizzle is something we’re looking at also. Here’s Eric’s post on that:
http://tech.groups.yahoo.com/group/yui3/message/281
December 11, 2008 at 8:46 am
nice improvements on the UI, you keep on giving users what they want. keep it up
December 11, 2008 at 10:52 am
I’m super psyched with this release. YUI is moving in all the directions I’ve tried to take my development with YUI 2.x. It’s great to see these methodologies I was trying to use be baked into YUI 3. The new Widget framework looks great; we needed a standardized framework like this. I kept hitting walls with YUI 2.x when developing widgets, this is the improvements and direction I wanted to see!
I think it’s time for me to make the switch over and starting releasing code that’s built upon YUI 3.
Great work guys! Any update on the public Git repo and how access, changes and contribs are going to be managed?
December 11, 2008 at 9:55 pm
Amazing! Yahoo is by far the leader in html/javascript UI implementation…just hope they don’t cut staff or development in this department. I really hate all the bad press Yahoo gets :( so this news is a much needed piece of good news! Great work guys.
December 15, 2008 at 7:34 am
Having trouble finding a discussion of where to start. Yui2 or 3. My devs are just coming over to YUI from Dojo, and they spent a fair amount of time learning YUI2x containers.
Our application needs tabs and splitters and a few other containers and controls that are fairly stable in 2.0. If we jump right into YUI3 PR2, are those containers compatible and stable right now? Can we do most of what YUI2x could do already? Hearing “yes” will give me a significant comfort level about giving my devs the go ahead to jump right to YUI3. Hearing “no” will send me into a depression (I just hate wasting time in yesterday’s sandbox, when most of tomorrow’s is already here).
The use of YUI3 on Yahoo gives me some hope that all is usable now, but just checking before we make a mess :)
December 15, 2008 at 8:22 am
@Matt — Michael Hasenstein’s response to your question on the YUI3 forum is a good one:
http://tech.groups.yahoo.com/group/yui3/message/325
Regards,
Eric