40 Useful JavaScript Libraries

Advertisement

Popular JavaScript libraries such as jQuery, MooTools, Prototype, Dojo and YUI can be great for accomplishing common JavaScript tasks. These libraries provide many functions, whether the matter is related to events or effects or AJAX. And if one of these libraries can’t do the job, a plug-in probably exists that can.

Such flexibility is great but sometimes comes with a penalty (the size of JavaScript files being one of them). Although adopting a well-known JavaScript library is usually a wise decision, you may want to perform a task that can be accomplished by a more lightweight library dedicated exclusively to that task or that is not supported by the more popular JavaScript libraries.

Below, we present 40 stand-alone JavaScript libraries that serve specific purposes. These are not all the ones out there, but every Web designer or developer will find something helpful here.

1. Forms

wForms1
wForms is an open-source and unobtrusive library that simplifies the most common JavaScript form functions. It offers ready-to-use form validation functions for which can be applied by adding a class info to the form objects. Besides these, wForms has powerful form synchronization (like “Check”/”Uncheck all”) and conditional form capabilities (e.g. if x is checked, then show y).

wForms2

Validanguage3
Validanguage is an unobtrusive JavaScript form validation framework. It has an inheritance logic whose settings can be defined globally, per form or per element. With the 2 APIs provided: and features like integrated AJAX support, caching and callback functions, the framework provides a robust validation experience. It has a HTML-like API inserted in comment tags and a JavaScript object-based API, for advanced configuration.

Validanguage4

LiveValidation5
LiveValidation is a lightweight library that equips you with set of validation functions. Besides the classic validation methods, the library has a powerful live validation feature that controls the fields as you type. Ruby on Rails developers will find it very easy to use because the naming conventions and parameters are very similar. It is a stand-alone library but has a Prototype version, too.

LiveValidation6

yav7
A powerful, extensible and flexible form-validation library, yav has support for a wide range of scenarios, from basic ones like date, email and integer, to advanced ones, like masking and custom regular expressions. It has built-in AJAX support, and errors displayed can be easily customized per object level.

qForms8
A complete solution for handling forms. It equips a developer with features such as various validation rules, methods to prevent multi-submissions, ability to lock/disable fields and more.

formreform9
Using multi-column layouts without tables is usually challenging. This tiny library transforms a classic form into a stylish layout with one, two or four columns. Forms are styled to fit any design automatically with formreform.

formreform10

2. Animation

$fx()11
$fx() is a lightweight library for animating HTML objects. Using it, you can alter any CSS property within a given timeline. For complicated animations, you can combine effects, group them to chains and run them in parallel. And you can set different callbacks at every step to customize it further.

$fx() JavaScript Animation Library12

JSTweener13
A tweening library for JavaScript. Its API is similar to the famous ActionScript tweening engine Tweener14. You can mention the time of the animation, define the transition effects and delays. At almost any point (like onStart, onComplete, onUpdate) you can fire new events.

JSTweener15

Facebook Animation16
A powerful library for creating customizable CSS-based animations. With a line or two in Facebook Animation, you can improve the UI. The syntax is identical to the FBJS version (the library used in Facebook applications) and once learned, it is an asset for creating Facebook applications.

FX17
A lightweight library, with a YUI-like syntax, FX can create a tween for almost any CSS property. It supports color and scroll animations. Designing the “to” and “from” values of any object/property is enough.

3. Visualization And Image Effects

JS charts18
JS charts supports bar charts, pie charts and simple line graphs. It offers nice usability by simply inserting the library onto Web pages and calling the data from an XML file or a JavaScript array. Charts are created as PNG files and the library is compatible with all the major browsers.

JS Charts19

Canvas 3D JS Library (C3DL)20
C3DL makes writing 3D applications easy. It provides a set of math, scene and 3D object classes to make the canvas more accessible to developers who want to develop 3D content in a browser but not have to deal in depth with the 3D math needed to make it work.

C3DL21

Processing.js22
This is a JavaScript port to the Processing language23 (a language for programming images, animation and interactions). The library is feature-rich for creating 2D outputs. It provides methods for shape/image drawing, color manipulation, fonts, objects, math functions and more.

Processing.js24

Raphaël25
An amazing library that simplifies working with vector graphics on the Web. Raphaël uses SVG and VML for creating graphics that can be modified and event handlers that can be attached to them. The library is feature-rich in functions, including rotation, animation, scaling and drawing curves, rectangles and circles.

