Since its initial release with qooxdoo 2.0, the qx.Website component has steadily grown and matured into a fully-featured DOM library, allowing developers to enrich websites with dynamic features. One frequent request we’ve heard from projects using qx.Website is the need for “low-level widgets”, meaning prefab UI components that are easy to integrate with just a few lines of code but also fully customizable so they can be adapted to any site design.
That’s why the upcoming qooxdoo release will ship with a new qx.Website module:
q-ui.js, a.k.a. “qx.Website Widgets”, a library of UI elements including components such as Calendar, Slider and Accordion.
Key features of the qx.Website Widgets library include:
- Uses the same well-known programming paradigms as qx.Website and other DOM manipulation libraries: Widgets are wrapped in Array-like collections (inheriting from qxWeb so all qx.Website Core methods are supported). Widget methods generally return the collection to support call chaining.
- Easy customization using CSS and mustache.js templates
The new Website Widget Browser application contains demos for all currently available widgets, while the recently made-over qx.Website API Viewer provides all the information you need to integrate them into your website projects.
Give them a try, and let us know what you think via the usual channels – blog comment, mailing list, Facebook or Twitter. Just keep in mind this new feature is still considered experimental – the API can and probably will change, possibly taking into account your input.
In the weeks and months following the December release, we plan to stabilize the qx.Website Widgets API, add new widgets and improve support for legacy browsers. From a framework perspective, our goal will be to leverage qx.Website as a foundation for the higher-level UI toolkits (qx.Desktop and qx.Mobile), consolidating and unifying the technology stack where appropriate. This will make it even easier for you to create universal apps for any or all domains of Website, Mobile and Desktop.