Introduction
Welcome!
Dear customers, first of all we would like to thank you for choosing Unify Template! We truly hope that Unify will serve you well, and that it will live up to your expectations.
We hope you will enjoy using Unify template's easy to navigate and user-friendly layout as well as developer-friendly code. Furthermore, a lot of resources have been employed and many options have been added just to make sure that our valued customers will be satisfied with their purchase.
Updates
In order to keep up with the fast paced evolution of web design trends, we always try to release new updates on continuous basis. Our goal with each update is to impress our customers and to put huge smile on their faces.
We would like to bring to your attention that once you purchase Unify Template, you become eligible for a lifetime entitlement to download updates for FREE! On the other hand, we regret to inform you that license upgrade is not available. If you wish to upgrade your license, a new purchase must be made.
Current updated release is v2.0 which offers several new plugins, plenty of new designs options, Bootstrap 4, fully SASS support and much more. All changes can be found in the changelog section here. Our updates do not stop there as many more new amazing features are surely coming soon in the next updates. Thank you always for using Unify Template and for being a vital part of its success.
Support
In Unify we believe that support is a crucial aspect of any successful product. Therefore, we try our very best to offer the most excellent support, and we always try everything within our power to assist our valued customers. It is worth to mention that our support mainly covers all design issues that one might encounter in addition to frontend-related issues as long as it is not complete customized work.
If you have any questions, please feel free to contact us at support@htmlstream.com and we will do our best to get back to you within 24 hours. Sometimes it might take a bit longer, but we will do our best not to keep you waiting longer than 48 hours. You may also leave us a message through our social pages: Facebook and Twitter
- - Author: Htmlstream
- - Product Page: Unify - Responsive Website Template
- - Created on: 24/04/2013
- - Latest Update on: 03/07/2017
File Structures
Download Package
The download package includes three folders HTML, Documentation and PSD folder. All the live demo examples are located inside the HTML folder. The HTML folder is a main source folder where all assets files are located.
Note!
Most of the PSD files are not included in the download package and should be downloaded separately thorugh the provided dropbox link here.
HTML Folder
Unify comes with 5 complete packages such as "Unify Main", "E-Commerce", "Blog & Template", "One Pages" and "Specialty Pages" packages. In addition, Unify includes premium Revolution and Master Slider demos inside the package. Unify does not stop there as many more new amazing packages like "Multi Page", "Admin Templates" and so on are coming soon.
Note!
Premium Revolution and Master Slider demos' assets such as image and video files are not included in the download package and should be downloaded separately thorugh the provided dropbox link here.
HTML Folder Structures
assets(all source files such as css, sass, js, images, plugins etc.)unify-main(it is a main package which includes all shortcodes demos and all packages are based on Unify Main package.)e-commerce(contains more than 6 ready to use shop pages.)blog-magazine(the package includes home and article page and over 50 news block options from the Unify Main can be used inside the pacakge.)one-pages(this pacakge includes variety thematic designs. One Pages package contains over 15 thematic designs.)specialty-pages(404 error, maintenance, coming-sooon pages.)email-templates(comes with four design options such as "password reset", "product alarm", "purchase complete" and "registration complete".)revolution-slidermaster-sliderindex.html(Intro page)
Important!
Unify packages, such as "E-Commerce", "Blog & Template", "One Pages" and others do not include third party libraries inside its assets folder, they are globally linked to HTML/assets/vendor/.. folder. All third party libraries like Bootstrap jQuery, Font Awesome etc. share same directory.
HTML assets Structures
css(unify.css and custom.css)js(custom.js, hs.core.js and all js init files including our custom js source files.)include(scss, ajax and other source files.)img(logos, patterns, custom icons and others)img-temp(all content image files)figures(svg files)vendor(third party libraries like Bootstrap, jQuery etc.)style-switcher(for live demo purpose only)
Folder like css, include, img, img-temp etc. are shared within the main package "Unify Main" only. On the other hand, the packages like One Pages, E-Commerce and Block & Magazine have their own assets folder for css and images.
CSS (SASS) Structure
CSS Architecture
Every STRONG project needs some file structure and organization. For that, already exist a lot of methodologies and solutions such as BEM, ITCSS, OOCSS, Atomic CSS and others. These methodologies help to maintain the project easily and scalably. For example, BEM is used by Google, BBC and many other large companies. Also, the authors of the mentioned methodologies are very experienced people in this field.
Each methodology has its own file structure, strict rules, recommendations and even coding structure. However, it is very hard to pick up only one of them and fully follow in our project - Unify 2. Here some reasons why It can not be used within the one methodology:
- Unify-2 provides design solutions for all type of projects, not only for one end product. Any component must be reusable in any pages. For example, "news block" component in Real Estate theme could be easily reusable in Travel theme.
- Transformation: one component changes to another one. For example, "team block" component in Travel Theme can be easily transformed to "product block" in E-Commerce page without duplicating CSS code and losing its semantic class name.
- Built with Bootstrap Framework. In other words, Unify-2 is fully depended on Bootstrap classes which breaks the ideologies of some methodologies.
For that reason, we have picked best optimal practices and features from some popular methodologies and implemented into Unify-2. At the result, we came up with our own new file structure and methodology.
CSS (SASS) File Structure
Here is how Unify-2 CSS (SASS) file structure looks like:
- Settings
- Variables
- Tools
- Mixins
- Functions
- Core
- Default styles for tags (body, a, etc.)
- Vendors
- Overwrite codes of the third party plugins
- Base (u-class-*)
- Base Components
- Blocks (u-class-*)
- Block Components
- Themes
- General theme styles
- Custom
- Custom codes for the end user (developer)
- Globals (g-class-*)
- Global Immutable Classes
Naming Classes (Globals and Components)
We use namespaces (prefixes) for the Blocks/Base Components and Core Globals classes. Both Globals and Components have their own rules.
The following table shows some examples of class names:
| Global Core | Base Components | Block Components |
|---|---|---|
| g-mb-20 | u-btn | u-info-block-v1** |
| g-pa-30 | u-tabs-v* | u-info-block-v2** |
| u-badge | u-info-block-v2-1 | |
| u-heading-v* | u-info-block-v3 | etc. |
*Can be any number/value e.g. u-tabs-v3, u-accordion-v7 etc.
**Info block classes like u-info-block-v* can be team, product etc. block variations. Instead of team-block-v1, team-block-v2 classes, we use u-info-block-v2-1, u-info-block-v2-2 etc. This method gives us to use any blocks differently in other pages. For example, the team block can be easily changed to product block with some Global classes. This approach (info block classes) helps us to keep semantically correct block names in any situation.
Globals (Globals Immutable Classes)
Core Global Classes use g-* prefix. Here are some rules for the Global Immutable Classes:
- Global classes are independent classes, they are not inherited from any other classes. Also, they can hold
!importantin CSS. - Globals are Immutable Classes which means they can not be changed or modified. For example:
CSS - Wrong:
.g-mb-50 { margin-bottom: 43px; }CSS - Correct:.g-mb-50 { margin-bottom: 50px !important; } - They can not be overwritten as they are immutable classes. If you want to add or remove styles then you should edit via HTML. The following example code is not suitable for Global Immutable Classes:
CSS - Wrong:
.block-name .g-mb-20 { z-index: 1; }HTML:<div class="block-name"> <p class="g-mb-20">Some texts…</p> </div>
Instead, just use
g-z-index-1class in HTML code. Otherwise, when the value of margin bottom changes to other value, z-index will not be applied.HTML - Correct:<div class="block-name"> <p class="g-z-index-1 g-mb-20">Some texts…</p> </div>
However, If the case requires to use z-index within the block-name class then the new class should be added.
HTML:<div class="block-name"> <p class="block-name__item g-mb-20">Some texts…</p> </div>CSS:.block-name__item { z-index: 1; } - Global classes can accept modifiers. Modifiers are defined by double hyphens
g-class-*--*and It can be used only in two conditions- For responsive mode
g-class--sm,g-class--mdetc. - For state classes like
:hover,::after,::beforeetc.g-class-*--hover,g-class-*--focus
- For responsive mode
Overall, Global Classes can be used as a helper classes to extend any components by giving spacing (margins, paddings), text sizes, colors etc.. However, It is not limited with that, It is possible to build from scratch a new block component like product block, team block, news block etc. You may find some examples in Components (Base and Blocks) section.
Components (Base and Blocks)
Components are divided into two parts in Unify: Base Components and Block Components. The prefix of u-* class is used for both (Base and Blocks) Components.
- Base Components are usually small helper components to build Block Components. Base Components could be buttons, badges, icon styles, tabs, accordions etc.
- Block Components are usually collection of Base Components with/without the Global Classes. It could be header, footer, news, product, team blocks etc.
Also, BEM naming convention is applied for the both Base/Block Components. You may find some quick information about BEM naming convention in the following article here: https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax
However, in some cases Base/Blocks Components do not hold BEM naming convention. The reason is, sometimes default Bootstrap components are extended in Unify by offering more UI solutions. In addition, in many cases Base and Block Components can be fully built with Global Classes.
Case #1 (Base Components)
Base Components are extended by using default Bootstrap’s components. For example, Bootstrap buttons are extended in Unify Template to offer more stunning solutions. This gives flexibility to use pure Bootstrap buttons within the Unify Template. Here is an example code how it looks:
Bootstrap Buttons:
<a href="#" class="btn btn-primary">Primary</a>
<a href="#" class="btn btn-outline-danger">Outline Danger</a>
<a href="#" class="btn btn-sm btn-success">Success</a>
<a href="#" class="btn btn-lg btn-warning">Warning</a>
Unify Buttons
<a href="#" class="btn btn-md u-btn-blue u-btn-3d">Blue 3d Button</a>
<a href="#" class="btn btn-lg u-btn-purple u-btn-inset">Purple Inset</a>
<a href="#" class="btn btn-lg u-btn-primary u-btn-hover-v1-1">Primary Hover v1-1 Style</a>
<a href="#" class="btn btn-md u-btn-darkgray u-btn-hover-v1-2">Black Hover v1-2 Style</a>
You may see from the above example codes, Unify buttons do not hold BEM naming convention. However, in some cases It can be used mixed BEM naming convention. Let’s look at the below example:
<a href="#" class="btn btn-md u-btn-skew u-btn-primary">
<span class="u-btn-skew__inner">Some texts…</span>
</a>
The above example shows how button types could be used with the mixed BEM naming convention.
Case #2 (Base Components)
Base Components can be extended with the Global Classes. Here are some examples:
Bootstrap Blockquote:
<blockquote class="blockquote">
<p class="mb-0">The best ideas come as jokes...</p>
<footer class="blockquote-footer">Author Name</footer>
</blockquote>
The best ideas come as jokes...
Unify Blockquote:
<blockquote class="blockquote g-brd-2 g-brd-primary--hover g-font-size-18 text-uppercase g-transition-0_2">
<p class="g-mb-5">The best ideas come as jokes...</p>
<footer class="blockquote-footer">Author Name</footer>
</blockquote>
The best ideas come as jokes...
Case #3 (Block Components)
Block Components can be built within the Global Classes. Here are the examples where news block are constructed with some Global Classes and Base Components. Also, It uses default Bootstrap classes. Please note, the news block does not use any Block Components Classes like u-info-block-*
Article:
<!-- Article -->
<article class="u-shadow-v1-4">
<img class="img-fluid w-100" src="../HTML/assets/img-temp/500x450/img5.jpg" alt="Image Description">
<div class="g-pa-25">
<ul class="list-inline small g-color-gray-dark-v4 g-mb-20">
<li class="list-inline-item">
<a class="text-uppercase btn btn-xs u-btn-red rounded-0" href="#">Tech</a>
</li>
<li class="list-inline-item">|</li>
<li class="list-inline-item">July 02, 2017</li>
</ul>
<h3 class="h2 g-font-weight-300 g-mb-40">
<a class="u-link-v5 g-color-main g-color-primary--hover" href="#">There are many great solutions in Unify for your business</a>
</h3>
<div class="media g-font-size-12">
<img class="d-flex mr-2 rounded-circle g-width-30 g-height-30" src="../HTML/assets/img-temp/100x100/img1.jpg" alt="Image Description">
<div class="media-body align-self-center text-uppercase">
<a class="u-link-v5 g-color-main g-color-primary--hover" href="#">Htmlstream</a>
</div>
<div class="align-self-center">
<a class="u-link-v5 g-color-main g-color-primary--hover g-mr-10" href="#">
<i class="icon-bubbles align-middle g-mr-2"></i> 124
</a>
<a class="u-link-v5 g-color-main g-color-primary--hover" href="#">
<i class="icon-eye align-middle g-mr-2"></i> 237
</a>
</div>
</div>
</div>
</article>
<!-- End Article -->
"Globals" VS "Components" Classes
Well, when and how to use u-* and g-* classes? Definitely there is no exact answer, it fully depends on the situation. You may use u-* classes to build a news block but in the same time you can do it with the g-* classes as shown previously.
However, if it is possible to build the block with the g-* classes then the block should be built within the g-* classes. For example, almost all news blocks are built with g-* classes. it helps to reduce overwriting the styles and duplicating the massive code.
Case #1
Almost, in all cases Base Components use u-* classes with the logical class names such as buttons, tabs, headings, paginations etc. Also, BEM naming convention uses where It needs. Please note, the below codes are just the samples.
CSS:
.u-tabs-v1 {..}
.u-tabs-v1__item {..}
.u-tabs-v1__link {..}
HTML:
<ul class="nav u-tabs-v1">
<li class="nav-item u-tabs-v1__item">
<a class="nav-link u-tabs-v1__link g-py-10 g-px-20 active">Home</a>
</li>
<li class="nav-item u-tabs-v1__item">
<a class="nav-link u-tabs-v1__link g-py-10 g-px-20">Messages</a>
</li>
<li class="nav-item u-tabs-v1__item">
<a class="nav-link u-tabs-v1__link g-py-10 g-px-20">Settings</a>
</li>
</ul>
Usually, Base Components include default styles in CSS but in most cases margins are used with g-* classes. Exceptions could be in ::before and ::after cases or in similar situations. However, as we have seen previously Base Components can be built within the g-* classes, the great example is blockquote component.
Case #2
In many cases Block Components use g-* classes to build the blocks. However, in some cases Block Components hold u-* classes when the block includes complex animations or solutions which is hard to do with g-* classes. Also, if Block Components start with u-* class it should be always start with u-info-* classes except in header Block Components. Only header Block Components can hold u-header-* classes.
JavaScript Structure
Core JavaScript
The foundation of the JavaScript structure in Unify is based on one main object which does not change the root when the new functionalities are added, but instead, it only expands without affecting the behavior of the core object. The name of the object is HSCore and the content of this object looks like this:
/**
* HSCore -
*
* @author HtmlStream
* @version 1.0
*/
;(function($) {
'use strict';
$.HSCore = {
init: function() {
$(document).ready(function(e) {
// here you can initialize all components core, which will be applied (called) in all pages,
// once the DOM will be ready to go.
// example
$('[data-toggle="tooltip"]').tooltip();
});
$(window).on('load', function(e) {
// here you can initialize all components core,
// which should be called as soon as the all (scripts, videos, images) are loaded.
// example:
this.components.parallax.init({
...
});
});
},
// Components
components: {},
// Helpers
helpers: {},
// Settings
settings: {
animationEasing: ‘easeInQuad’, // example:
animationDuration: 450, // example:
rtl: false
...
}
};
$.HSCore.init(); // Initialization of HSCore object.
})(jQuery);
Essentials of HSCore Object
HSCore Settings
$.HSCore.settings - here, all general settings are stored by default. For example, effects of jQuery animation, RTL version etc. and also you can store AJAX calls by default.
HSCore Helpers
$.HSCore.helpers - here, you can store helper functions in order to avoid repetition of codes or objects, which are often used by other core components (they are the part of a whole core). For example, a project needs to get the width of the browser's scrollbar and since it is different in all browsers you should write a tiny simple script. In this case, you may just place your script under the helpers.
In order to keep, the main file clear and easy to use, all helper components can be placed under the following path HTML/assets/js/helpers/..
HSCore Components
$.HSCore.components - this is the most voluminous (massive) component. Here you can include all the shortcodes and components of the template. The aim of this approach is to give developers as much flexibilities as possible by giving all major parameters of shortcode components via data-* attributes initializing.
As an example, let's take a look how a "ChartPies" plugin (library) is used within this JavaScript approach by creating decorator pattern (wrapper) around the plugin, where it automatically initialize the diagram on the basis of the data-* obtained. In the result, the initialization is pretty simple:
HSChartPie.init($(‘.js-pie’), {
// Here you can include the object with its settings or you can just skip it.
});
Such an object wrapper can be referred to the components and in a result the initialization looks like this:
$.HSCore.components.chartPie.init();
Expanding (Extension) the Decorator Pattern (Wrapper)
Extension such an object can be in separate files, which even gives flexibility to keep the main file clear and it is highly recommended. All wrappers of shortcodes' components are located under the following path HTML/assets/js/components/..
Here is an example how decorator pattern (wrapper) looks like:
/**
* Shortcode Component wrapper.
*
* @author Htmlstream
* @version 1.0
* @requires (also, it can be integrated with other plugins)
*
*/
;(function($){
'use strict';
$.Unify.components.ShortcodeComponent = {
_baseConfig : {
// ...
},
/**
* Initialization of ShortcodeComponent wrapper.
*
* @param jQuery collection (optional)
* @param Object config (optional)
*
* @return jQuery pageCollection - collection of initialized items.
*/
init: function(collection, config) {
// ...
},
...
}
})(jQuery);
Core (Main) Advantages
- Avoiding the probabilities of conflicts between Unify codes and third party plugins (libraries).
- Intuitive clear architecture.
- Everything is structured, each component in its own file and in its component in the main object.
- The ability of extending functionality without affecting the behavior of the core object and not changing the existing functionality.
- By creating wrapper components, simply solves complicated initializations structures for the users.
- Very easy access to any shortcodes components and core settings from anywhere in the template.
Shortcodes
All the source codes of shortcodes components can be directly accessed from the shortcodes demo pages. It can be easily copied by single click in the show code link.
However, this shortcodes section will be improved very soon by adding more detailed information for the each specific plugins (libraries) which are used in Unify Template. Meanwhile, if you have any questions please feel free to contact us at support@htmlstream.com and our support team will assist you.
Credits
All third party plugins (libraries) are located in HTML/assets/vendor/.. and image sources in HTML/assets/img-temp/..
Plugins (Libraries)
Premium Plugins
Images and Design Sources
- Google Fonts: http://www.google.com/fonts
- Unsplash Beautiful, free photos: http://unsplash.com
Premium Image and Design Sources
- Peopleimages: Royalty Free Images and Stock Photos http://peopleimages.com/
- Deathtothestockphoto: Photos, videos & other fuel for your creative projects. http://deathtothestockphoto.com/
- Scene Creators: From flat layouts to stationery mock up https://creativemarket.com/Qeaql/785709-Scene-Creators-Bundle
Upgrade
The Next Generation of Unify Template
The next generation of Unify Template is finally arrived after a year development and we hope you will love it. Unify v2.0 has been fully re-written from scratch and loaded with tons of new modern possibilities, approaches and features. However, the upgrade from v1.9.x to v2.0 is almost impossible because of massive changes to the core of the code.
What is the reason behind for this massive changes in Unify 2?
Our team has began to develop this new methodology and structure, for v2.0, more than a year ago. During the last 4 years we have started receiving a huge number of requests from our customers about the implementation of Sass, Bootstrap 4, Flexbox, easy to use of JavaScript, HTML and CSS code structure. The decision was made through consultations with several high profile programmers, designers and users of Unify Template, to provide the best experience for everyone. One of the most wanted request was reusability of components though the packages.
In addition, the base of Unify v1.x is written more than four years ago with Bootstrap v2.x and since that time, approaches in front-end development is drastically changed. Creation of new demo options and delivery regular updates had significantly become difficult with the 1.9.x version. For that reason, the decision was made to introduce the most versatile and powerful template for Unify users. Moreover, when it comes to larger, more complex projects, well organized code is the key to efficiency.
The idea behind these changes, are to divide the user interface into independent blocks. This makes interface development easy and fast even with complex designs and it allows reuse of existing code without copying and pasting. In v2.0 Unify JavaScript elements are controlled from data attributes. Headers, Google Maps, Lightbox, Cubeportfolio, Slick carousel, Charts, Counters, HTML5 video backgrounds, Parallax effects and all other plug-ins are now invoked through data attributes. In particular, the colors, designs, classes and functions can all be controlled with the help of data attributes.
For example, let's take a look to the Google Maps shortcode component in v2.0 Unify:
<!-- Google Maps -->
<div id="GMapCustomized-light" class="js-g-map embed-responsive embed-responsive-21by9 g-height-300"
data-type="custom"
data-lat="40.674"
data-lng="-73.946"
data-zoom="12"
data-title="Agency"
data-styles='[["", "", [{"saturation":-100},{"lightness":51},{"visibility":"simplified"}]], ["", "labels", [{"visibility":"on"}]], ["water", "", [{"color":"#bac6cb"}]] ]'
data-pin="true"
data-pin-icon="../../assets/img/icons/pin/green.png">
</div>
As you can see from the above code, you do not have to dive into the JavaScript code anymore and write any codes. Now, you can just dynamically change it.
Info!
If you come across with any problems with Unify v2.0 during the development process, please feel free to contact our support at support@htmlstream.com and our team will assist you.
Changelog
Unify v2.0
Unify v2.0 has been fully re-written from scratch and changelog includes only the most important implementations, improvements and features. You may check the upgrade section why Unify has been re-written from scratch.
Overall, what's new in Unify v2.0? Unify v2.0 comes with the latest Bootstrap 4 version and now any component can be used within the any packages (demos, pages, sections etc.). In addition, Unify v2.0 comes with over 250 shortcode pages which is twice more than v1.9.x and all components in each shortcode pages are massively extended.
-
NewBootstrap 4 (Unify v2.0 fully compatible with the latest version of Bootstrap 4)
-
NewFull SASS (SCSS) support (all components in separate files, It provides powerful control over CSS)
-
NewUltimate control over the Headers (Unify v2.0 includes over 80 header options)
- Positions (static, absolute top, absolute bottom, absolute. 2nd screen, sticky top, sticky bottom)
- On Scroll Behaviors (show/hide header, change logo, change appearance, toggle header, hide top bar)
- Navigation's mobile behavior (default - "top", push- "sidebar", overlay - "sidebar")
- Navigation's mobile behavior (default - "top", push- "sidebar", overlay - "sidebar")
- Submenu & Megamenu (onHover method, onClick method, inline submenu, megamenu column - "2, 3, etc.", megamenu horizontal/vertical tab etc.)
- CSS Animated Hamburgers Icons (slider, squeeze, arrow etc.)
unify-main/shortcodes/headers/index.html -
NewMore than 30 new Promo Blocks
-
NewOver 500 new Shortcode Components
- Alerts
- Dividers
- Icons
- Badges
- Accordions
- Tabs
- Badges
- Paginations
- Google Maps
- List Groups
- Product Blocks
- Testimonial Blocks
- Beautiful Galleries Options
- Icon Blocks
- News Blocks
- Countdowns Blocks
- Table Demos
- News Blocks
- Clients Blocks
- Counters Blocks
- User Blocks
- and many others..
-
NewPopup Modals -
unify-main/shortcodes/shortcode-base-modals.html -
NewSmooth Parallax
-
NewHome Pages (all home pages are re-designed and extended with new design page)
-
NewBlog Pages (all block pages are re-designed and now comes with over 40 pages)
-
NewSearch Pages (all search pages are re-designed and added other options)
-
NewJobs Page (currently comes with two new design pages main and inner)
-
NewProfile Pages (all profile pages are re-designed and added with more options)
-
NewContact Pages (all contact pages are re-designed and added other new pages)
-
NewOther New Pages (Unify v2.0 includes lots of other new page designs such as login, register, pricing, portfolios, faq etc.)
-
DroppedLanding Pages Package (they will be added back to the One Pages package in our next updates but currently all the components can be used and included in v2.0 Unify.)
-
DroppedSky Forms Pro (all forms are completely rewritten from scratch)
-
DroppedLayer Slider (since Unify already includes other premium sliders (Revolution and Master Slider), we have decided to drop it as included premium slider already includes same functionality)
-
DroppedOther Plugins/Libraries (however, most of them are replaced with more efficient plugins/libraries. For example, Owl Carousel has been replaced with Slick Carousel.)
-
Coming SoonRTL Version
-
Coming SoonPSD Sources
-
Coming SoonClassic One Page Demos
-
Coming SoonComing Soon Pages
-
Coming SoonError Pages
-
Coming SoonEmail Templates
-
Coming SoonOther missed features which Unify v1.x included
Info!
If you are looking the old changelog for Unify v1.x, please click here to see the full changelog.
End of Documentation
Once again, thank you for purchasing Unify Template!
If you have any questions, please feel free to contact us at support@htmlstream.com and we will do our best to get back to you within 24 hours. It might take a bit longer, but we try hard not to keep you waiting longer than 48 hours. You may also leave us a message through our social pages: Facebook and Twitter