Raphael: Vectors With JavaScript26

ImageFX27
This is a JavaScript library for adding effects to images, like blur, sharpen, emboss, lighten and more. ImageFX uses canvas element for creating the effects. It is compatible with all major browsers (there is a compatibility chart on the script’s page). The library is so easy to use. Simply inserting the .js file in the Web page and calling a one-line function is enough.

Imagefx28

Pixastic29
Pixastic uses the HTML5 canvas element, which enables accessing raw pixel data. The effects supported include desaturation and grayscale, inverting, flipping, brightness and contrast adjustment, hue and saturation, embossing, blurring and much more. Because the canvas element is relatively new, the library does not have equal support in all browsers yet.

Reflection.js30
An unobtrusive JavaScript to auto-create reflection effects. The height and opacity of the reflection can be defined. Using it is as easy as adding a “class” to the images. It works in all major browsers and is smaller than 5 KB.

Reflection.js31

4. Database

Taffy DB32
A JavaScript library that can be thought as an SQL database in the browser or an advanced “array manager.” It works as a database layer within AJAX’ed Web applications. You can create, read, edit and delete data, use loops, sort them and use advanced queries.

ActiveRecord.js33
This library supports Google Gears and Chrome, Aptana Jaxer, Adobe AIR, and any platform that supports W3C HTML5 SQL Specification (Webkit and iPhone for now). It makes it easy to work with databases in JavaScript. Using ActiveRecord.js, you can auto-create tables, validate and synchronize data and more.

ActiveRecord.js

5. String And Math Functions

Date.js34
Working with dates are always tricky. So many dots, slashes and formats. Datejs is a stunning library for simple to complex date functions. It can parse dates like: “Next thursday”, “+2 years” and all formats like 2009.01.08, 12/6/2001 etc.

Datejs35

Sylvester36
This is a JavaScript library for doing vector and matrix math easily, without using a lot of loops and getting lost between arrays. It includes classes for modelling vectors and matrices in any number of dimensions and for modelling infinite lines and planes in 3D space.

Sylvester37

Pretty Date 38
A smart JavaScript solution for displaying dates within the past month in a prettier and more user-friendly way. It displays dates relative to the current time; for example, “Yesterday,” “3 hours ago,” etc.

Pretty Date39

XRegExp40
Regular expressions can be already used in JavaScript with the RegExp object. XRegExp adds more power to RegExp with features that will be part of the browsers of tomorrow (according to proposals for ECMAScript 4 – ES4). Using the library, RegExp objects can be cached and reused, modifiers can be added to existing RegExp objects and more.

JavaScript URL Library41
A library for handling and manipulating URLs more easily. It is possible to reach every part of a URL as a string and modify it when needed. This URL library is very new but already works as mentioned.

6. Fonts

typeface.js42
An unobtrusive library for using any font on a website. Unlike popular solutions like sIFR43 or FLIR44, typeface.js doesn’t require Flash and is 100% JavaScript. To use any font, upload the TrueType font file to a Web-based generator45, and download the rendered JavaScript file and include it in your Web pages.

Typeface.js46

Cufón47
Very similar to typeface.js, Cufón enables you to use any TrueType font in a website. Again, it converts the font to VML with a generator. After inserting the generated .js file in your Web pages, you can use the font like any other.

7. Debugging And Logging

Blackbird48
Alert()s are widely used to create checkpoints in JavaScript development. Blackbird offers a stylish console to log, view and filter messages in JavaScript, which quickens the development process by eliminating the pause at every alert and analyzing each better.

Blackbird49

NitobiBug50
A browser-based, cross-browser JavaScript object logging and inspection utility. By inserting rules in your code (like which object to follow), you can have it distinguish between simple types, like strings, booleans and numbers, and complex objects, like error messages and objects.

NitobiBug51

Firebug Lite52
Firebug, which sadly only works with Firefox, is one of the best debugging tools around. To have a similar tool for all browsers, insert the Firebug Lite .js file into your Web pages, and you get the functionality and interface you’re used to.

Firebug Lite53

8. Other

swfobject5455
swfobject is the most popular and flexible method for embedding Flash movies. It is unobtrusive, generates valid markup and can detect the version of a user’s Flash Player, allowing you to display alternate content if the required Flash version is not loaded. A nice article on “why swfobject should be used” can be found here56.

