Front-End Boilerplate & UI Toolkit

What is One-Nexus?

One-Nexus is a front-end boilerplate and UI toolkit built using the Synergy Sass framework, combined with a custom grid system; Kayzen-GS. Together they form a powerful framework for building responsive websites with modular and configurable components.

or Learn More

Free & Open-Source - Hosted on Github

One-Nexus is open-source, built using open-source tools. All bugs, issues and feature requests are handled on Github.

Why Choose One-Nexus?

With so many frameworks and libraries out there, what makes One-Nexus different?

Custom Grid System

One-Nexus uses Kayzen-GS, a powerful grid system custom built for One-Nexus.

Unique Modules

Built using Synergy, One-Nexus offers a unique approach for building modules.

Powerful Theming

Create multiple themes by passing different configuration data to modules.

Quick & Easy to Use

Getting started can be as simple as including a single .js and .css file on your page

One-Nexus requires only plain old HTML5, leaving you to handle templates however you want - just load the required assets.

Styles are compiled from .scss files - use whatever method of compiling you are comfortable with (requires Sass 3.4+).

Most plugins for One-Nexus require jQuery. The demo templates which you can build from come with it included via CDN.

Built With Synergy

Star

Each One-Nexus component is a configurable module built using Synergy.

Creating a Module

See the below pseudo examples to see just what's possible with One-Nexus/Synergy

  • Utility
  • Element
  • Object
/modules/utilities/_palettes.scss

                                    @mixin palettes($custom: ()) {
                                        $palettes: config((
                                            'brand':(
                                                'brand-1' : #2E3882,
                                                'brand-2' : #06d2ff,
                                                'brand-3' : #04CEC0
                                            ),
                                            'alert':(
                                                'error'   : #D9434E,
                                                'help'    : #F5BA42,
                                                'info'    : #4B8CDC,
                                                'success' : #3BB85D
                                            ),
                                            'validation':(
                                                'valid'   : #00B16A,
                                                'invalid' : #D91E18	
                                            )
                                        ), $custom) !global;
                                    }

                                    // Function to get desired color from specific palette
                                    @function color($palette, $color) {
                                        @return map-get(map-get($palettes, $palette), $color);
                                    }
                                
/app.scss

                                    // Config
                                    ...
                                    $theme : 'MyTheme';

                                    // Vendor Files
                                    ...

                                    // Tools
                                    ...

                                    // Utilities
                                    @import 'modules/utilities/palettes';
                                    ...

                                    // Elements
                                    ...

                                    // Objects
                                    ...

                                    // Themes
                                    @import 'themes/MyTheme/MyTheme';
                                    ...
                                
/themes/MyTheme/_MyTheme.scss

                                    @if $theme == 'MyTheme' {
                                        // Utilities
                                        @include palettes((
                                            'brand':(
                                                'brand-1': pink,
                                                'brand-4': #ea4c88
                                            ),
                                            'validation':(
                                                'invalid': rgba(255, 0, 0, 1)
                                            )
                                        ));
                                        ...

                                        // Elements
                                        ...

                                        // Objects
                                        ...
                                    }
                                
/modules/objects/_testObject.scss

                                    @include module('testObject') {

                                        background-color: color('brand', 'brand-1');
                                        border: 1px solid color('brand', 'brand-3');

                                        @include modifier('invalid') {
                                            background-color: color('validation', 'invalid');
                                        }

                                    }
                                
/dist/MyTheme/MyTheme.css

                                    /* ... */

                                    .testObject,
                                    [class*='testObject-'] {
                                        background-color: pink;
                                        border: 1px solid #04CEC0;
                                    }
                                    [class*='testObject-'][class*='-invalid'] {
                                        background-color: rgba(255, 0, 0, 1);
                                    }

                                    /* ... */
                                
  • Sass module
  • Import Sass module
  • Include Sass module
  • Usage
  • CSS Output

View Full Docs

One-Nexus comes with a bunch of premade modules just like the example shown here! View modules

/modules/elements/buttons/_buttons.scss

                                    @mixin buttons($custom: ()) {

                                        // Configuration
                                        $buttons: config((
                                            'name'             : 'button',
                                            'color'            : #FFFFFF,
                                            'background'       : #444444,
                                            'padding'          : 1em,
                                            'colors'           : map-get($palettes, 'brand'),
                                            'sizes': (
                                                'small'        : 0.8em,
                                                'large'        : 1.25em
                                            )
                                        ), $custom);
                                        
                                        // Module
                                        @include module {
                                            display: inline-block;
                                            color: this('color');
                                            background: this('background');
                                            padding: this('padding');

                                            // Colors
                                            @each $key, $value in this('colors') {
                                                @include modifier($key) {
                                                    background-color: $value;
                                                }
                                            }

                                            // Sizes
                                            @each $key, $value in this('sizes') {
                                                @include modifier($key) {
                                                    font-size: $value;
                                                }
                                            }
                                        }
                                    }
                                
