JADE Template Structure

Folder Structure

                
                    robust-admin/
                    ├── src/
                    |   ├── template-builder/
                    |   |   ├── templates/
                    |   |   |   ├── sections/
                    |   |   |   |   ├── footer/
                    |   |   |   |   ├── header/
                    |   |   |   |   ├── menu/
                    |   |   |   |   ├── preloader/
                    |   |   |   ├── horizontal-menu-template.jade
                    |   |   |   ├── horizontal-top-icon-menu-template.jade
                    |   |   |   ├── vertical-compact-menu-template.jade
                    |   |   |   ├── vertical-content-menu-template.jade
                    |   |   |   ├── vertical-menu-template.jade
                    |   |   |   ├── vertical-multi-level-menu-template.jade
                    |   |   |   └── vertical-overlay-menu-template.jade
                    |   |   └── base.jade
                
            

Robust build system provides built in 7 different types of templates 2 horizontal and 5 vertical templates as shown in above folder structure.

templates/ folder contain section/ folder and 7 templates jade files.

section/ folder contain header/ folder which contain different types header jade files. menu/ folder contain all layouts menu jade files. menu/ folder contain different footer jade files. preloader/ folder contain different style preloader jade files.

JADE Configuration

Robust Admin use JADE as template engine to generate pages and whole template quickly using node js, for getting start with JADE usage & template generating process please refer template documentation.

JADE Code
              
                extends ../base

                //- Template customization
                //------------------------
                block templateConfig
                    - var templateCustom = "vertical-layout vertical-menu"
                    - var dataMenu = "vertical-menu"

                //- Page level customization
                //------------------------
                block pageConfig
                    - var logoType = 'light'

                block navbarConfig
                    - var navbarPosition = "navbar-fixed-top"
                    - var navbarColor = "navbar-semi-dark"
                    - var navbarShadow = true   

                block verticalMenuConfig
                    - var menuType = "menu-fixed"
                    - var menuColor = "menu-dark"
                    - var menuOpenType = "menu-accordion"
                    - var menuShadow = true 

                block footerConfig
                    - var footerType = "footer-static"
                    - var footerColor = "footer-light"
                    - var footerBorder = true

                //- Template includes
                //-------------------
                block preloader
                    include sections/preloader/vertical-menu

                block header
                    if(headerType == 'sk-header')
                        include ../templates/sections/header/sk-header
                    else if(headerType == 'header-back')
                        include ../templates/sections/header/header-back
                    else if(headerType == 'header-simple')
                        include ../templates/sections/header/header-simple
                    else
                        include sections/header/header

                block main-menu
                    include sections/menu/vertical-menu

                block page-header
                    if blankPage != true
                        include ../pages/page-headers/breadcrumbs-top-with-description

                block footer
                    include sections/footer/footer

                //- Template specific dependency
                //------------------------------

                //- Vendor CSS
                //------------------------------
                //- Add Vendor specific CSS
                block vendorcss

                //- Page CSS
                //------------------------------

                //- Add custom page specific CSS
                block pagecss   
                    link(rel='stylesheet', type='text/css', href='../app-assets/css#{rtl}/core/menu/menu-types/vertical-menu.css')
                    link(rel='stylesheet', type='text/css', href='../app-assets/css#{rtl}/core/menu/menu-types/vertical-overlay-menu.css')

                //- Vendor JS
                //------------------------------
                //- Add vendor specific JS
                block vendorjs

                //- Page JS
                //------------------------------
                //- Add custom page specific JS
                block pagejs

              
              
Template level customization

JADE Template file contain template level customization variables. Below table contain different block and variables can be use to customize template. Refer line no: 5-7

Block Variable Datatype Values
templateConfig templateCustom string "vertical-layout vertical-menu", "vertical-layout vertical-compact-menu", "vertical-layout vertical-overlay-menu", "vertical-layout vertical-content-menu", "vertical-layout vertical-multi-level-menu", "horizontal-layout horizontal-menu","horizontal-layout horizontal-top-icon-menu"
templateConfig dataMenu string "vertical-menu", "vertical-overlay-menu", "vertical-content-menu", "vertical-compact-menu", "vertical-multi-level-menu", "horizontal-menu", "horizontal-top-icon-menu"
Page level customization

On template file you can define common page level customization which will be applied on all pages. Refer line no: 11-28

Block
pageConfig
Variable Datatype Value
contentLayout string "1-column", "2-columns", "content-left-sidebar", "content-right-sidebar", "content-detached-left-sidebar", "content-detached-right-sidebar"
menuOpen boolean "click", "hover"
logoType boolean "light", "dark"
boxedLayout boolean true, false
centerLayout boolean true, false
sidebarSticky boolean true, false
preloader boolean true, false
starterKit boolean true, false
navbarConfig
Variable Datatype Value
navbarPosition string "navbar-fixed-top", "navbar-fixed-bottom" ,"navbar-static-top"
navbarColor string "navbar-light", "navbar-dark", "navbar-semi-dark"
navbarBrandCenter boolean true/false
navbarHideOnScroll boolean true/false
navbarBorder boolean true/false
navbarShadow boolean true/false
verticalMenuConfig
for vertical layout only
Variable Datatype Value
menuType string "menu-fixed", "menu-static"
menuColor string "menu-light", "menu-dark"
menuOpenType string "menu-accordion", "menu-collapsible"
menuFlipped boolean true/false
menuNativeScroll boolean true/false
menuIconRight boolean true/false
menuBorder boolean true/false
menuShadow boolean true/false
horizontalMenuConfig
for horizontal layout only
Variable Datatype Value
menuType string "navbar-fixed", "navbar-static"
menuColor string "navbar-light", "navbar-dark"
menuFlipped boolean true/false
menuIconRight boolean true/false
menuWithoutDDArrow boolean true/false
menuBorder boolean true/false
menuShadow boolean true/false
footerConfig
Variable Datatype Value
footerType string "navbar-fixed-bottom", "footer-static"
footerType string "footer-light", "footer-dark", "footer-transparent"
footerBorder boolean true/false
footerShadow boolean true/false
Template Includes

Templates includes define the template preloader, header, main-menu, footer. Refer line no: 32-53

Block Includes Options
preloader include sections/preloader/{{preloader-name}} "vertical-menu", "vertical-multi-level-menu", "vertical-overlay-menu", "vertical-content-menu", "vertical-compact-menu", horizontal-menu", "horizontal-top-icon-menu"
header include sections/header/{{header-name}} "header", "header-back", "header-min", "header-simple"
main-menu include sections/menu/{{menu-name}} "vertical-menu", "vertical-multi-level-menu", "vertical-overlay-menu", "vertical-content-menu", "vertical-compact-menu", horizontal-menu", "horizontal-top-icon-menu"
footer include sections/footer/{{footer-name}} "footer", "footer-custom"
Template specific dependency

You can append vendor and custom js & css dependencies on template level using vendorcss, pagecss, vendorjs & pagejs block. Refer line no: 57-79