swfobject57

sorttable58 and dragtable59
Tables, like them or not, are still one of the best ways to present data. But they can be better: sorttable is a library that makes tabular data sortable, both ascending and descending. To do this, simply add class=”sortable” to the table. You can also exclude certain columns from being sorted and make either ascending or descending the default behavior. dragtable is another library that makes columns draggable. After inserting the library in the Web page, add class=”dragtable” to the table as above. Best of all, both libraries can be used together. Simply add class=”sortable dragtable” to the table after including both libraries in the Web page.

DD_roundies60 and DD_belatedPNG61
DD_roundies is a great JavaScript solutions for creating rounded corners without using images. It is focused on IE and supports it through VML. Other browsers are ignored because they support CSS’s border-radius property.

JavaScript Rounded Corners62
DD_belatedPNG is a library that provides a customizable fix for the notorious IE6 PNG problem. Whether the PNG is used as “src” or “background-image” DD_belatedPNG can fix it. Unlike other solutions, “background-position” and “background-repeat” properties work as expected too.

Custom JavaScript Dialog Boxes63
A lightweight library (about 4.5 KB) for creating custom dialog boxes. Four boxes can be displayed: alerts, warnings, prompts, success. With a simple function, you can specify the title of the box, the content to be shown and how many seconds to show it for.

Custom Dialog Boxes64

GameJS65
GameJS is a JavaScript-ported version of Microsoft’s XNA Game Framework66 that uses “canvas” as the rendering device. JavaScript is not the best platform for creating games. But for games with less FPS, and if you are a JavaScript developer, then why not? The library includes handy classes for controlling the objects, drawing and keyboard controls.

GameJS67

Shortcuts.js68
Starting with Google Reader and Gmail, keyboard shortcuts in Web applications have become popular because they improve usability so much. Shorcuts.js provides functions to handle keyboard shortcuts more easily. Using the library, it is possible to create hotkeys and run functions at the press of a button.

Mapstraction69
There are several mapping providers that provide different APIs. If you need to switch providers (say from Google Maps to MapQuest), codes need to be updated. That’s where Mapstraction comes in. It provides a common API that covers most of the popular mapping providers. By simply updating a line of code, it is possible to switch between them.

Mapstraction70

Amberjack71
A tiny JavaScript library (about 4 KB) that helps you add good-looking website tours to your website. Once activated, a modal box guides users by displaying any type of content. The steps in the tour can be hand-coded or generated online72. Also, tours can be made to match the look of the modal box, either via CSS or with a ready-to-use theme73.

Amberjack74

JsLoad75
Remote loading API of JavaScript library. JsLoad is simple API that enables you to import big JavaScript libraries from Google server. JsLoad load dependencies of any version of the library automatically.

(al)

