This is the first step in building an SVG widget collection for Mozilla. The current plan is to use xbl to implement the XUL widgets using svg content. The goal would be to reuse as much functionality (and code) from the XUL implementations as possible, and therefore hopefully get a few things for free (such as accessiblity). So enough with the overview, let's break it down. Using some xbl binding tricks, we will want these SVG widgets to not only "embed" themselves inside an <svg:svg/> element, but also be useful in xhtml and xul docs to get svg skinned graphical elements. Note: My initial interest in this project came from the desire to have a full SVG based widget library to be used by the Mozilla XForms project.
Where do we start: An ideal solution may very well have started at the /layout level or try to abstract xul widgets so that it makes it easier to skin. However I want to focus on the lowest hanging fruit. I want to get Labels, Buttons, etc. working asap. There are a couple of pieces that will be needed for the foundation though for those controls - basically something along the lines of toolkit's general.xml. I'm also not opposed to a "box" widget hack to allow us to get at least some of the layout simplicity it provides.
What do we need: 1. I'm thinking we will want to create a wiki to allow for collaboration, though it may be easiest to just set up a project on mozdev for now.
2. We need a feature/wish list for the widget set as a whole and each individual control. Obviously I could spout out a bunch of stuff or just start coding, but I'd like to try and have some scope work done first.
3. We'll want one or more initial implementations in svg for each of the controls. The plan is to have something similar to theme'ing, but at least one initial theme will need to be built. If existing svg code is appropriately licensed, I'm willing to use it. Making the control actually be dynamic will be a lot easier if we have good svg to start from. (note: I do want to keep this completely MPL compatible)
4. We need to start putting together some of the building blocks, and some proof of concepts. I have 0 code as of today.. however I've implemented dynamic image buttons via svg before - ArtForms so putting together something that works shouldn't be far out.. I just wanna get as many ducks in a row as possible before jumping in.
If you're interested in contributing, drop me a line (email@example.com) or just watch this space.