/app.scss

                                    // Config
                                    ...
                                    $theme : 'MyTheme';

                                    // Vendor Files
                                    ...

                                    // Tools
                                    ...

                                    // Utilities
                                    @import 'modules/utilities/palettes';
                                    ...

                                    // Elements
                                    @import 'modules/elements/buttons/buttons';
                                    ...

                                    // Objects
                                    ...

                                    // Themes
                                    @import 'themes/MyTheme/MyTheme';
                                    ...
                                
/themes/MyTheme/_MyTheme.scss

                                    @if $theme == 'MyTheme' {
                                        // Utilities
                                        @include palettes((
                                            'brand':(
                                                'brand-1': pink,
                                                'myBrand': #2093db
                                            ),
                                        ));
                                        ...

                                        // Elements
                                        @include buttons((
                                            'padding'    : 0.75em 1.25em,
                                            'sizes': (
                                                'xlarge' : 1.5em
                                            )
                                        ));
                                        ...

                                        // Objects
                                        ...
                                    }
                                
/dist/MyTheme/MyTheme.css

                                    .button,
                                    [class*='button-'] {
                                        display: inline-block;
                                        color: #FFFFFF;
                                        background: #444444;
                                        padding: 0.75em 1.25em;
                                    }
                                    [class*='button-'][class*='-brand-1'] {
                                        background-color: pink;
                                    }
                                    [class*='button-'][class*='-brand-2'] {
                                        background-color: #06D2FF;
                                    }
                                    [class*='button-'][class*='-brand-3'] {
                                        background-color: #04CEC0;
                                    }
                                    [class*='button-'][class*='-myBrand'] {
                                        background-color: #2093DB;
                                    }
                                    [class*='button-'][class*='-small'] {
                                        font-size: 0.8em;
                                    }
                                    [class*='button-'][class*='-large'] {
                                        font-size: 1.25em;
                                    }
                                    [class*='button-'][class*='-xlarge'] {
                                        font-size: 1.5em;
                                    }
                                
/templates/partials/header.hbs

                                    <button class="button">Button</button>
                                    <button class="button-myBrand">Button</button>
                                    <button class="button-xlarge">Button</button>
                                    <button class="button-myBrand-small">Button</button>
                                    <button class="button-large-brand-3">Button</button>
                                
  • Sass module
  • Import Sass module
  • Include Sass module
  • CSS Output
  • HTML usage

View Full Docs

One-Nexus comes with a bunch of premade modules just like the example shown here! View modules

/modules/objects/header/_header.scss

                                    @mixin header($custom: ()) {

                                        // Configuration
                                        $header: config((
                                            'name'    : 'appHeader',
                                            'sticky'  : false, // this value will be used in the JS module
                                            'offset'  : 0, // this value will be used in the JS module
                                            'bg-color': #444444
                                        ), $custom) !global;

                                        // Module
                                        @include module() {
                                            position: absolute;
                                            top: this('offset');
                                            background: this('bg-color');

                                            @include modifier('fixed') {
                                                position: fixed;
                                                top: 0;
                                            }
                                        }
                                        
                                    }
                                
/modules/objects/header/header.js

                                    $.fn.header = function(custom) {
                                        
                                        var $module = 'appHeader';
                                        
                                        // Configuration
                                        var options = $.extend({
                                            // these default values are fetched from the Sass module
                                            // using the custom _option() function
                                            sticky : _option($module, 'sticky'),
                                            offset : _option($module, 'offset')
                                        }, custom);
                                            
                                        var header = $(this);

                                        if (options.sticky) {
                                            $(window).on('load scroll', function() {
                                                var scroll = $(window).scrollTop();

                                                if (scroll > options.offset) {
                                                    header.addClass($module + '-fixed');
                                                } else {
                                                    header.removeClass($module + '-fixed');
                                                }
                                            });
                                        }
                                            
                                    }
                                
/app.scss

                                    // Config
                                    ...
                                    $theme : 'MyTheme';

                                    // Vendor Files
                                    ...

                                    // Tools
                                    ...

                                    // Utilities
                                    ...

                                    // Elements
                                    ...

                                    // Objects
                                    @import 'modules/objects/header/header';
                                    ...

                                    // Themes
                                    @import 'themes/MyTheme/MyTheme';
                                    ...
                                
/themes/MyTheme/_MyTheme.scss

                                    @if $theme == 'MyTheme' {
                                        // Utilities
                                        ...

                                        // Elements
                                        ...

                                        // Objects
                                        @include header((
                                            'sticky'  : true, // JS module initially looks at this value
                                            'offset'  : 50px,
                                            'bg-color': black
                                        ));
                                        ...
                                    }
                                