Footnotes

  1. 1 http://www.formassembly.com/wForms/
  2. 2 http://www.formassembly.com/wForms/
  3. 3 http://www.drlongghost.com/validanguage.php
  4. 4 http://www.drlongghost.com/validanguage.php
  5. 5 http://www.livevalidation.com/
  6. 6 http://www.livevalidation.com/
  7. 7 http://yav.sourceforge.net/en/index.html
  8. 8 http://www.pengoworks.com/index.cfm?action=get:qforms
  9. 9 http://code.google.com/p/formreform/
  10. 10 http://code.google.com/p/formreform/
  11. 11 http://fx.inetcat.com/
  12. 12 http://fx.inetcat.com/
  13. 13 http://coderepos.org/share/wiki/JSTweener
  14. 14 http://code.google.com/p/tweener/
  15. 15 http://coderepos.org/share/wiki/JSTweener
  16. 16 http://developers.facebook.com/animation/
  17. 17 http://ryanmorr.com/archives/fx-lightweight-and-standalone
  18. 18 http://www.jscharts.com/
  19. 19 http://www.jscharts.com/
  20. 20 http://www.c3dl.org/
  21. 21 http://www.c3dl.org/
  22. 22 http://ejohn.org/blog/processingjs/
  23. 23 http://processing.org/
  24. 24 http://ejohn.org/blog/processingjs/
  25. 25 http://raphaeljs.com/
  26. 26 http://raphaeljs.com/
  27. 27 http://www.nihilogic.dk/labs/imagefx/
  28. 28 http://www.nihilogic.dk/labs/imagefx/
  29. 29 http://www.pixastic.com/
  30. 30 http://cow.neondragon.net/stuff/reflection/
  31. 31 http://cow.neondragon.net/stuff/reflection/
  32. 32 http://taffydb.com/
  33. 33 http://www.activerecordjs.org/
  34. 34 http://www.datejs.com/
  35. 35 http://www.datejs.com/
  36. 36 http://sylvester.jcoglan.com/
  37. 37 http://sylvester.jcoglan.com/
  38. 38 http://ejohn.org/projects/javascript-pretty-date/
  39. 39 http://ejohn.org/projects/javascript-pretty-date/
  40. 40 http://stevenlevithan.com/regex/xregexp/
  41. 41 http://www.fliquidstudios.com/projects/javascript-url-library/
  42. 42 http://typeface.neocracy.org/
  43. 43 http://www.mikeindustries.com/blog/sifr/
  44. 44 http://facelift.mawhorter.net/
  45. 45 http://typeface.neocracy.org/fonts.html
  46. 46 http://typeface.neocracy.org/
  47. 47 http://cufon.shoqolate.com/generate/
  48. 48 http://www.gscottolson.com/blackbirdjs/
  49. 49 http://www.gscottolson.com/blackbirdjs/
  50. 50 http://www.nitobibug.com/
  51. 51 http://www.nitobibug.com/
  52. 52 http://getfirebug.com/lite.html
  53. 53 http://getfirebug.com/lite.html
  54. 54 http://code.google.com/p/swfobject/
  55. 55 http://www.danvk.org/wp/dragtable/
  56. 56 http://www.alistapart.com/articles/flashembedcagematch/
  57. 57 http://code.google.com/p/swfobject/
  58. 58 http://www.kryogenix.org/code/browser/sorttable/
  59. 59 http://www.danvk.org/wp/dragtable/
  60. 60 http://dillerdesign.com/experiment/DD_roundies/
  61. 61 http://www.dillerdesign.com/experiment/DD_belatedPNG/
  62. 62 http://dillerdesign.com/experiment/DD_roundies/
  63. 63 http://www.scriptiny.com/2008/04/custom-javascript-dialog-boxes/
  64. 64 http://www.scriptiny.com/2008/04/custom-javascript-dialog-boxes/
  65. 65 http://www.tommysmind.com/gamejs/
  66. 66 http://www.xna.com/
  67. 67 http://www.tommysmind.com/gamejs/
  68. 68 http://www.openjs.com/scripts/events/keyboard_shortcuts/
  69. 69 http://mapstraction.com/
  70. 70 http://mapstraction.com/
  71. 71 http://amberjack.org/
  72. 72 http://amberjack.org/wizard/
  73. 73 http://amberjack.org/skins/
  74. 74 http://amberjack.org/
  75. 75 http://jsload.net/

↑ Back to topShare on Twitter

Umut Muhaddisoglu is a Web designer/developer. He runs WebResourcesDepot, a blog presenting free Web design and development resources everyday. To connect with the author, you can follow him on Twitter. http://twitter.com/umutm

