Someone asked on the jQuery UI Mailing list tonight about the difference between jQuery, jQuery UI, and Plugins. Here was my response.
“jQuery offers a mechanism for adding in methods and functionality, bundled as plugins.”
jQuery ( http://jquery.com/ )
Plugins ( http://plugins.jquery.com/ )
jQuery is extensible. Anyone can write code that gives jQuery more than just the basics functionality. These are packaged as plugins. In addition to including
you might also include a plugin file (that you or someone else wrote), such as
This would typically add a function .foo() which you could call on any jQuery object as if that were a built-in basic capability of jQuery. You can find a huge number of plugins on
as well as elsewhere on the internet. People write and release jQuery plugins all the time, because they’re easy to write and share. They cover things such as menus, rich media (audio/video), data handling, cookies, browser detection, layout, form validation. Anything people want, really.
When a plugin becomes so ubiquitous that nearly everyone is including it on their page with jquery.js, it can be a candidate for inclusion in jQuery core. But only where it is in demand, makes sense, and still keeps the library lightweight, easy to use, etc. That said, jQuery core will never grow beyond it’s fundamentals (hence the name, core). Enter jQuery UI.
jQuery UI ( http://ui.jquery.com/ )
A couple years back there was a set of quite popular jQuery plugins bundled in a package called Interface, written by Stefan Petre. These offered really great interactions, like drag-and-drop, selecting, sorting, resizing; widgets like tooltips, autocomplete, accordion. The 1.2 release of jQuery had some API changes that would’ve required changes to Interface, for it to be compatible, but Interface was never updated.
jQuery UI (started by Paul Bakaus) picked up where Interface left off. Many people are interested in a complete package/library of jQuery plugins with a common/consistent API, complete documentation, testing in all major browsers, with which they can build rich web interfaces and/or RIAs (Rich Internet Applications). Oh yeah, and they should work well together, be easy to use, accessible, extensible, and themeable. Whew.
jQuery UI is a sister-project of jQuery. The 1.0 release of jQuery UI was September 2007. Version 1.5 was released in June 2008. You can get a pretty full history (including what went in to each release, and how it matured) on the jQuery Blog. The latest stable release is 1.5.2 and includes
- Draggables (drag)
- Droppables (and drop)
- blind, bounce, clip, drop down/up/left/right, explode, fold, highlight, pulsate, puff, scale, shake, slide down/up/left/right, transfer
- Color animations
- Class animations (addClass/removeClass/toggleClass w/Interval)
Some other notes:
There is documentation for all of jQuery UI, including how to theme each plugin
jQuery UI is hosted on google’s ajax libraries api
jQuery UI has full theming support for all plugins. The jQuery UI website even has an application for getting started building a theme, called ThemeRoller. It gives you a live preview of your theme applied to all the widgets as you create it.
The jQuery UI website has a Download Builder which allows you to pick and choose just the components you want, and wraps them up (with a bow, er min/pack compression options) in one file.
There are more plugins in the works such as:
You can follow jQuery and jQuery UI on twitter and/or identica:
(both sites use jQuery )
jQuery UI (like jQuery) is dual-licensed MIT and GPL. Meaning you can pick the one that suits you.
Support Groups / Mailing Lists
jQuery has two:
jQuery Main list, for people using jQuery: http://groups.google.com/group/jquery-en
jQuery Dev list, for the development of jQuery itself: http://groups.google.com/group/jquery-dev
and jQuery UI has two as well:
jQuery UI Main list, for people using jQuery UI: http://groups.google.com/group/jquery-ui
jQuery UI Dev list, for the development of jQuery UI itself: http://groups.google.com/group/jquery-ui-dev