Oli is a creative and fully responsive HTML/CSS template based on Bootstrap 4 framework, suitable for any creative people, business, agency, portfolio etc...
Follow the steps below to get started with your Site Template:
html
folder to find all the Templates Files.html/assets/css
- Extra Stylesheets Folderhtml/demo
- Demo Images Folderhtml/assets/fonts
- Fonts Folderhtml/assets/images
- Images Folderhtml/include
- Required PHP Functions Folderhtml/assets/js
- Javacripts Folderhtml/assets/css/style.css
- Main Stylesheet Filehtml/index.html
- Index File/HomepageNote: Add Your custom styles to assets/css/custom.css
. This solution will help you in future updates.
Oli follows a simple coding structure. here is the sample:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Your Stylesheets, Scripts & Title -->
</head>
<body>
<div id="preloader" class="preloader preloader-dark">
[...]
</div>
<!-- Global Overlay -->
<div class="global-overlay">
[...]
</div>
<!-- Frame -->
<div class="frame">
[...]
</div>
<div class="site-container">
<!-- Site Header -->
<header class="site-header">
[...]
</header>
<!-- Page Content - Fullpage -->
<div class="oli-fullpage">
<section class="oli-section">
[...]
</section>
</div><!-- .oli-fullpage end -->
<!-- Site Footer -->
<footer class="site-footer">
</footer>
</div>
<!-- Your Scripts -->
</body>
</html>
This template is based on Bootstrap 4. Go to Bootrstrap's documentation and check how does it work.
You can add a Favicon to your Website using the following code:
<link rel="icon" href="assets/images/favicon.png" type="image/png" sizes="16x16">
You can add Apple Touch Icons to your Website using the following code:
<link rel="apple-touch-icon" href="assets/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="assets/images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="assets/images/apple-touch-icon-114x114.png">
<h1>h1. Heading 1</h1>
<h2>h2. Heading 2</h2>
<h3>h3. Heading 3</h3>
<h4>h4. Heading 4</h4>
<h5>h5. Heading 5</h5>
<h6>h6. Heading 6</h6>
<h1 class="heading-uppercase">h1. Heading 1</h1>
<h2 class="heading-uppercase">h2. Heading 2</h2>
<h3 class="heading-uppercase">h3. Heading 3</h3>
<h4 class="heading-uppercase">h4. Heading 4</h4>
<h5 class="heading-uppercase">h5. Heading 5</h5>
<h6 class="heading-uppercase">h6. Heading 6</h6>
Fusce pretium, elit ut tincidunt fermentum, neque nisi tristique arcu, id viverra lacus tortor sed orci. Integer eu pharetra lacus. Donec venenatis orci id dui vestibulum, vel hendrerit arcu scelerisque.
<p>Fusce pretium, elit ut tincidunt fermentum, neque nisi tristique arcu, id viverra lacus tortor sed orci. Integer eu pharetra lacus. Donec venenatis orci id dui vestibulum, vel hendrerit arcu scelerisque.</p>
Fusce pretium, elit ut tincidunt fermentum, neque nisi tristique arcu, id viverra lacus tortor sed orci. Integer eu pharetra lacus. Donec venenatis orci id dui vestibulum, vel hendrerit arcu scelerisque.
<p class="lead">Fusce pretium, elit ut tincidunt fermentum, neque nisi tristique arcu, id viverra lacus tortor sed orci. Integer eu pharetra lacus. Donec venenatis orci id dui vestibulum, vel hendrerit arcu scelerisque.</p>
<img src="http://via.placeholder.com/150x150" alt="" class="rounded">
<img src="http://via.placeholder.com/150x150" alt="" class="img-thumbnail">
This template is based on Bootstrap 4. Go to Bootrstrap's documentation and check how does it work.
This template is based on Bootstrap 4. Go to Bootrstrap's documentation and check how does it work.
You can set the countdown in data-countdown
, as you can see on example:
<div class="countdown" data-countdown="2020/05/25 12:00:00"></div>
This template use Slick. Go to Slick's documenttion and check how does it work.
<div class="row">
<div class="col-md-6 col-sm-6">
<div class="feature-block mb-5">
<div class="feature-icon mb-4 text-white">
<div>
<i class="ti-timer"></i>
</div>
</div>
<h3 class="h4 text-white">Launch Quickly</h3>
</div>
</div>
[...]
This template is based on Bootstrap 4. Go to Bootrstrap's documentation and check how does it work.
We have created some really useful helper classes for you.
Background color
.bg-primary
.bg-secondary
.bg-light
.bg-dark
.bg-navy
.bg-blue
.bg-aqua
.bg-teal
.bg-olive
.bg-green
.bg-lime
.bg-yellow
.bg-orange
.bg-red
.bg-marron
.bg-fuchsia
.bg-purple
.bg-black
.bg-white
.bg-transparent
Background size
.bg-cover
- background-size:cover.bg-contain
- background-size:containBackground position
.bg-top-left
- background-position:top left.bg-top-center
- background-position:top center.bg-top-right
- background-position:top right.bg-center-left
- background-position:center left.bg-center
- background-position:center.bg-center-right
- background-position:center right.bg-bottom-left
- background-position:bottom left.bg-bottom-center
- background-position:bottom center.bg-bottom-right
- background-position:bottom rightBackground repeat
.bg-repeat
- background-repeat:repeat.bg-repeat-x
- background-repeat:repeat-x.bg-repeat-y
- background-repeat:repeat-y.bg-norepeat
- background-repeat:no-repeatWidth
.w--25
- width: 25%.w--50
- width: 50%.w--75
- width: 75%.w--100
- width: 100%.w--auto
- width: auto.mw--100
- max-width: 100%.min-w--100
- min-width: 100%.min-vw--100
- min-width: 100vw.vw--100
- width: 100vwWidth classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format {property}{sides}-{breakpoint}--{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.w-md--100 { width: 100% }
.min-vw-lg--100 { min-width: 100vh }
.vw-xl--100 { width: 100vh }
Height
.h--25
- height: 25%.h--50
- height: 50%.h--75
- height: 75%.h--100
- height: 100%.h--auto
- height: auto.mh--100
- max-height: 100%.min-vh--100
- min-height: 100vh.vh--100
- height: 100vhHeight classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format {property}{sides}-{breakpoint}--{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.h-md--100 { height: 100% }
.min-vh-lg--100 { min-height: 100vh }
.vh-xl--100 { height: 100vh }
Text decoration
.text-decoration-underline
- text-decoration:underlineFont family
.main-font
- font-family: 'Roboto', Helvetica, sans-serif.alt-font
- font-family: 'Montserrat', Helvetica, sans-serifFont weight
.fw-thin
- font-weight:100.fw-extralight
- font-weight:200.fw-light
- font-weight:300.fw-normal
- font-weight:400.fw-medium
- font-weight:500.fw-semibold
- font-weight:600.fw-bold
- font-weight:700.fw-extrabold
- font-weight:800.fw-black
- font-weight:900Font weight classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format {property}{sides}-{breakpoint}--{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.font-sm-normal { font-weight:400 }
Letter spacing
.letter-spacing-tight
- letter-spacing:-0.05em.letter-spacing-normal
- letter-spacing:0.letter-spacing-wide
- letter-spacing:.05emLetter spacing classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format .letter-spacing-{breakpoint}-{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.letter-spacing-sm-wide { letter-spacing:.05em }
Line height
.line-height-none
- line-height:1.line-height-tight
- line-height:1.25.line-height-normal
- line-height:1.5.line-height-greater
- line-height:1.75.line-height-loose
- line-height:2Text color
.text-primary
.text-secondary
.text-light
.text-dark
.text-navy
.text-blue
.text-aqua
.text-teal
.text-olive
.text-green
.text-lime
.text-yellow
.text-orange
.text-red
.text-marron
.text-fuchsia
.text-purple
.text-black
.text-white
Display headings
.display--1
- font-size: 6rem.display--2
- font-size: 5.5rem.display--3
- font-size: 4.5rem.display--4
- font-size: 3.5remDisplay heading classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format .display--{breakpoint}-{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.display--sm-4 { font-size: 3.5rem }
.display--lg-2 { font-size: 5.5rem }
Opacity
.opacity-100
- opacity:1.opacity-95
- opacity:.95.opacity-90
- opacity:.9.opacity-85
- opacity:.85.opacity-80
- opacity:.8.opacity-75
- opacity:.75.opacity-70
- opacity:.70.opacity-65
- opacity:.65.opacity-60
- opacity:.60.opacity-55
- opacity:.55.opacity-50
- opacity:.5.opacity-45
- opacity:.45.opacity-40
- opacity:.4.opacity-35
- opacity:.35.opacity-30
- opacity:.3.opacity-25
- opacity:.25.opacity-20
- opacity:.2.opacity-15
- opacity:.15.opacity-10
- opacity:.1.opacity-5
- opacity:.05.opacity-0
- opacity:0z-index
.zindex-0
- z-index:0.zindex-10
- z-index:10.zindex-20
- z-index:20.zindex-30
- z-index:30.zindex-40
- z-index:40.zindex-50
- z-index:50.zindex-auto
- z-index:autoz-index classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format {property}{sides}-{breakpoint}--{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.zindex-sm-40 { z-index: 40 }
Box shadow
.shadow-1
.shadow-2
.shadow-3
.shadow-4
.shadow-5
.shadow-6
.shadow-7
.shadow-8
.shadow-9
.shadow-10
Border
Sides
border-t--
- for classes that set margin-top or padding-topborder-b--
- for classes that set margin-bottom or padding-bottomborder-l--
- for classes that set margin-left or padding-leftborder-r--
- for classes that set margin-right or padding-rightborder--
- for classes that set a margin or padding on all 4 sides of the elementSize
0
- 0px1
- 1px2
- 2pxBorder classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format {property}{sides}-{breakpoint}--{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.border-b--2 { border-bottom: 2px }
.border-sm-b--2 { border-bottom: 2px }
.border-md-b--0 { border-bottom: 0px }
Border color
.border--primary
.border--secondary
.border--light
.border--dark
.border--navy
.border--blue
.border--aqua
.border--teal
.border--olive
.border--green
.border--lime
.border--yellow
.border--orange
.border--red
.border--marron
.border--fuchsia
.border--purple
.border--black
.border--white
.border--transparent
Spacing
Property
m
- for classes that set marginp
- for classes that set paddingSides
t
- for classes that set margin-top or padding-topb
- for classes that set margin-bottom or padding-bottoml
- for classes that set margin-left or padding-leftr
- for classes that set margin-right or padding-rightx
- for classes that set both *-left and *-righty
- for classes that set both *-top and *-bottomblank
- for classes that set a margin or padding on all 4 sides of the elementSize
0
- for classes that eliminate the margin or padding by setting it to 010
- 10px20
- 20px30
- 30px40
- 40px50
- 50px60
- 60px70
- 70px80
- 80px90
- 90px100
- 100px110
- 110px120
- 120pxauto
- for classes that set the margin to autoSpacing (margin and padding) classes work from min-width: 0
.
If you need to use spacing utilities that apply to custom breakpoint please using the format {property}{sides}-{breakpoint}--{size}
for sm
, md
, lg
, xl
.
sm
- min-width: 576px
md
- min-width: 768px
lg
- min-width: 992px
xl
- min-width: 1200px
Example
.pt--0 { padding-top:0 }
.pt-sm--0 { padding-top: 0 }
.mb--0 { margin-bottom:0 }
.mb-sm--0 { margin-bottom: 0 }
<!-- Global overlay -->
<div class="global-overlay">
<div class="overlay-inner bg-image-holder bg-cover">
<img src="demo/images/image-4.jpg" alt="background">
</div>
<div class="overlay-inner bg-dark opacity-55"></div>
</div>
Add colors in hex format to the data-gradient-bg
attribute.
<!-- Global overlay -->
<div class="global-overlay">
<div class="overlay-inner" data-gradient-bg="[['#AA076B','#61045F'],['#02AAB0','#00CDAC'],['#DA22FF','#9733EE']]"></div>
</div>
Please add class slideshow-background
to the body tag.
Open main.js file and find this code:
// Slideshow
if ($body.hasClass('slideshow-background')) {
$body.vegas({
preload: true,
timer: false,
delay: 5000,
transition: 'fade',
transitionDuration: 1000,
slides: [
{ src: 'demo/images/image-15.jpg' },
{ src: 'demo/images/image-16.jpg' },
{ src: 'demo/images/image-17.jpg' },
{ src: 'demo/images/image-4.jpg' }
]
});
}
Please add class slideshow-video-background
to the body tag.
Open main.js file and find this code:
// Slideshow with Video
if ($body.hasClass('slideshow-video-background')) {
$body.vegas({
preload: true,
timer: false,
delay: 5000,
transition: 'fade',
transitionDuration: 1000,
slides: [
{ src: 'demo/images/image-15.jpg' },
{ src: 'demo/video/marine.jpg',
video: {
src: [
'demo/video/marine.mp4',
'demo/video/marine.webm',
'demo/video/marine.ogv'
],
loop: false,
mute: true
}
},
{ src: 'demo/images/image-16.jpg' },
{ src: 'demo/images/image-17.jpg' }
]
});
}
Please add class slideshow-zoom-background
to the body tag.
Open main.js file and find this code:
// Slideshow - ZoomOut
if ($body.hasClass('slideshow-zoom-background')) {
$body.vegas({
preload: true,
timer: false,
delay: 7000,
transition: 'zoomOut',
transitionDuration: 4000,
slides: [
{ src: 'demo/images/image-4.jpg' },
{ src: 'demo/images/image-16.jpg' },
{ src: 'demo/images/image-17.jpg' },
{ src: 'demo/images/image-15.jpg' }
]
});
}
Please add class kenburns-background
to the body tag.
Open main.js file and find this code:
// Kenburns
if ($body.hasClass('kenburns-background')) {
var kenburnsDisplayBackdrops = false;
var kenburnsBackgrounds = [
{ src: 'demo/images/image-15.jpg', valign: 'top' },
{ src: 'demo/images/image-14.jpg', valign: 'top' },
{ src: 'demo/images/image-17.jpg', valign: 'top' }
];
$body.vegas({
preload: true,
transition: 'swirlLeft2',
transitionDuration: 4000,
timer: false,
delay: 10000,
slides: kenburnsBackgrounds,
walk: function (nb) {
if (kenburnsDisplayBackdrops === true) {
var backdrop;
backdrop = backdrops[nb];
backdrop.animation = 'kenburns';
backdrop.animationDuration = 20000;
backdrop.transition = 'fade';
backdrop.transitionDuration = 1000;
$body
.vegas('options', 'slides', [ backdrop ])
.vegas('next');
}
}
});
}
<!-- Global overlay -->
<div class="global-overlay">
<div class="overlay-inner bg-image-holder bg-cover">
<img src="demo/images/image-4.jpg" alt="background">
</div>
<div class="overlay-inner overlay-video">
<div class="video-wrapper">
<video autoplay muted loop data-keepplaying>
<source src="demo/video/work.webm" type="video/webm">
<source src="demo/video/work.mp4" type="video/mp4">
<source src="demo/video/work.ogv" type="video/ogg">
</video>
</div>
</div>
<div class="overlay-inner bg-dark opacity-50"></div>
</div>
<!-- Global overlay -->
<div class="global-overlay">
<div class="overlay-inner bg-image-holder bg-cover">
<img src="demo/images/image-4.jpg" alt="background">
</div>
<a class="player"></a>
<div id="youtube-background" class="overlay-inner overlay-video"></div>
<div class="overlay-inner bg-dark opacity-50"></div>
</div>
Open main.js file and find this code:
// Youtube Video
if ($('#youtube-background').length > 0) {
var videos = [
{videoURL: "iXkJmJa4NvE", showControls:false, containment:'.overlay-video',autoPlay:true, mute:true, startAt:0,opacity:1, loop:true, showYTLogo:false, realfullscreen: true, addRaster:true}
];
$('.player').YTPlaylist(videos, true);
}
<!-- Global overlay -->
<div class="global-overlay">
<div class="overlay-inner bg-image-holder bg-cover">
<img src="demo/images/image-4.jpg" alt="background">
</div>
<a class="player"></a>
<div id="youtube-multiple-background" class="overlay-inner overlay-video"></div>
<div class="overlay-inner bg-dark opacity-50"></div>
</div>
Open main.js file and find this code:
// Youtube Multiple Videos
if ($('#youtube-multiple-background').length > 0) {
var videos = [
{videoURL: "CG20eBusRg0", showControls:false, containment:'.overlay-video',autoPlay:true, mute:true, startAt:0,opacity:1, loop:false, showYTLogo:false, realfullscreen: true, addRaster:true},
{videoURL: "iXkJmJa4NvE", showControls:false, containment:'.overlay-video',autoPlay:true, mute:true, startAt:0,opacity:1, loop:false, showYTLogo:false, realfullscreen: true, addRaster:true}
];
$('.player').YTPlaylist(videos, true);
}
<!-- Global overlay -->
<div class="global-overlay">
<div class="overlay-inner bg-primary"></div>
</div>
<section>
<div class="overlay">
<div class="overlay-inner bg-image-holder bg-cover">
<img src="demo/images/image-4.jpg" alt="background">
</div>
<div class="overlay-inner bg-dark opacity-55"></div>
</div>
<div class="container align-self-lg-center">
[...]
[...]
[...]
</div>
</section>
<section>
<div class="overlay">
<div class="overlay-inner bg-image-holder bg-cover">
<img src="demo/images/image-4.jpg" alt="background">
</div>
<div class="overlay-inner overlay-video">
<div class="video-wrapper">
<video autoplay muted loop data-keepplaying>
<source src="demo/video/work.webm" type="video/webm">
<source src="demo/video/work.mp4" type="video/mp4">
<source src="demo/video/work.ogv" type="video/ogg">
</video>
</div>
</div>
<div class="overlay-inner bg-dark opacity-50"></div>
</div>
<div class="container align-self-lg-center">
[...]
[...]
[...]
</div>
</section>
Add colors in hex format to the data-gradient-bg
attribute.
<section>
<div class="overlay">
<div class="overlay-inner" data-gradient-bg="[['#AA076B','#61045F'],['#02AAB0','#00CDAC'],['#DA22FF','#9733EE']]"></div>
</div>
<div class="container align-self-lg-center">
[...]
[...]
[...]
</div>
</section>
<section>
<div class="overlay">
<div class="overlay-inner bg-primary"></div>
</div>
<div class="container align-self-lg-center">
[...]
[...]
[...]
</div>
</section>
Default code:
<!-- Site Header -->
<header class="site-header header-fixed">
<div class="overlay d-xl-none">
<div class="overlay-inner bg-dark opacity-95"></div>
</div>
<nav class="navbar navbar-expand-xl navbar-dark">
<!-- Logo -->
<a href="#" class="navbar-brand logo">
<img src="assets/images/logo-light.png" alt="">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#site-navbar" aria-controls="siteNavbar" aria-expanded="false" aria-label="Toggle navigation">
<span></span>
</button>
<div class="collapse navbar-collapse" id="site-navbar">
<ul id="navigation" class="navbar-nav ml-auto">
<li data-menuanchor="home" class="nav-item">
<a href="#home" class="nav-link">Home</a>
</li>
<li data-menuanchor="subscribe" class="nav-item">
<a href="#subscribe" class="nav-link">Subscribe</a>
</li>
<li data-menuanchor="about" class="nav-item">
<a href="#about" class="nav-link">About</a>
</li>
<li data-menuanchor="services" class="nav-item">
<a href="#services" class="nav-link">Services</a>
</li>
<li data-menuanchor="contact" class="nav-item">
<a href="#contact" class="nav-link">Contact</a>
</li>
</ul>
</div>
</nav>
</header>
Available classes:
.site-header.header-fixed
- header will be fixed on top from 768px
You can close or leave it open mobile menu after clicking the link by changing autoCloseMobileNavigation = true
to true
or false
in main.js file.
Social nav
You can add a simple nav, as you can see on example:
Available Classes:
.social-nav .light
- light style.social-nav .dark
- dark style.social-nav .social-nav-pinned
- wheen you need a pinned nav (fixed) on the right sideExample: