Table of Contents

Fonts

Gotham

NationalHardware.com uses the Gotham font family with the following variants/weights.

Gotham Extra Light
.text-gotham-extra-light
Gotham Extra Light Italic
.text-gotham-extra-light-italic
Gotham Light
.text-gotham-light
Gotham Light Italic
.text-gotham-light-italic
Gotham Book
.text-gotham-book
Gotham Book Italic
.text-gotham-book-italic
Gotham Medium
.text-gotham-medium
Gotham Medium Italic
.text-gotham-medium-italic
Gotham Bold
.text-gotham-bold
Gotham Bold Italic
.text-gotham-bold-italic
Gotham Black
.text-gotham-black
Gotham Black Italic
.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.

Opulent
.text-opulent
Opulent text variants

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

Opulent Medium Text
.text-opulent.text-opulent--medium
Opulent Large Text
.text-opulent.text-opulent--large
Opulent Jumbo Text
.text-opulent.text-opulent--jumbo
Icon Font

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
  • interior-barn-door
    #3C627B
    $pcat-interior-barn-door
  • 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
  • metal-shapes
    #231F20
    $pcat-metal-shapes

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

Primary Buttons

Use primary buttons for the most important call-to-action on a view.

Primary Button <a href="#" class="btn btn-primary">
Primary Button (Large) <a href="#" class="btn btn-primary btn-lg">
Primary Button (Small) <a href="#" class="btn btn-primary btn-sm">

Secondary Buttons

Use secondary buttons for less important calls-to-action on a view.

Secondary Button <a href="#" class="btn btn-secondary">
Secondary Button (Large) <a href="#" class="btn btn-secondary btn-lg">
Secondary Button (Small) <a href="#" class="btn btn-secondary btn-sm">

Outline Buttons

Use outline buttons for calls-to-action on dark or graphical backgrounds.

Outline Button <a href="#" class="btn btn-outline-primary">
Outline Button (Large) <a href="#" class="btn btn-outline-primary btn-lg">
Outline Button (Small) <a href="#" class="btn btn-outline-primary btn-sm">
Outline Button <a href="#" class="btn btn-outline-secondary">
Outline Button (Large) <a href="#" class="btn btn-outline-secondary btn-lg">
Outline Button (Small) <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.

Primary Button

<a href="#" class="btn btn-primary">Primary Button <i class="icon-star-solid icon-left"></i></a>

Primary Button (Large)

<a href="#" class="btn btn-primary btn-lg">Primary Button (Large) <i class="icon-heart icon-star-solid"></i></a>

Primary Button (Small)

<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
    Box Saw
  • Chisel
    Chisel
  • Crescent Wrenches
    Crescent Wrenches
  • Drill
    Drill
  • Drill Bit
    Drill Bit
  • Hammer
    Hammer
  • Laser
    Laser
  • Level
    Level
  • Mallet
    Mallet
  • Nails
    Nails
  • Pencil
    Pencil
  • Pliers
    Pliers
  • Ratchet Set
    Ratchet Set
  • Router
    Router
  • Ruler
    Ruler
  • Safety Goggles
    Safety Googles
  • Screw Drivers
    Screw Drivers
  • Screws
    Screws
  • Tape Measure
    Tape Measure
  • Tension Saw
    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
    Box Saw
  • Chisel
    Chisel
  • Crescent Wrenches
    Crescent Wrenches
  • Drill
    Drill
  • Drill Bit
    Drill Bit
  • Hammer
    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.

Before Class Added

This is a heading with orphan text.

After Class Added

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.

No padding
<section>
Small padding
<section class="section-small">
Medium padding
<section class="section-medium">
Large padding
<section class="section-large">
Huge padding
<section class="section-huge">
Giant padding
<section class="section-giant">
Massive padding
<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
@include media-breakpoint-down(sm) {
	// Styles
}
sm 576px - 767px
@include media-breakpoint-only(sm) {
	// Styles
}
sm >= 576px
@include media-breakpoint-up(sm) {
	// Styles
}
md <= 991px
@include media-breakpoint-down(md) {
	// Styles
}
md 768px–991px
@include media-breakpoint-only(md) {
	// Styles
}
md >= 768px
@include media-breakpoint-up(md) {
	// Styles
}
lg <= 1199px
@include media-breakpoint-down(lg) {
	// Styles
}
lg 992px–1199px
@include media-breakpoint-only(lg) {
	// Styles
}
lg >= 992px
@include media-breakpoint-up(lg) {
	// Styles
}
xl >= 1200px
@include media-breakpoint-up(xl) {
	// Styles
}

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.

Example

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.

This content is inside a normal Bootstrap grid container.
This content is inside a normal Bootstrap grid container.
<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
alt tag sample 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.
alt tag sample 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.
alt tag sample 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
alt tag sample 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.
alt tag sample 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.
alt tag sample 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
alt tag sample 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.
alt tag sample 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.
alt tag sample 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
alt tag sample 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.
alt tag sample 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.
alt tag sample 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)

Please enter a value for this field
Checkbox
Please select an option
Radio
Please select an option
Please select an option
<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>