I've been working on a few JS projects that may be of interest.
They can be found on my project page, http://meekostuff.net/projects
1. SLAB - a Standards Layer for APIs in Browsers
Project page: http://meekostuff.net/projects/SLAB
Announcement: http://meekostuff.net/blog/Introducing-SLAB
SLAB is similar to the base2 JavaScript and DOM work.
I only mention it because the other projects depend on it (or on some
cross-browser library).
SLAB is beta quality.
2. XBLUI - XBL User Interface enhancements
Project page: http://meekostuff.net/projects/XBLUI
Announcement: http://meekostuff.net/blog/Introducing-XBLUI
XBLUI has three layers:
- Standards Layer (SLAB by default)
- XBL engine
- UI enhancements
The first and last layer may be substituted with other libraries (eg
base2)
So typical usage would enabled with the following:
<script src="http://dist.meekostuff.net/XBLUI/1.1-default/XBLUI.js"></
script>
Swapping in base2 for the standard layer would be done with:
<script src="http://base2.googlecode.com/svn/version/1.0/base2-dom-
fp.js"></script>
<script src="http://dist.meekostuff.net/XBLUI/1.1-default/
libXBLUI.js"></script>
<script src="http://dist.meekostuff.net/XBLUI/1.1-default/base2/
init.js"></script>
You can find some demos at
http://dist.meekostuff.net/XBLUI/1.1-default/demos/browser.html
The demos using base2 are mostly working and can be found at:
http://dist.meekostuff.net/XBLUI/1.1-default/demos/base2/browser.html
The XBL engine in XBLUI is beta quality, but the UI enhancements will
need refactoring.
The documentation is incomplete (and possibly out-of-date).
3. Joquer - a jQuery API emulation layer for standards-based browsers
Project page: http://meekostuff.net/projects/joquer
The purpose of joquer is not to support jQuery development, but to
enable people to still use their current jQuery code-base while moving
towards standards-based development.
Using joquer typically requires the following:
- standards layer
- joquer library
- initialization code
Using base2 for the standard layer would be done with:
<script src="http://base2.googlecode.com/svn/version/1.0/base2-dom-
fp.js"></script>
<script src="http://dist.meekostuff.net/joquer/snapshots/1.3.x/
libjoquer.js"></script>
<script src="http://dist.meekostuff.net/joquer/snapshots/1.3.x/base2/
init.js"></script>
Joquer will not fully support the jQuery API.
In particular, CSS selectors not supported by the browser (or standard
layer) won't be supported by joquer. Joquer does support the implied
scope for queries such as $(">div", element) or $(element).find
(">div").
Joquer is alpha quality.
jQuery's ajax stuff is barely implemented.
jQuery's animations aren't implemented - if the animation methods are
called they merely set styles to the final state.
4. Joquer-ui - jQuery UI widgets for joquer
Project page: http://meekostuff.net/projects/joquer
Because joquer does not fully support the jQuery API (especially the
non-standard selectors) many of the jQuery UI widgets do not work. To
facilitate use of jQuery UI widgets there is also the joquer-ui
project, which is a minimally modified clone of the jQuery UI code.
You can find the demos using joquer and SLAB at
http://dist.meekostuff.net/joquer-ui/snapshots/1.7.x/demos/SLAB/index.html
and those using joquer and base2 at
http://dist.meekostuff.net/joquer-ui/snapshots/1.7.x/demos/base2/index.html
I haven't done much work on the widgets - only tabs and accordion to
date.
Joquer-ui is not suitable for use yet.
All code is available under the Creative Commons Attribution, No
Derivatives license.
On Jan 18, 4:16 am, Sean Hogan <shogu...@gmail.com> wrote:
> Hi all,
>
> I've been working on a few JS projects that may be of interest.
> They can be found on my project page,http://meekostuff.net/projects
> http://dist.meekostuff.net/joquer-ui/snapshots/1.7.x/demos/SLAB/index...
>
> and those using joquer and base2 at
> http://dist.meekostuff.net/joquer-ui/snapshots/1.7.x/demos/base2/inde...
Wow. That's an impressive collection of work. It's nice to see that
someone else thinks that standards are the building blocks of
future-proof JS libraries. :)
It would be nice to see the source code. Is it available online?
There is clearly a lot of overlap between base2 and SLAB. Is there any
reason that you built your own compatibility layer instead of using
base2? Was there something missing from base2?
The other projects look interesting. XBLUI in particular looks very
cool. Does it only work with inline XBL or is it possible to use an
external resource?
I'd be happy to discuss pooling our efforts to produce test cases etc.
The test cases for base2 and SLAB would probably very similar.
-dean
On Jan 19, 5:28 am, doekman <doek...@gmail.com> wrote:
> Looks nice. However, most XBLUI demo's only work in Safari when using
> base2 ;-)
>
It works in Safari 3 & 4 (for me).
Webkit has recently introduced Object.defineProperty (which SLAB
defines if the browser doesn't), but their implementation doesn't work
for DOM objects. I haven't worked around this yet - I'm assuming that
Webkit will fix Object.defineProperty before the next Safari release.
On Jan 19, 6:44 am, Dean Edwards <dean.edwa...@gmail.com> wrote:
> On 18/01/2010 03:16, Sean Hogan wrote:
>
> > I've been working on a few JS projects that may be of interest.
> > They can be found on my project page,http://meekostuff.net/projects
>
> > 1. SLAB - a Standards Layer for APIs in Browsers
> > 2. XBLUI - XBL User Interface enhancements
> > 3. Joquer - a jQuery API emulation layer for standards-based browsers
> > 4. Joquer-ui - jQuery UI widgets for joquer
>
> Wow. That's an impressive collection of work. It's nice to see that
> someone else thinks that standards are the building blocks of
> future-proof JS libraries. :)
>
> It would be nice to see the source code. Is it available online?
Not yet. I'll notify you when it is.
>
> There is clearly a lot of overlap between base2 and SLAB. Is there any
> reason that you built your own compatibility layer instead of using
> base2? Was there something missing from base2?
When I first wrote the XBL engine, all the work-arounds for browser
quirks and deficiencies were built in.
Then I realized that XBL wouldn't really simplify development if you
still had to do feature detection / browser sniffing when writing
bindings.
So I needed a standards-layer, and since I'd done most of the work
already I created SLAB.
And when there are bugs it is easier to find and fix them in code that
I wrote.
In a round-about way I'm probably saying Not-Invented-Here.
>
> The other projects look interesting. XBLUI in particular looks very
> cool. Does it only work with inline XBL or is it possible to use an
> external resource?
>
You can reference an external binding-document with <link
rel="bindings" href="..." />
Note that cross-domain restrictions apply.
According to the spec you would use <?xbl href="..."?>.
I implemented support for this, but I can't even remember if I've
tested it - most browsers don't support PIs in HTML.
And then there is Behavioral Extensions to CSS: http://www.w3.org/TR/becss
I don't support them - I'm not sure if I want to.
> I'd be happy to discuss pooling our efforts to produce test cases etc.
> The test cases for base2 and SLAB would probably very similar.
>
That makes sense.
There are other developers of standards libs out there who might also
be interested.