get started
For the first thanks for you interesting in Williams HTML Template. The multipurpose html template for quick starting any new project.
Here is a package structure:
- app
- dist
- .bowerrc
- bower.json
- gulpfile.js
- package.json
App folder contains developer version of the template with bower_components folder, css with all compiled css style sheets, jade folder with all jade template files and less folder with all less files. Also here are all compiled html files for the template from jade generation.
Dist folder is what you need if you want to start a project quickly. It contains all necessary files which are ready for uploading on your server. All css and js files from bower components are compiled and minified to dist/js/vendor.js and dist/css/vendor.css files respectively. dist/js/framework.js is a main file with jquery template plugins for mega menus, accordions, tabs and info blocks. dist/fonts foolder contains FontAwesome and GliphIcons fonts. Also here are all ready-to-use html files. In general, you need just to paste your text and images and your website is ready.
.bowerrc is a file of bower configuration. It specify the folder where bower components will be downloaded.
bower.json is a bower file with a list of used components.
gulpfile.js is a file with gulp tasks to run.
package.json is a file with all node modules used in the development process.
Well, there is 2 ways to crete a website using this template. The first is to edit all html and css files manualy (so, you should know the basics of html and css langs) in the dist folder. But I do not think this is a best way to go. So there is a second one: the Path of Developer. It assumes that the template buyer is familiar with modern front-end technologies. But if you are not, this is not a big problem. I'll walk with you through all steps to get good product at the end. So the second way is to use modern web technologies such as less, jade and gulp for easy customization and developing. The idea of the template is to get much result with less movings. But to achieve this you should have some development environment on you working computer.
For the first you should have NodeJS installed on you computer. You can download it on the official website here. You are do not have to be NodeJS guru. You need just to download and install it
After that you need to install Gulp. What is Gulp and how to use it you can learn here. But all what the template requires from you is to run the following command in your console:
npm install --global gulp-cli
The next step is to install Bower. Bower - it is a package manager. Learn more about Bower here. To install it run in your console:
npm install -g bower
Be informed that Bower requires node, npm and git.
Now you need all modules and packages to be intalled. It requires 2 simple steps.
The first. Go to the root folder where package.json files is located and run in console:
npm install
The second. Run in console:
bower install
That is all. Your computer is ready to work with the template.
Jade
Jade is an elegant templating language focused on enabling quick HTML coding. No more XML situps and percent prefixes for tags. It is HTML templating how it should be. Learn more about Jade here.
Ok. Now we are ready to edit jade templates. All these jade files are in app/jade folder.
All jade files of the template has the similar base. Here is how it looks:
doctype
html
head
<!-- Mobile menu start -->
include inc/head.jade
<!-- Mobile menu end -->
title Williams Business Template
link(rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:100,200,400,700")
<!-- build:css css/vendor.css -->
<!-- bower:css -->
<!-- endbower -->
<!-- endbuild -->
<!-- build:css css/style.css -->
link(rel="stylesheet" href="css/style.css")
<!-- endbuild -->
body
<!-- Preload start -->
#williams-preload
.w-preload-inner
#w-preload-1.w-preload-item
#w-preload-2.w-preload-item
#w-preload-3.w-preload-item
#w-preload-4.w-preload-item
#w-preload-5.w-preload-item
#w-preload-6.w-preload-item
#w-preload-7.w-preload-item
#w-preload-8.w-preload-item
<!-- Preload end -->
#williams-wrapper
<!-- Mobile menu start -->
include inc/mobile-menu.jade
<!-- Mobile menu end -->
<!-- Header start -->
include inc/header.jade
<!-- Header end -->
<!-- Page title start -->
include inc/page-title/page-title-name.jade
<!-- Page title -->
...some content goes here
<!-- Footer start -->
include inc/footer.jade
<!-- Footer end -->
<!-- build:js js/vendor.js -->
<!-- bower:js -->
<!-- endbower -->
<!-- endbuild -->
include inc/scripts.jade
You should take your attention to the include directives. It includes files with code that is on all pages of the template. You can edit one of these files and changes will apprear on all pages automaticly.
In some files you can find things like this one:
var posts = [ {title:'Ten Reasons Why People Like Consulting',date:'01 Aug, 2017',author:'Williams Consulting',category:'news and events',comments:'2 comments',excerpt:'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi cursus dictum erat, lacinia maximus turpis aliquam eget. Aliquam venenatis blandit eleifend. Duis justo mauris, aliquet vitae orci id, egestas rhoncus metus. Ut purus lacus, facilisis vel vehicula ac, semper viverra odio.',image:'images/900x600.png'},{title:'Top Five Trends In Consulting To Watch',date:'07 Aug, 2017',author:'Williams Consulting',category:'news and events',comments:'5 comments',excerpt:'Donec eu turpis eu nisl egestas elementum. Nunc enim leo, facilisis ut tincidunt dignissim, ullamcorper eu mi. Suspendisse eu eleifend dui, non lacinia felis. Cras hendrerit suscipit quam, ut placerat felis volutpat nec. Vivamus non luctus turpis. Mauris gravida urna ex, id auctor purus vehicula a. Sed eu justo tristique, luctus magna id, viverra erat. Duis bibendum tellus purus, vitae auctor ex dignissim et.',image:'images/900x600.png'},{title:'Here\'s Why You Should Attend Consulting',date:'12 Aug, 2017',author:'Williams Consulting',category:'news and events',comments:'Be the first to comment',excerpt:'Maecenas eu viverra ante. Quisque cursus sollicitudin tortor, et sodales quam gravida ut. Curabitur sagittis, arcu aliquet ornare viverra, nunc nulla consequat enim, vitae dapibus felis ante et sem. Cras aliquet elit vel dolor mollis, at lacinia urna blandit. Sed consequat dolor tristique mattis hendrerit. Vestibulum pharetra fermentum ullamcorper. Donec efficitur ultrices ipsum eget consequat. ',image:'images/900x600.png'},{title:'Seven Consulting Trends You Should Know Before Even Starting Your Business',date:'15 Aug, 2017',author:'Williams Consulting',category:'news and events',comments:'7 comments so far',excerpt:'Duis nisi dolor, ornare ac eleifend at, tempus vel metus. Fusce in orci et velit sollicitudin auctor. Vestibulum at facilisis neque, et placerat felis. Morbi enim magna, dapibus a pulvinar id, rhoncus id eros. Phasellus dignissim non eros vel pulvinar. Curabitur ac ipsum id lorem accumsan porta. In mattis convallis turpis, quis finibus neque aliquet ac. Cras finibus rutrum tincidunt.',image:'images/900x600.png'}];
This is a list of items to display. In general after that code follows something like this:
mixin postOutput(post)
article.post
.post-thumbnail: figure
img(src=post.image alt=post.title)
.hover
a.w-btn.primary(href="#"): i.fa.fa-link
a.w-btn.primary.w-popup-image(href=post.image title=post.title): i.fa.fa-expand
ul.meta
li.meta-date: a(href="")=post.date
li.meta-author: a(href="")=post.author
li.meta-category: a(href="")=post.category
li.meta-comments: a(href="")=post.comments
h4.title: a(href="#")=post.title
p=post.excerpt
p: a.w-btn.third(href="#") Read more...
This is a template which used to display the data list above. It is a good way to prevent unnecessery code editing in many places. You just define data and define the output template for that data.
To out put this data template the next construction used:
for item in posts
+postOutput(item)
So if you need to change the output you should make a change in only on place (in the mixin). Pretty simple.
LESS
Less is a CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins, functions and many other techniques that allow you to make CSS that is more maintainable, themeable and extendable. Learn more about LESS here.
app/less folder is a main place customize comes from. Here is a structure of this folder:
- components
- page
- utils
- import.less
- style.less
- williams.less
app/less/components folder is a place where css rules for all template components (like widgets, header, menu, posts and others) are defined.
app/less/page folder contains some css rules for the components which are on the specific pages only.
app/less/utils folder contains some css rules for the child components which are on any pages.
app/less/import.less is a file with bootstrap less files importing (so there is no need to link bootstrap.css in the head).
app/less/style.less is the main file where all components are included.
app/less/williams.less is a default template settings.
So to customize the template you should change app/less/williams.less file and make sure to include it in app/less/import.less file.
Here is a list of less variables you can change to customize the template.
Name | Default value | Description |
@side-padding | 100px | Padding space for the content sections. |
@side-md-padding | 100px | Padding space for the content sections for the middle devices. |
@side-sm-padding | @side-padding / 2 | Padding space for the content sections for the small devices. |
@side-xs-padding | side-padding / 2 | Padding space for the content sections for the extra small devices. |
@body-bg | #fff | Body background color. |
@brand-primary | #f4ad21 | Primary color for the template. |
@brand-secondary | #233d7f | Secondary color for the template. |
@brand-third | #eee | Third color for the template. |
@body-font-family | 'Poppins', sans-serif | Body font family. |
@body-text-color | #333 | Body text color. |
@body-font-size | 14px | Body font size. |
@line-height | 1.71 | Base line height. |
@a-regular | @body-text-color | <a>; text color. |
@a-hover | darken(@brand-primary, 10%) | <a>; hover text color. |
@a-active | lighten(@brand-primary, 10%) | <a>; active text color. |
@a-regular-text-decoration | underline | <a>; regular text decoration. |
@a-hover-text-decoration | none | <a>; hover text decoration. |
@a-active-text-decoration | .4s | CSS transitions duration. |
@transition-duration | 100px | Padding space for the content sections. |
@transition-timing-function | ease | CSS transitions timing function. |
@heading-font-family | @body-font-family | Font family for the h1 ... h6 elements. |
@heading-font-weight | 700 | Font weight for the h1 ... h6 elements. |
@heading-text-color | @body-text-color | Text color for the h1 ... h6 elements. |
@heading-text-transform | capitalize | Text transform for the h1 ... h6 elements. |
@leading | 30px | Layout leading. |
@grid-gutter-width | @leading * 2 | Grid gutter width. |
@header-main-bar-height | 100px | Height of the header main bar which contains logo, menu and contacts. |
@header-main-bar-bg-color | #fff | Header main bar background color. |
@header-menu-a-color | @body-text-color | Header main bar menu <a>; regular text color. |
@header-menu-a-hover | @brand-primary | Header main bar menu <a>; hover text color. |
@header-menu-a-text-transform | uppercase | Header main bar menu <a>; text transform. |
@header-menu-a-font-weight | 700 | Header main bar menu <a>; font weight. |
@header-menu-a-text-decoration | none | Header main bar <a>; text decoration. |
@header-menu-a-hover-text-decoration | none | Header main bar <a>; hover text transform. |
@logo-padding-top | @leading | Logo top padding. |
@logo-padding-right | @leading | Logo right padding. |
@logo-padding-bottom | @leading | Logo bottom padding. |
@logo-padding-left | @leading | Logo left padding. |
@logo-max-height | 50px | Logo max height. |
@w-mega-bg-color | @brand-third | Background color for mega menus. |
@w-mega-a-regular | @body-text-color | Mega menu <a>; regular text color. |
@footer-bg-color | @brand-secondary | Footer background color. |
@footer-text-color | #999 | Footer text color. |
@footer-a-regular | #fff | Footer <a>; regular text color. |
@footer-a-hover | @a-hover | Footer <a>; hover text color. |
@footer-a-active | @a-active | Footer <a>; active text color. |
@footer-heading-color | #fff | Text color for the footer h1 ... h6 elements. |
@btn-text-transform | uppercase | Buttons text transform. |
@btn-font-weight | 700 | Buttons font weight. |
@dropdown-bg-color | @brand-third | Dropodown menu background color. |
@dropdown-width | 200px | Dropdown menu width. |
So there are many variables to work with to get pretty unique product. You need just to paste your new values and save. Pretty simple.
Contact Forms
This template includes ability to send emails through the html forms in the footer and on the contacts page. Some settings you can find in app/email.php file. But it is a quite simple mechanism. So be sure your customers send correct information.
Development & Deploy
While you are in development mode you can use some great Gulp features. There are some tasks in gulpfile.js which you can use. Here some commands you can run in the root folder with console:
-
gulp
-
gulp connect
-
gulp bower
-
gulp less
-
gulp build
gulp runs the default task. It includes starting web server, compiling jade and less files and automatic refreshing the page in your web browser.
gulp connect just runs the web servcer.
gulp bower compiling jade and less files.
gulp less compiling less files only.
gulp build creates a publish-ready project. It compiles and copies all necessary files (css and js files, images and fonts folders) from app folder into dist folder.
So the general way of development process looks like this: you make changes in jade and less files, when you are done you run gulp bower command and get some results (html files in app folder). You look forward and repeat these steps while you get all you want. At the end you run gulp build and get size-optimized and high-speed html template in dist folder ready to be published on your web server.
Credits
Font:
Poppins (free at Google Fonts).
Used plugins:
ShutterStock images:
- Group of business people working on new project .They using laptop and looking at the blueprints at the desk.
- Side view of young man standing next to his woman colleague pointing at something on laptop screen, working together in office
- Young business people enjoying working in the office.
- Designers Working Together At Desks In Modern Office
- african-american business woman sitting in lobby with computer tablet
- Car sales, market place,
- scientist with equipment and science experiments
- High voltage post or High voltage tower
- Close-up of stethoscope and paper on background of doctors and patient working with laptop
- Laser cutting of metal sheet, close-up
- satellite dish antennas under sky
- Businesspeople Meeting In Modern Boardroom Through Glass
- Business Office Connection Contemporary Working Concept
- Busy trendy office with business people achieving success
- Successful businessteam of three sitting in office and planning work
- Group of happy young business people in a meeting at office
- Close-up of a modern business team using tablet computer to work with financial data
- Business people discussing during a meeting
- Business people with digital tablet
- Businessman drawing business concepts on the screen
- Plan for a new business
- businessman with financial symbols coming from hand
- close up picture of man hand signing contract
- Young businesswoman and her colleagues
- Designer Teamwork Brainstorming Planning Meeting Concept
- young businessman writing on map
- Female customer support operator with headset and smiling
- Concept of businessman with a creative big idea
- before a conference, the microphones in front of empty chairs.
- Financial graphs analysis on table
- concept of teamwork, business man crossed his arms over his team
- Businesswoman Working On Laptop In Busy Office
- Two corporate business colleagues working together in office
- Busy business people working in office
- Collage with businesspeople in different situations
- Composition of various people working