/xui

A tiny javascript framework for mobile web apps.

Primary LanguageJavaScript

xui

A lightweight, dead simple, micro-tiny, super modular JavaScript framework for building mobile web applications. It's true: the minified code is super tiny. You can find more information, downloads and documentation on the http://xuijs.com.

If you want to build your own custom xui or help contribute: please read on! The best documentation is in the source and the tests.

Building xui

To get the full source you need Git:

$ git clone git://github.com/xui/xui.git
$ cd xui
$ git submodule init
$ git submodule update

To build xui, you will need Ruby, and if minifying, Java as well:

$ ./build                 # Generates lib/xui.js
$ ./build profile=bb      # Builds xui for BlackBerry 4/5 browsers (uses Sizzle selector engine)
$ ./build profile=ie      # Builds xui for Internet Explorer
$ ./build --minify        # Builds xui and minifies (Java required)
$ ./build --cat=path/f.js # Builds xui and appends the contents of f.js to the built files under lib/

Generating Documentation

The documentation is generated from the inline comments in the source-code. joDoc uses the comments to generate a set of HTML files.

To generate the documentation, you will need Ruby, Perl, and Git:

./build --generate-docs

Source Tree

xui
 |-README.md ................ You are reading it!
 |
 |-doc ...................... API Documentation (generated by build script)
 |
 |-lib ...................... Build directory (generated by build script)
 | |-xui.js ................. Core xui - optimized for standards-friendly browsers, i.e. webkit
 | |-xui-bb.js .............. BlackBerry implementation
 | '-xui-ie.js .............. Internet Explorer implementation
 |
 |-packages ................. Third-party libs utilized by xui (gitsubmodules)
 | |-qunit ..................   - awesome async friendly test lib by John Resig
 | |-emile ..................   - amazing tiny effects lib by Thomas Fuchs
 | |-sizzle .................   - kickass selector engine that powers jQuery, by John Resig.
 | '-split.js ...............   - override IE bad implementation of String.split
 |
 |-spec ..................... The spec
 | |-index.html ............. Open to run the spec
 |
 |-src
 | |-base.js ................ Bare essentials for dom node retrieval
 | |
 | |-js ..................... Essentials:
 | | |-dom.js ...............   - dom node manipulation
 | | |-event.js .............   - event subscribe/publish
 | | |-fx.js ................   - animation
 | | |-style.js .............   - css hackery
 | | '-xhr.js ...............   - remoting
 | |
 | '-ie
 |   |-dom.js
 |   |-event.js
 |   |-style.js
 |
 '-util ..................... Utils for minification, obfuscation, verification

Creators

Contributors

(If we missed you, please let us know!)

License

Copyright (c) 2008, 2009, 2010 Brian LeRoux, Brock Whitten, Rob Ellis

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.