Advertising
  1. 1

    Thanks for the article… will definitely use the js for image related tasks in the future

    -2
  2. 2

    Love this post!

    -4
  3. 3

    Great post!! will dig deep into this list tomorrow while at work. Wish it was up earlier b/c I just finished up some form validation. Good stuff!!

    -4
  4. 4

    Great post!

    1 thing: the Firebug lite under point 7 is wrongly linked to nitobibug

    4
  5. 5

    really good post.

    -2
  6. 6

    I am so glad that javascript has gotten beyond the days of copy/paste “snippets” of junk code. Finally there are some great resources out there that validate and are cross-browser friendly. Thanks for this awesome resource post.

    -3
  7. 7

    Good list. Thanks!!

    -2
  8. 8

    Thanks a lot for that! Really, it’s very useful post for me,… appreciate your work! ;)

    -3
  9. 9

    what a good list, bro….:)

    -3
  10. 10

    Tessekkürler that’s an awsome collection. I’d like to add Woollymitten’s ClassBehaviours javascript examples. http://www.woollymittens.nl

    -2
  11. 11

    PRO! Thanks …

    -2
  12. 12

    The Pixastic link is wrong. It should be http://www.pixastic.com/

    -2
  13. 13

    thank you fo these libraries

    -2
  14. 14

    thanks!

    -2
  15. 15

    As pointed out by Nidhi Agrawal above, the correct url for Firebug Lite is http://getfirebug.com/lite.html.

    HTH.

    -2
  16. 16

    Saves me a lot of time looking for this stuff on my own. Thanks!

    -2
  17. 17

    Js Charts could be very useful… I’ll consider it for one of next projects.
    Useful list as usual, thank you!

    -2
  18. 18

    Sure I’m goona use JS charts

    -3
  19. 19

    Great post. Would have liked to see the ‘MadeByPi ColorUtils’ library in there too because it’s the best out there for manipulating colors.

    // new Hex(“#00CCCC”).toRGB();
    // new Hex(“#00CCCC”).toRGB().toHSV();
    // new RGB(255,0,0).saturation(-10);
    // new RGB(255,0,0).hue(10);
    // new Hex(“#00CC00″).range(new Hex(“#CC0000″), 10);
    // new CMYK(0,1,1,0). analogous();
    // new Hex(“#cc0000″).greyscale().websafe();

    -2
  20. 20

    it’s really help me, since i duno about scripting :)

    -3
  21. 21

    I don’t need any more Flash!

    -2
  22. 22

    Cufon is a great pice of software. It makes embedding fonts really easy for the first time.
    I tried sifr before, but I always encountered some problems down the road. typeface.js however did not work at all for me.

    -2
  23. 23

    worthfull search!!
    thanks !!

    -1
  24. 24

    very nice list, great job

    0
  25. 25

    thank you SM

    0
  26. 26

    Nice post…………..very helpful to use in daily routine task….

    thanks Umut

    0
  27. 27

    Some good ones on here. Thanks a bunch!

    0
  28. 28

    Alvin L. Villaflores

    March 2, 2009 9:36 pm

    How about Microsoft’s Ajax Library? It’s nice for creating classes, introduce Ajax functionalities, and others.

    0
  29. 29

    Mhd Zaher Ghaibeh

    March 2, 2009 11:58 pm

    there is also another library which is like activerecord.js , its called JazzRecord (JazzRecord is ActiveRecord for JavaScript (ORM)) .
    i think you have to add it to the database section .
    find more about it JazzRecord.

    thank you for this nice article..

    0
  30. 30

    It appears that the last link to JSload is false. Even the description is for the reflection.js script.

    0
  31. 31

    Nice collection of tools / utils, I will defiantly make use of these in the future. Thanks!

    0
  32. 32

    Some great alternatives to using Flash there. Flash seems to be getting worse with each version and Java/Javascript seems the way forward.

    0
  33. 33

    Huge list here, I wish I had more time to explore them all!

    -1
  34. 34

    Wow…what a nice list!
    Bookmarked it, since I haven’t got the time to investigate all of the interesting things right now.

    -1
  35. 35

    Kudos to the creators of these libraries – the things that can be achieved with them is amazing :)

    0
  36. 36

    Nice Compilation Umut….Although many of then is already known to us but other then that this list still comes in handy.

    DKumar M.

    0
  37. 37

    T H A N K Y O U

    0
  38. 38

    Just yesterday I got this. Also Jquery libraries. http://www.moralfibre.co.za/2009/02/05/jquery-tips-tricks-resources/

    0
  39. 39

    Jônatan Fróes

    March 3, 2009 8:31 am

    what a strange name!!!

    1
  40. 40

    Great one, thnx a ton…

    0
  41. 41

    Thanks, gave me a couple of ideas for my site. Cheers.

    0
  42. 42

    Lipton of Starfeeder

    March 3, 2009 10:31 am

    3. Visualization And Image Effects

    Is amazing! Thanks for the links again Smashing Magazine :)

    0
  43. 43

    this is great thanks – a few i hadn’t even heard about !

    0
  44. 44

    excellent post! There are a few on there Im not too familiar with, will have to investigate! Thanks!

    0
  45. 45

    The form libraries look useful. I hadn’t ever heard of those, because I do my validation with php, but I sometimes will do both client side and server side validation. We should all know that JS is basically useless/dangerous for REAL form validation.

    0
  46. 46

    wow! IE firebug alone would make for a great post, but this is so full of amazing stuff i’ve been forwarding links to it all day

    0
  47. 47

    Awesome list of tools!

    0
  48. 48

    Great post, almost too many js tools to digest.

    0
  49. 49

    great post.

    0
  50. 50

    Like the look of blackbird so much I downloaded it

    thanks

    Aldur

    0
  51. 51

    Love all!

    0
  52. 52

    Thank you very much, these libraries look very useful !

    0
  53. 53

    That was nice I’m looking for this post.
    Thanks author

    0
  54. 54

    If you’re looking at making charts, I would suggest considering the Flot Plotting Library for jQuery. It has an unfortunate dependancy (jQuery), but the beauty, simplicity and extensibility of implementations make it a very serious competitior of other graph libraries. Just wish it would do “stacked” graphs.

    0
  55. 55

    Great list!

    For typeseting math equations on the web I recommend

    1
  56. 56

    Everything I need is on this page. I can’t explain how it helped me. Teşekkürler Umut.

    0
  57. 57

    谢谢,拿走研究去了。

    0
  58. 58

    Thanks SM for this great post :)

    0
  59. 59

    Thank you for helpful article. Have a good weekend!

    0
  60. 60

    AWESOMENESS. Thanks a lot SM!

    0
  61. 61

    Thanks for the share..

    0
  62. 62

    Great post and very well summarized. Hope to read more from Umut. Thanks.

    1
  63. 63

    I never did leave my thanks for including FX in this list, so… Thanks! Well I just released version 2 for the animation framework on my blog, check it out: http://ryanmorr.com/archives/fx-2-0-the-full-featured-animation-framework

    1
  64. 64

    I have also another library which is like Taffy DB , its called Kombai
    I think you have to add it to the database section.
    You can download at http://vnjs.net/www/src/kombai.rar
    or check out from link
    http://kombai-js.googlecode.com/svn/trunk/ kombai-js
    Some demo code:
    //create new database
    K.create.database({

    fieldName : ["compare", "responseText", "responseXML"],
    primaryKey: “compare”,
    ignoreError: true

    });

    //update data
    oldRequest.Update({

    responseText: xhr.responseText,
    responseXML: xhr.responseXML,
    where: ‘compare == “‘ + code + ‘”‘

    });

    //select element in DOM
    var aImg = K.select({

    from: document.getElementById(‘kombai’),
    where: “tagName ==’IMG’ && title == ‘copyright uoon’”

    });

    Thank you

    0
  65. 65

    Syn. Umut Muhaddisoglu

    Burada bir Türk görmek beni çokk mutlu etti.

    Güzel bir derleme olmuş

    Selamlar.

    1
  66. 66

    Am actually surprised no one has commented yet cos this post was really helpful…

    0
  67. 67

    This was helpful. You should also consider http://www.thejavascript.com. It’s a simple site but has a good list of libraries.

    -1
  68. 68

    This is a great list, here you have onother page with a lot of ajax examples
    http://www.ajaxshake.com
    thanks

    0
  69. 69

    Really useful
    thanks

    2
  70. 70

    Clarence Fredericks

    February 7, 2011 7:06 am

    I think a good library, that I just came across today is jPaq (http://jpaq.org/). It is highly customizable and very small. The library provides many of the JavaScript 1.6 and 1.7 functions that haven’t been implemented natively in older browsers.

    P.S. I also like the $fx() library that you suggested.

    0
  71. 71

    I’d recommend also Core Framework v1.0 (http://code.google.com/p/core-framework/) Provides good support for OOP web applications

    0
  72. 72

    Excellent collection…definitely very useful in my context.

    0
  73. 73

    WOW GREAT STUFF JUST FANTASTIC

    0
  74. 74

    you guys are the best!

    0
  75. 75

    Good Collection here are few for manipulating date and time..
    codegeekz.com/6-javascript-date-libraries-for-developers/

    0
  76. 76

    Just thought I’d comment here as I’ve released a first BETA version of my classList manipulation library classMaster.js :)

    It’s over at: http://mutantmerch.com/classMaster/

    Thanks!
    Tom.

    0
  77. 77

    JS2DX is a JavaScript Library API that provides simple, non-verbose syntax to existing libraries. It is library-independent and enables programmers to code complex GUI pages with a compact JS object. http://js2dx.com

    0

↑ Back to top