TouTouJS 0.1.2 Alpha

TouTouJS is a free and open source Javascript framework which provides a cross-browser toolkit and advanced and interactive GUI

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
LGPL (GNU Lesser General Public License) 
3.9/5 20
ROOT \ Programming \ UI (User Interfaces)
3 TouTouJS Screenshots:
TouTouJS is a free and open source Javascript framework which provides a cross-browser toolkit and advanced and interactive GUI (Graphical User Interface) objects. It is designed to be used in either simple or complex web sites, applications and back offices (web 2.0, Ajax, DHTML and CSS extension, etc.).

Web sites and applications are becoming ever more user-friendly and interactive. Javascript and DHTML are the technologies that naturally come to mind as soon as menus, tabs or dynamic drop-down lists are to be developped. But we also believe that more ambitious web applications can be developped with Javascript, with features and look-and-feel that we usually only find on desktop applications.

TouTouJS thus aims two distinct user populations : HTML integrators and Javascript programmers. You will find more informations about that below.

By the way, TouTouJS is a free and open source software licenced under the terms of the LGPL. Any help, feadback, and contributions are welcome!

TouTouJS for HTML integrators

HTML Integrators have a good knowledge of DHTML and CSS styles. They usually don't know much about Javascript although they often copy and paste some pieces of Javascript code. One goal of TouTouJS is to give the HTML integrators a chance of using advanced GUI objects without manipulating complex Javascript.

Our philosophy is to enrich HTML with a few custom tag attributes. As much as possible, these attributes contain descriptors in the same manner as CSS styles.

E.g., to add a drag-and-drop functionnality to a HTML element, just add the tt_dnd_style attribute. If you want to limit the movements to the Y axis, just add disable-x:true in the tt_dnd_style attribute :

< DIV tt_dnd_style="disable-x:true;" style="width:200px; height:100px; z-index:50;" >This div is dragable, but only along the Y axis< /DIV >

In order to activate the custom TouTouJS attributes, the only thing neaded is to load the correct TouTouJS module. The followind lines can be placed anywhere in the HTML document (usually in the header) and will activate drag-and-drop functionnality to all the elements containing drag-and-drop descriptors :

< script src="./js/toutou/toutou.js" >< /script >
< script >
< /script >

HTML integrators often struggle with cross-browser compatibilty. Naturally, TouTouJS works equally well with all major and recent web browsers. It is also compatible with the usual document types (DocTypes as effects on object positioning) or even without (quirks mode).

TouTouJS offers many other features : navigation menus, additional browser events, graphic effects, modal dialog windows, etc. Have a look at the feature list.

To learn more about TouTouJS, a good start is to browse through the demos.

TouTouJS for application developpers

As application developpers, our experience with Javascript has been a nightmare for many years. Debugging is not always simple, browsers behave in different and sometimes surprising ways, code reusability is difficult to obtain without degrading performance, and more generally, it is not straightforward to build a robust and evolutive code architecture.

Our first objective was to settle a clear namespace and garantee code reusability. The TouTouJS modules are organised in a hierarchical way and are loaded on demand using the require function :

< script src="./js/toutou/toutou.js" >< /script >
< script >
var myDivsPosition = tt$("myDiv").getBorderPosition();
< /script >

As you can see in this example, once a module is loaded, new functions are available through the global toutou object.

Our next goal was to offer a complete set of basic functions : HTML element handling (positionning, styles, DOM structure, etc.), string manipulation, enhanced js functions and objects (function closures, hash objects, etc.) and other useful feature for the developpers' everyday use (debug logs, variable dump, etc.).

Once these two steps were made, we already had a decent Javascript toolkit. We could at last focus on our main objective wich is to build a real Javascript framework. We believe that the future web sites and applications will contain a lot of client side code. We thus started developping more ambitious features : an event manager to enabled the development of event-driven applications, core classes to ease the development of custom graphic effects and browser events, advanced Ajax functionalities, etc.

TouTouJS offers many other features : application event manager, graphic effect interface, implementation of custom browser events, Ajax functionnalities, string manipulation functions, etc. Have a look at the feature list.

What's New in This Release:

A demo browser has been included in the distribution. The demos are not well described yet.
An API documentation has been included. The documentation is still quite incomplete but now exists!
The demos and API documentation will be improved and completed in the next releases.

toutou.html.dom: changed function names (tt_setVisibility, tt_setDisplay)
toutou.html.dom: changed function features (tt_show and tt_hide)
toutou.html.scroll: added "loop" feature
toutou.frame.defaultFrame: minor bugs fixed
toutou.js.ajax: added
toutou.effect.effectImpl: bug corrected in _runEffectFrame (_reset must be called before callback function)
toutou.require: added possibility to require multiple modules in a single function call
added an optional php wrapper (require.php) for "toutou.require" and a "toutou.config.requireWrapper" option
toutou.frame.defaultFrame : added style options modal-context-background-color, modal-context-opacity and modal-context-cursor
new function toutou.utils.strings.stripTags
toutou.utils.browser: new naming conventions
toutou.effect.move : clone the object "endPosition" before storing it (bug correction)
toutou.html.dom : bug corrected in tt_isVisible and tt_isDisplayed (use element.tt_getStyle instead of
toutou.html.layout : bug corrected in tt_setMarginPosition (use element.tt_getStyle instead of
toutou.utils.forms : added function getRadioValue
toutou.html.layout : added function tt_isPositionStatic
toutou.html.layout : added functions tt_set???Layout
toutou.filters.shadow : added

Last updated on April 22nd, 2008

#Javascript framework #user interface builder #cross-browser toolkit #Javascript #development #framework #GUI

Add your review!