Table of Contents
Fonts
Gotham
NationalHardware.com uses the Gotham font family with the following variants/weights.
.text-gotham-extra-light
.text-gotham-extra-light-italic
.text-gotham-light
.text-gotham-light-italic
.text-gotham-book
.text-gotham-book-italic
.text-gotham-medium
.text-gotham-medium-italic
.text-gotham-bold
.text-gotham-bold-italic
.text-gotham-black
.text-gotham-black-italic
Opulent
Opulent is a script font that can be used as an alternative to Gotham to draw attention to specific text.
.text-opulent
Opulent font size tends to be a little smaller than a typical font so we've created a couple helper classes for enlarging when using in the CMS
These classes also scale the text responsively at various breakpoints
.text-opulent.text-opulent--medium
.text-opulent.text-opulent--large
.text-opulent.text-opulent--jumbo
The Icon Font was created with the icomoon.io website.
.icon-twitter
.icon-youtube
.icon-facebook
.icon-pinterest
.icon-instagram
.icon-list
.icon-creators-corner
.icon-creators-corner-tagline
.icon-arrow-circle-left
.icon-shopping-bag
.icon-NHW-logo-with-chevron
.icon-shoppable-image
.icon-play
.icon-minus2
.icon-search2
.icon-share-solid
.icon-prev-large
.icon-prev-small
.icon-search
.icon-share-outline
.icon-sign-up
.icon-star-outline
.icon-star-solid
.icon-support
.icon-times
.icon-undo
.icon-plus
.icon-plus-circle
.icon-double-quote
.icon-download
.icon-favorite-outline
.icon-favorites-navbar
.icon-favorite-solid-nostarfill
.icon-file-pdf
.icon-filter
.icon-globe-americas
.icon-Group
.icon-hammer
.icon-hotspot
.icon-instagram
.icon-minus
.icon-minus-circle
.icon-next-large
.icon-next-small
.icon-NHWlogo
.icon-years
.icon-logo
.icon-angle-down
.icon-angle-up
.icon-arrow-circle-right
.icon-bars
.icon-caret-down
.icon-caret-up
.icon-plus1
.icon-help-circle
.icon-checkmark-outline
.icon-down
.icon-chevron-left
.icon-chevron-right
.icon-chevron-thin-down
.icon-chevron-thin-left
.icon-chevron-thin-right
.icon-chevron-thin-up
.icon-chevron-up
.icon-download1
.icon-code
.icon-info-with-circle
.icon-link
.icon-price-tag
.icon-print
.icon-pinterest-with-circle
.icon-newspaper
.icon-arrow-up-right
.icon-warning1
.icon-info
.icon-notification
Headings
Garage Door Hardware
<h1>, .h1
Garage Door Hardware
<h2>, .h2
Garage Door Hardware
<h3>, .h3
Garage Door Hardware
<h4>, .h4
Garage Door Hardware
<h5>, .h5
Garage Door Hardware
<h6>, .h6
Heading 1 w/ Kicker
Door & Window Hardware
Interior Barn Door
<h1>
<div class="kicker">Door & Window Hardware</div>
<div>Interior Barn Door</div>
</h1>
Paragraphs
Normal paragraph
Lead paragraph lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer porta posuere purus, nec maximus lorem dignissim et. Etiam viverra efficitur malesuada. Integer at nisl velit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed rutrum urna vitae urna aliquam, eget aliquam ligula sagittis.
<p>
Lead paragraph
Lead paragraph lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer porta posuere purus, nec maximus lorem dignissim et. Etiam viverra efficitur malesuada. Integer at nisl velit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed rutrum urna vitae urna aliquam, eget aliquam ligula sagittis.
<p class="lead">
Colors
Brand colors are defined in scss > core > _variables.scss in the $brand-colors array map.
Primary Brand Colors
-
black#182630
$black
-
gray-dark#5D5F5F
$gray-dark
-
gray-med#898A8D
$gray-med
-
gray-light#E4E8EB
$gray-light
-
gray-beige#E7E6E2
$gray-beige
-
white#FFFFFF
$white
-
blue-navy#21365A
$blue-navy
-
blue-bright#00B3FF
$blue-bright
-
gold#FDB812
$gold
Category Colors
These colors are associated with product categories.
-
home-hardware#691C32
$pcat-home-hardware
-
hinges#FF671D
$pcat-hinges
-
security#E1251B
$pcat-security
-
rope-and-chain#D2451E
$pcat-rope-and-chain
-
wire-goods#FF9E18
$pcat-wire-goods
-
closet-hardware#3C627B
$pcat-closet-hardware
-
garage#53575A
$pcat-garage
-
organization#0059A6
$pcat-organization
-
gate#3F4727
$pcat-gate
-
outdoor-hinges#3F4727
$pcat-outdoor-hinges
-
reinforcement#6F2277
$pcat-reinforcement
-
screen-and-storm#3DAE2B
$pcat-screen-and-storm
-
plant-hardware#009171
$pcat-plant-hardware
-
track-and-hanger#231F20
$pcat-track-and-hanger
-
fasteners#691C32
$pcat-door-hardware
-
wall-hanging#8D634B
$pcat-picture-hanging
-
hobby-and-craft#231F20
$pcat-hobby-and-craft
Other Colors
These colors are used on various things like alerts, etc, but are not used as often.
-
red-dark#8d2b2d
$red-dark
-
red-light#e24747
$red-light
-
green#92cb9e
$green
Links, buttons, CTAs
Links
<a>
<a class="link-reversed">
<a class="link-reversed-subtle">
<a href="#" class="link-with-icon">Link with Icon <i class="icon-globe"></i></a>
<a href="#" class="link-with-icon"><i class="icon-globe"></i> Link - with Icon</a>
Primary Buttons
Use primary buttons for the most important call-to-action on a view.
<a href="#" class="btn btn-primary">
<a href="#" class="btn btn-primary btn-lg">
<a href="#" class="btn btn-primary btn-sm">
Secondary Buttons
Use secondary buttons for less important calls-to-action on a view.
<a href="#" class="btn btn-secondary">
<a href="#" class="btn btn-secondary btn-lg">
<a href="#" class="btn btn-secondary btn-sm">
Outline Buttons
Use outline buttons for calls-to-action on dark or graphical backgrounds.
<a href="#" class="btn btn-outline-primary">
<a href="#" class="btn btn-outline-primary btn-lg">
<a href="#" class="btn btn-outline-primary btn-sm">
<a href="#" class="btn btn-outline-secondary">
<a href="#" class="btn btn-outline-secondary btn-lg">
<a href="#" class="btn btn-outline-secondary btn-sm">
Buttons With Icons
Icons can be used inside of button by including the icon markup as shown. The icon-left
and icon-right
helper classes add extra
padding between the text and the icon. Icons and text inside a button are automatically vertically centered.
<a href="#" class="btn btn-primary">Primary Button <i
class="icon-star-solid icon-left"></i></a>
<a href="#" class="btn btn-primary btn-lg">Primary Button
(Large) <i class="icon-heart icon-star-solid"></i></a>
<a href="#" class="btn btn-primary btn-sm"><i
class="icon-star-solid icon-left"></i> Primary Button (Small)</a>
Load More Button
<div class="load-more js-load-more">
<button class="btn btn-primary load-more__btn">
<span class="load-more__text">Load More</span>
<div class="load-more__indicator"></div>
</button>
</div>
Lists
Unstyled List
- List Item 1
- List Item 2
- List Item 3
<ul class="list-unstyled">
Unstyled List - Spaced Out
- List Item 1
- List Item 2
- List Item 3
<ul class="list-unstyled list-unstyled--spaced-out">
Bulleted List
- Bulleted List Item 1
- Bulleted List Item 2
- Bulleted List Item 3
<ul class="list-bulleted">
Menu List
Menu lists are used in the header and footer navigation, and can be used anywhere you want to present a subtle list of links. menu-list
automatically adds vertical
margin between list items.
Simple Menu List
<ul class="list-menu">
Compact Variation
<ul class="list-menu list-menu--compact">
Menu List With Heading
<ul class="list-menu list-menu--compact">
<li class="list-menu__heading"><a href="#">List Menu Heading</a></li>
<li><a href="#">List Item 1</a></li>
<li><a href="#">List Item 2</a></li>
<li><a href="#">List Item 3</a></li>
</ul>
Inline Menu List
<ul class="list-menu-inline">
Tools List
A listing of tools needed for a project.
-
Box Saw
-
Chisel
-
Crescent Wrenches
-
Drill
-
Drill Bit
-
Hammer
-
Laser
-
Level
-
Mallet
-
Nails
-
Pencil
-
Pliers
-
Ratchet Set
-
Router
-
Ruler
-
Safety Googles
-
Screw Drivers
-
Screws
-
Tape Measure
-
Tension Saw
<ul class="list-tools">
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/boxsaw.svg" alt="Box Saw" class="list-tools__icon">
</div>
<div class="list-tools__text">Box Saw</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/chisel.svg" alt="Chisel" class="list-tools__icon">
</div>
<div class="list-tools__text">Chisel</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/crescentwrenches.svg" alt="Crescent Wrenches" class="list-tools__icon">
</div>
<div class="list-tools__text">Crescent Wrenches</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/drill.svg" alt="Drill" class="list-tools__icon">
</div>
<div class="list-tools__text">Drill</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/drillbit.svg" alt="Drill Bit" class="list-tools__icon">
</div>
<div class="list-tools__text">Drill Bit</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/hammer.svg" alt="Hammer" class="list-tools__icon">
</div>
<div class="list-tools__text">Hammer</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/laser.svg" alt="Laser" class="list-tools__icon">
</div>
<div class="list-tools__text">Laser</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/level.svg" alt="Level" class="list-tools__icon">
</div>
<div class="list-tools__text">Level</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/mallet.svg" alt="Mallet" class="list-tools__icon">
</div>
<div class="list-tools__text">Mallet</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/nails.svg" alt="Nails" class="list-tools__icon">
</div>
<div class="list-tools__text">Nails</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/pencil.svg" alt="Pencil" class="list-tools__icon">
</div>
<div class="list-tools__text">Pencil</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/pliers.svg" alt="Pliers" class="list-tools__icon">
</div>
<div class="list-tools__text">Pliers</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/ratchetset.svg" alt="Ratchet Set" class="list-tools__icon">
</div>
<div class="list-tools__text">Ratchet Set</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/router.svg" alt="Router" class="list-tools__icon">
</div>
<div class="list-tools__text">Router</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/ruler.svg" alt="Ruler" class="list-tools__icon">
</div>
<div class="list-tools__text">Ruler</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/safetygoggles.svg" alt="Safety Goggles" class="list-tools__icon">
</div>
<div class="list-tools__text">Safety Googles</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/screwdrivers.svg" alt="Screw Drivers" class="list-tools__icon">
</div>
<div class="list-tools__text">Screw Drivers</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/screws.svg" alt="Screws" class="list-tools__icon">
</div>
<div class="list-tools__text">Screws</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/tapemeasure.svg" alt="Tape Measure" class="list-tools__icon">
</div>
<div class="list-tools__text">Tape Measure</div>
</li>
<li class="list-tools__item">
<div class="list-tools__icon-wrapper">
<img src="./img/tools/tensionsaw.svg" alt="Tension Saw" class="list-tools__icon">
</div>
<div class="list-tools__text">Tension Saw</div>
</li>
</ul>
Tools List - Vertical
Code is identical to tools-list with an extra modifier class of tools-list--vertical
<ul class="list-tools list-tools--vertical">
-
Box Saw
-
Chisel
-
Crescent Wrenches
-
Drill
-
Drill Bit
-
Hammer
Icon List
Default
<ul class="icons-list">
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-globe-americas icons-block__icon"></i>
<span class="icons-block__text">Globe</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-star-solid icons-block__icon"></i>
<span class="icons-block__text">Star</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-download icons-block__icon"></i>
<span class="icons-block__text">Download</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-file-pdf icons-block__icon"></i>
<span class="icons-block__text">PDF</span>
</a>
</li>
</ul>
Variant with Separators
<ul class="icons-list icons-list--separators">
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-globe-americas icons-block__icon"></i>
<span class="icons-block__text">Globe</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-star-solid icons-block__icon"></i>
<span class="icons-block__text">Star</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-download icons-block__icon"></i>
<span class="icons-block__text">Download</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-file-pdf icons-block__icon"></i>
<span class="icons-block__text">PDF</span>
</a>
</li>
</ul>
Inline Variant
<ul class="icons-list icons-list--inline">
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-globe-americas icons-block__icon"></i>
<span class="icons-block__text">Globe</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-star-solid icons-block__icon"></i>
<span class="icons-block__text">Star</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-download icons-block__icon"></i>
<span class="icons-block__text">Download</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-file-pdf icons-block__icon"></i>
<span class="icons-block__text">PDF</span>
</a>
</li>
</ul>
Inline w/separators Variant
<ul class="icons-list icons-list--inline icons-list--separators">
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-globe-americas icons-block__icon"></i>
<span class="icons-block__text">Globe</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-star-solid icons-block__icon"></i>
<span class="icons-block__text">Star</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-download icons-block__icon"></i>
<span class="icons-block__text">Download</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-file-pdf icons-block__icon"></i>
<span class="icons-block__text">PDF</span>
</a>
</li>
</ul>
Blue Links Variant
<ul class="icons-list icons-list--blue-links">
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-globe-americas icons-block__icon"></i>
<span class="icons-block__text">Globe</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-star-solid icons-block__icon"></i>
<span class="icons-block__text">Star</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-download icons-block__icon"></i>
<span class="icons-block__text">Download</span>
</a>
</li>
<li class="icons-list__item icons-block">
<a href="#" class="icons-block__link">
<i class="icon-file-pdf icons-block__icon"></i>
<span class="icons-block__text">PDF</span>
</a>
</li>
</ul>
Balancing Text
There may be scenario's where a line of text leaves an orphan (one word carries to the second line by itself). If this happens you can place a class of .balance-text
on the item and a plugin will balance out the text so this does not happen.
This is a heading with orphan text.
This is a heading with orphan text.
Should not be placed on items where there is html inside the tag. The element should only consist of text.
The plugin runs at page load and will not run on dynamic content unless it called again after an action/event has taken place
Sections
Section Padding
There are a number of helper classes to give content sections different amounts of vertical padding.
<section>
<section class="section-small">
<section class="section-medium">
<section class="section-large">
<section class="section-huge">
<section class="section-giant">
<section class="section-massive">
Individual Padding
You can also specify padding on just the top, or just the bottom of a section. Try the following patterns:
.section-{direction}-{size}-{breakpoint}-up
The available directions are:
- top
- bottom
The available sizes are:
- none
- micro
- tiny
- small
- medium
- large
- huge
- giant
- massive
The available breakpoints are:
- sm
- md
- lg
- xl
Examples
<section class="section-top-small section-bottom-huge">
<section class="section-top-large section-bottom-small">
<section class="section-small section-top-huge-lg-up">
<section class="section-small section-huge-xl-up">
Section Background Colors
You can use any of the colors above to create colored section backgrounds. The helper class name
for these is bg-<color-name>
.
<section class="bg-black">
<section class="bg-blue-navy">
<section class="bg-gray-dark">
<section class="bg-gray-med">
<section class="bg-gray-beige">
<section class="bg-gray-light">
<section class="bg-white">
<section class="bg-red-dark">
<section class="bg-red-light">
<section class="bg-brown">
<section class="bg-green">
Padding / Margin
If you are putting large amounts of padding on a section it is best to use the section padding mentioned above, otherwise you can use the built in bootstrap 4 padding and margin classes as explained in bootstrap 4's official documentation here.
Below are few examples of the bootstrap padding and margin classes in action.
Note: These can also be used responsively.
Padding
.pt-1
.pt-2
.pt-3
.pt-4
.pt-5
.pb-1
.pb-2
.pb-3
.pb-4
.pb-5
.pl-1
.pl-2
.pl-3
.pl-4
.pl-5
.py-1
.py-2
.py-3
.py-4
.py-5
.px-1
.px-2
.px-3
.px-4
.px-5
Margin
.mt-1
.mt-2
.mt-3
.mt-4
.mt-5
.mb-1
.mb-2
.mb-3
.mb-4
.mb-5
.ml-1
.ml-2
.ml-3
.ml-4
.ml-5
.my-1
.my-2
.my-3
.my-4
.my-5
.mx-1
.mx-2
.mx-3
.mx-4
.mx-5
Responsive Usage
.pt-2 .pt-md-5
In this example padding top is given a value of 2 by default. At medium breakpoints and above, padding top is overwritten by a value of 5
Responsive classes on padding and margin always work upwards so a default value is assigned and then overwritten as the screen expands to be wider.
Background Image Classes
The following css classes will apply textures to a section.
.textured-background
.textured-background-black
.textured-background-wood-grain
.textured-background-paper
Grid
This project uses Bootstrap 4 as a foundation. The grid is the standard Bootstrap 12-column grid
Breakpoints and media query helpers
Breakpoint | Width range | Usage example |
---|---|---|
sm |
0–767px |
|
sm |
576px - 767px |
|
sm |
>= 576px |
|
md |
<= 991px |
|
md |
768px–991px |
|
md |
>= 768px |
|
lg |
<= 1199px |
|
lg |
992px–1199px |
|
lg |
>= 992px |
|
xl |
>= 1200px |
|
Breaking the Grid with Full-width Sections
Some modules (for example, the product grid, feature lists, and hero images) are meant to be full-width and not constrained
to the normal Bootstrap container. You can easily break out of grid anywhere in the markup by including a full-width
section.
Full-width section
<section class="section-huge full-width bg-gray-light text-center">
<h1>Full-width section</h1>
</section>
You may also want a full-width section background with contents constrained to the grid area. You can achieve this by putting a container
div inside your full-width
section and using normal Bootstrap row and column classes.
<section class="section-huge full-width bg-gray-light">
<div class="container">
<div class="row">
<div class="col-sm-6">
This content is inside a normal Bootstrap grid container.
</div>
<div class="col-sm-6">
This content is inside a normal Bootstrap grid container.
</div>
</div>
</div>
</section>
Tables
Uses standard bootstrap 4 table styles
Tables are recommended for use sparingly. Do not over use tables. Mobile table support is generally recommended for basic table layouts where there are table headers on top with content underneath. Support for more complex table layouts is not well supported.
Basic Table
<table class="table">
Product Image | Product Name | Product Description |
---|---|---|
![]() |
Door Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Gate Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Door Handle - Grooved | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
Table (Striped)
<table class="table table-striped">
Product Image | Product Name | Product Description |
---|---|---|
![]() |
Door Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Gate Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Door Handle - Grooved | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
Bordered Table
<table class="table table-bordered">
Product Image | Product Name | Product Description |
---|---|---|
![]() |
Door Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Gate Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Door Handle - Grooved | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
Mobile Table
<table class="table table--mobile-friendly table-striped">
Product Image | Product Name | Product Description |
---|---|---|
![]() |
Door Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Gate Handle | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
![]() |
Door Handle Grooved | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies finibus magna maximus vulputate. Maecenas faucibus ante at ultrices tempus. Etiam condimentum quam vitae massa bibendum, ac vulputate arcu accumsan. |
Form Elements
Uses standard bootstrap 4 form styles
Checkboxes - Stacked
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
<label class="form-check-label" for="defaultCheck1">
Checkbox 1
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck2">
<label class="form-check-label" for="defaultCheck2">
Checkbox 2
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck3">
<label class="form-check-label" for="defaultCheck3">
Checkbox 3
</label>
</div>
</div>
Checkboxes - Inline
<div class="form-group">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1">
<label class="form-check-label" for="inlineCheckbox1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2">
<label class="form-check-label" for="inlineCheckbox2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3">
<label class="form-check-label" for="inlineCheckbox3">3</label>
</div>
</div>
Radio Buttons - Stacked
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
First radio button
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
Second radio button
</label>
</div>
<div class="form-check disabled">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios3" value="option3">
<label class="form-check-label" for="exampleRadios3">
Third radio button
</label>
</div>
</div>
Radio Buttons - Inline
<div class="form-group">
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
<label class="form-check-label" for="inlineRadio1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
<label class="form-check-label" for="inlineRadio2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3">
<label class="form-check-label" for="inlineRadio3">3</label>
</div>
</div>
Calendar Widget
<div class="form-group">
<input type="date" class="form-control">
</div>
Finish Selector
The Finish Selector uses the select2 library
to override the default select
behavior and show a custom select box with previews of the possible finishes.
The finish selector javascript is located in modules/finishSelector.ts. This code is only included on the src/js/NHW/controllers/product-detail.ts javascript controller, not globally, and therefore will not work on this page. Please visit "Other Product Related Modules" section to see a working example of the finish selector.
<div class="form-group">
<label for="finishSelector">Finish</label>
<select name="finish" class="custom-select js-select-finish" id="finishSelector">
<option data-finish="oil-rubbed-bronze">Oil Rubbed Bronze</option>
<option data-finish="antique-bronze">Antique Bronze</option>
<option data-finish="pewter">Pewter</option>
<option data-finish="white">White</option>
<option data-finish="antique-brass">Antique Brass</option>
<option data-finish="yellow">Yellow</option>
<option data-finish="stainless-steel">Stainless Steel</option>
<option data-finish="plain-steel">Plain Steel</option>
<option data-finish="camo">Camo</option>
</select>
</div>
Text Input w/Label
<div class="form-group">
<label for="example-text-input1">Field Label</label>
<input type="text" id="example-text-input1" name="example-text-input1" class="form-control" placeholder="Enter Field Value">
</div>
Inputs (Error State)
<div class="form-group has-error">
<label for="example-text-input2">Input</label>
<input type="text" id="example-text-input2" name="example-text-input2" class="form-control" placeholder="Enter Field Value">
<div class="form-error-message">Please enter a value for this field</div>
</div>
<div class="faux-label">Checkbox</div>
<div class="form-group checkbox has-error">
<label>
<input type="checkbox" checked>
<span class="checkbox__text">Checkbox 1</span>
</label>
<div class="form-error-message">Please check the checkbox</div>
</div>
<div class="faux-label">Radio</div>
<div class="form-group radio has-error">
<label>
<input type="radio" name="test" checked>
<span class="radio__text">Radio Option 1</span>
</label>
<div class="form-error-message">Please select an option</div>
</div>
<div class="form-group has-error">
<label for="error-select">Select Menu</label>
<select name="example-select" id="error-select" class="form-control">
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
</select>
<div class="form-error-message">Please select an option</div>
</div>
Text Input w/Button
<div class="input-group">
<input type="text" class="form-control" placeholder="Enter Email Address">
<div class="input-group-append">
<button class="btn btn-primary" id="basic-addon2">Sign Up</button>
</div>
</div>
Select Menu
<select class="custom-select">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
Textarea
<textarea class="form-control"></textarea>
File Input
The .file-input
module has a small JavaScript function (contained in NHW/modules/fileInput.ts)
that displays the name of the selected file.
Also note that this File Input Field is only for custom form implementations. Sitefinity has a built in file input field that has custom logic where overwriting can be difficult and is generally frowned upon
<div class="form-group file-input">
<div class="input-group mb-3">
<div class="custom-file">
<input type="file" class="custom-file-input" id="inputGroupFile01">
<label class="custom-file-label custom-file-label--black" for="inputGroupFile01">Choose file</label>
</div>
</div>
<div class="file-input__value js-file-input-value"></div>
</div>