/themes/MyTheme/MyTheme.js

                                    $(document).ready(function() {
                                        // Utilities
                                        ...

                                        // Elements
                                        ...

                                        // Objects
                                        $(_appHeader).header({ // _appHeader is an automatically generated global variable
                                            // passing a value here overrides the value set in the Sass module
                                            sticky: false
                                        });
                                        ...
                                    });
                                
/dist/MyTheme/MyTheme.css

                                    .appHeader, 
                                    [class*="appHeader-"] {
                                        position: absolute;
                                        top: 50px;
                                        background: black;
                                    }
                                    [class*="appHeader-"][class*="-fixed"] {
                                        position: fixed;
                                        top: 0;
                                    }
                                
/templates/partials/header.hbs

                                    <!-- If 'sticky' is enabled, header will become fixed
                                    when the top reaches top of the viewport: -->
                                    <header class="appHeader">
                                        ...
                                    </header>

                                    <!-- Or for a permanently fixed header: -->
                                    <header class="appHeader-fixed">
                                        ...
                                    </header>
                                
  • Sass module
  • JS module
  • Import Sass module
  • Include Sass module
  • Include JS module
  • CSS Output
  • HTML usage

View Full Docs

One-Nexus comes with a bunch of premade modules just like the example shown here! View modules

More Features...

One-Nexus offers more than the average framework/boilerplate

Working Twitter Feed

Optimised Performance

Package Manager Friendly

Component Configuration

Google Maps

Print Stylesheet

Fully Responsive

Talk Between Sass/JS

Touch/Swipe Support

SassDoc/JSDoc

Sass/JS Unit-Testing

Automated Build Tools

Integrates Into Any Workflow

Built For Experts & Beginners of All Levels

One-Nexus can be used with tools you already love and are familiar with. Getting started can be as simple as importing a single .js and .css file.

  • Watch and compile a single .scss file
  • Resuable Handlebars templates included
  • Adaptable Gruntfile to build One-Nexus assets included

Mobile Optimised

One-Nexus lets you build websites with a beautiful mobile experience

Kayzen-GS

Custom grid system

Kayzen is built on our own custom grid system: Kayzen GS, which is based off inline-block columns.

Touch/Swipe Support

Optimised for touch devices

Kayzen is touch/swipe ready for mobile touch screen devices for various UI elements such as carousels.

Smooth Performance

Optimised for mobile browsing

All jQuery plugins and CSS elements have been built with mobiles in mind, ensuring any animations run smoothly.


Kayzen-GS

Star

Kayzen-GS is a powerful framework for building responsive grid systems. Built using Sass and based off inline-block columns, Kayzen-GS is a one of a kind framework custom built for One-Nexus.

Creating Semantic Grids

See the below pseudo exampe to see just what's possible with One-Nexus/Kayzen-GS

/pages/portfolio/index.html

                                <div class="portfolioItem_wrapper">
                                    <div class="portfolioItem">
                                        ...
                                    </div>

                                    <div class="portfolioItem">
                                        ...
                                    </div>

                                    <div class="portfolioItem">
                                        ...
                                    </div>

                                    <div class="portfolioItem">
                                        ...
                                    </div>
                                </div>
                            
/modules/_portfolio-items.scss

                                @include module('portfolioItem') {

                                    // Create the semantic row
                                    @include component('wrapper') {
                                        @include row();
                                    }

                                    // Create the semantic columns
                                    @include column((
                                        'width' : (3, 12)
                                    ));

                                }
                            
/dist/MyTheme/app.css

                                .portfolioItem,
                                [class*='portfolioItem-'] {
                                    display: inline-block;
                                    vertical-align: top;
                                    margin-left: 3%;
                                    width: 22.75%;
                                }
                                .portfolioItem_wrapper,
                                [class*='portfolioItem_wrapper-'] {
                                    letter-spacing: -1em;
                                    display: table;
                                    width: 100%;
                                }
                                .opera-only :-o-prefocus,
                                .portfolioItem_wrapper,
                                [class*='portfolioItem_wrapper-'] {
                                    word-spacing: -0.43em;
                                }
                                .portfolioItem:first-child,
                                [class*='portfolioItem-']:first-child {
                                    margin-left: 0;
                                }
                                @media (max-width: 940px) {
                                    .portfolioItem,
                                    [class*='portfolioItem-'] {
                                        display: block;
                                        left: auto;
                                        margin-left: 0;
                                        width: 100%;
                                    }
                                }
                            
  • HTML Sample
  • Sass Sample
  • CSS Output

View Full Docs

One-Nexus comes with a bunch of premade modules just like the example shown here! View modules

The Power of Themes

Change the entire look and feel of your website by creating different themes

One Goal, One Solution: One-Nexus.

Start your next project with One-Nexus to unlock a new way of building

Share The Love

Follow us on Social Media to keep up-to-date with One-Nexus