From 02c595aefdf27da33da5d66f686318c810cdbc89 Mon Sep 17 00:00:00 2001 From: Derek Montgomery Date: Thu, 28 Jul 2016 12:52:54 -0500 Subject: [PATCH] custom assets ported --- app/assets/stylesheets/atoms/_alerts.scss | 8 + app/assets/stylesheets/atoms/_fonts.scss | 162 +++ app/assets/stylesheets/atoms/_layout.scss | 61 ++ app/assets/stylesheets/atoms/_media.scss | 10 + app/assets/stylesheets/atoms/_pd-slant.scss | 75 ++ app/assets/stylesheets/atoms/_typography.scss | 74 ++ app/assets/stylesheets/core/_variables.scss | 948 ++++++++++++++++++ app/assets/stylesheets/molecules/_admin.scss | 35 + .../stylesheets/molecules/_buttongroups.scss | 26 + .../stylesheets/molecules/_buttons.scss | 100 ++ app/assets/stylesheets/molecules/_forms.scss | 266 +++++ app/assets/stylesheets/molecules/_lists.scss | 35 + .../stylesheets/molecules/_livecoder.scss | 60 ++ .../stylesheets/molecules/_progressbar.scss | 41 + app/assets/stylesheets/molecules/_tables.scss | 22 + app/assets/stylesheets/organisms/.keep | 0 app/assets/stylesheets/pages/_error.scss | 35 + app/assets/stylesheets/pages/_styleguide.scss | 32 + app/assets/stylesheets/templates/_footer.scss | 44 + app/assets/stylesheets/templates/_header.scss | 26 + app/assets/stylesheets/templates/_intro.scss | 26 + .../stylesheets/templates/_questions.scss | 71 ++ .../stylesheets/templates/_summary.scss | 85 ++ 23 files changed, 2242 insertions(+) create mode 100644 app/assets/stylesheets/atoms/_alerts.scss create mode 100644 app/assets/stylesheets/atoms/_fonts.scss create mode 100644 app/assets/stylesheets/atoms/_layout.scss create mode 100644 app/assets/stylesheets/atoms/_media.scss create mode 100644 app/assets/stylesheets/atoms/_pd-slant.scss create mode 100755 app/assets/stylesheets/atoms/_typography.scss create mode 100644 app/assets/stylesheets/core/_variables.scss create mode 100644 app/assets/stylesheets/molecules/_admin.scss create mode 100644 app/assets/stylesheets/molecules/_buttongroups.scss create mode 100755 app/assets/stylesheets/molecules/_buttons.scss create mode 100755 app/assets/stylesheets/molecules/_forms.scss create mode 100755 app/assets/stylesheets/molecules/_lists.scss create mode 100644 app/assets/stylesheets/molecules/_livecoder.scss create mode 100644 app/assets/stylesheets/molecules/_progressbar.scss create mode 100755 app/assets/stylesheets/molecules/_tables.scss create mode 100644 app/assets/stylesheets/organisms/.keep create mode 100644 app/assets/stylesheets/pages/_error.scss create mode 100644 app/assets/stylesheets/pages/_styleguide.scss create mode 100644 app/assets/stylesheets/templates/_footer.scss create mode 100644 app/assets/stylesheets/templates/_header.scss create mode 100644 app/assets/stylesheets/templates/_intro.scss create mode 100644 app/assets/stylesheets/templates/_questions.scss create mode 100644 app/assets/stylesheets/templates/_summary.scss diff --git a/app/assets/stylesheets/atoms/_alerts.scss b/app/assets/stylesheets/atoms/_alerts.scss new file mode 100644 index 0000000..a5db852 --- /dev/null +++ b/app/assets/stylesheets/atoms/_alerts.scss @@ -0,0 +1,8 @@ +.alert { + padding: 20px; + border-radius: 5px; + &.alert-success { + background-color: $accent-color-3; + color: $white; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/atoms/_fonts.scss b/app/assets/stylesheets/atoms/_fonts.scss new file mode 100644 index 0000000..24aa17b --- /dev/null +++ b/app/assets/stylesheets/atoms/_fonts.scss @@ -0,0 +1,162 @@ +//HALISR + +@font-face { + font-family: 'HalisR'; + src:local('Halis R Thin'), + url('../fonts/HalisR-Thin.woff2') format('woff2'), + url('../fonts/HalisR-Thin.woff') format('woff'), + url('../fonts/HalisR-Thin.otf') format('opentype'); + font-weight:100; +} +@font-face { + font-family: 'HalisR'; + src:local('Halis R Light'), + url('../fonts/HalisR-Light.woff2') format('woff2'), + url('../fonts/HalisR-Light.woff') format('woff'), + url('../fonts/HalisR-Light.otf') format('opentype'); + font-weight:200; +} + +@font-face { + font-family: 'HalisR'; + src:local('Halis R Book'), + url('../fonts/HalisR-Book.woff2') format('woff2'), + url('../fonts/HalisR-Book.woff') format('woff'), + url('../fonts/HalisR-Book.otf') format('opentype'); + font-weight:300; +} + +@font-face { + font-family: 'HalisR'; + src:local('Halis R Regular'), + url('../fonts/HalisR-Regular.woff2') format('woff2'), + url('../fonts/HalisR-Regular.woff') format('woff'), + url('../fonts/HalisR-Regular.otf') format('opentype'); + font-weight:500; +} + +@font-face { + font-family: 'HalisR'; + src:local('Halis R Medium'), + url('../fonts/HalisR-Medium.woff2') format('woff2'), + url('../fonts/HalisR-Medium.woff') format('woff'), + url('../fonts/HalisR-Medium.otf') format('opentype'); + font-weight:600; +} + +@font-face { + font-family: 'HalisR'; + src:local('Halis R Bold'), + url('../fonts/HalisR-Bold.woff2') format('woff2'), + url('../fonts/HalisR-Bold.woff') format('woff'), + url('../fonts/HalisR-Bold.otf') format('opentype'); + font-weight:700; +} + +@font-face { + font-family: 'HalisR'; + src:local('Halis R Black'), + url('../fonts/HalisR-Black.woff2') format('woff2'), + url('../fonts/HalisR-Black.woff') format('woff'), + url('../fonts/HalisR-Black.otf') format('opentype'); + font-weight:900; +} + +//LATO + + //regular + +@font-face { + font-family: 'Lato'; + src:local('Lato Hairline'), + url('../fonts/Lato-Hairline.woff2') format('woff2'), + url('../fonts/Lato-Hairline.woff') format('woff'), + url('../fonts/Lato-Hairline.ttf') format('truetype'); + font-weight:100; +} +@font-face { + font-family: 'Lato'; + src:local('Lato Light'), + url('../fonts/Lato-Light.woff2') format('woff2'), + url('../fonts/Lato-Light.woff') format('woff'), + url('../fonts/Lato-Light.ttf') format('truetype'); + font-weight:300; +} + +@font-face { + font-family: 'Lato'; + src:local('Lato Regular'), + url('../fonts/Lato-Regular.woff2') format('woff2'), + url('../fonts/Lato-Regular.woff') format('woff'), + url('../fonts/Lato-Regular.ttf') format('truetype'); + font-weight:500; +} + +@font-face { + font-family: 'Lato'; + src:local('Lato Bold'), + url('../fonts/Lato-Bold.woff2') format('woff2'), + url('../fonts/Lato-Bold.woff') format('woff'), + url('../fonts/Lato-Bold.ttf') format('truetype'); + font-weight:700; +} + +@font-face { + font-family: 'Lato'; + src:local('Lato Black'), + url('../fonts/Lato-Black.woff2') format('woff2'), + url('../fonts/Lato-Black.woff') format('woff'), + url('../fonts/Lato-Black.ttf') format('truetype'); + font-weight:900; +} + + //italicized + +@font-face { + font-family: 'Lato'; + src:local('Lato Hairline Italic'), + url('../fonts/Lato-HairlineItalic.woff2') format('woff2'), + url('../fonts/Lato-HairlineItalic.woff') format('woff'), + url('../fonts/Lato-HairlineItalic.ttf') format('truetype'); + font-weight:100; + font-style: italic; +} +@font-face { + font-family: 'Lato'; + src:local('Lato Light Italic'), + url('../fonts/Lato-LightItalic.woff2') format('woff2'), + url('../fonts/Lato-LightItalic.woff') format('woff'), + url('../fonts/Lato-LightItalic.ttf') format('truetype'); + font-weight:300; + font-style: italic; +} + +@font-face { + font-family: 'Lato'; + src:local('Lato Italic'), + url('../fonts/Lato-Italic.woff2') format('woff2'), + url('../fonts/Lato-Italic.woff') format('woff'), + url('../fonts/Lato-Italic.ttf') format('truetype'); + font-weight:500; + font-style: italic; +} + +@font-face { + font-family: 'Lato'; + src:local('Lato Bold Italic'), + url('../fonts/Lato-BoldItalic.woff2') format('woff2'), + url('../fonts/Lato-BoldItalic.woff') format('woff'), + url('../fonts/Lato-BoldItalic.ttf') format('truetype'); + font-weight:700; + font-style: italic; +} + +@font-face { + font-family: 'Lato'; + src:local('Lato Black Italic'), + url('../fonts/Lato-BlackItalic.woff2') format('woff2'), + url('../fonts/Lato-BlackItalic.woff') format('woff'), + url('../fonts/Lato-BlackItalic.ttf') format('truetype'); + font-weight:900; + font-style: italic; +} \ No newline at end of file diff --git a/app/assets/stylesheets/atoms/_layout.scss b/app/assets/stylesheets/atoms/_layout.scss new file mode 100644 index 0000000..1571202 --- /dev/null +++ b/app/assets/stylesheets/atoms/_layout.scss @@ -0,0 +1,61 @@ +html { + box-sizing: border-box; + height: 100%; +} + +body { + margin: 0 1rem; + height: 100%; + .ignore-margin + { + margin-left: -1rem; + margin-right: -1rem; + } +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +*:focus { + outline: 0; +} + +main { + display: block; + padding-top: 8vw; +} + +.layout { + min-height: calc(100% - 112px); + &:after { + content:""; + display:block; + } +} + +@media only screen and (min-width: 480px) { + .layout { + min-height: calc(100% - 116px); + } +} + +@media only screen and (min-width: $tablet) { + html { + // font-size: 2vw; + } + body { + margin: 0 2rem + } +} + +@media only screen and (min-width: $desktop) { + html { + font-size: 16px; + } + main { + padding-top: 55px; + } +} diff --git a/app/assets/stylesheets/atoms/_media.scss b/app/assets/stylesheets/atoms/_media.scss new file mode 100644 index 0000000..0c6699d --- /dev/null +++ b/app/assets/stylesheets/atoms/_media.scss @@ -0,0 +1,10 @@ +figure { + margin: 0; +} + +img, +picture { + margin: 0; + max-width: 100%; +} + diff --git a/app/assets/stylesheets/atoms/_pd-slant.scss b/app/assets/stylesheets/atoms/_pd-slant.scss new file mode 100644 index 0000000..3c62962 --- /dev/null +++ b/app/assets/stylesheets/atoms/_pd-slant.scss @@ -0,0 +1,75 @@ +// Slash Logo + +.slash-left { + position: relative; + + &:before { + content: ""; + background-color: $accent-color-1; + width:3px; + display: block; + position: absolute; + top:0; + bottom: -1rem; + left:0; + transform: skewX(-16.5deg); + transform-origin: bottom; + } +} + + + +// HTML/CSS only Slanted Border + +$prftangle: 90deg - 73.5deg; +$prftangle-negative: 73.5deg - 90deg; + +@mixin slantmix ($lmargin, $rmargin, $slantht) { + + position: relative; + display:block; + z-index: 1; + height: $slantht; + min-width: tan($prftangle) + 1 / 3; + overflow: wrap; + display:inline-block; + + &.slantright { + margin-right:tan($prftangle) + $rmargin; + &:after { + transform: skewX($prftangle-negative); + transform-origin: 0% 100%; + min-width:auto; + } + } + + &.slantleft { + margin-left:tan($prftangle) + $lmargin; + &:before { + transform: skewX($prftangle-negative); + transform-origin: 10% 0%; + min-width:auto; + } + } +} + +.slantleft:before, +.slantright:after { + background: inherit; + bottom: 0; + top:0; + content: '\00a0'; + display: block; + position: absolute; + right: 0; + left:0; + z-index: -1; +} + +.slantleft:before { + right: 50%; +} + +.slantright:after { + left: 50%; +} diff --git a/app/assets/stylesheets/atoms/_typography.scss b/app/assets/stylesheets/atoms/_typography.scss new file mode 100755 index 0000000..2b754c9 --- /dev/null +++ b/app/assets/stylesheets/atoms/_typography.scss @@ -0,0 +1,74 @@ +body { + color: $base-font-color; + font-family: $primary-font-face; + font-size: 1rem; + line-height: $base-line-height; + font-weight:300; + color: $primary-color; +} + +.hidden { + display: none !important; +} + +h1, h2, h3, +h4, h5, h6 { + font-family: $heading-font-face; + line-height: $heading-line-height; + margin: 0 0 $small-spacing; + color: $black; + font-weight: bold; +} + +h1 { font-size: modular-scale(6); } +h2 { font-size: modular-scale(5); } +h3 { font-size: modular-scale(4); } +h4 { font-size: modular-scale(3); } +h5 { font-size: modular-scale(2); } +h6 { font-size: modular-scale(1); } + +p { margin: 0 0 $small-spacing; } + +a { + color: $primary-color; + transition: color $base-duration $base-timing; + + &:active, + &:focus, + &:hover { + color: lighten($primary-color, 25%); + } +} + +hr { + border-bottom: $base-border; + border-left: 0; + border-right: 0; + border-top: 0; + margin: $base-spacing 0; +} + +.prft-heading { + text-transform: none; +} + +.question-text { + margin-bottom: 1.5rem; +} + +.prft-heading, +.question-text { + font-size: 6vw; +} + +h1 > a { + font-size: 1rem; + font-weight: 300; +} + +@media screen and (min-width: $screen-sm) { + .prft-heading, + .question-text { + font-size: 2.45rem; + } +} diff --git a/app/assets/stylesheets/core/_variables.scss b/app/assets/stylesheets/core/_variables.scss new file mode 100644 index 0000000..1d4e424 --- /dev/null +++ b/app/assets/stylesheets/core/_variables.scss @@ -0,0 +1,948 @@ +$bootstrap-sass-asset-helper: false !default; +// +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + +$gray-base: #000 !default; +$gray-darker: lighten($gray-base, 13.5%) !default; // #222 +$gray-dark: lighten($gray-base, 20%) !default; // #333 +$gray: lighten($gray-base, 33.5%) !default; // #555 +$gray-light: lighten($gray-base, 46.7%) !default; // #777 +$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee + +$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7 +$brand-success: #5cb85c !default; +$brand-info: #5bc0de !default; +$brand-warning: #f0ad4e !default; +$brand-danger: #d9534f !default; + + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for ``. +$body-bg: #fff !default; +//** Global text color on ``. +$text-color: $gray-dark !default; + +//** Global textual link color. +$link-color: $brand-primary !default; +//** Link hover color set via `darken()` function. +$link-hover-color: darken($link-color, 15%) !default; +//** Link hover decoration. +$link-hover-decoration: underline !default; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; +$font-family-serif: Georgia, "Times New Roman", Times, serif !default; +//** Default monospace fonts for ``, ``, and `
`.
+$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
+$font-family-base:        $font-family-sans-serif !default;
+
+$font-size-base:          14px !default;
+$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
+
+$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
+$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
+$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
+$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-h5:            $font-size-base !default;
+$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base:        1.428571429 !default; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
+
+//** By default, this inherits from the ``.
+$headings-font-family:    inherit !default;
+$headings-font-weight:    500 !default;
+$headings-line-height:    1.1 !default;
+$headings-color:          inherit !default;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+
+// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
+// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
+$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
+
+//** File name for all font files.
+$icon-font-name:          "glyphicons-halflings-regular" !default;
+//** Element ID within SVG icon file.
+$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical:     6px !default;
+$padding-base-horizontal:   12px !default;
+
+$padding-large-vertical:    10px !default;
+$padding-large-horizontal:  16px !default;
+
+$padding-small-vertical:    5px !default;
+$padding-small-horizontal:  10px !default;
+
+$padding-xs-vertical:       1px !default;
+$padding-xs-horizontal:     5px !default;
+
+$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
+$line-height-small:         1.5 !default;
+
+$border-radius-base:        4px !default;
+$border-radius-large:       6px !default;
+$border-radius-small:       3px !default;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color:    #fff !default;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg:       $brand-primary !default;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+$caret-width-base:          4px !default;
+//** Carets increase slightly in size for larger components.
+$caret-width-large:         5px !default;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ``s.
+$table-cell-padding:            8px !default;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding:  5px !default;
+
+//** Default background color used for all tables.
+$table-bg:                      transparent !default;
+//** Background color used for `.table-striped`.
+$table-bg-accent:               #f9f9f9 !default;
+//** Background color used for `.table-hover`.
+$table-bg-hover:                #f5f5f5 !default;
+$table-bg-active:               $table-bg-hover !default;
+
+//** Border color for table and cell borders.
+$table-border-color:            #ddd !default;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$btn-font-weight:                normal !default;
+
+$btn-default-color:              #333 !default;
+$btn-default-bg:                 #fff !default;
+$btn-default-border:             #ccc !default;
+
+$btn-primary-color:              #fff !default;
+$btn-primary-bg:                 $brand-primary !default;
+$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
+
+$btn-success-color:              #fff !default;
+$btn-success-bg:                 $brand-success !default;
+$btn-success-border:             darken($btn-success-bg, 5%) !default;
+
+$btn-info-color:                 #fff !default;
+$btn-info-bg:                    $brand-info !default;
+$btn-info-border:                darken($btn-info-bg, 5%) !default;
+
+$btn-warning-color:              #fff !default;
+$btn-warning-bg:                 $brand-warning !default;
+$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
+
+$btn-danger-color:               #fff !default;
+$btn-danger-bg:                  $brand-danger !default;
+$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
+
+$btn-link-disabled-color:        $gray-light !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius-base:         $border-radius-base !default;
+$btn-border-radius-large:        $border-radius-large !default;
+$btn-border-radius-small:        $border-radius-small !default;
+
+
+//== Forms
+//
+//##
+
+//** `` background color
+$input-bg:                       #fff !default;
+//** `` background color
+$input-bg-disabled:              $gray-lighter !default;
+
+//** Text color for ``s
+$input-color:                    $gray !default;
+//** `` border color
+$input-border:                   #ccc !default;
+
+// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on ``s in CSS.
+$input-border-radius:            $border-radius-base !default;
+//** Large `.form-control` border radius
+$input-border-radius-large:      $border-radius-large !default;
+//** Small `.form-control` border radius
+$input-border-radius-small:      $border-radius-small !default;
+
+//** Border color for inputs on focus
+$input-border-focus:             #66afe9 !default;
+
+//** Placeholder text color
+$input-color-placeholder:        #999 !default;
+
+//** Default `.form-control` height
+$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
+//** Large `.form-control` height
+$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
+//** Small `.form-control` height
+$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
+
+//** `.form-group` margin
+$form-group-margin-bottom:       15px !default;
+
+$legend-color:                   $gray-dark !default;
+$legend-border-color:            #e5e5e5 !default;
+
+//** Background color for textual input addons
+$input-group-addon-bg:           $gray-lighter !default;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border !default;
+
+//** Disabled cursor for form controls and buttons.
+$cursor-disabled:                not-allowed !default;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg:                    #fff !default;
+//** Dropdown menu `border-color`.
+$dropdown-border:                rgba(0,0,0,.15) !default;
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border:       #ccc !default;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg:            #e5e5e5 !default;
+
+//** Dropdown link text color.
+$dropdown-link-color:            $gray-dark !default;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg:         #f5f5f5 !default;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color:     $component-active-color !default;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg:        $component-active-bg !default;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color:   $gray-light !default;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color:          $gray-light !default;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color:           #000 !default;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar:            1000 !default;
+$zindex-dropdown:          1000 !default;
+$zindex-popover:           1060 !default;
+$zindex-tooltip:           1070 !default;
+$zindex-navbar-fixed:      1030 !default;
+$zindex-modal-background:  1040 !default;
+$zindex-modal:             1050 !default;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs:                  480px !default;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min:              $screen-xs !default;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone:               $screen-xs-min !default;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm:                  768px !default;
+$screen-sm-min:              $screen-sm !default;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet:              $screen-sm-min !default;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md:                  992px !default;
+$screen-md-min:              $screen-md !default;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop:             $screen-md-min !default;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg:                  1200px !default;
+$screen-lg-min:              $screen-lg !default;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop:          $screen-lg-min !default;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max:              ($screen-sm-min - 1) !default;
+$screen-sm-max:              ($screen-md-min - 1) !default;
+$screen-md-max:              ($screen-lg-min - 1) !default;
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns:              12 !default;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width:         30px !default;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint:     $screen-sm-min !default;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet:             (720px + $grid-gutter-width) !default;
+//** For `$screen-sm-min` and up.
+$container-sm:                 $container-tablet !default;
+
+// Medium screen / desktop
+$container-desktop:            (940px + $grid-gutter-width) !default;
+//** For `$screen-md-min` and up.
+$container-md:                 $container-desktop !default;
+
+// Large screen / wide desktop
+$container-large-desktop:      (1140px + $grid-gutter-width) !default;
+//** For `$screen-lg-min` and up.
+$container-lg:                 $container-large-desktop !default;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height:                    50px !default;
+$navbar-margin-bottom:             $line-height-computed !default;
+$navbar-border-radius:             $border-radius-base !default;
+$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
+$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
+$navbar-collapse-max-height:       340px !default;
+
+$navbar-default-color:             #777 !default;
+$navbar-default-bg:                #f8f8f8 !default;
+$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
+
+// Navbar links
+$navbar-default-link-color:                #777 !default;
+$navbar-default-link-hover-color:          #333 !default;
+$navbar-default-link-hover-bg:             transparent !default;
+$navbar-default-link-active-color:         #555 !default;
+$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
+$navbar-default-link-disabled-color:       #ccc !default;
+$navbar-default-link-disabled-bg:          transparent !default;
+
+// Navbar brand label
+$navbar-default-brand-color:               $navbar-default-link-color !default;
+$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
+$navbar-default-brand-hover-bg:            transparent !default;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg:           #ddd !default;
+$navbar-default-toggle-icon-bar-bg:        #888 !default;
+$navbar-default-toggle-border-color:       #ddd !default;
+
+
+//=== Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color:                      lighten($gray-light, 15%) !default;
+$navbar-inverse-bg:                         #222 !default;
+$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
+
+// Inverted navbar links
+$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
+$navbar-inverse-link-hover-color:           #fff !default;
+$navbar-inverse-link-hover-bg:              transparent !default;
+$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
+$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
+$navbar-inverse-link-disabled-color:        #444 !default;
+$navbar-inverse-link-disabled-bg:           transparent !default;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
+$navbar-inverse-brand-hover-color:          #fff !default;
+$navbar-inverse-brand-hover-bg:             transparent !default;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg:            #333 !default;
+$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
+$navbar-inverse-toggle-border-color:        #333 !default;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding:                          10px 15px !default;
+$nav-link-hover-bg:                         $gray-lighter !default;
+
+$nav-disabled-link-color:                   $gray-light !default;
+$nav-disabled-link-hover-color:             $gray-light !default;
+
+//== Tabs
+$nav-tabs-border-color:                     #ddd !default;
+
+$nav-tabs-link-hover-border-color:          $gray-lighter !default;
+
+$nav-tabs-active-link-hover-bg:             $body-bg !default;
+$nav-tabs-active-link-hover-color:          $gray !default;
+$nav-tabs-active-link-hover-border-color:   #ddd !default;
+
+$nav-tabs-justified-link-border-color:            #ddd !default;
+$nav-tabs-justified-active-link-border-color:     $body-bg !default;
+
+//== Pills
+$nav-pills-border-radius:                   $border-radius-base !default;
+$nav-pills-active-link-hover-bg:            $component-active-bg !default;
+$nav-pills-active-link-hover-color:         $component-active-color !default;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color:                     $link-color !default;
+$pagination-bg:                        #fff !default;
+$pagination-border:                    #ddd !default;
+
+$pagination-hover-color:               $link-hover-color !default;
+$pagination-hover-bg:                  $gray-lighter !default;
+$pagination-hover-border:              #ddd !default;
+
+$pagination-active-color:              #fff !default;
+$pagination-active-bg:                 $brand-primary !default;
+$pagination-active-border:             $brand-primary !default;
+
+$pagination-disabled-color:            $gray-light !default;
+$pagination-disabled-bg:               #fff !default;
+$pagination-disabled-border:           #ddd !default;
+
+
+//== Pager
+//
+//##
+
+$pager-bg:                             $pagination-bg !default;
+$pager-border:                         $pagination-border !default;
+$pager-border-radius:                  15px !default;
+
+$pager-hover-bg:                       $pagination-hover-bg !default;
+
+$pager-active-bg:                      $pagination-active-bg !default;
+$pager-active-color:                   $pagination-active-color !default;
+
+$pager-disabled-color:                 $pagination-disabled-color !default;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding:              30px !default;
+$jumbotron-color:                inherit !default;
+$jumbotron-bg:                   $gray-lighter !default;
+$jumbotron-heading-color:        inherit !default;
+$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
+$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text:             #3c763d !default;
+$state-success-bg:               #dff0d8 !default;
+$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
+
+$state-info-text:                #31708f !default;
+$state-info-bg:                  #d9edf7 !default;
+$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
+
+$state-warning-text:             #8a6d3b !default;
+$state-warning-bg:               #fcf8e3 !default;
+$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
+
+$state-danger-text:              #a94442 !default;
+$state-danger-bg:                #f2dede !default;
+$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width:           200px !default;
+//** Tooltip text color
+$tooltip-color:               #fff !default;
+//** Tooltip background color
+$tooltip-bg:                  #000 !default;
+$tooltip-opacity:             .9 !default;
+
+//** Tooltip arrow width
+$tooltip-arrow-width:         5px !default;
+//** Tooltip arrow color
+$tooltip-arrow-color:         $tooltip-bg !default;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg:                          #fff !default;
+//** Popover maximum width
+$popover-max-width:                   276px !default;
+//** Popover border color
+$popover-border-color:                rgba(0,0,0,.2) !default;
+//** Popover fallback border color
+$popover-fallback-border-color:       #ccc !default;
+
+//** Popover title background color
+$popover-title-bg:                    darken($popover-bg, 3%) !default;
+
+//** Popover arrow width
+$popover-arrow-width:                 10px !default;
+//** Popover arrow color
+$popover-arrow-color:                 $popover-bg !default;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
+//** Popover outer arrow color
+$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg:            $gray-light !default;
+//** Primary label background color
+$label-primary-bg:            $brand-primary !default;
+//** Success label background color
+$label-success-bg:            $brand-success !default;
+//** Info label background color
+$label-info-bg:               $brand-info !default;
+//** Warning label background color
+$label-warning-bg:            $brand-warning !default;
+//** Danger label background color
+$label-danger-bg:             $brand-danger !default;
+
+//** Default label text color
+$label-color:                 #fff !default;
+//** Default text color of a linked label
+$label-link-hover-color:      #fff !default;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding:         15px !default;
+
+//** Padding applied to the modal title
+$modal-title-padding:         15px !default;
+//** Modal title line-height
+$modal-title-line-height:     $line-height-base !default;
+
+//** Background color of modal content area
+$modal-content-bg:                             #fff !default;
+//** Modal content border color
+$modal-content-border-color:                   rgba(0,0,0,.2) !default;
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color:          #999 !default;
+
+//** Modal backdrop background color
+$modal-backdrop-bg:           #000 !default;
+//** Modal backdrop opacity
+$modal-backdrop-opacity:      .5 !default;
+//** Modal header border color
+$modal-header-border-color:   #e5e5e5 !default;
+//** Modal footer border color
+$modal-footer-border-color:   $modal-header-border-color !default;
+
+$modal-lg:                    900px !default;
+$modal-md:                    600px !default;
+$modal-sm:                    300px !default;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding:               15px !default;
+$alert-border-radius:         $border-radius-base !default;
+$alert-link-font-weight:      bold !default;
+
+$alert-success-bg:            $state-success-bg !default;
+$alert-success-text:          $state-success-text !default;
+$alert-success-border:        $state-success-border !default;
+
+$alert-info-bg:               $state-info-bg !default;
+$alert-info-text:             $state-info-text !default;
+$alert-info-border:           $state-info-border !default;
+
+$alert-warning-bg:            $state-warning-bg !default;
+$alert-warning-text:          $state-warning-text !default;
+$alert-warning-border:        $state-warning-border !default;
+
+$alert-danger-bg:             $state-danger-bg !default;
+$alert-danger-text:           $state-danger-text !default;
+$alert-danger-border:         $state-danger-border !default;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg:                 #f5f5f5 !default;
+//** Progress bar text color
+$progress-bar-color:          #fff !default;
+//** Variable for setting rounded corners on progress bar.
+$progress-border-radius:      $border-radius-base !default;
+
+//** Default progress bar color
+$progress-bar-bg:             $brand-primary !default;
+//** Success progress bar color
+$progress-bar-success-bg:     $brand-success !default;
+//** Warning progress bar color
+$progress-bar-warning-bg:     $brand-warning !default;
+//** Danger progress bar color
+$progress-bar-danger-bg:      $brand-danger !default;
+//** Info progress bar color
+$progress-bar-info-bg:        $brand-info !default;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg:                 #fff !default;
+//** `.list-group-item` border color
+$list-group-border:             #ddd !default;
+//** List group border radius
+$list-group-border-radius:      $border-radius-base !default;
+
+//** Background color of single list items on hover
+$list-group-hover-bg:           #f5f5f5 !default;
+//** Text color of active list items
+$list-group-active-color:       $component-active-color !default;
+//** Background color of active list items
+$list-group-active-bg:          $component-active-bg !default;
+//** Border color of active list elements
+$list-group-active-border:      $list-group-active-bg !default;
+//** Text color for content within active list items
+$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
+
+//** Text color of disabled list items
+$list-group-disabled-color:      $gray-light !default;
+//** Background color of disabled list items
+$list-group-disabled-bg:         $gray-lighter !default;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color !default;
+
+$list-group-link-color:         #555 !default;
+$list-group-link-hover-color:   $list-group-link-color !default;
+$list-group-link-heading-color: #333 !default;
+
+
+//== Panels
+//
+//##
+
+$panel-bg:                    #fff !default;
+$panel-body-padding:          15px !default;
+$panel-heading-padding:       10px 15px !default;
+$panel-footer-padding:        $panel-heading-padding !default;
+$panel-border-radius:         $border-radius-base !default;
+
+//** Border color for elements within panels
+$panel-inner-border:          #ddd !default;
+$panel-footer-bg:             #f5f5f5 !default;
+
+$panel-default-text:          $gray-dark !default;
+$panel-default-border:        #ddd !default;
+$panel-default-heading-bg:    #f5f5f5 !default;
+
+$panel-primary-text:          #fff !default;
+$panel-primary-border:        $brand-primary !default;
+$panel-primary-heading-bg:    $brand-primary !default;
+
+$panel-success-text:          $state-success-text !default;
+$panel-success-border:        $state-success-border !default;
+$panel-success-heading-bg:    $state-success-bg !default;
+
+$panel-info-text:             $state-info-text !default;
+$panel-info-border:           $state-info-border !default;
+$panel-info-heading-bg:       $state-info-bg !default;
+
+$panel-warning-text:          $state-warning-text !default;
+$panel-warning-border:        $state-warning-border !default;
+$panel-warning-heading-bg:    $state-warning-bg !default;
+
+$panel-danger-text:           $state-danger-text !default;
+$panel-danger-border:         $state-danger-border !default;
+$panel-danger-heading-bg:     $state-danger-bg !default;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding:           4px !default;
+//** Thumbnail background color
+$thumbnail-bg:                $body-bg !default;
+//** Thumbnail border color
+$thumbnail-border:            #ddd !default;
+//** Thumbnail border radius
+$thumbnail-border-radius:     $border-radius-base !default;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color:     $text-color !default;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding:   9px !default;
+
+
+//== Wells
+//
+//##
+
+$well-bg:                     #f5f5f5 !default;
+$well-border:                 darken($well-bg, 7%) !default;
+
+
+//== Badges
+//
+//##
+
+$badge-color:                 #fff !default;
+//** Linked badge text color on hover
+$badge-link-hover-color:      #fff !default;
+$badge-bg:                    $gray-light !default;
+
+//** Badge text color in active nav link
+$badge-active-color:          $link-color !default;
+//** Badge background color in active nav link
+$badge-active-bg:             #fff !default;
+
+$badge-font-weight:           bold !default;
+$badge-line-height:           1 !default;
+$badge-border-radius:         10px !default;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical:   8px !default;
+$breadcrumb-padding-horizontal: 15px !default;
+//** Breadcrumb background color
+$breadcrumb-bg:                 #f5f5f5 !default;
+//** Breadcrumb text color
+$breadcrumb-color:              #ccc !default;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color:       $gray-light !default;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator:          "/" !default;
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
+
+$carousel-control-color:                      #fff !default;
+$carousel-control-width:                      15% !default;
+$carousel-control-opacity:                    .5 !default;
+$carousel-control-font-size:                  20px !default;
+
+$carousel-indicator-active-bg:                #fff !default;
+$carousel-indicator-border-color:             #fff !default;
+
+$carousel-caption-color:                      #fff !default;
+
+
+//== Close
+//
+//##
+
+$close-font-weight:           bold !default;
+$close-color:                 #000 !default;
+$close-text-shadow:           0 1px 0 #fff !default;
+
+
+//== Code
+//
+//##
+
+$code-color:                  #c7254e !default;
+$code-bg:                     #f9f2f4 !default;
+
+$kbd-color:                   #fff !default;
+$kbd-bg:                      #333 !default;
+
+$pre-bg:                      #f5f5f5 !default;
+$pre-color:                   $gray-dark !default;
+$pre-border-color:            #ccc !default;
+$pre-scrollable-max-height:   340px !default;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px !default;
+//** Text muted color
+$text-muted:                  $gray-light !default;
+//** Abbreviations and acronyms border color
+$abbr-border-color:           $gray-light !default;
+//** Headings small color
+$headings-small-color:        $gray-light !default;
+//** Blockquote small color
+$blockquote-small-color:      $gray-light !default;
+//** Blockquote font size
+$blockquote-font-size:        ($font-size-base * 1.25) !default;
+//** Blockquote border color
+$blockquote-border-color:     $gray-lighter !default;
+//** Page header border color
+$page-header-border-color:    $gray-lighter !default;
+//** Width of horizontal description list titles
+$dl-horizontal-offset:        $component-offset-horizontal !default;
+//** Point at which .dl-horizontal becomes horizontal
+$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;
+//** Horizontal line color.
+$hr-border:                   $gray-lighter !default;
+
+// BITTERS VARIABLES
+
+// Breakpoints
+$medium-screen: 600px;
+$large-screen: 900px;
+
+// Typography
+$base-font-family: $helvetica;
+$heading-font-family: $base-font-family;
+
+// Font Sizes
+$base-font-size: 1em;
+
+// Line height
+$base-line-height: 1.5;
+$heading-line-height: 1.2;
+
+// Other Sizes
+$base-border-radius: 0px;
+$base-spacing: $base-line-height * 1em;
+$small-spacing: $base-spacing / 2;
+$base-z-index: 0;
+
+// Colors
+$blue: #1565c0;
+$dark-gray: #333;
+$medium-gray: #999;
+$light-gray: #ddd;
+
+// Font Colors
+$base-font-color: $dark-gray;
+$action-color: $blue;
+
+// Border
+$base-border-color: $light-gray;
+$base-border: 1px solid $base-border-color;
+
+// Background Colors
+$base-background-color: #fff;
+$secondary-background-color: tint($base-border-color, 75%);
+
+// Forms
+$form-box-shadow: inset 0 1px 3px rgba(#000, 0.06);
+$form-box-shadow-focus: $form-box-shadow, 0 0 5px adjust-color($action-color, $lightness: -5%, $alpha: -0.3);
+
+// Animations
+$base-duration: 150ms;
+$base-timing: ease;
+
+// Perficient Digital Variables
+$heading-font-face: 'HalisR', sans-serif;
+$primary-font-face: 'Lato', sans-serif;
+
+$black: #000000;
+$primary-color: #202526;                        // Dark Gray
+$secondary-color: lighten($primary-color, 31%); // Gray
+$accent-color-1: #EF0734;                       // Perficient Digital Red
+$accent-color-2: #FFF200;                       // Perficient Digital Yellow
+$accent-color-3: #2AB68F;                       // Perficient Digital Green
+$white: #FFFFFF;
+
+$primary-padding:1.5rem 3rem 1rem;
+
+// Breakpoints Minimum Resolution
+$tablet: 48em;  // tablet
+$desktop: 64em; // desktop
+
+// Bourbon Omega Reset
+
+@mixin omega-reset($nth) {
+  &:nth-child(#{$nth}) { margin-right: flex-gutter(); }
+  &:nth-child(#{$nth}+1) { clear: none }
+}
diff --git a/app/assets/stylesheets/molecules/_admin.scss b/app/assets/stylesheets/molecules/_admin.scss
new file mode 100644
index 0000000..2915318
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_admin.scss
@@ -0,0 +1,35 @@
+main {
+  @include outer-container;
+  .saveadd {
+    @include span-columns(12);
+  }
+  .savecancel {
+    @include span-columns(12);
+  }
+  .error {
+    background-color: transparent;
+    color: $accent-color-1;
+  }
+  label.error {
+    text-align: right;
+    padding-top: 0;
+    font-size: 0.8rem;
+  }
+}
+
+@media only screen and (min-width: $tablet) {
+  main {
+    @include outer-container;
+    .viewall {
+      text-align: right;
+    }
+    .saveadd {
+      @include span-columns(6);
+    }
+    .savecancel {
+      @include span-columns(6);
+      @include omega();
+      text-align: right;
+    }
+  }
+}
diff --git a/app/assets/stylesheets/molecules/_buttongroups.scss b/app/assets/stylesheets/molecules/_buttongroups.scss
new file mode 100644
index 0000000..3b73009
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_buttongroups.scss
@@ -0,0 +1,26 @@
+.btn-group {
+  > button {
+    float: left;
+    background-color: $white;
+    color: $secondary-color;
+    border-width: 1px 0;
+    border-style: solid;
+    border-color: $secondary-color;
+    margin: 0;
+    &:first-child {
+      border-radius: 999px 0 0 999px;
+      border-width:1px 0 1px 1px;
+    }
+    &:last-child {
+      border-radius: 0 999px 999px 0;
+      border-width:1px 1px 1px 0;
+    }
+    &.selected {
+      background-color: $primary-color;
+      color:$white;
+    }
+  }
+  &:after {
+    @include clearfix;
+  }
+}
\ No newline at end of file
diff --git a/app/assets/stylesheets/molecules/_buttons.scss b/app/assets/stylesheets/molecules/_buttons.scss
new file mode 100755
index 0000000..728e248
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_buttons.scss
@@ -0,0 +1,100 @@
+#{$all-buttons}, .btn {
+  appearance: none;
+  background-color: $primary-color;
+  border: 0;
+  border-radius: $base-border-radius;
+  color: #fff;
+  cursor: pointer;
+  display: inline-block;
+  font-family: $primary-font-face;
+  text-transform: uppercase;
+  font-size: 0.875rem;
+  letter-spacing: 0.2rem;
+  -webkit-font-smoothing: antialiased;
+  font-weight: 600;
+  line-height: 1;
+  padding: 1.2em 2em;
+  text-decoration: none;
+  transition: background-color $base-duration $base-timing;
+  user-select: none;
+  vertical-align: middle;
+  white-space: nowrap;
+
+
+
+  &:hover,
+  &:focus {
+    &:not([disabled]) {
+      background-color: $secondary-color;
+      color: #fff;
+    }
+  }
+
+  &:disabled {
+    cursor: not-allowed;
+    opacity: 0.3;
+  }
+}
+.secondary-btn {
+  background-color: $secondary-color;
+}
+
+.tertiary-btn {
+  background-color: transparent;
+  color: $primary-color;
+  border: 1px solid $primary-color;
+}
+
+.button-save {
+  display: none;
+}
+
+.button-cancel {
+  color: #ef0734;
+  border: 1px solid #ef0734;
+  display: none;
+
+  &:hover {
+    &:not([disabled]) {
+      color: #fff;
+      background-color: #ef0734;
+    }
+  }
+}
+
+.answer-buttons {
+  .button-cancel {
+    margin-left: .5rem;
+  }
+}
+
+.disabled-button {
+  pointer-events: none;
+  opacity: 0.5;
+  cursor: default;
+}
+
+// JS-enabled styles
+html.no-js {
+  .tertiary-btn.button-edit {
+    border: none;
+  }
+  .button-save,
+  .button-cancel {
+    display: none;
+  }
+}
+html.js {
+  .button-edit {
+    @extend .btn;
+  }
+}
+
+@media screen and (min-width: $screen-sm) {
+  html.no-js {
+    .tertiary-btn.button-edit {
+      display: inline-block;
+      padding-top: .75rem;
+    }
+  }
+}
diff --git a/app/assets/stylesheets/molecules/_forms.scss b/app/assets/stylesheets/molecules/_forms.scss
new file mode 100755
index 0000000..7b9008e
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_forms.scss
@@ -0,0 +1,266 @@
+// TODO: Align colors with variables.scss
+fieldset {
+  background-color: transparent;
+  // border: 1px solid $input-border;
+  border: none;
+  padding: 0;
+  margin: 0;
+}
+
+legend {
+  font-weight: 300;
+  margin-bottom: $small-spacing / 2;
+  padding: 0;
+}
+
+label {
+  display: block;
+  font-weight: 300;
+}
+
+#{$all-text-inputs} {
+  display: block;
+  font-size: $base-font-size;
+  border-left:0;
+  border-top: 0;
+  border-right: 0;
+  border-bottom: 1px solid $secondary-color;
+  box-shadow: none;
+  border-radius: $base-border-radius;
+  box-sizing: border-box;
+  margin-bottom: 1.4em;
+  padding: $base-spacing / 3;
+  width: 100%;
+  font-weight: 300;
+  font-family: $primary-font-face;
+  line-height: 1.5em;
+
+  &:hover {
+    border-color: shade($base-border-color, 20%);
+  }
+
+  &:focus {
+    outline: none;
+  }
+
+  &:disabled {
+    background-color: shade($base-background-color, 5%);
+    cursor: default;
+
+    &:hover {
+      border: $base-border;
+    }
+  }
+}
+button:disabled,
+input[type='submit']:disabled {
+  opacity: .3;
+  cursor: default;
+}
+
+textarea {
+  resize: vertical;
+  background: transparent;
+  padding: 0 0 3rem;
+}
+
+[type="search"] {
+  appearance: none;
+}
+
+%multiple-choice {
+  display: inline;
+  margin-right: $small-spacing / 2;
+  &:not(:checked),
+  &:checked {
+    position: absolute;
+    left: -9999px;
+    + label {
+      position: relative;
+      padding-left: 25px;
+      cursor: pointer;
+      &:after {
+        position: absolute;
+        line-height: 0.8;
+        color: $primary-color;
+        transition: all .2s;
+      }
+    }
+    &:disabled {
+      + label {
+        &:before {
+          box-shadow: none;
+          border-color: #bbb;
+          background-color: #ddd;
+        }
+      }
+    }
+  }
+  &:not(:checked) {
+    + label {
+      &:after {
+        opacity: 0;
+        transform: scale(0);
+      }
+    }
+  }
+  &:checked {
+    + label {
+      &:before {
+        border: 1px solid $gray;
+        background: transparent;
+      }
+      &:after {
+        opacity: 1;
+        transform: scale(1);
+      }
+    }
+    &:disabled {
+      + label {
+        &:after {
+          color: #999;
+        }
+      }
+    }
+  }
+  &:hover:not(:disabled) {
+    + label {
+      &:before {
+        border: 2px solid $primary-color;
+      }
+    }
+  }
+  &:disabled {
+    + label {
+      color: #aaa;
+    }
+  }
+  + label {
+    &:before {
+      content: '';
+      position: absolute;
+      left:0; top: 2px;
+      width: 20px; height: 20px;
+      box-shadow: 0;
+      border: 1px solid $primary-color;
+      background: transparent;
+      box-sizing: border-box;
+    }
+  }
+}
+
+[type="radio"] {
+  @extend %multiple-choice;
+  &:not(:checked),
+  &:checked {
+    + label {
+      &:after {
+        content: '\2022';
+        font-size: 28px;
+        top: 1px;
+        left: 2px;
+      }
+    }
+  }
+  + label {
+    &:before {
+      border-radius: 50%;
+    }
+  }
+  &:not(:disabled) + label:before {
+    background-color: white;
+  }
+}
+
+[type="checkbox"] {
+  @extend %multiple-choice;
+  &:not(:checked),
+  &:checked {
+    + label {
+      &:after {
+        font-family: 'Zapf Dingbats', 'Menlo';
+        content: '\2714';
+        font-size: 13px;
+        top: 7px;
+        left: 5px;
+      }
+    }
+  }
+  &:not(:disabled) + label:before {
+    background-color: white;
+  }
+}
+
+[type="file"] {
+  margin-bottom: $small-spacing;
+  width: 100%;
+}
+
+select {
+  margin-bottom: 0.75em;
+  max-width: 100%;
+  width: auto; // needed?
+  background-color: $white;
+  border: 1px solid #aaa;
+  border-radius: 0px;
+  font-weight: 300;
+  font-family: $primary-font-face;
+  font-size: 1rem;
+  &::-ms-expand {
+    display: none;
+  }
+  &:not([multiple]) {
+    background-image: url(../../assets/images/icon-dropdownlist.png);
+    background-repeat: no-repeat;
+    background-position: right 10px bottom 50%;
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    appearance: none;
+    padding: 10px 40px 10px 10px;
+  }
+  option {
+    font-weight: 300;
+    font-family: $primary-font-face;
+    font-size: 1rem;
+  }
+}
+
+.form-group {
+  position: relative;
+  margin-bottom: 1.2rem;
+
+  label {
+    transition: 0.2s ease;
+    + #{$all-text-inputs} {
+      background: transparent;
+    }
+    &.loaded {
+      left: 0;
+      top: 5px;
+      font-size: 1em;
+      position: absolute;
+      pointer-events: none;
+    }
+    &.animate {
+      font-size: 0.8em;
+      top: -10px;
+    }
+  }
+}
+.form-group-multiples { // radios, checks wrappers
+  margin-bottom: .5rem;
+}
+
+.button-group {
+  margin-top: 2rem;
+}
+
+.skills-app-form {
+  margin-top: 2rem;
+}
+
+html.no-js {
+  .chars {
+    display: none;
+  }
+}
diff --git a/app/assets/stylesheets/molecules/_lists.scss b/app/assets/stylesheets/molecules/_lists.scss
new file mode 100755
index 0000000..612780f
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_lists.scss
@@ -0,0 +1,35 @@
+ul, ol {
+  margin: 0;
+  padding: 0 0 0 1em;
+  li {
+    line-height: 2em;
+  }
+}
+
+dl {
+  margin: 0;
+}
+
+dt {
+  font-weight: 600;
+  margin: 0;
+}
+
+dd {
+  margin: 0;
+}
+
+ul {
+  list-style-type: none;
+  list-style-position: inside;
+  li {
+    position:relative;
+    padding-left:1em;
+    &:before {
+      position: absolute;
+      top: 3px;
+      left:0;
+      content:url('../../assets/images/icon-unorderedlistbullet.png');
+    }
+  }
+}
diff --git a/app/assets/stylesheets/molecules/_livecoder.scss b/app/assets/stylesheets/molecules/_livecoder.scss
new file mode 100644
index 0000000..9d3609f
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_livecoder.scss
@@ -0,0 +1,60 @@
+.code-input {
+  margin: 10px 0;
+
+  textarea {
+    border: 1px solid black;
+    min-height: 200px;
+    padding: 10px;
+    width: 100%;
+    margin-bottom: 0;
+    background-color: #fff;
+
+    &[disabled] {
+      background-color: #ddd;
+    }
+  }
+}
+
+.code-input ~ button { 
+  margin-left: 0;
+  clear: both;
+  display: block;
+}
+
+.results {
+  border: 1px solid black;
+  clear: both;
+  margin: 10px 0;
+  min-height: 200px;
+  width: 100%;
+  background-color: #fff;
+}
+
+iframe {
+  border: 0;
+  height: 100%;
+  min-height: 190px;
+  width: 100%;
+}
+
+.live-coder-summary{
+  button.update-button{
+    display: none;
+  }
+}
+
+@media only screen and (min-width: $desktop) {
+  .code-input {
+    float: left;
+    margin: 10px 1%;
+    width: 32%;
+
+    &:nth-of-type(1) {
+      margin-left: 0;
+    }
+
+    &:nth-of-type(3) {
+      margin-right: 0;
+    }
+  }
+}
diff --git a/app/assets/stylesheets/molecules/_progressbar.scss b/app/assets/stylesheets/molecules/_progressbar.scss
new file mode 100644
index 0000000..2e5f831
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_progressbar.scss
@@ -0,0 +1,41 @@
+.progress {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  max-height: 84px;
+}
+
+.progress-bar {
+  background-color: $primary-color;
+  color:white;
+  text-align: right;
+  line-height: 8vw;
+  // padding: 0 5px;
+  font-weight: 900;
+  min-width: 50px;
+  position: relative;
+  transform: skewX(-16.5deg);
+
+  span {
+    display: inline-block;
+    transform: skewX(16.5deg);
+    margin-right: .85rem;
+    font-size: 3vw;
+    line-height: 8vw;
+  }
+}
+
+@media screen and (min-width: 500px) {
+  .progress-bar span {
+    font-size: 16px;
+  }
+}
+
+@media only screen and (min-width: $desktop) {
+  .progress-bar,
+  .progress-bar span {
+    line-height: 84px;
+    max-height: 84px;
+  }
+}
diff --git a/app/assets/stylesheets/molecules/_tables.scss b/app/assets/stylesheets/molecules/_tables.scss
new file mode 100755
index 0000000..2f23953
--- /dev/null
+++ b/app/assets/stylesheets/molecules/_tables.scss
@@ -0,0 +1,22 @@
+table {
+  border-collapse: collapse;
+  margin: $small-spacing 0;
+  width: 100%;
+}
+
+th {
+  border-bottom: 1px solid shade($base-border-color, 25%);
+  font-weight: 600;
+  padding: $small-spacing 0;
+  text-align: left;
+}
+
+td {
+  padding: $small-spacing 0;
+}
+
+tr,
+td,
+th {
+  vertical-align: middle;
+}
diff --git a/app/assets/stylesheets/organisms/.keep b/app/assets/stylesheets/organisms/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/app/assets/stylesheets/pages/_error.scss b/app/assets/stylesheets/pages/_error.scss
new file mode 100644
index 0000000..3d16f4e
--- /dev/null
+++ b/app/assets/stylesheets/pages/_error.scss
@@ -0,0 +1,35 @@
+.error {
+    text-align: center;
+    background-color: $accent-color-1;
+    color: #fff;
+    padding-top: .5rem;
+    padding-bottom: .5rem;
+    margin-bottom: .5rem;
+}
+
+.error-header {
+  @include outer-container;
+  .page-title {
+    display: inline-block;
+    h1 {
+      font-family: $heading-font-face;
+      font-size: 1.5rem;
+    }
+  }
+  .secondary-btn {
+    margin-top: 1rem;
+  }
+}
+
+@media only screen and (min-width: $desktop) {
+  .error-header {
+    .page-title {
+      h1 {
+        font-size: 1.5rem;
+      }
+    }
+    .secondary-btn {
+      float:right;
+    }
+  }
+}
diff --git a/app/assets/stylesheets/pages/_styleguide.scss b/app/assets/stylesheets/pages/_styleguide.scss
new file mode 100644
index 0000000..3ad2ef6
--- /dev/null
+++ b/app/assets/stylesheets/pages/_styleguide.scss
@@ -0,0 +1,32 @@
+.styleguide_tpl {
+  @include outer-container;
+}
+
+#halisr {
+  font-family: $heading-font-face;
+  font-size:2rem;
+  #primary-100 { font-weight: 100; }
+  #primary-200 { font-weight: 200; }
+  #primary-300 { font-weight: 300; }
+  #primary-400 { font-weight: 400; }
+  #primary-500 { font-weight: 500; }
+  #primary-600 { font-weight: 600; }
+  #primary-700 { font-weight: 700; }
+  #primary-800 { font-weight: 800; }
+  #primary-900 { font-weight: 900; }
+}
+
+#lato {
+  font-family: $primary-font-face;
+  font-size:2rem;
+  #secondary-100 { font-weight: 100; }
+  #secondary-300 { font-weight: 300; }
+  #secondary-500 { font-weight: 500; }
+  #secondary-700 { font-weight: 700; }
+  #secondary-900 { font-weight: 900; }
+  #secondary-100-i { font-weight: 100; font-style: italic; }
+  #secondary-300-i { font-weight: 300; font-style: italic; }
+  #secondary-500-i { font-weight: 500; font-style: italic; }
+  #secondary-700-i { font-weight: 700; font-style: italic; }
+  #secondary-900-i { font-weight: 900; font-style: italic; }
+}
\ No newline at end of file
diff --git a/app/assets/stylesheets/templates/_footer.scss b/app/assets/stylesheets/templates/_footer.scss
new file mode 100644
index 0000000..f30502b
--- /dev/null
+++ b/app/assets/stylesheets/templates/_footer.scss
@@ -0,0 +1,44 @@
+footer {
+  width: 100%;
+  height: 112px;
+  @include outer-container;
+}
+.footer_title {
+  @include span-columns(6);
+  padding:2.5rem 0 1rem;
+  h2 {
+    font-family: $primary-font-face;
+    text-transform: uppercase;
+    font-weight: 700;
+    margin: 0 0 0 0;
+    font-size: 3vw;
+  }
+}
+.pd_logo {
+  @include span-columns(6);
+  @include omega();
+  text-align: right;
+  padding:1.5rem 0 1rem;
+  img {
+    max-height: 45px;
+  }
+}
+.footer_yellow-bar {
+  @include span-columns(12);
+  @include omega();
+  @include slantmix(0, 0, 1.5rem);
+  background-color:$accent-color-2;
+}
+
+@media only screen and (min-width: 480px) {
+  footer {
+    height: 116px;
+  }
+}
+
+
+@media screen and (min-width: 700px) {
+  .footer_title h2 {
+    font-size: 1.25rem;
+  }
+}
diff --git a/app/assets/stylesheets/templates/_header.scss b/app/assets/stylesheets/templates/_header.scss
new file mode 100644
index 0000000..b5f6734
--- /dev/null
+++ b/app/assets/stylesheets/templates/_header.scss
@@ -0,0 +1,26 @@
+header {
+  @include outer-container;
+  padding-top: 13vw;
+
+  &.no-progressbar {
+    padding-top: 52px;
+  }
+}
+.page-title {
+  @include omega();
+  text-transform: uppercase;
+  padding: 1rem 3rem .5rem;
+
+  div {
+    font: bold 1.25rem $primary-font-face;
+  }
+}
+
+@media screen and (min-width: $desktop) {
+  header {
+    padding-top: 135px;
+  }
+  .page-title {
+    padding:$primary-padding;
+  }
+}
diff --git a/app/assets/stylesheets/templates/_intro.scss b/app/assets/stylesheets/templates/_intro.scss
new file mode 100644
index 0000000..650c064
--- /dev/null
+++ b/app/assets/stylesheets/templates/_intro.scss
@@ -0,0 +1,26 @@
+.intro_tpl {
+  @include outer-container;
+  padding:$primary-padding;
+  form {
+    margin-top: 3rem;
+    @include span-columns(12);
+    @include omega();
+    button[type='submit']
+    {
+      display: block;
+      width:100%;
+      margin-top: 3rem;
+    }
+  }
+}
+
+@media only screen and (min-width: $desktop) {
+  .intro_tpl {
+    padding:$primary-padding;
+    form {
+      @include span-columns(6);
+      @include shift(3);
+      @include omega();
+    }
+  }
+}
\ No newline at end of file
diff --git a/app/assets/stylesheets/templates/_questions.scss b/app/assets/stylesheets/templates/_questions.scss
new file mode 100644
index 0000000..a60cabb
--- /dev/null
+++ b/app/assets/stylesheets/templates/_questions.scss
@@ -0,0 +1,71 @@
+.questions_tpl {
+  @include outer-container;
+  .prft-heading,
+  .content-well {
+    padding: 1rem 0;
+    @include outer-container;
+    .column-left,
+    .column-right {
+      @include span-columns(12);
+      @include omega();
+    }
+  }
+  .form-group {
+    position: relative;
+    textarea {
+      + label {
+        position: absolute;
+        left: 3rem;
+        top: 1rem;
+        pointer-events: none;
+      }
+      &:focus,
+      &:valid {
+        + label {
+          top: -10px;
+          font-size: 0.8em;
+        }
+      }
+    }
+  }
+  textarea {
+    // padding: 1rem 3rem;
+    padding: 1rem 0;
+  }
+}
+
+.btn-container-left,
+.btn-container-right {
+  padding-top: 2rem;
+}
+
+.btn-container-left {
+  @include span-columns(5);
+}
+.btn-container-right {
+  @include span-columns(7);
+  @include omega();
+  text-align: right;
+}
+
+.btn-container-summary {
+  text-align: center;
+}
+
+@media only screen and (min-width: $desktop) {
+  .questions_tpl {
+    @include outer-container;
+    .prft-heading,
+    .content-well {
+
+      .column-left {
+        @include omega-reset(6n);
+        @include span-columns(6);
+      }
+      .column-right {
+        @include span-columns(6);
+        @include omega();
+      }
+    }
+  }
+}
diff --git a/app/assets/stylesheets/templates/_summary.scss b/app/assets/stylesheets/templates/_summary.scss
new file mode 100644
index 0000000..5a9a343
--- /dev/null
+++ b/app/assets/stylesheets/templates/_summary.scss
@@ -0,0 +1,85 @@
+.summary_tpl {
+  @include outer-container;
+  padding: 2rem 0;
+  .prft-heading {
+    font-size:1.875rem;
+  }
+  .answer-sec {
+    // padding-top:2rem;
+    margin-bottom: 2rem;
+    transition: 0.3s ease;
+    // &.editable {
+    //   background-color: #f2f2f2;
+    // }
+    .question-heading {
+      @include outer-container;
+      .question-title {
+        @include span-columns(12);
+        @include omega();
+        padding-top: .75rem;
+        h3 {
+          font-size: 1.25rem;
+        }
+      }
+      .answer-buttons {
+        @include span-columns(12);
+        @include omega();
+        white-space: nowrap;
+      }
+    }
+    .answer-container {
+      padding:2rem 0;
+    }
+  }
+}
+
+.editable {
+  background-color: #f2f2f2;
+  padding: 2rem;
+  margin: 0 -2rem;
+}
+
+#summary-form {
+  margin-top: 3rem;
+}
+
+.success {
+    text-align: center;
+    background-color: $accent-color-3;
+    color: #fff;
+    padding-top: .5rem;
+    padding-bottom: .5rem;
+    margin-bottom: .5rem; 
+}
+
+@media only screen and (min-width: $tablet) {
+  .summary_tpl {
+    .answer-sec {
+      .question-heading {
+        .question-title {
+          @include span-columns(8);
+        }
+        .answer-buttons {
+          @include span-columns(4);
+          @include omega();
+          text-align: right;
+        }
+      }
+    }
+  }
+}
+
+@media only screen and (min-width: $desktop) {
+  .summary_tpl {
+    .answer-sec {
+      .question-heading {
+        .question-title {
+          @include span-columns(9);
+        }
+        .answer-buttons {
+          @include span-columns(3);
+        }
+      }
+    }
+  }
+}