Design &
Pattern Library

THEME GUIDE

TYPOGRAPHY

:root {
  --font-primary: 'Roboto', sans-serif;
  --font-headlines: 'Roboto Condensed', sans-serif;
  --font-tertiary: 'Roboto', sans-serif;
  
  --font-h1: 3.052rem;
  --font-h2: 2.441rem; 
  --font-h3: 1.953rem;
  --font-h4: 1.563rem;
  --font-h5: 1.25rem;
  --font-h6: 1rem;
  
  --font-huge-font-size: 4.209rem;
  --font-large-font-size: 3.157rem;
  --font-medium-font-size: 1.777rem;
  --font-normal-font-size: 1rem;
  --font-small-font-size: .75rem;
}

/* Font Helper Classes */
.has-huge-font-size {   font-size: var(--font-huge-font-size); line-height: 1.2; } 
.has-large-font-size {  font-size: var(--font-large-font-size); line-height: 1.2; }
.has-medium-font-size { font-size: var(--font-medium-font-size); line-height: 1.3;}
.has-normal-font-size { font-size: var(--font-normal-font-size); line-height: 1.4; }
.has-small-font-size {  font-size: var(--font-small-font-size); line-height: 1.25; }

.roboto { font-family: 'Roboto', sans-serif!important; }
.roboto-condensed { font-family: 'Roboto Condensed', sans-serif!important; }

.uppercase { text-transform: uppercase!important; }

.has-text-align-right { text-align: right!important; }
.has-text-align-center { text-align: center!important; } 
.has-text-align-left { text-align: left!important; } 

/* Font Weight Helper Classes */
.fw-100,
.fw-100i {
	font-weight: 100;
}
.fw-300,
.fw-300i {
	font-weight: 300;
}
.fw-400,
.fw-400i {
	font-weight: 400;
}
.fw-500,
.fw-500i {
	font-weight: 500;
}
.fw-600 {
	font-weight: 600;
}
.fw-700,
.fw-700i {
	font-weight: 700;
}
.fw-800 {
	font-weight: 800;
}
.fw-900,
.fw-900i {
	font-weight: 900;
}

.fw-100i,
.fw-300i,
.fw-400i,
.fw-500i,
.fw-700i,
.fw-800i,
.fw-900i {
  font-style: italic;
}

/* Letter Spacing Helper Classes */
.ls-1 { letter-spacing: 1px; }

SPACING

/* Size Variables */ 
:root {
	--spacer-sm: 1em;
	--spacer-med: 2em;
	--spacer-lg: 3em;
	--spacer-xl: 4em;
	--spacer-xxl: 5em;
}

.alignfull { max-width: 100%!important; }
.alignfull > * { padding-right: 0; padding-left: 0; }

/* Spacing */
.m-auto { margin: auto!important; }
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: var(--spacer-sm)!important; }
.mt-2 { margin-top: var(--spacer-med)!important; }
.mt-3 { margin-top: var(--spacer-lg)!important; }
.mt-4 { margin-top: var(--spacer-xl)!important; }
.mt-5 { margin-top: var(--spacer-xxl)!important; }

.mr-0 { margin-right: 0 !important; }
.mr-1 { margin-right: var(--spacer-sm)!important; }
.mr-2 { margin-right: var(--spacer-med)!important; }
.mr-3 { margin-right: var(--spacer-lg)!important; }
.mr-4 { margin-right: var(--spacer-xl)!important; }

.mb-0 { margin-bottom: 0!important; }
.mb-1 { margin-bottom: var(--spacer-sm)!important; }
.mb-2 { margin-bottom: var(--spacer-med)!important; }
.mb-3 { margin-bottom: var(--spacer-lg)!important; }
.mb-4 { margin-bottom: var(--spacer-xl)!important; }
.mb-5 { margin-bottom: var(--spacer-xxl)!important; }

.ml-0 { margin-left: 0!important; }
.ml-1 { margin-left: var(--spacer-sm)!important; }
.ml-2 { margin-left: var(--spacer-med)!important; }
.ml-3 { margin-left: var(--spacer-lg)!important; }
.ml-4 { margin-left: var(--spacer-xl)!important; }

.p-all-0 { padding: 0!important; }
.p-all-1 { padding: var(--spacer-sm)!important; }
.p-all-2 { padding: var(--spacer-med)!important; }
.p-all-3 { padding: var(--spacer-lg)!important; }
.p-all-4 { padding: var(--spacer-xl)!important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: var(--spacer-sm)!important; }
.pt-2 { padding-top: var(--spacer-med)!important; }
.pt-3 { padding-top: var(--spacer-lg)!important; }
.pt-4 { padding-top: var(--spacer-xl)!important; }
	
.pr-0 { padding-right: 0 !important; }
.pr-1 { padding-right: var(--spacer-sm)!important; }
.pr-2 { padding-right: var(--spacer-med)!important; }
.pr-3 { padding-right: var(--spacer-lg)!important; }
.pr-4 { padding-right: var(--spacer-xl)!important; }

.pb-0 { padding-bottom: 0!important; }
.pb-1 { padding-bottom: var(--spacer-sm)!important; }
.pb-2 { padding-bottom: var(--spacer-med)!important; }
.pb-3 { padding-bottom: var(--spacer-lg)!important; }
.pb-4 { padding-bottom: var(--spacer-xl)!important; }

