Olin - Responsive HTML5 & CSS3 Template
Welcome to Olin! Thank you so much for purchasing this template.
This guide should answer all your questions about how to use and customize this template. Browse through this document using the sidebar on the left, or use your browser's search function (CTRL+F on Windows or CMD+F on a Mac).
Olin is built on the awesome and wildly adopted Twitter Bootstrap 3 framework. Which lets you easily create responsive, modern, and mobile friendly websites. If you are not already familiar with Bootstrap I highly encourage you to head over and learn about it on the official website getbootstrap.com
The latest version of this documentation can always be found online under: themetrail.com/olin/docs
Support
I am in the process of setting up a dedicated support forum for all ThemeTrail customers. Until it's launched I will handle all support tickets plain, simple and fast via email. Drop me a line with any questions you might have about this template.
As with every template this is a work-in-progress and will never be finished, perfect or 100% bug-free. When you discover a bug - breathe - than let me know. I will do my best as fast as possible to fix it.
In case you need any customization that goes beyond a few lines of code I have to somehow disappoint you, as I don't take on any clients.
[email protected]Template Files
These are all files that are included with Olin:
Page Templates
| Home | index.html | Homepage with slideshow, iconbox, portfolio, testimonials, blog widget |
| About | about.html | About page with skills bar, team profiles, testimonials, multislider. |
| Contact | contact.html | Google Maps (full width), contact form, contact details sidebar. |
| Coming Soon | coming-soon.html | Coming Soon page with timer and email form. |
| Coming Soon (Fullscreen Background Image) | coming-soon-bg-image.html | Coming Soon page with timer and email form. Plus full screen background image and overlay. |
| Pricing Tables | pricing-tables.html | Pure CSS3 Pricing tables with one to twelve columns, most-popular highlight and free trial box. |
| FAQ | faq.html | Collapsible frequently asked questions accordions with "Contact Us" sidebar. |
| 404 | 404.html | Error (Page Not Found) page with helpful links section and search form. |
Portfolio Templates
| Portfolio - Four Columns | portfolio-four-columns.html | Sortable four columns portfolio page. |
| Portfolio - Three Columns | portfolio-three-columns.html | Sortable three columns portfolio page. |
| Portfolio - Two Columns | portfolio-two-columns.html | Sortable two columns portfolio page. |
| Portfolio - One Column | portfolio-one-column.html | Sortable one column portfolio page. |
| Portfolio - Masonry Layout | portfolio-masonry.html | Portfolio with Masonry layout. Perfect for arranging images with different heights on the same page. |
| Single Project - Gallery | single-project-gallery.html | Single project page with lightbox gallery, description, collapsible project details boxes and a "More Projects" section. |
| Single Project - Slider | single-project-slider.html | Single project page with slideshow, description, collapsible project details boxes and a "More Projects" section. |
| Single Project - Full Width Slider | single-project-slider-full-width.html | Single project page with full width slideshow, description, project details tabs and a "More Projects" section. |
Blog Templates
| Blog - Home | blog.html | Blog homepage with demo articles and sidebar. |
| Blog Post - Slider | blog-post-slider.html | Blog post with slideshow, sidebar and comment section. |
| Blog Post - Gallery | blog-post-gallery.html | Blog post with gallery, sidebar and comment section. |
| Blog Post - Video | blog-post-video.html | Blog post with video, sidebar and comment section. |
Demo Templates
| Elements | elements.html | Page with all template elements. |
| FAQ | faq.html | Page with Frequently Asked Questions tabs and contact info sidebar. |
| Grid System | grid-system.html | Page that demonstrate the basic Bootstrap grid system. |
| Icons | icons.html | Page that lists all 361 FontAwesome 3.2 icons. |
| Typography | typography.html | Page with all typographic options. |
HTML Layout Structure
As Olin is built on the Bootstrap 3 framework, simply use the official Bootstrap 3 classes to achieve your desired layout. Rather than me republishing the same information that has already been written down very well, head over to the official Bootstrap 3 - CSS Documentation to learn more.
HTML and PHP version
Olin comes in PHP and HTML file format. If you don't know anything about PHP or your webhosting package doesn't even run PHP, than use the HTML version html to get your site running. But for easier maintanance and faster development, PHP outperforms HTML by far. Don't be scared by PHP, you don't need to know much about it to use it with this template. Within Olin it's pretty much just another file extensing, that will make your programming life a lot easier. Read on..
The PHP version php within your download includes two extra files named header.php and footer.php where similar to other well known CMS such as WordPress the site's header anf footer section is stored. As the header and footer is the same on any template file the idea behind this practice is to only touch these two files when changing header or footer content. Otherwise you would have to change every single file, when updating the header and footer section of your template.
At the beginnig of every PHP template file we included header.php
<?php $page_title = "Home"; include("header.php"); ?>
The $page_title variable stores the page title. As every page will have a different title you have to enter a unique page title. Even if you care just very little about SEO, do it for any potential visitor, as this title will appear in any Google search where this very page comes up. So take a moment to think what to add here.
All stylesheets and the site navigation is stored within header.php
At the end of every PHP template file we included footer.php
<?php include("footer.php"); ?>
All scripts are added here. Right before the closing body tag. Plus the footer section itself with newsletter, social networks, about snippet, contact and copyright information.
Assets
In the same level as all template files you find the assets folder, where the template stylesheets /css and scripts /js are located.
Stylesheets (CSS Files)
| CSS Animations | animate.min.css | Minified CSS Animations by Dan Eden (Usage: Slideshow) |
| BxSlider | bxslider.css | BxSlider by Steven Wanderski (Usage: Multislider) |
| Isotope | isotope.css | Styles for the portfolio layout plugin by David DeSandro (Usage: Portfolio) |
| Magnific Popup | magnific-popup.css | Styles for the lightbox plugin by Dmitry Semenov (Usage: Lightboxes) |
| Main Stylesheet | styles.css | Main stylesheet. Compiled from assets/less/styles.less with LESS.app. Don't make any changes to this file, as it will be overridden by future updates. Use custom.css (learn more) |
Scripts (JS Files)
| HTML5 shim | html5shiv.js | IE6-9 HTML5 elements support by Alexander Farkas |
| BxSlider | jquery.bxslider.min.js | BxSlider jQuery plugin by Steven Wanderski (Usage: Multislider) |
| Countdown | jquery.countdown.min.js | Countdown jQuery plugin by Edson Hilios (Usage: Coming Soon Pages) |
| FitText | jquery.fittext.js | Smooth Font Scaling jQuery plugin by Paravel (Usage: Slideshow Text) |
| FitVids | jquery.fitvids.js | Fluid video width embeds jQuery plugin by Chris Coyier & Paravel (Usage: Video Blog Post) |
| Isotope | jquery.isotope.min.js | Magic layouts jQuery plugin by David DeSandro (Usage: Portfolio) |
| Magnific Popup | jquery.magnific-popup.min.js | Lightbox jQuery plugin by Dmitry Semenov (Usage: Lightboxes) |
| LESS | less.js | LESS v1.3.3 by Alexis Sellier |
| Resond JS | respond.min.js | IE8 and under media queries support by Scott Jehl |
| Theme JS | theme.js | Contains all other custom and theme specific scripts |
Styles (CSS)
Use all the official Bootstrap CSS Styles plus the following template specific styles to enhances the visual experience of your website.
-
Element Styles
.gradient(Vertical background gradient from #fff to #eee)
#sidebar(Wrap your.affixsidebar into this a#sidebardiv)
Vertical Margins:
.section-small.section-base.section-large
.margin-small.margin-base.margin-large
.margin-top-small.margin-top-base.margin-top-large
.margin-bottom-small.margin-bottom-base.margin-bottom-large
Vertical Paddings:
.padding-small.padding-base.padding-large
.padding-top-small.padding-top-base.padding-top-large
.padding-bottom-small.padding-bottom-base.padding-bottom-large -
Typography Styles
Handwritten Font:
.handwritten(Google Font: 'Marck Script')
.color(color:@color-primary| Default: #00a79d)
.black(color: #000)
.upper(text-transform: uppercase)
.invert(background: Primary color; color: #fff)
.list-icon(For lists with <i> icon font)
.hr2(Heading style with a fine vertical centered double line)
Predefined Color Schemes
You can choose between the following 15 predefined color schemes.
- blue.css
- blue2.css
- blue3.css
- brown.css
- default.css
- gray.css
- green.css
- green2.css
- orange.css
- purple.css
- purple2.css
- red.css
- red2.css
- red3.css
- yellow.css
Default color scheme tag in the template head section:
<link href="assets/css/default.css" rel="stylesheet">
Replace default.css with the color scheme of your choice. To load the orange color scheme you would change the link tag to:
<link href="assets/css/orange.css" rel="stylesheet">
Don't modify the predefined color schemes, as they will be overriden by future updates. Simply create your own color scheme by duplicating an exisiting color scheme from assets/colors/. Than change the colors as you like and update the color scheme link tag path.
Need some color inspiration? Try https://kuler.adobe.com/
Custom CSS
Don't make any changes to styles.css as it is the main CSS stylesheet; it will be overridden by future updates. Go to assets/css/ and create a CSS file named custom.css. There is already a stylesheet link tag in your template's header (line 32) that links to assets/css/custom.css. If you don't add any custom styles, you can delete this line of code.
LESS
Olins styles are written in LESS, than compiled to CSS. LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. It can save you precious development time and helps to maintain your styles more easily. Only use LESS files in development, not for live websites. Therefor compile to CSS. LESS files are located in assets/less/
Same as with the main CSS file: Don't make any changes to styles.less as it is the main LESS stylesheet; it will be overridden by future updates. Create a new LESS file or duplicate styles.less and name it custom.less. Compile to CSS into the standard CSS folder assets/css/ as custom.css There is already a stylesheet link tag in your template's header (line 32) that links to assets/css/custom.css. If you don't add any custom styles, you can delete this line of code.
Even if you are new to LESS, give it a try, it's really dead simple to learn.
The following piece of code is necessary to get LESS running. It is already included in the template header line 38-40, but comment out. Remove the comments to enable LESS including error notifications.
<link href="assets/less/styles.less" rel="stylesheet/less" />
<script>less = { env: 'development' };</script>
<script src="assets/js/less.js"></script>
Typography
H1 Heading
H2 Heading
H3 Heading
H4 Heading
H5 Heading
H6 Heading
Paragraphs
This is a .lead paragraph, which has a font size of 18px. Standard font size is 13px. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui, odit, explicabo mollitia adipisci facere veniam esse eius tenetur deserunt earum recusandae temporibus aspernatur architecto impedit nostrum tempora quaerat ea labore hic similique molestiae in vitae officiis non rerum dolorem nisi corporis illo ducimus at pariatur exercitationem reprehenderit totam a magni?
<p class="lead">This is a <code>.lead</code> paragraph, which has a font size of 18px.</p>
This is a standard parapgraph with a font size of 13px. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum, accusantium cumque error dolorem non impedit nisi magni maxime provident. Pariatur, magni tenetur at vitae perspiciatis! Molestiae, aut, quidem consequatur beatae quasi nesciunt quod quas neque reiciendis facere temporibus vitae provident deleniti autem obcaecati porro laudantium quaerat eaque ipsa enim expedita.
Inverted Text
To invert an element add .invert like so: I'm an inverted text.
<span class="invert">I'm an inverted text.</span>
Underlined H5 Heading
<h5 class="page-header">Underlined H5 Heading</h5>
Left aligned H5 Heading with fine double line
<h5 class="hr2">Left aligned H5 Heading with fine double line</h5>
Centered H5 Heading with fine double line
<h5 class="hr2 text-center">Centered H5 Heading with fine double line</h5>
Right aligned H5 Heading with fine double line
<h5 class="hr2 text-right">Right aligned H5 Heading with fine double line</h5>
Handwritten
Beautiful handwritten font Marck Script.
Beautiful handwritten font Marck Script.
More free webfonts can be found over here: http://www.google.com/fonts/
Blockquote
I'm a blockquote. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
John Doe in "Notes from John Doe"
<blockquote> <p><strong>I'm a blockquote.</strong> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p> <small>John Doe in <cite title="Source Title">"Notes from John Doe"</cite></small> </blockquote>
Unordered list
- Unorder list item
- Unordered list item
-
Unordered sub list
- Unordered sub list item
- Unordered sub list item
- Unordered sub list item
- Unordered list item
- Unordered list item
- Unordered list item
- Unorder list item
- Unordered list item
-
Unordered sub list
- Unordered sub list item
- Unordered sub list item
- Unordered sub list item
- Unordered list item
- Unordered list item
- Unordered list item
Ordered list
- Ordered list item
- Ordered list item
- Ordered sub list
- Ordered sub list item
- Ordered sub list item
- Ordered sub list item
- Ordered list item
- Ordered list item
- Ordered list item
- Ordered list item
- Ordered list item
- Ordered sub list
- Ordered sub list item
- Ordered sub list item
- Ordered sub list item
- Ordered list item
- Ordered list item
- Ordered list item
Unstyled list
- Unstyled list item
- Unstyled list item
- Unstyled sub list
- Unstyled sub list item
- Unstyled sub list item
- Unstyled sub list item
- Unstyled list item
- Unstyled list item
- Unstyled list item
- Unstyled list item
- Unstyled list item
- Unstyled sub list
- Unstyled sub list item
- Unstyled sub list item
- Unstyled sub list item
- Unstyled list item
- Unstyled list item
- Unstyled list item
Icon list
Preformatted text
Preformatted text goes here. Can also include code: I am a code element
<pre>Preformatted text goes here. Can also include code: <code>I am a code element</code></pre>
Code
I am a code element
<code>I am a code element</code>
Icons
This template uses the FontAwesome 3.2 Icon Font with a total of 361 icons. Not Bootstrap's standard Icon Font Glyphicons with 180 icons. If you prefer to use Glyphicons you can do so, as it's included with your download under assets/fonts. This guide describes how to use the FontAwesome Icon Font with this template.
Icon Fonts have a lot of advantages over graphic icons. They are Infinite Scalable. Fully CSS Cutomizable: Size, Color, Shadow etc. Perfect for Retina Displays. Screen Reader Compatible. IE7 Support.
Instead of a pixel-based icon such as a GIF or PNG graphic via:
<img src="images/icon-star.png" alt="" />
You can easily insert icons like the star below by adding a class of .icon-star to your <i> element:
<i class="icon-star"></i>
Which will output:
Change color, size, opacity, background etc. as you would do with any other font. As the name implies an Icon Font stores icons, where a normal font stores characters. All .icon-* icon font elements are inline elements by default.
Example Bolt Icon Font Style
.icon-bolt {
display: inline-block;
width: 30px;
height: 30px;
font-size: 20px;
line-height: 30px;
text-align: center;
color: #f90;
border-radius: 50%;
background-color: #eee;
}
How To Create your Own Icon Font
If you need some more customization I highly recommend to check out http://icomoon.io/app/. Where you can create your very own Icon Font by cherry-picking every single icon out of multiple Icon Fonts such as the great Entypo, Iconic and many more.
Social Network Icons
Wrap your social network icons into .social-networks to show them with background color.
<span class="social-networks"> <a href=""><i class="icon-twitter"></i></a> <a href=""><i class="icon-dribbble"></i></a> <a href=""><i class="icon-google-plus"></i></a> </span>
Wrap your social network icons into .social-networks-transparent to show them with background color on hover.
<span class="social-networks-transparent"> <a href=""><i class="icon-twitter"></i></a> <a href=""><i class="icon-dribbble"></i></a> <a href=""><i class="icon-google-plus"></i></a> </span>
Iconbox
Use the .iconbox wrapper to create a multi-column iconbox with .header and .content. Place the icon right before of your heading.
Title 1
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt, provident.
Title 2
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt, provident.
Title 3
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt, provident.
<div class="iconbox"> <div class="row"> <div class="col-lg-4"> <i class="icon-cogs icon-2x"></i> <h5 class="header">Title 1</h5> <p class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt, provident.</p> </div> <div class="col-lg-4"> <i class="icon-magic icon-2x"magic></i> <h5 class="header">Title 2</h5> <p class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt, provident.</p> </div> <div class="col-lg-4"> <i class="icon-bullhorn icon-2x"></i> <h5 class="header">Title 3</h5> <p class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt, provident.</p> </div> </div> </div>
Standard Components
Olin includes all Bootstrap components. What follows is a short explanation of each component plus the source code.
Buttons
Buttons are pure CSS3 with background gradients and fallbacks. In six styles (+ disabled state), four sizes, groupable and much more. Add .btn and one of the six button styles (.btn-default, .btn-primary etc.) to apply the preconfigured button styles.
<button type="button" class="btn btn-default">Default</button> <button type="button" class="btn btn-primary">Primary</button> <button type="button" class="btn btn-success">Success</button> <button type="button" class="btn btn-info">Info</button> <button type="button" class="btn btn-warning">Warning</button> <button type="button" class="btn btn-danger">Danger</button> <button type="button" class="btn btn-danger" disabled="disabled">Disabled button</button>
Buttons Sizes
For additional button sizes add .btn-xs, .btn-sm or .btn-lg to your buttons.
<button type="button" class="btn btn-default btn-lg">Large button</button> <button type="button" class="btn btn-default">Default button</button> <button type="button" class="btn btn-default btn-sm">Small button</button> <button type="button" class="btn btn-default btn-xs">Extra small button</button>
Button Group
Wrap your .btn buttons in a .btn-group container.
<div class="btn-group"> <button type="button" class="btn btn-default">Left</button> <button type="button" class="btn btn-default">Middle</button> <button type="button" class="btn btn-default">Right</button> </div>
Labels
Default Primary Success Info Warning Danger
<span class="label label-default">Default</span> <span class="label label-primary">Primary</span> <span class="label label-success">Success</span> <span class="label label-info">Info</span> <span class="label label-warning">Warning</span> <span class="label label-danger">Danger</span>
Badges
12
<span class="badge">12</span> <button type="button" class="btn btn-default">Button with badge <span class="badge">99</span></button>
Tabs
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel, voluptates, cum, atque, minima soluta architecto quisquam assumenda saepe ea ad maiores nulla sapiente impedit aspernatur provident nesciunt asperiores. Quis, fugit nisi soluta facilis rerum fugiat pariatur consectetur beatae ipsa. Ex optio cum eligendi rerum adipisci. Aperiam explicabo fugiat vero saepe?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Impedit, autem, tenetur, earum suscipit repellendus est iusto reprehenderit iure rem eveniet totam culpa ipsa libero odio ratione similique quasi laudantium officia. Expedita, provident ex quod vitae eos asperiores facilis modi. Neque, accusamus, asperiores odit distinctio maxime fugiat vitae! Sunt, sint, cum rerum exercitationem itaque officiis dolorum odio amet ratione suscipit nemo doloremque officia provident iure repudiandae nam veniam voluptates temporibus vitae fugit nostrum dicta omnis eaque.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugiat, laborum, eius, quasi, labore asperiores sint vitae accusamus dicta ad quidem alias officia iusto magnam dolorum neque aut repudiandae officiis error quos possimus deserunt in expedita adipisci perspiciatis incidunt quia eos animi sit debitis distinctio. Sunt et quod unde obcaecati doloribus.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint, id nulla quo consequuntur unde dolores facilis inventore vel natus aut provident deserunt in enim at voluptatum architecto quos dolor corrupti earum error officia repudiandae alias quis! Accusamus, hic maiores eius.
<ul class="nav nav-tabs tab-header"> <li class="active"><a href="#home" data-toggle="tab"><i class="icon-home"></i> Home</a></li> <li><a href="#profile" data-toggle="tab"><i class="icon-user"></i> Profile</a></li> <li><a href="#messages" data-toggle="tab"><i class="icon-envelope"></i> Messages</a></li> <li><a href="#settings" data-toggle="tab"><i class="icon-gears"></i> Settings</a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="home"> <!-- Tab 1 content --> </div> <div class="tab-pane" id="profile"> <!-- Tab 2 content --> </div> <div class="tab-pane" id="messages"> <!-- Tab 3 content --> </div> <div class="tab-pane" id="settings"> <!-- Tab 4 content --> </div> </div>
Accordion
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">Collapsible Group Item #1</a></h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
..
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">Collapsible Group Item #2</a></h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse">
<div class="panel-body">
..
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">Collapsible Group Item #3</a></h4>
</div>
<div id="collapseThree" class="panel-collapse collapse">
<div class="panel-body">
..
</div>
</div>
</div>
</div>
Images
<img src=".." alt="" class="img-rounded"> <img src=".." alt="" class="img-circle"> <img src=".." alt="" class="img-thumbnail">
Custom Content
Thumbnail label
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis, officiis, omnis rerum qui tempora cum suscipit eum quidem dolorum laboriosam nisi repellendus nobis maxime voluptas.
<div class="thumbnail">
<img src=".." alt="" />
<div class="caption">
<h4>Thumbnail label</h4>
<p>
..
</p>
<p><a href="" class="btn btn-default">Button</a></p>
</div>
</div>
Well
The Perfect Highlighter
Well with inset box shadow and light gray background.
Add a little note..
<div class="well"> <div class="row"> <div class="col-md-9"> <h3>The Perfect Highlighter</h3> <p>Well with inset box shadow and light gray background.</p> </div> <div class="col-md-3"> <button class="btn btn-lg btn-default btn-block">Sign Up</button> <p class="text-center text-muted"><small>Add a little note..</small></p> </div> </div> </div>
Well with background gradient
For a background gradient add .gradient to your well. Same with Jumbotron or any other element.
<div class="well gradient"> <h3>Well with background gradient</h3> <p class="lead">..</p> </div>
Jumbotron
<div class="jumbotron text-center gradient"> <h1>Big News</h1> <p>Got something big to announce?</p> <p><a class="btn btn-primary btn-lg">Learn more</a></p> </div>
Pagination
<ul class="pagination"> <li><a href=""><i class="icon-angle-left"></i></a></li> <li><a href="">1</a></li> <li><a href="">2</a></li> <li><a href="">3</a></li> <li><a href="">4</a></li> <li><a href="">5</a></li> <li><a href=""><i class="icon-angle-right"></i></a></li> </ul>
Pager
<ul class="pager" style="text-align:left"> <li><a href=""><i class="icon-angle-left"></i> Previous</a></li> <li><a href="">Next <i class="icon-angle-right"></i></a></li> </ul>
Alerts with close button
<div class="alert alert-success alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <strong>Success!</strong> Hi, I'm a dismissable alert for success messages. </div> <div class="alert alert-info alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <strong>Info!</strong> Hi, I'm a dismissable alert for info messages. </div> <div class="alert alert-warning alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <strong>Warning!</strong> Hi, I'm a dismissable alert for warning messages. </div> <div class="alert alert-danger alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <strong>Danger!</strong> Hi, I'm a dismissable alert for danger messages. </div>
Progress Bars
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%;">
<span class="sr-only">40% Complete</span>
</div>
</div>
<div class="progress progress-striped">
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
<span class="sr-only">60% Complete (success)</span>
</div>
</div>
<div class="progress progress-striped active">
<div class="progress-bar" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
<span class="sr-only">80% Complete</span>
</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-success" style="width: 40%">
<span class="sr-only">40% Complete (success)</span>
</div>
<div class="progress-bar progress-bar-warning" style="width: 30%">
<span class="sr-only">30% Complete (warning)</span>
</div>
<div class="progress-bar progress-bar-danger" style="width: 30%">
<span class="sr-only">30% Complete (danger)</span>
</div>
</div>
Tooltip
Add the data-toggle="tooltip" and title=".." attribute to the element you want the tooltip to apply to. The title attribute holds your tooltip's text.
Example: http://getbootstrap.com/javascript/#tooltips
<a href="http://getbootstrap.com/javascript/#tooltips" data-toggle="tooltip" title="Bootstrap Documentation: Tooltip" target="_blank">http://getbootstrap.com/javascript/#tooltips</a>
Popovers
Add small overlays of content, like those on the iPad, to any element for housing secondary information.
"On Hover" Example - class="popover":
http://getbootstrap.com/javascript/#popovers
<a href="http://getbootstrap.com/javascript/#popovers" data-toggle="popover-hover" data-original-title="Bootstrap Documentation: Popovers" data-content="Learn more about the popover." target="_blank">http://getbootstrap.com/javascript/#popovers</a>
"On Click"" Example - class="popover":
Click to toggle the popover
<a class="btn btn-default" data-toggle="popover" data-original-title="Custom Popover Title" data-content="<p>Here goes your custom popover body. <strong>HTML</strong> allowed. A button for example:</p><button type='button' class='btn btn-primary btn-sm'>more</button>" target="_blank">Click to toggle the popover</a>
Forms
Create beautiful forms without any extra markup. Either with labels & form controls, like the example below, or even more minimal by adding a placeholder text to your inputs, instead of labels.
Hint: Screen readers will have trouble with your forms if you don't include a label for every input. For these inline forms, you can hide the labels using the .sr-only class.
<form action="" role="form"> <div class="row"> <div class="form-group col-md-6"> <label for="name">Name</label> <input type="text" id="name" placeholder="" class="form-control" /> </div> <div class="form-group col-md-6"> <label for="email">Email <span class="text-warning">*</span></label> <input type="text" id="email" placeholder="" class="form-control" /> </div> </div> <div class="form-group"> <label for="subject">Subject</label> <input type="text" id="message" class="form-control" placeholder="" /> </div> <div class="form-group"> <label for="message">Message <span class="text-warning">*</span></label> <textarea name="message" id="message" cols="30" rows="10" class="form-control" placeholder=""></textarea> </div> <button type="submit" class="btn btn-primary">Submit</button> <small class="pull-right text-muted">* required</small> </form>
Affix
The sidebar on the left is a live demo of the Affix plugin. Simply wrap your .nav into a #sidebar + .affix container and add your menu items using li elements.
<div id="sidebar" class="affix" role="complementary"> <ul class="nav"> <li><a href="#intro">Intro</a></li> <li><a href="#support">Support</a></li> <li><a href="#files">Template Files</a></li> <li><a href="#html">HTML Layout Structure</a></li> <li><a href="#styles">Styles (CSS)</a></li> <li><a href="#typography">Typography</a></li> <li><a href="#icons">Icons</a></li> <li><a href="#components">Standard Components</a></li> <li> <a href="#additional">Additional Components</a> <ul class="nav"> <li><a href="#pricing-tables">Pricing Tables</a></li> <li><a href="#countdown">Countdown</a></li> <li><a href="#bxslider">BxSlider</a></li> <li><a href="#lightbox">Lightbox</a></li> <li><a href="#portfolio">Portfolio</a></li> </ul> </li> </ul> </div>
Modal
Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.
Example Modal
<a data-toggle="modal" href="#demomodal" class="btn btn-primary btn-lg">Example Modal</a>
<div class="modal fade" id="demomodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Modal Title</h4>
</div>
<div class="modal-body">..</div>
</div>
</div>
</div>
Slideshow - Bootstrap Carousel
Olin comes with a modified version of Bootstrap's carousel plugin. The slideshow text and controls (Icon Font) scale smoothly according to your device width. Kudos to the FitText.js plugin.
Basic slideshow markup:
<div id="carousel" class="carousel slide"> <!-- Wrapper for slides --> <div class="carousel-inner"> <!-- Slide 1 container --> <div class="item active"> <img src="..." alt="..."> <div class="carousel-caption"> ... </div> </div> </div> </div>
The .carousel holds all slides (.item ). Captions can be added with a .carousel-caption element. Don't forget to add a class of .active to the .item where your slideshow should start from, otherwise no slideshow will be visible at all.
Custom Slideshow Elements and Styles
You can place just about any optional element into your .item slides. I added a helper container named .carousel-content, which you simply place into your .item slides. Use it to insert pre-formatted slide content such as a header with .carousel-header and a body .carousel-body. I recommend to always use these three elements when placing text into your slides, as the FitText.js plugin, which will scale your slideshow text properly on all devices needs this classes to do it's magic.
Example: Slide with Background Image, Header and Body Text
<div class="item"> <img src="..." alt="..." /> <div class="carousel-content"> <div class="container"> <h1 class="carousel-header">Slide title</h1> <div class="carousel-body"> <p>Slide body text</p> </div> </div> </div> </div>
Controls
Copy the following code and paste it after your .carousel-inner container to add slider controls. They appear on hover.
<a class="left carousel-control" href="#carouseldemo" data-slide="prev"> <i class="icon-angle-left"></i> </a> <a class="right carousel-control" href="#carouseldemo" data-slide="next"> <i class="icon-angle-right"></i> </a>
Indicators
Place the following code after the .carousel-inner container to display indicators. One li element for every slide. Apply .active to the indicator that you want to select by default. data-target has to be your slider's ID. Your first indicator gets a data-slide-to of "0". Next slide "1" and so on. Pointing to whatever slide a certain indicator should should target.
<ol class="carousel-indicators"> <li data-target="#carouseldemo" data-slide-to="0" class="active"></li> <li data-target="#carouseldemo" data-slide-to="1"></li> </ol>
Interval
Go to assets/js/themes.js (line 6) to change the slide interval. Default is set to "8000" (that's 8000ms = 8sec).
CSS Animations
The fancy animations (Fade, Bounce, Flip, Flash etc.) are pure CSS and possible using the animate.css jquery plugin.
You can animate every single one of your slide elements. By default slideshow content has no animation.
Random animations: Add .random to apply a random CSS animation plus a random delay to every one of your effects between 1/4sec to 1sec. Rather than starting all effects at the same time.
Example: Slide with randomly animated Header and Body Text
<div class="item"> <img src="..." alt="..." /> <div class="carousel-content"> <div class="container"> <h1 class="carousel-header random">Slide title</h1> <div class="carousel-body random"> <p>Slide body text</p> </div> </div> </div> </div>
Custom animations: You can also assign animations and delays to your slideshow elements manually by adding .animated + "CSS animation" + "delay" to your elements.
Example: Slider with custom CSS animations for Header and Body Text
<div class="item"> <img src="..." alt="..." /> <div class="carousel-content"> <div class="container"> <h1 class="carousel-header animated fadeInDown delay050s">Slide title</h1> <div class="carousel-body animated bounceIn delay150s"> <p>Slide body text</p> </div> </div> </div> </div>
CSS animation effects (all 61):
- Attention seekers:
.flash.bounce.shake.tada.swing.wobble.pulse - Flippers:
.flip.flipInX.flipOutX.flipInY.flipOuY - Fading entrances:
.fadeIn.fadeInUp.fadeInDown.fadeInLeft.fadeInRight.fadeInUpBig.fadeInDownBig.fadeInLeftBig.fadeInRightBig - Fading exits:
.fadeOut.fadeOutUp.fadeOutDown.fadeOutLeft.fadeOutRight.fadeOutUpBig.fadeOutDownBig.fadeOutLeftBig.fadeOutRightBig - Sliders:
.slideIn.slideInLeft.slideInRight.slideOutUp.slideOutLeft.slideOutRight - Bouncing entrances:
.bounceIn.bounceInDown.bounceInUp.bounceInLeft.bounceInRight - Bouncing exits:
.bounceOut.bounceOutDown.bounceOutUp.bounceOutLeft.bounceOutRight - Rotate entrances:
.rotateIn.rotateInDownLeft.rotateInDownRight.rotateInUpLeft.rotateInUpRight - Rotate exits:
.rotateOut.rotateOutDownLeft.rotateOutDownRight.rotateOutUpLeft.rotateOutUpRight - Lightspeed:
.lightSpeedIn.lightSpeedOut - Specials:
.hinge.rollIn.rollOut
Delays (0.25sec to 5sec):
.delay025s= 0.25sec delay.delay050s= 0.50sec delay.delay075s= 0.75sec delay.delay1s= 1sec delay.delay125s= 1.25sec delay.delay155s= 1.50sec delay.delay175s= 1.75sec delay.delay2s= 2sec delay.delay250s= 2.50sec delay.delay3s= 3sec delay.delay3s= 4sec delay.delay5s= 5sec delay
Slider Text Styles
There are four pre-made slider text styles:
.dark30% opaque black background color + light font color.light50% opaque white background color + dark font color.grayGray background color + light font color.colorPrimary color background + light font color
Complete slideshow example
Source code from the complete slideshow above
<div id="carouseldemo" class="carousel slide"> <!-- Wrapper for slides --> <div class="carousel-inner"> <!-- Slide 1 --> <div class="item active"> <img src="" alt="" /> <div class="carousel-content"> <div class="container"> <div class="carousel-header random color">Slide title (.random)</div><br /> <div class="carousel-body random gray">Slide body text (.random)</div> </div> </div> <div class="carousel-caption random"> <div class="container"> <div class="carousel-header">Slide Caption</div> <div class="carousel-body">Some caption text</div> </div> </div> </div> <!-- Slide 2 --> <div class="item"> <img src="" alt="" /> <div class="carousel-content"> <div class="container"> <div class="carousel-header animated fadeIn delay050s">Slide title (.animated .fadeIn .delay050s)</div><br /> <div class="carousel-body animated bounceIn delay1s">Slide body text (.animated .bounceIn .delay1s)</div> </div> </div> <div class="carousel-caption animated bounceInUp delay150s"> <div class="container"> <div class="carousel-header">Slide Caption (.animated bounceInUp delay150s)</div> </div> </div> </div> </div> <!-- Controls --> <a class="left carousel-control" href="#carouseldemo" data-slide="prev"> <i class="icon-angle-left"></i> </a> <a class="right carousel-control" href="#carouseldemo" data-slide="next"> <i class="icon-angle-right"></i> </a> <!-- Indicators --> <ol class="carousel-indicators"> <li data-target="#carouseldemo" data-slide-to="0" class="active"></li> <li data-target="#carouseldemo" data-slide-to="1"></li> </ol> </div>
Favicon
To add a favicon replace the default favicon.png with your own. You can use PNG, GIF or ICO files. I recommend a PNG graphic with a dimension of 32x32 or 64x64 pixel. If you don't want to use a PNG you have to update the favicon's file name in the head section line 6:
<link rel="icon" href="favicon.png">
Additional Components
Twitter Bootstrap comes with many great plugins, but Olin as a multipurpose corporate template needs a little bit more juice. That's why it got even more functionality with the help of the following great plugins.
Pricing Tables
Creating fancy predefined and easy to customize pricing tables is a breeze. First we create the .pricing-table container, which will store all pricing options. In our example below we have three pricing options. Each option is wrapped into an .box element. Wrap each .box into the appropriate Bootstrap grid. In our example we use .col-md-4 to create a three column pricing table. The box itself stores the .pricing-header, .price-tag, an unordered list with all the pricing option features and a .btn button. That is the basic markup for any pricing table.
Add a class of .popular to the .box element, where you want a "Most Popular" badge to appear.
<div class="pricing-table"> <div class="col-md-4"> <div class="box"> <h3 class="pricing-header">Personal</h3> <div class="price-tag">$ 19 <small>/month</small></div> <ul> <li>1 user</li> <li>Custom CSS</li> <li>5GB storage</li> <li>Email support</li> </ul> <a href="" class="btn btn-primary">Order Now</a> </div> </div> <div class="col-md-4"> <div class="box popular"> <div class="pricing-popular">Most Popular</div> <h3 class="pricing-header">Team</h3> <div class="price-tag">$ 49 <small>/month</small></div> <ul> <li>5 user</li> <li>Custom CSS</li> <li><strong>Unlimited</strong> storage</li> <li><strong>24x7 phone support</strong></li> </ul> <a href="" class="btn btn-primary btn-lg">Order Now</a> </div> </div> <div class="col-md-4"> <div class="box"> <h3 class="pricing-header">Enterprise</h3> <div class="price-tag">$ 79 <small>/month</small></div> <ul> <li><strong>Unlimited</strong> user</li> <li>Custom CSS</li> <li><strong>Unlimited</strong> storage</li> <li>24x7 phone support</li> </ul> <a href="" class="btn btn-primary">Order Now</a> </div> </div> </div>
Countdown
A simple, sleek countdown for "Coming Soon" or Product Launch Pages can be added with the following piece of code. When the set date is reached the countdown font color will become red.
<div class="countdown"> <div> <span id="days" class="date-number"></span> <span class="date-unit">Days</span> </div> <div> <span id="hours" class="date-number"></span> <span class="date-unit">Hours</span> </div> <div> <span id="minutes" class="date-number"></span> <span class="date-unit">Minutes</span> </div> <div> <span id="seconds" class="date-number"></span> <span class="date-unit">Seconds</span> </div> <!-- USAGE: To set the countdown go to the "The Final Countdown" script right before the closing </body> tag and change the date (format: YYYY/MM/DD hh:mm:ss) --> </div>
For more examples check out Olins "Coming Soon" pages: coming-soon.html and coming-soon-bg-image.html
Testimonials
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic, magni unde doloribus ex soluta adipisci vel iste ea et dolorum!
Britney Brixton
SaveTheWorld
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic, magni unde doloribus ex soluta adipisci vel iste ea et dolorum!
Hubert Hughes
KreativeFolks
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic, magni unde doloribus ex soluta adipisci vel iste ea et dolorum!
Jodie Jameson
Women21
![]()
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic, magni unde doloribus ex soluta adipisci vel iste ea et dolorum!
Britney Brixton
SaveTheWorld![]()
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic, magni unde doloribus ex soluta adipisci vel iste ea et dolorum!
Hubert Hughes
KreativeFolks![]()
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic, magni unde doloribus ex soluta adipisci vel iste ea et dolorum!
Jodie Jameson
Women21
Multislider: BxSlider v4.0
For the standard slideshow Olin is using Bootstrap's default carousel. To display multiple slides at once we utilize BxSlider. The example below shows five slides at once, hence a class of .bxslider5. You can choose to display two to eight slides. A list with the class of .bxlisder8 will display eight slides. Same naming convention for any other number of slides from 2 to 8.
<ul class="bxslider5"></ul>
Lightbox - Magnific Popup v0.9.5
To showcase all kinds of media such as single images, galleries, videos, Google Maps, Ajax content and forms in a professional style Olin runs a highly customized version of the ultra fast, light and responsive Magnific Popup by Dmitry Semenov.
Image Gallery
Wrap your linked images into a container of .gallery to add lightbox behavior. When your .gallery contains more than one image your lightbox becomes automatically browseable.
The title attribute holds the content for your image's caption. Can be any valid HTML.
<div class="gallery"> <div class="row"> <div class="col-sm-4"> <a href="" title="<h3>Easily browse through a gallery with your keyboard (left & right), close with ESC</h3>"> <img src="" alt="" /> </a> </div> <div class="col-sm-4"> <a href="" title="Use the <code>title</code> attribute to add a caption like this one. "> <img src="" alt="" /> </a> </div> <div class="col-sm-4"> <a href="" title="HTML content works as well, see: <button class='btn btn-primary'><i class='icon-heart'></i> .. I'm a lovely button</button>"> <img src="" alt="" /> </a> </div> </div> </div>
iFrame - Google Maps or videos such as YouTube, Vimeo etc.
Open YouTube videoOpen YouTube videoOpen Vimeo video
Open Vimeo videoOpen Google Map
Open Google Map
Portfolio: Isotope v1.5.25
Isotope, the single best jQuery layout plugin on the market is already built-in right into Olin. I spent the money on it, so you don't have to. Copy, paste and enjoy.
Let's create the sorting part first to make your portfolio sortable. You can skip this part, if you don't want to add this function as it's not required for Isotope to do its magic.
We will host our filters in an unordered .portfolio-filter list. Use the data-filter attribute to name your filters. Don't forget to prepend a dot for each filter name, like so: .filter1
Filter naming convention: http://isotope.metafizzy.co/docs/filtering.html#creating_interactive_buttons
Now we have to create the actual portfolio and add some items to it. For simplicity the example below only contains one item.
<ul class="portfolio">
Here goes your project's description.
-
Create an unordered list with a class of
.portfolio. That is our portfolio container. By default it displays a four cloumns portfolio. Add a class of.columns2or.columns2to display a three or two columns portfolio. -
Each
lielement contains the data of a single project. Add the project's filter as a class to thelielement.
The project in our example above has two filters: filter1 and filter2. If someone select "Filter 3" this project will nicely fade out.
-
Add your project thumbnail within the
lielement. That's it. -
Optional: Add the "Type of Project" label that resides at the bottom left corner of your project thumbnail (
<span class="type">..</span>). Any text you want, doesn't have to be the filter(s) name. -
Optional: Add a layer with additional information about your project on top of the project thumbnail, which will appear on hover. Therefor create a
.portfolio-item-contentcontainer which includes a.headerand a.body
-
Filter 1
Project #1
Here goes your project's description.
-
Filter 2
Project #2
Here goes your project's description.
-
Filter 3
Project #3
Here goes your project's description.
-
Filter 1, Filter 2
Project #4
Here goes your project's description.
-
Filter 1, Filter 3
Project #5
Here goes your project's description.
-
Filter 3
Project #6
Here goes your project's description.
-
Filter 1, Filter 2, Filter 3
Project #7
Here goes your project's description.
-
Filter 2
Project #8
Here goes your project's description.
As you can see our portfolio handles images with different heights really nicely. This is called a Masonry Layout, and enabled by default.
Portfolio Columns
You can create any number of columns within your portfolio, but as a best practice and a truly great viewing experience I recommend to stick to one to four columns. By default your portfolio is set to four columns.
To display three columns add a class of .columns3 to your <ul class="portfolio"></ul>. For two columns add a class of .columns2 to your portfolio.
<ul class="portfolio columns2"> /* Will Show a Two Columns Portfolio */
Here goes your project's description.
Contact
Files: contact.html / contact.php
Olin has a custom, fully functional AJAX contact form (since v1.3), that validates and sends without a page refresh. All you need do to is to enter the recipient's email address to which all contact emails should be send to. Therefor open contactform.php and replace the default email address "[email protected]" with your own.
$to = '[email protected]'; // Recipient's email address
Google Maps
Insert the Google Maps link with your own address into the src attribute of the iframe. Therefor go to https://maps.google.com/ type in your address, hit enter, click on the link button in the upper left corner. Copy the iframe link of the second input box into your text / code editor. Now copy and paste the link of the iframe src attribute into your template's iframe src attribute.
To hide the Google Maps address popup add &iwloc=near at the very end of your Google Maps link.
The contact section in your footer works exactly the same. Only difference is the anchor's class of .lightbox-iframe which will trigger the Magnific Lightbox Plugin to open Google Maps in a lightbox popup window.