node package manager


Indigo JS Components

NPM version Build Status Coverage Status Dependency Status devDependency Status


This client-side framework is based on EJS templates and JQuery. The IndigoJS-components library allows for the creation of UI components on HTML pages at runtime. Javascript and EJS templates are created on the browser using ES5 standards, however template literals are also supported. To ensure cross-platform compatibility, run the grunt command to compile EJS files.

For improved performance and CPU usage, use IndigoJS NodeJs framework to render EJS templates and compile LESS/CSS on the server side .


Getting Started

1. Download and install NodeJS
2. Install bower
npm install -g bower
3. Download IndigoJS Components
git clone
4. Install and run demo
cd indigojs-components

npm install

npm start

Additional Tips

To get the latest IndigoJS components updates, use the bower package manager to run your application.

bower install indigojs-components

Execute the grunt command after making changes to EJS or LESS files. This allows for the conversion of LESS to CSS and EJS to HTML.


To render IndigoJS components on the client side, include Embedded JavaScript Templates: <script type="text/javascript" src="js/ejs/ejs.min.js"></script>

In order to load dynamic content at run-time, add the indigo-builder attribute to existing container(s) (div, article, section, header, footer, nav etc.) and point it to the desired content file. <section indigo-builder="build/ejs/content.html"></section>

Before closing a body tag add the builder.js parser. <script type="text/javascript" src="js/builder.js" indigo-pkgs="igo,jui"></script>

The indigo-pkgs attribute force preloads component libraries prior to the content pages being rendered. Embedded packages:

  • igo - IndigoJS components
  • jui - jQuery UI widgets

Hint: You can replace or attach the content file by using JavaScript: indigoJS.builder('NEW_CONTENT_FILE', document.querySelector('section'));

Components life cycle phases


Loaded is a static function that executes after a class has been loaded on the browser for the first time. Implementation of this function can contain global variables and functions within the window or jQuery scope.


Register is a static function that executes after all classes have been loaded. Implementation of this function can contain class scope event handler(s).


The Preinitialize function is called once the components are loaded and calls on each jquery element based on its class attribute selector. This allows for the initialization of DOM element default parameters, style, and behavior.


The Initialization function occurs after the creation of an object class. It is defined in the indigo core.js library and is executed prior to data-binding.

For more cool features check out IndigoJS framework.