.pl-0 { padding-left: 0!important; }
.pl-1 { padding-left: var(--spacer-sm)!important; }
.pl-2 { padding-left: var(--spacer-med)!important; }
.pl-3 { padding-left: var(--spacer-lg)!important; }
.pl-4 { padding-left: var(--spacer-xl)!important; }

/* Grid Gap */
.gg-0 { grid-gap: 0!important; } 
.gg-sm { grid-gap: var(--spacer-sm)!important; } 
.gg-med { grid-gap: var(--spacer-med)!important; }
.gg-lg { grid-gap: var(--spacer-lg)!important; }

/* Position Classes */
.absolute-tl,
.absolute-br {
	position: absolute; 
}
.absolute-tl { z-index: 10; top: 0; left: 0; }
.absolute-br { z-index: 1; bottom: 0; right: 0; }

/* Flexbox Alignments */
.justify-center { display: flex; flex-direction: column; justify-content: center; align-items: center; }
.justify-align-center-end { display: flex!important; align-items: center!important; justify-content: flex-end!important; }
.justify-align-center-start { display: flex!important; align-items: center!important; justify-content: flex-start!important; }

/* Helper Classes */
.align-center { height: 100%; align-content: center; }
.justify-content-center { justify-content: center; }
.justify-content-end { justify-content: end; }

COLORS

:root {
  --color-primary: #222;

  --color-accent: #0073aa;
  --color-accent-light: #0072BC;
  --color-accent-dark: #00253D;
  
  --color-white: #fff !important;
  --color-white-opacity: rgba(255,255,255, 0.9) !important; 

  --color-black: #000!important;
  --color-black-dark: #111!important;
  --color-black-opacity: rgba(0,0,0, 0.9) !important; 
  
  --color-success: #09B09A;
  --color-feedback: #FEB503;
  --color-alert: #CC2723;
  
  --color-gray: #919191;
  --color-gray-light: #efefef;
  --color-gray-dark: #2e2e2e;
}

/* 
 * Block Color Palette Colors 
 * declared in inc/theme-options.php
*/
.has-accent-color { color: var(--color-accent)!important; }
.has-accent-dark-color { color: var(--color-accent-dark)!important; }
.has-accent-light-color { color: var(--color-accent-light)!important; } 

.has-gray-color { color: var(--color-gray)!important; }
.has-light-gray-color { color: var(--color-gray-light)!important; }
.has-dark-gray-color { color: var(--color-gray-dark)!important; }

.has-gray-background-color { background-color: var(--color-gray)!important; }
.has-light-gray-background-color { background-color: var(--color-gray-light)!important; }
.has-dark-gray-background-color { background-color: var(--color-gray-dark)!important; }

.has-black-color,
.has-black-color p {
	color: var(--color-black);
}

.has-white-background-color { background-color: var(--color-white)!important; }

.has-black-background-color { background-color: var(--color-black)!important; }
.has-black-dark-background-color { background-color: var(--color-black-dark)!important; }

.has-accent-background-color { background-color: var(--color-accent)!important; }
.has-accent-dark-background-color { background-color: var(--color-accent-dark)!important; }
.has-accent-light-background-color { background-color: var(--color-accent-light)!important; }

.has-success-color,
span.has-success-color { 
	color: var(--color-success)!important; 
}
.has-feedback-color { color: var(--color-feedback)!important; }

BORDER

/* Border Helper Classes */
.border { border: 1px solid var(--border-color)!important; }
.bt  { border-top: 1px solid var(--border-color)!important; }
.br { border-right: 1px solid var(--border-color)!important; }
.bb { border-bottom: 1px solid var(--border-color)!important; }
.bl { border-left: 1px solid var(--border-color)!important; }

.border-color-light { border-color: var(--border-color)!important; }
.border-color-dark { border-color: var(--border-color-dark)!important; }

.border-accent-color { border-color: var(--color-accent)!important; }
.border-accent-light { border-color: var(--color-accent-light)!important; }
.border-accent-dark { border-color: var(--color-accent-dark)!important; }

.b-0  { border: 0 !important; }
.bt-0 { border-top: 0 !important; }
.br-0 { border-right: 0 !important; }
.bb-0 { border-bottom: 0 !important; }
.bl-0 { border-left: 0 !important; }

.bt-small { border-top: 2px solid var(--border-color-light)!important; }
.br-small { border-right: 2px solid var(--border-color-light)!important; }
.bb-small { border-bottom: 2px solid var(--border-color-light)!important; }
.bl-small { border-left: 2px solid var(--border-color-light)!important; }

.bt-medium { border-top: 5px solid var(--border-color-light)!important; }
.br-medium { border-right: 5px solid var(--border-color-light)!important; }
.bb-medium { border-bottom: 5px solid var(--border-color-light)!important; }
.bl-medium { border-left: 5px solid var(--border-color-light)!important; }

.bt-large { border-top: 10px solid var(--border-color-light)!important; }
.br-large { border-right: 10px solid var(--border-color-light)!important; }
.bb-large { border-bottom: 10px solid var(--border-color-light)!important; }
.bl-large { border-left: 10px solid var(--border-color-light)!important; }

ANIMATIONS

/* Animate Scale */
.animate-scale { overflow: hidden; }
.animate-scale img { backface-visibility: hidden;
	transition: all .35s;
	transform: scale(1);
}
.animate-scale:hover img {
	transform: scale(1.0125);
  opacity: .9;
}