')
- .append(i.clone())
- .remove()
- .html()
- .replace(/type="password"/i, 'type="text"')
- .replace(/type=password/i, 'type=text')
- );
-
- if (i.attr('id') != '')
- x.attr('id', i.attr('id') + '-polyfill-field');
-
- if (i.attr('name') != '')
- x.attr('name', i.attr('name') + '-polyfill-field');
-
- x.addClass('polyfill-placeholder')
- .val(x.attr('placeholder')).insertAfter(i);
-
- if (i.val() == '')
- i.hide();
- else
- x.hide();
-
- i
- .on('blur', function(event) {
-
- event.preventDefault();
-
- var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
-
- if (i.val() == '') {
-
- i.hide();
- x.show();
-
- }
-
- });
-
- x
- .on('focus', function(event) {
-
- event.preventDefault();
-
- var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
-
- x.hide();
-
- i
- .show()
- .focus();
-
- })
- .on('keypress', function(event) {
-
- event.preventDefault();
- x.val('');
-
- });
-
- });
-
- // Events.
- $this
- .on('submit', function() {
-
- $this.find('input[type=text],input[type=password],textarea')
- .each(function(event) {
-
- var i = $(this);
-
- if (i.attr('name').match(/-polyfill-field$/))
- i.attr('name', '');
-
- if (i.val() == i.attr('placeholder')) {
-
- i.removeClass('polyfill-placeholder');
- i.val('');
-
- }
-
- });
-
- })
- .on('reset', function(event) {
-
- event.preventDefault();
-
- $this.find('select')
- .val($('option:first').val());
-
- $this.find('input,textarea')
- .each(function() {
-
- var i = $(this),
- x;
-
- i.removeClass('polyfill-placeholder');
-
- switch (this.type) {
-
- case 'submit':
- case 'reset':
- break;
-
- case 'password':
- i.val(i.attr('defaultValue'));
-
- x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
-
- if (i.val() == '') {
- i.hide();
- x.show();
- }
- else {
- i.show();
- x.hide();
- }
-
- break;
-
- case 'checkbox':
- case 'radio':
- i.attr('checked', i.attr('defaultValue'));
- break;
-
- case 'text':
- case 'textarea':
- i.val(i.attr('defaultValue'));
-
- if (i.val() == '') {
- i.addClass('polyfill-placeholder');
- i.val(i.attr('placeholder'));
- }
-
- break;
-
- default:
- i.val(i.attr('defaultValue'));
- break;
-
- }
- });
-
- });
-
- return $this;
-
- };
-
- /**
- * Moves elements to/from the first positions of their respective parents.
- * @param {jQuery} $elements Elements (or selector) to move.
- * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
- */
- $.prioritize = function($elements, condition) {
-
- var key = '__prioritize';
-
- // Expand $elements if it's not already a jQuery object.
- if (typeof $elements != 'jQuery')
- $elements = $($elements);
-
- // Step through elements.
- $elements.each(function() {
-
- var $e = $(this), $p,
- $parent = $e.parent();
-
- // No parent? Bail.
- if ($parent.length == 0)
- return;
-
- // Not moved? Move it.
- if (!$e.data(key)) {
-
- // Condition is false? Bail.
- if (!condition)
- return;
-
- // Get placeholder (which will serve as our point of reference for when this element needs to move back).
- $p = $e.prev();
-
- // Couldn't find anything? Means this element's already at the top, so bail.
- if ($p.length == 0)
- return;
-
- // Move element to top of parent.
- $e.prependTo($parent);
-
- // Mark element as moved.
- $e.data(key, $p);
-
- }
-
- // Moved already?
- else {
-
- // Condition is true? Bail.
- if (condition)
- return;
-
- $p = $e.data(key);
-
- // Move element back to its original location (using our placeholder).
- $e.insertAfter($p);
-
- // Unmark element as moved.
- $e.removeData(key);
-
- }
-
- });
-
- };
-
-})(jQuery);
diff --git a/assets/sass/ie8.scss b/assets/sass/ie8.scss
deleted file mode 100644
index 5660e03..0000000
--- a/assets/sass/ie8.scss
+++ /dev/null
@@ -1,135 +0,0 @@
-@import 'libs/vars';
-@import 'libs/functions';
-@import 'libs/mixins';
-@import 'libs/skel';
-
-/*
- Directive by HTML5 UP
- html5up.net | @n33co
- Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-*/
-
-$color-border-ie: #cccccc;
-
-/* Basic */
-
- hr {
- border-top: solid 1px $color-border-ie;
- }
-
- blockquote {
- border-left: solid 0.5em $color-border-ie;
- }
-
-/* Section/Article */
-
- header {
- &.major {
- border-color: $color-border-ie;
-
- p {
- border-top: solid 1px $color-border-ie;
- }
- }
- }
-
- footer {
- &.major {
- border-color: $color-border-ie;
- }
- }
-
-/* Button */
-
- input[type="submit"],
- input[type="reset"],
- input[type="button"],
- .button {
- position: relative;
- -ms-behavior: url('assets/js/ie/PIE.htc');
-
- &.alt {
- border: solid 1px $color-border-ie;
- }
- }
-
-/* Form */
-
- input[type="text"],
- input[type="password"],
- input[type="email"],
- select,
- textarea {
- position: relative;
- border: solid 1px $color-border-ie;
- -ms-behavior: url('assets/js/ie/PIE.htc');
- }
-
-/* Image */
-
- .image {
- border: 0;
- display: inline-block;
- position: relative;
-
- &:after {
- display: none;
- }
- }
-
-/* Box */
-
- .box {
- border: solid 1px $color-border-ie;
- }
-
-/* Header */
-
- #header {
- background-image: url('../../images/header.jpg') !important;
- background-size: cover !important;
- background-position: scroll !important;
- -ms-behavior: url('assets/js/ie/backgroundsize.min.htc');
- padding: 8em 0 !important;
- color: _palette(accent2, fg-bold);
-
- a {
- color: inherit;
- }
-
- &:before {
- content: '';
- background-image: url('images/overlay.png');
- position: absolute;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
- display: block;
- z-index: 0;
- }
-
- > * {
- position: relative;
- z-index: 1;
- }
-
- .logo {
- -ms-behavior: url('assets/js/ie/PIE.htc');
- }
- }
-
-/* Footer */
-
- #footer {
- background-image: none !important;
- margin-top: 0 !important;
- padding: 4em 0 !important;
- color: _palette(accent1, fg-bold);
- }
-
-/* Main */
-
- #main {
- padding: 4em 0;
- }
\ No newline at end of file
diff --git a/assets/sass/libs/_functions.scss b/assets/sass/libs/_functions.scss
deleted file mode 100644
index 0e08c1a..0000000
--- a/assets/sass/libs/_functions.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-/// Gets a duration value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _duration($keys...) {
- @return val($duration, $keys...);
-}
-
-/// Gets a font value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _font($keys...) {
- @return val($font, $keys...);
-}
-
-/// Gets a misc value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _misc($keys...) {
- @return val($misc, $keys...);
-}
-
-/// Gets a palette value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _palette($keys...) {
- @return val($palette, $keys...);
-}
-
-/// Gets a size value.
-/// @param {string} $keys Key(s).
-/// @return {string} Value.
-@function _size($keys...) {
- @return val($size, $keys...);
-}
\ No newline at end of file
diff --git a/assets/sass/libs/_mixins.scss b/assets/sass/libs/_mixins.scss
deleted file mode 100644
index a4d59f2..0000000
--- a/assets/sass/libs/_mixins.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-/// Makes an element's :before pseudoelement a FontAwesome icon.
-/// @param {string} $content Optional content value to use.
-@mixin icon($content: false) {
-
- text-decoration: none;
-
- &:before {
-
- @if $content {
- content: $content;
- }
-
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- font-family: FontAwesome;
- font-style: normal;
- font-weight: normal;
- text-transform: none !important;
-
- }
-
-}
-
-/// Applies padding to an element, taking the current element-margin value into account.
-/// @param {mixed} $tb Top/bottom padding.
-/// @param {mixed} $lr Left/right padding.
-/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
-/// @param {bool} $important If true, adds !important.
-@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
-
- @if $important {
- $important: '!important';
- }
-
- padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max(0.1em, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
-
-}
\ No newline at end of file
diff --git a/assets/sass/libs/_skel.scss b/assets/sass/libs/_skel.scss
deleted file mode 100644
index dc13d9c..0000000
--- a/assets/sass/libs/_skel.scss
+++ /dev/null
@@ -1,584 +0,0 @@
-// skel.scss v3.0.0 | (c) n33 | skel.io | MIT licensed */
-
-// Vars.
-
- /// Breakpoints.
- /// @var {list}
- $breakpoints: () !global;
-
- /// Vendor prefixes.
- /// @var {list}
- $vendor-prefixes: (
- '-moz-',
- '-webkit-',
- '-ms-',
- ''
- );
-
- /// Properties that should be vendorized.
- /// @var {list}
- $vendor-properties: (
- 'align-content',
- 'align-items',
- 'align-self',
- 'animation',
- 'animation-delay',
- 'animation-direction',
- 'animation-duration',
- 'animation-fill-mode',
- 'animation-iteration-count',
- 'animation-name',
- 'animation-play-state',
- 'animation-timing-function',
- 'appearance',
- 'backface-visibility',
- 'box-sizing',
- 'filter',
- 'flex',
- 'flex-basis',
- 'flex-direction',
- 'flex-flow',
- 'flex-grow',
- 'flex-shrink',
- 'flex-wrap',
- 'justify-content',
- 'order',
- 'perspective',
- 'pointer-events',
- 'transform',
- 'transform-origin',
- 'transform-style',
- 'transition',
- 'transition-delay',
- 'transition-duration',
- 'transition-property',
- 'transition-timing-function'
- );
-
- /// Values that should be vendorized.
- /// @var {list}
- $vendor-values: (
- 'filter',
- 'flex',
- 'linear-gradient',
- 'radial-gradient',
- 'transform'
- );
-
-// Functions.
-
- /// Removes a specific item from a list.
- /// @author Hugo Giraudel
- /// @param {list} $list List.
- /// @param {integer} $index Index.
- /// @return {list} Updated list.
- @function remove-nth($list, $index) {
-
- $result: null;
-
- @if type-of($index) != number {
- @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
- }
- @else if $index == 0 {
- @warn "List index 0 must be a non-zero integer for `remove-nth`.";
- }
- @else if abs($index) > length($list) {
- @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
- }
- @else {
-
- $result: ();
- $index: if($index < 0, length($list) + $index + 1, $index);
-
- @for $i from 1 through length($list) {
-
- @if $i != $index {
- $result: append($result, nth($list, $i));
- }
-
- }
-
- }
-
- @return $result;
-
- }
-
- /// Replaces a substring within another string.
- /// @author Hugo Giraudel
- /// @param {string} $string String.
- /// @param {string} $search Substring.
- /// @param {string} $replace Replacement.
- /// @return {string} Updated string.
- @function str-replace($string, $search, $replace: '') {
-
- $index: str-index($string, $search);
-
- @if $index {
- @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
- }
-
- @return $string;
-
- }
-
- /// Replaces a substring within each string in a list.
- /// @param {list} $strings List of strings.
- /// @param {string} $search Substring.
- /// @param {string} $replace Replacement.
- /// @return {list} Updated list of strings.
- @function str-replace-all($strings, $search, $replace: '') {
-
- @each $string in $strings {
- $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
- }
-
- @return $strings;
-
- }
-
- /// Gets a value from a map.
- /// @author Hugo Giraudel
- /// @param {map} $map Map.
- /// @param {string} $keys Key(s).
- /// @return {string} Value.
- @function val($map, $keys...) {
-
- @if nth($keys, 1) == null {
- $keys: remove-nth($keys, 1);
- }
-
- @each $key in $keys {
- $map: map-get($map, $key);
- }
-
- @return $map;
-
- }
-
-// Mixins.
-
- /// Sets the global box model.
- /// @param {string} $model Model (default is content).
- @mixin boxModel($model: 'content') {
-
- $x: $model + '-box';
-
- *, *:before, *:after {
- -moz-box-sizing: #{$x};
- -webkit-box-sizing: #{$x};
- box-sizing: #{$x};
- }
-
- }
-
- /// Wraps @content in a @media block using a given breakpoint.
- /// @param {string} $breakpoint Breakpoint.
- /// @param {map} $queries Additional queries.
- @mixin breakpoint($breakpoint: null, $queries: null) {
-
- $query: 'screen';
-
- // Breakpoint.
- @if $breakpoint and map-has-key($breakpoints, $breakpoint) {
- $query: $query + ' and ' + map-get($breakpoints, $breakpoint);
- }
-
- // Queries.
- @if $queries {
- @each $k, $v in $queries {
- $query: $query + ' and (' + $k + ':' + $v + ')';
- }
- }
-
- @media #{$query} {
- @content;
- }
-
- }
-
- /// Wraps @content in a @media block targeting a specific orientation.
- /// @param {string} $orientation Orientation.
- @mixin orientation($orientation) {
- @media screen and (orientation: #{$orientation}) {
- @content;
- }
- }
-
- /// Utility mixin for containers.
- /// @param {mixed} $width Width.
- @mixin containers($width) {
-
- // Locked?
- $lock: false;
-
- @if length($width) == 2 {
- $width: nth($width, 1);
- $lock: true;
- }
-
- // Modifiers.
- .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; }
- .container.\37 5\25 { width: $width * 0.75; }
- .container.\35 0\25 { width: $width * 0.5; }
- .container.\32 5\25 { width: $width * 0.25; }
-
- // Main class.
- .container {
- @if $lock {
- width: $width !important;
- }
- @else {
- width: $width;
- }
- }
-
- }
-
- /// Utility mixin for grid.
- /// @param {list} $gutters Column and row gutters (default is 40px).
- /// @param {string} $breakpointName Optional breakpoint name.
- @mixin grid($gutters: 40px, $breakpointName: null) {
-
- // Gutters.
- @include grid-gutters($gutters);
- @include grid-gutters($gutters, \32 00\25, 2);
- @include grid-gutters($gutters, \31 50\25, 1.5);
- @include grid-gutters($gutters, \35 0\25, 0.5);
- @include grid-gutters($gutters, \32 5\25, 0.25);
-
- // Cells.
- $x: '';
-
- @if $breakpointName {
- $x: '\\28' + $breakpointName + '\\29';
- }
-
- .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; }
- .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; }
- .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; }
- .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; }
- .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; }
- .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; }
- .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; }
- .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; }
- .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; }
- .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; }
- .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; }
- .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; }
-
- .\31 2u\24#{$x} + *,
- .\31 1u\24#{$x} + *,
- .\31 0u\24#{$x} + *,
- .\39 u\24#{$x} + *,
- .\38 u\24#{$x} + *,
- .\37 u\24#{$x} + *,
- .\36 u\24#{$x} + *,
- .\35 u\24#{$x} + *,
- .\34 u\24#{$x} + *,
- .\33 u\24#{$x} + *,
- .\32 u\24#{$x} + *,
- .\31 u\24#{$x} + * {
- clear: left;
- }
-
- .\-11u#{$x} { margin-left: 91.6666666667% }
- .\-10u#{$x} { margin-left: 83.3333333333% }
- .\-9u#{$x} { margin-left: 75% }
- .\-8u#{$x} { margin-left: 66.6666666667% }
- .\-7u#{$x} { margin-left: 58.3333333333% }
- .\-6u#{$x} { margin-left: 50% }
- .\-5u#{$x} { margin-left: 41.6666666667% }
- .\-4u#{$x} { margin-left: 33.3333333333% }
- .\-3u#{$x} { margin-left: 25% }
- .\-2u#{$x} { margin-left: 16.6666666667% }
- .\-1u#{$x} { margin-left: 8.3333333333% }
-
- }
-
- /// Utility mixin for grid.
- /// @param {list} $gutters Gutters.
- /// @param {string} $class Optional class name.
- /// @param {integer} $multiplier Multiplier (default is 1).
- @mixin grid-gutters($gutters, $class: null, $multiplier: 1) {
-
- // Expand gutters if it's not a list.
- @if length($gutters) == 1 {
- $gutters: ($gutters, 0);
- }
-
- // Get column and row gutter values.
- $c: nth($gutters, 1);
- $r: nth($gutters, 2);
-
- // Get class (if provided).
- $x: '';
-
- @if $class {
- $x: '.' + $class;
- }
-
- // Default.
- .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); }
- .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
-
- // Uniform.
- .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); }
- .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
-
- }
-
- /// Wraps @content in vendorized keyframe blocks.
- /// @param {string} $name Name.
- @mixin keyframes($name) {
-
- @-moz-keyframes #{$name} { @content; }
- @-webkit-keyframes #{$name} { @content; }
- @-ms-keyframes #{$name} { @content; }
- @keyframes #{$name} { @content; }
-
- }
-
- ///
- /// Sets breakpoints.
- /// @param {map} $x Breakpoints.
- ///
- @mixin skel-breakpoints($x: ()) {
- $breakpoints: $x !global;
- }
-
- ///
- /// Initializes layout module.
- /// @param {map} config Config.
- ///
- @mixin skel-layout($config: ()) {
-
- // Config.
- $configPerBreakpoint: ();
-
- $z: map-get($config, 'breakpoints');
-
- @if $z {
- $configPerBreakpoint: $z;
- }
-
- // Reset.
- $x: map-get($config, 'reset');
-
- @if $x {
-
- /* Reset */
-
- @include reset($x);
-
- }
-
- // Box model.
- $x: map-get($config, 'boxModel');
-
- @if $x {
-
- /* Box Model */
-
- @include boxModel($x);
-
- }
-
- // Containers.
- $containers: map-get($config, 'containers');
-
- @if $containers {
-
- /* Containers */
-
- .container {
- margin-left: auto;
- margin-right: auto;
- }
-
- // Use default is $containers is just "true".
- @if $containers == true {
- $containers: 960px;
- }
-
- // Apply base.
- @include containers($containers);
-
- // Apply per-breakpoint.
- @each $name in map-keys($breakpoints) {
-
- // Get/use breakpoint setting if it exists.
- $x: map-get($configPerBreakpoint, $name);
-
- // Per-breakpoint config exists?
- @if $x {
- $y: map-get($x, 'containers');
-
- // Setting exists? Use it.
- @if $y {
- $containers: $y;
- }
-
- }
-
- // Create @media block.
- @media screen and #{map-get($breakpoints, $name)} {
- @include containers($containers);
- }
-
- }
-
- }
-
- // Grid.
- $grid: map-get($config, 'grid');
-
- @if $grid {
-
- /* Grid */
-
- // Use defaults if $grid is just "true".
- @if $grid == true {
- $grid: ();
- }
-
- // Sub-setting: Gutters.
- $grid-gutters: 40px;
- $x: map-get($grid, 'gutters');
-
- @if $x {
- $grid-gutters: $x;
- }
-
- // Rows.
- .row {
- border-bottom: solid 1px transparent;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- .row > * {
- float: left;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- .row:after, .row:before {
- content: '';
- display: block;
- clear: both;
- height: 0;
- }
-
- .row.uniform > * > :first-child {
- margin-top: 0;
- }
-
- .row.uniform > * > :last-child {
- margin-bottom: 0;
- }
-
- // Gutters (0%).
- @include grid-gutters($grid-gutters, \30 \25, 0);
-
- // Apply base.
- @include grid($grid-gutters);
-
- // Apply per-breakpoint.
- @each $name in map-keys($breakpoints) {
-
- // Get/use breakpoint setting if it exists.
- $x: map-get($configPerBreakpoint, $name);
-
- // Per-breakpoint config exists?
- @if $x {
- $y: map-get($x, 'grid');
-
- // Setting exists?
- @if $y {
-
- // Sub-setting: Gutters.
- $x: map-get($y, 'gutters');
-
- @if $x {
- $grid-gutters: $x;
- }
-
- }
-
- }
-
- // Create @media block.
- @media screen and #{map-get($breakpoints, $name)} {
- @include grid($grid-gutters, $name);
- }
-
- }
-
- }
-
- }
-
- /// Resets browser styles.
- /// @param {string} $mode Mode (default is 'normalize').
- @mixin reset($mode: 'normalize') {
-
- @if $mode == 'normalize' {
-
- // normalize.css v3.0.2 | MIT License | git.io/normalize
- html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
-
- }
- @else if $mode == 'full' {
-
- // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain)
- html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none}
-
- }
-
- }
-
- /// Vendorizes a declaration's property and/or value(s).
- /// @param {string} $property Property.
- /// @param {mixed} $value String/list of value(s).
- @mixin vendor($property, $value) {
-
- // Determine if property should expand.
- $expandProperty: index($vendor-properties, $property);
-
- // Determine if value should expand (and if so, add '-prefix-' placeholder).
- $expandValue: false;
-
- @each $x in $value {
- @each $y in $vendor-values {
- @if $y == str-slice($x, 1, str-length($y)) {
-
- $value: set-nth($value, index($value, $x), '-prefix-' + $x);
- $expandValue: true;
-
- }
- }
- }
-
- // Expand property?
- @if $expandProperty {
- @each $vendor in $vendor-prefixes {
- #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
- }
- }
-
- // Expand just the value?
- @elseif $expandValue {
- @each $vendor in $vendor-prefixes {
- #{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
- }
- }
-
- // Neither? Treat them as a normal declaration.
- @else {
- #{$property}: #{$value};
- }
-
- }
\ No newline at end of file
diff --git a/assets/sass/libs/_vars.scss b/assets/sass/libs/_vars.scss
deleted file mode 100644
index 37c57e8..0000000
--- a/assets/sass/libs/_vars.scss
+++ /dev/null
@@ -1,41 +0,0 @@
-// Misc.
- $misc: (
- );
-
-// Duration.
- $duration: (
- );
-
-// Size.
- $size: (
- border-radius: 4px
- );
-
-// Font.
- $font: (
- );
-
-// Palette.
- $palette: (
- bg: #ffffff,
- fg: #6e6e6e,
- fg-light: #888888,
- fg-bold: #5b5b5b,
- border: rgba(224,224,224,0.75),
- border-bg: rgba(224,224,224,0.15),
- border-bg2: rgba(224,224,224,0.35),
-
- accent1: (
- bg: #4eb980,
- fg: rgba(255,255,255,0.8),
- fg-light: rgba(255,255,255,0.5),
- fg-bold: #ffffff
- ),
-
- accent2: (
- bg: #544d55,
- fg: rgba(255,255,255,0.8),
- fg-light: rgba(255,255,255,0.35),
- fg-bold: #ffffff
- )
- );
\ No newline at end of file
diff --git a/assets/sass/main.scss b/assets/sass/main.scss
deleted file mode 100644
index d27a8c3..0000000
--- a/assets/sass/main.scss
+++ /dev/null
@@ -1,1380 +0,0 @@
-@import 'libs/vars';
-@import 'libs/functions';
-@import 'libs/mixins';
-@import url("font-awesome.min.css");
-@import url("http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,300italic,400,400italic,600,600italic,700,700italic");
-
-/*
- Directive by HTML5 UP
- html5up.net | @n33co
- Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-*/
-
- @import "libs/skel";
-
- @include skel-breakpoints((
- wide: '(max-width: 1680px)',
- normal: '(max-width: 1280px)',
- narrow: '(max-width: 980px)',
- narrower: '(max-width: 840px)',
- mobile: '(max-width: 736px)',
- mobilep: '(max-width: 480px)'
- ));
-
- @include skel-layout((
- reset: 'full',
- boxModel: 'border',
- grid: ( gutters: (30px, 30px) ),
- conditionals: true,
- containers: 51em,
- breakpoints: (
- normal: (
- containers: 48em,
- ),
- narrow: (
- containers: 95%,
- grid: (
- gutters: (30px, 30px)
- ),
- ),
- narrower: (
- containers: (95%, true),
- grid: (
- gutters: (20px, 20px)
- ),
- ),
- mobile: (
- containers: (90%, true),
- grid: (
- gutters: (20px, 20px)
- ),
- ),
- mobilep: (
- containers: (100%, true),
- )
- )
- ));
-
-/* Basic */
-
- html, body {
- height: 100%;
- }
-
- body {
- background: _palette(bg);
-
- &.is-loading {
- * {
- @include vendor('transition', 'none !important');
- @include vendor('animation', 'none !important');
- }
- }
- }
-
- body, input, select, textarea {
- color: _palette(fg);
- font-family: 'Source Sans Pro', sans-serif;
- font-size: 16pt;
- font-weight: 400;
- line-height: 1.75em;
- }
-
- a {
- @include vendor('transition', ('color 0.2s ease-in-out', 'border-bottom-color 0.2s ease-in-out'));
- border-bottom: dotted 1px;
- color: _palette(accent1, bg);
- text-decoration: none;
-
- &:hover {
- border-bottom-color: transparent;
- }
- }
-
- strong, b {
- font-weight: 600;
- color: _palette(fg-bold);
- }
-
- em, i {
- font-style: italic;
- }
-
- p, ul, ol, dl, table, blockquote, form {
- margin: 0 0 2em 0;
- }
-
- h1, h2, h3, h4, h5, h6 {
- color: _palette(fg-bold);
- font-weight: 700;
- letter-spacing: 0.125em;
- line-height: 1.75em;
- margin-bottom: 1em;
- text-transform: uppercase;
- text-align: center;
-
- a {
- color: inherit;
- text-decoration: none;
- }
- }
-
- h2 {
- font-size: 1.75em;
- }
-
- h3 {
- font-size: 1.5em;
- }
-
- sub {
- font-size: 0.8em;
- position: relative;
- top: 0.5em;
- }
-
- sup {
- font-size: 0.8em;
- position: relative;
- top: -0.5em;
- }
-
- hr {
- border: 0;
- border-top: solid 1px _palette(border);
- margin-bottom: 1.5em;
- }
-
- blockquote {
- border-left: solid 0.5em _palette(border);
- font-style: italic;
- padding: 1em 0 1em 2em;
- }
-
-/* Section/Article */
-
- section, article {
- &.special {
- text-align: center;
- }
- }
-
- header {
- text-align: center;
-
- p {
- position: relative;
- top: -1em;
- color: _palette(fg-light);
- text-transform: uppercase;
- letter-spacing: 0.075em;
- }
-
- &.major {
- border-bottom-width: 1px;
- border-color: _palette(border);
- border-style: solid;
- border-top-width: 1px;
- margin-bottom: 6em;
- padding: 4em 0;
- position: relative;
-
- &:before,
- &:after {
- background: _palette(border);
- content: '';
- display: block;
- height: 1px;
- left: 0;
- position: absolute;
- width: 100%;
- }
-
- &:before {
- top: 10px;
- }
-
- &:after {
- bottom: 10px;
- }
-
- h2 {
- margin: 0;
- }
-
- p {
- top: 0;
- margin: 1.5em 0 0 0;
- padding: 1.5em 1.5em 0 1.5em;
- font-size: 1.5em;
- line-height: 1.75em;
- border-top: solid 1px _palette(border);
- display: inline-block;
- }
-
- &.last {
- border-bottom: 0;
- margin-bottom: 0;
- padding-bottom: 0;
-
- &:after {
- display: none;
- }
-
- h2 {
- margin-bottom: 1em;
- }
- }
- }
- }
-
- footer {
- text-align: center;
-
- &.major {
- border-bottom-width: 1px;
- border-color: _palette(border);
- border-style: solid;
- border-top-width: 1px;
- margin-top: 6em;
- padding: 4em 0;
- position: relative;
-
- &:before,
- &:after {
- background: _palette(border);
- content: '';
- display: block;
- height: 1px;
- left: 0;
- position: absolute;
- width: 100%;
- }
-
- &:before {
- top: 10px;
- }
-
- &:after {
- bottom: 10px;
- }
- }
- }
-
-/* Form */
-
- label {
- display: block;
- color: _palette(fg-bold);
- font-size: 0.8em;
- font-weight: 700;
- letter-spacing: 0.125em;
- line-height: 1.75em;
- text-transform: uppercase;
- margin: 0 0 0.5em 0;
- }
-
- input[type="text"],
- input[type="password"],
- input[type="email"],
- select,
- textarea {
- @include vendor('appearance', 'none');
- @include vendor('transition', 'background-color 0.2s ease-in-out');
- background: none;
- border-radius: _size(border-radius);
- border: 0;
- border: solid 1px _palette(border);
- color: inherit;
- display: block;
- outline: 0;
- padding: 0.75em;
- text-decoration: none;
- width: 100%;
- opacity: 1;
-
- &:focus {
- background: _palette(border-bg);
- border-color: _palette(accent1, bg);
- }
- }
-
- input[type="text"],
- input[type="password"],
- input[type="email"],
- select {
- line-height: 1em;
- }
-
- textarea {
- padding: 0.5em 0.75em;
- }
-
- ::-webkit-input-placeholder {
- color: inherit;
- opacity: 0.5;
- position: relative;
- top: 3px;
- }
-
- :-moz-placeholder {
- color: inherit;
- opacity: 0.5;
- }
-
- ::-moz-placeholder {
- color: inherit;
- opacity: 0.5;
- }
-
- :-ms-input-placeholder {
- color: inherit;
- opacity: 0.5;
- }
-
- .formerize-placeholder {
- color: transparentize(_palette(fg), 0.5) !important;
- }
-
-/* Image */
-
- .image {
- border: 0;
- display: inline-block;
- position: relative;
-
- &:after {
- @include vendor('transition', 'opacity 0.25s ease-in-out');
- background-image: url('images/overlay.png');
- content: '';
- display: block;
- height: 100%;
- left: 0;
- opacity: 0.2;
- position: absolute;
- top: 0;
- width: 100%;
- }
-
- img {
- display: block;
- }
-
- &.fit {
- display: block;
-
- img {
- display: block;
- width: 100%;
- }
- }
-
- &.feature {
- display: block;
- margin: 0 0 2em 0;
-
- img {
- display: block;
- width: 100%;
- }
- }
-
- &.icon {
- @include vendor('perspective', '500px');
-
- &:before {
- @include vendor('transition', ('transform 0.1s ease-in-out', 'font-size 0.1s ease-in-out'));
- color: #fff;
- font-size: 6em;
- height: 1em;
- left: 50%;
- line-height: 1em;
- margin: -0.5em 0 0 -0.5em;
- position: absolute;
- text-align: center;
- top: 50%;
- width: 1em;
- z-index: 1;
- }
-
- &:hover {
- &:before {
- @include vendor('transform', 'translateZ(1em)');
- }
-
- &:after {
- opacity: 1;
- }
- }
- }
- }
-
- span.image.icon {
- cursor: default;
- }
-
-/* Icon */
-
- .icon {
- @include icon;
- border-bottom: none;
- position: relative;
-
- > .label {
- display: none;
- }
- }
-
-/* List */
-
- ol {
- &.default {
- list-style: decimal;
- padding-left: 1.25em;
-
- li {
- padding-left: 0.25em;
- }
- }
- }
-
- ul {
- &.default {
- list-style: disc;
- padding-left: 1em;
-
- li {
- padding-left: 0.5em;
- }
- }
-
- &.icons {
- cursor: default;
-
- li {
- display: inline-block;
- font-size: 1.25em;
- line-height: 1em;
- padding-left: 0.5em;
-
- &:first-child {
- padding-left: 0;
- }
-
- a, span {
- @include vendor('transition', 'background-color 0.2s ease-in-out');
- border-radius: 100%;
- border: solid 1px _palette(border);
- display: inline-block;
- height: 2em;
- line-height: 2em;
- text-align: center;
- width: 2em;
-
- &:hover {
- background: _palette(border-bg);
- }
- }
- }
- }
-
- &.actions {
- cursor: default;
- text-align: center;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- li {
- display: inline-block;
- padding: 0 0 0 1.5em;
-
- &:first-child {
- padding: 0;
- }
- }
-
- &.vertical {
- li {
- display: block;
- padding: 1.5em 0 0 0;
-
- &:first-child {
- padding: 0;
- }
- }
- }
- }
- }
-
-/* Table */
-
- .table-wrapper {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
-
- table {
- width: 100%;
-
- &.default {
- width: 100%;
-
- tbody {
- tr {
- border-bottom: solid 1px _palette(border);
-
- &:nth-child(2n - 1) {
- background: _palette(border-bg);
- }
- }
- }
-
- td {
- padding: 0.5em 1em 0.5em 1em;
- }
-
- th {
- color: _palette(fg-bold);
- font-size: 0.8em;
- font-weight: 700;
- letter-spacing: 0.125em;
- line-height: 1.75em;
- padding: 0.5em 1em 0.5em 1em;
- text-align: left;
- text-transform: uppercase;
- }
-
- thead {
- border-bottom: solid 1px _palette(border);
- }
- }
- }
-
-/* Button */
-
- input[type="submit"],
- input[type="reset"],
- input[type="button"],
- .button {
- @include vendor('appearance', 'none');
- @include vendor('transition', ('color 0.2s ease-in-out', 'background-color 0.2s ease-in-out'));
- background: _palette(accent2, bg);
- border-radius: _size(border-radius);
- border: 0;
- color: _palette(accent2, fg-bold);
- cursor: pointer;
- display: inline-block;
- font-size: 0.9em;
- font-weight: 700;
- letter-spacing: 0.125em;
- line-height: 3.25em;
- min-width: 15em;
- padding: 0 1.5em;
- text-align: center;
- text-decoration: none;
- text-transform: uppercase;
-
- &:hover {
- background: lighten(_palette(accent2, bg), 10);
- }
-
- &:active {
- background: darken(_palette(accent2, bg), 5);
- }
-
- &.alt {
- background: none;
- box-shadow: inset 0 0 0 1px _palette(border);
- color: _palette(accent2, bg);
-
- &:hover {
- background: _palette(border-bg);
- }
-
- &:active {
- background: _palette(border-bg2);
- }
- }
-
- &.fit {
- width: 100%;
- }
-
- &.small {
- font-size: 0.8em;
- }
- }
-
-/* Box */
-
- .box {
- background: _palette(bg);
- border: solid 1px _palette(border);
- margin-bottom: 6em;
- padding: 3.5em;
-
- &.alt {
- background: none;
- border: none;
- padding: 0;
- }
- }
-
-/* Feature */
-
- .feature {
- position: relative;
- height: 20em;
-
- &:after {
- clear: both;
- content:'';
- display: block;
- }
-
- h3, h4, h5, h6 {
- text-align: inherit;
- }
-
- .image {
- display: inline-block;
- height: 100%;
- overflow: hidden;
- position: relative;
- width: 50%;
-
- img {
- display: block;
- min-height: 100%;
- min-width: 100%;
- position: absolute;
- }
- }
-
- &:before {
- background: blue;
- content: '';
- display: inline-block;
- height: 100%;
- vertical-align: middle;
- }
-
- .content {
- display: inline-block;
- padding: 3.5em;
- vertical-align: middle;
- width: 48%;
-
- h3 {
- margin-bottom: 0.5em;
- }
-
- :last-child {
- margin: 0;
- }
- }
-
- &.left {
- text-align: left;
-
- .image {
- float: left;
-
- img {
- right: 0;
- top: 0;
- }
- }
-
- .content {
- padding-right: 0;
- }
- }
-
- &.right {
- text-align: right;
-
- .image {
- float: right;
-
- img {
- left: 0;
- top: 0;
- }
- }
-
- .content {
- padding-left: 0;
- }
- }
-
- &.long {
- .content {
- padding-top: 0;
- }
- }
- }
-
-/* Header */
-
- #header {
- background-attachment: scroll, scroll, fixed;
- background-image: url('images/top-3200.svg'), url('images/overlay.png'), url('../../images/header.jpg');
- background-position: bottom center, top left, center center;
- background-repeat: repeat-x, repeat, no-repeat;
- background-size: 3200px 460px, auto, cover;
- color: _palette(accent2, fg);
- padding: 10em 0 20em 0;
- position: relative;
- text-align: center;
-
- &:before,
- &:after {
- background: _palette(border);
- content: '';
- left: 50%;
- position: absolute;
- width: 1px;
- z-index: 0;
- }
-
- &:before {
- height: calc(100% - 50px);
- opacity: 0.15;
- top: 0;
- }
-
- &:after {
- bottom: 0;
- height: 50px;
- }
-
- a {
- border-bottom-color: _palette(accent2, fg-light);
- color: _palette(accent2, fg);
-
- &:hover {
- border-bottom-color: transparent;
- color: _palette(accent1, bg);
- }
- }
-
- strong, b {
- color: _palette(accent2, fg-bold);
- }
-
- h1, h2, h3, h4, h5, h6 {
- color: _palette(accent2, fg-bold);
- }
-
- input[type="submit"],
- input[type="reset"],
- input[type="button"],
- .button {
- background: _palette(accent2, fg-bold);
- color: _palette(accent2, bg);
- }
-
- .logo {
- background: _palette(accent1, bg);
- border-radius: 100%;
- color: _palette(accent1, fg-bold);
- cursor: default;
- display: inline-block;
- font-size: 2.25em;
- height: 2.35em;
- line-height: 2.35em;
- margin: 0 0 0.75em 0;
- text-align: center;
- width: 2.35em;
-
- &.fa-paper-plane-o:before {
- left: -0.075em;
- position: relative;
- }
- }
-
- h1 {
- font-size: 2.5em;
- margin: 0;
- }
-
- p {
- font-size: 1.5em;
- line-height: 1.5em;
- margin: 0.25em 0 0 0;
- }
- }
-
-/* Footer */
-
- #footer {
- background-attachment: scroll;
- background-color: _palette(accent1, bg);
- background-image: url('images/bottom-3200.svg');
- background-position: top center;
- background-repeat: repeat-x;
- background-size: 3200px 460px;
- color: _palette(accent1, fg);
-
- /*
- Since the SVG background occupies a lot of vertical space, we'll
- add additional top padding (to move our content out of its way)
- and a negative margin (to move everything up a bit).
- */
- margin-top: -260px;
- padding: calc(460px + 6em) 0 10em 0;
-
- position: relative;
- text-align: center;
-
- &:before {
- background: _palette(border);
- content: '';
- height: calc(460px + 6em);
- left: 50%;
- position: absolute;
- top: 0;
- width: 1px;
- z-index: 0;
- }
-
- a {
- color: _palette(accent1, fg-bold);
- }
-
- strong, b {
- color: _palette(accent1, fg-bold);
- }
-
- h1, h2, h3, h4, h5, h6 {
- color: _palette(accent1, fg-bold);
- }
-
- header {
- p {
- color: _palette(accent1, fg-light);
- }
- }
-
- input[type="submit"],
- input[type="reset"],
- input[type="button"],
- .button {
- background: _palette(accent1, fg-bold);
- box-shadow: inset 0 0 0 1px _palette(accent1, fg-bold);
- color: _palette(accent1, bg);
-
- &:hover {
- background: _palette(border-bg);
- color: _palette(accent1, fg-bold);
- }
- }
-
- input[type="text"],
- input[type="password"],
- input[type="email"],
- select,
- textarea {
- &:focus {
- border-color: _palette(accent1, fg-bold);
- }
- }
-
- .formerize-placeholder {
- color: transparentize(_palette(accent1, fg), 0.5) !important;
- }
-
- form {
- margin: 3em 0;
- }
-
- .copyright {
- color: _palette(accent1, fg-light);
- font-size: 0.8em;
- line-height: 1em;
- margin: 3em 0 0 0;
-
- li {
- border-left: dotted 1px;
- display: inline-block;
- margin-left: 1em;
- padding-left: 1em;
-
- &:first-child {
- padding: 0;
- margin: 0;
- border: 0;
- }
-
- a, span {
- color: inherit;
-
- &:hover {
- color: _palette(accent1, fg-bold);
- }
- }
- }
- }
- }
-
-/* Main */
-
- #main {
- padding: 6em 0 5em 0;
- position: relative;
- z-index: 1;
-
- &:before {
- background: _palette(border);
- content: '';
- height: 100%;
- left: 50%;
- position: absolute;
- top: 0;
- width: 1px;
- z-index: -1;
- }
-
- header.major,
- footer.major {
- background: _palette(bg);
- }
- }
-
-/* Wide */
-
- @include breakpoint(wide) {
-
- /* Basic */
-
- body, input, select, textarea {
- font-size: 14pt;
- }
-
- h2 {
- font-size: 1.5em;
- }
-
- h3 {
- font-size: 1.25em;
- }
-
- /* Section/Article */
-
- header {
- &.major {
- p {
- font-size: 1.25em;
- }
- }
- }
-
- /* Header */
-
- #header {
- padding: 8em 0 16em 0;
-
- h1 {
- font-size: 2.25em;
- }
-
- p {
- font-size: 1.25em;
- line-height: 1.65em;
- }
- }
-
- }
-
-/* Normal */
-
- @include breakpoint(normal) {
-
- /* Basic */
-
- body, input, select, textarea {
- font-size: 13pt;
- }
-
- h2 {
- font-size: 1.35em;
- }
-
- h3 {
- font-size: 1.15em;
- }
-
- /* Section/Article */
-
- header {
- &.major {
- margin-bottom: 4em;
- padding: 3em 0;
-
- p {
- font-size: 1.15em;
- }
- }
- }
-
- footer {
- &.major {
- margin-top: 4em;
- padding: 3em 0;
- }
- }
-
- /* Box */
-
- .box {
- padding: 2.5em;
- margin-bottom: 4em;
- }
-
- /* Feature */
-
- .feature {
- height: 18em;
-
- .content {
- padding: 2.5em;
- }
- }
-
- /* Header */
-
- #header {
- background-attachment: scroll, scroll, scroll;
- background-image: url('images/top-1600.svg'), url('images/overlay.png'), url('../../images/header.jpg');
- background-size: 1600px 230px, auto, cover;
- padding: 6em 0 12em 0;
-
- &:before {
- height: calc(100% - 25px);
- }
-
- &:after {
- height: 25px;
- }
-
- h1 {
- font-size: 2em;
- }
-
- p {
- font-size: 1.15em;
- }
- }
-
- /* Footer */
-
- #footer {
- background-image: url('images/bottom-1600.svg');
- background-size: 1600px 230px;
- margin-top: -100px;
- padding: calc(230px + 4em) 0 6em 0;
-
- &:before {
- height: calc(230px + 4em);
- }
- }
-
- /* Main */
-
- #main {
- padding: 4em 0 3em 0;
- }
-
- }
-
-/* Narrow */
-
- @include breakpoint(narrow) {
-
- /* Basic */
-
- body, input, select, textarea {
- font-size: 12pt;
- }
-
- }
-
-/* Narrower */
-
- @include breakpoint(narrower) {
-
- /* Section/Article */
-
- header {
- &.major {
- padding-left: 2em;
- padding-right: 2em;
- }
- }
-
- footer {
- &.major {
- padding-left: 2em;
- padding-right: 2em;
- }
- }
-
- }
-
-/* Mobile */
-
- @include breakpoint(mobile) {
-
- /* Basic */
-
- h2 {
- font-size: 1em;
- }
-
- h3 {
- font-size: 1em;
- }
-
- /* Section/Article */
-
- header {
- p {
- font-size: 0.8em;
- }
-
- &.major {
- margin-bottom: 2em;
-
- br {
- display: none;
- }
-
- p {
- font-size: 0.8em;
- }
- }
- }
-
- footer {
- &.major {
- margin-top: 2em;
-
- br {
- display: none;
- }
- }
- }
-
- /* List */
-
- ul {
- &.actions {
- li {
- padding: 0 0 0 15px;
- }
-
- &.vertical {
- li {
- padding: 15px 0 0 0;
- }
- }
- }
- }
-
- /* Box */
-
- .box {
- padding: 2em;
- margin-bottom: 2em;
- }
-
- /* Feature */
-
- .feature {
- background: _palette(bg);
- display: block;
- height: auto;
- margin-bottom: 2em;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- &:before,
- &:after {
- display: none;
- }
-
- .image {
- float: none;
- height: 15em;
- width: 100%;
- }
-
- .content {
- border: solid 1px _palette(border);
- padding: 2em !important;
- text-align: center;
- width: 100%;
- }
- }
-
- /* Header */
-
- #header {
- background-image: url('images/top-1280.svg'), url('images/overlay.png'), url('../../images/header.jpg');
- background-size: 1280px 184px, auto, cover;
- padding: 3em 0 7em 0;
-
- &:before {
- height: calc(100% - 20px);
- }
-
- &:after {
- height: 20px;
- }
-
- .logo {
- font-size: 1.5em;
- }
-
- h1 {
- font-size: 1.25em;
- }
-
- p {
- font-size: 1em;
- }
- }
-
- /* Footer */
-
- #footer {
- background-image: url('images/bottom-1280.svg');
- background-size: 1280px 184px;
- margin-top: -75px;
- padding: calc(184px + 2em) 0 2em 0;
-
- &:before {
- height: calc(184px + 2em);
- }
-
- form {
- padding-bottom: 0;
- }
- }
-
- /* Main */
-
- #main {
- padding: 2em 0 2em 0;
- }
-
- }
-
-/* Mobile (Portrait) */
-
- @include breakpoint(mobilep) {
-
- /* Section/Article */
-
- header {
- &.major {
- padding-left: 1em;
- padding-right: 1em;
- }
- }
-
- footer {
- &.major {
- padding-left: 1em;
- padding-right: 1em;
- }
- }
-
- /* List */
-
- ul {
- &.icons {
- li {
- padding: 0.2em;
- }
- }
-
- &.actions {
- li {
- display: block;
- padding: 15px 0 0 0;
-
- &:first-child {
- padding: 0;
- }
- }
- }
- }
-
- /* Button */
-
- input[type="submit"],
- input[type="reset"],
- input[type="button"],
- .button {
- display: block;
- width: 100%;
- }
-
- /* Box */
-
- .box {
- padding: 2em 1em;
- }
-
- /* Feature */
-
- .feature {
- margin-bottom: 1em;
-
- .content {
- padding: 2em 1em !important;
- }
- }
-
- /* Main */
-
- #main {
- padding-left: 1em;
- padding-right: 1em;
- }
-
- /* Footer */
-
- #footer {
- margin-top: -100px;
- padding-left: 1em;
- padding-right: 1em;
-
- .copyright {
- li {
- border: 0;
- display: block;
- margin: 0;
- padding: 0.75em 0 0 0;
- }
- }
- }
-
- /* Header */
-
- #header {
- padding-left: 2em;
- padding-right: 2em;
-
- br {
- display: none;
- }
- }
-
- }
\ No newline at end of file
diff --git a/data/projects/2014-07-05-project-1.yaml b/data/projects/2014-07-05-project-1.yaml
new file mode 100644
index 0000000..87dcd29
--- /dev/null
+++ b/data/projects/2014-07-05-project-1.yaml
@@ -0,0 +1,10 @@
+modalID: 1
+title: Managed Kubernetes Service
+subtitle: Deploy and scale applications across hybrid, private, and public cloud environments with Kubernetes — a leading solution for managing containerized environments.
+date: 2014-07-05
+img: kubernetes.png
+preview: kubernetes.png
+client: Start Bootstrap
+clientLink: "#"
+#category: Graphic Design
+description: Improve application administration in your IT environment by simplifying development, release, and deployment processes. Reduce development and release timeframes, increase software availability and scalability, and optimize IT costs. Kubernetes is the leading solution for deploying, scaling, and managing containerized applications, ensuring they operate in any private or public environment without compromising performance or functionality.
diff --git a/data/projects/2014-07-06-project-2.yaml b/data/projects/2014-07-06-project-2.yaml
new file mode 100644
index 0000000..b295a9f
--- /dev/null
+++ b/data/projects/2014-07-06-project-2.yaml
@@ -0,0 +1,10 @@
+modalID: 2
+title: Cloud Migration Services
+subtitle: StackFocus helps you achieve the benefits of the cloud with expert migration services that go beyond simply moving your infrastructure.
+date: 2014-07-06
+img: cloud-migration.png
+preview: cloud-migration.png
+#client: Start Bootstrap
+clientLink: "#"
+#category: Website Design
+description: "A strategic cloud adoption and application migration plan goes beyond a “lift and shift” approach that just moves your infrastructure to the cloud. Simply moving your infrastructure or changing platforms fails to take advantage of everything cloud-native architecture offers. A comprehensive cloud migration strategy rebuilds your existing infrastructure from the ground up to maximize the full potential of cloud computing."
diff --git a/google002be9168c47f87d.html b/google002be9168c47f87d.html
deleted file mode 100644
index d3e2328..0000000
--- a/google002be9168c47f87d.html
+++ /dev/null
@@ -1 +0,0 @@
-google-site-verification: google002be9168c47f87d.html
\ No newline at end of file
diff --git a/hugo.toml b/hugo.toml
new file mode 100644
index 0000000..22a09b6
--- /dev/null
+++ b/hugo.toml
@@ -0,0 +1,329 @@
+# Site settings
+baseurl = "https://example.org/"
+languageCode = "en-us"
+title = "StackFocus"
+theme = "hugo-agency-theme"
+
+[markup.goldmark.renderer]
+unsafe= true
+
+# Enter your tracking code to enable Google Analytics
+googleAnalytics = ""
+
+[params]
+ # You can use Markdown syntax for urls [text](//url.to/source) or
+ # most longer texts.
+ #
+ # All icons using Fontawesome's icon font. Look at fortawesome.github.io/Font-Awesome/icons/
+ # for more icons. The icons are represented by their corresponding
+ # CSS class.
+
+ # To provide some metadata for search engines feel free to add a few
+ # information about you and your website.
+ name = "StackFocus"
+ description = "StackFocus provides cloud migration and cloud modernization strategy, managed kubernetes and devops expertise."
+ # email = "your@email.com"
+
+ # Link custom assets relative to /static
+ custom_css = ["custom.css"]
+ custom_js = []
+ favicon = "favicon.ico"
+
+ # Possibility to disable external/additional fonts
+ # Exception: Fontawesome
+ disableFonts = false
+
+ # 404 error customization
+ [params.error404]
+ heading = "Page couldn't be found"
+ text = "Please visit [this page](/)"
+
+ # Optional piwik tracking
+ #[params.analytics.piwik]
+ # URL = "https://stats.example.com"
+ # ID = "42"
+ # # Track all subdomains with "*.example.com"
+ # domain = "www.example.com"
+ # # Optional integrity check hash
+ # hash = "sha512-RfeD0pacGTqy9m7U6PgehQfS4cc7SIt+e+P+H5e848kEvB/RW84CUGO3O4O3LNbxjevym6KPUZ8muPsMrI8WIw=="
+
+ # Navigation
+ [params.navigation]
+ brand = "StackFocus"
+ # Optional logo as brand stored in img/
+ logo = "logo.svg"
+ services = "Services"
+ about = "About"
+ contact = "Contact"
+
+ # Add custom links. Those can be pre- and postpended to the default menu above.
+ # Use the weight attribute to order your custom links. Uncomment the example
+ # below and replace the values with your own.
+
+ # prepended links
+ #[[menu.prepend]]
+ # url = "http://gohugo.io"
+ # name = "Hugo"
+ # weight = 10
+
+ # # postpended links
+ # [[menu.postpend]]
+ # url = "http://gohugo.io"
+ # name = "External link"
+ # weight = 10
+
+
+ # Hero section
+ [params.hero]
+ # To change the background image of the hero, replace 'header-bg.jpg' in
+ # the 'static/img' folder.
+ title = "We Are Infrastructure Experts"
+ subtitle = "We’re passionate about automated deployments, 1-click environments, and x-ray vision into performance and health. We know what it takes to enable teams to deliver quickly and reliably around the world."
+ buttonText = "Tell me more"
+
+
+ # Services section
+ [params.services]
+ enable = true
+ title = "Services"
+ subtitle = "The cloud holds immense potential. We help you unlock it by leveraging technological innovation to maximize the cloud’s unique advantages — with minimal disruption to your business. "
+
+ [[params.services.row]]
+
+ [[params.services.row.list]]
+ icon = "fa-code"
+ title = "DevOps Consulting"
+ description = "We’re passionate about automated deployments, 1-click environments, and x-ray vision into performance and health. We can design and implement the right solution for your needs from infrastructure-as-code to continuous integration and deployment to real time monitoring and scaling."
+ url = "#"
+
+ [[params.services.row.list]]
+ icon = "fa-cloud-upload"
+ title = "Cloud Migration"
+ description = "Need help moving from the datacenter to the cloud? Already in the cloud but need to expand or move to a new provider? Ready to take your app global with multi-regional cloud deployments? With experience in all the major cloud providers, our specialists can design the right plan to get you where you need to be."
+ url = "#"
+
+ [[params.services.row.list]]
+ icon = "fa-cogs"
+ title = "DevOps-as-a-Service"
+ description = "Building an in-house DevOps team can be quite a challenge. It’s tough to find people with the right expertise at the right price. Let StackFocus fill that gap. We can provide periodic maintenance, monitoring and optional on-call support at a fraction of the cost of hiring an in-house team."
+ url = "#"
+
+ # Portfolio section
+ [params.portfolio]
+ enable = true
+ # All projects defined in their own files. You can find example projects
+ # at 'exampleSite/data/projects'. Copy the 'projects' folder into the 'data' directory
+ # at the root of this Hugo site.
+ # For more informtion take a look at the README.
+ title = "Portfolio"
+ subtitle = "Lorem ipsum dolor sit amet consectetur."
+
+ [params.portfolio.modal]
+ client = "Client"
+ date = "Date"
+ category = "Category"
+ buttonText = "Close project"
+
+
+ # About section
+ [params.about]
+ enable = true
+ title = "About"
+ subtitle = "The StackFocus Difference"
+ endpoint = "
At StackFocus, we believe that cloud technology is the foundation for business growth and transformation.
We pride ourselves on our customer-centric approach, combined with technical expertise and a deep understanding of the ever-evolving cloud landscape. Our talented team of professionals is committed to ensuring our clients receive innovative solutions to drive agility, scalability, and efficiency.
Our vision is to empower businesses of all sizes to harness the full potential of the cloud, enabling them to stay ahead of the competition and adapt to the demands of the modern digital landscape.
"
+
+ # # The events will be listed from the top to the bottom.
+ # # All images are stored under 'static/img/about'.
+ # # Replace them with your own.
+ # [[params.about.events]]
+ # img = "1.jpg"
+ # date = "2009-2011"
+ # title = "Our Humble Beginnings"
+ # description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!"
+
+ # [[params.about.events]]
+ # img = "2.jpg"
+ # date = "March 2011"
+ # title = "An Agency is Born"
+ # description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!"
+
+ # [[params.about.events]]
+ # img = "3.jpg"
+ # date = "December 2012"
+ # title = "Our Humble Beginnings"
+ # description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!"
+
+ # [[params.about.events]]
+ # img = "4.jpg"
+ # date = "July 2014"
+ # title = "Phase Two Expansion"
+ # description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!"
+
+
+ # Team section
+ [params.team]
+ enable = false
+ # Possibility to center items
+ #center = true
+ title = "Our amazing team"
+ subtitle = "Lorem ipsum dolor sit amet consectetur."
+ description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut eaque, laboriosam veritatis, quos non quis ad perspiciatis, totam corporis ea, alias ut unde."
+
+ # All team member's pictures are stored under 'static/img/team'.
+ # Replace them with your own too.
+ # Suggestion: Image size should be at least 360px*360px or the alignment might be affected.
+ [[params.team.members]]
+ img = "1.jpg"
+ name = "Kay Garland"
+ position = "Lead Designer"
+ reportsTo = "CTO"
+ livesIn = "[Munich, Germany](#some-maps-url)"
+ scope = [
+ "UX for [member dashboard](#)",
+ "Maintainer for [awesome-project](#)",
+ "Open Source [community management](#)"
+ ]
+ # For bio markdown and even multiline strings are available.
+ bio = """Kay is an awesome Lead Designer with heaps of experience in the field of UX.
+She worked at Pied Piper for years until they went belly up."""
+ social = [
+ ["fa-twitter", "#"],
+ ["fa-facebook", "#"],
+ ["fa-linkedin", "#"]
+ ]
+
+ [[params.team.members]]
+ img = "2.jpg"
+ name = "Larry Parker"
+ position = "Lead Marketer"
+ social = [
+ ["fa-twitter", "#"],
+ ["fa-facebook", "#"],
+ ["fa-linkedin", "#"]
+ ]
+
+ [[params.team.members]]
+ img = "3.jpg"
+ name = "Diana Pertersen"
+ position = "Lead Developer"
+ social = [
+ ["fa-twitter", "#"],
+ ["fa-facebook", "#"],
+ ["fa-linkedin", "#"]
+ ]
+
+ # Client section
+ [params.clients_list]
+ enable = false
+ # Possibility to center items
+ #center = true
+ # Optional client title specifying the involvement
+ #title = "Used and trusted by"
+
+ # All the clients' logos are stored under 'static/img/logos'.
+ # Replace them with your clients's logos.
+ # Suggestion: .svg in the size of 280px*80px looks good
+ [[params.clients]]
+ logo = "envato.jpg"
+ link = "#"
+
+ [[params.clients]]
+ logo = "designmodo.jpg"
+ link = "#"
+
+ [[params.clients]]
+ logo = "themeforest.jpg"
+ link = "#"
+
+ [[params.clients]]
+ logo = "creative-market.jpg"
+ link = "#"
+
+ # Contact section
+ [params.contact]
+ enable = true
+ title = "Get in Touch"
+ subtitle = "Feel free to drop us a line and one of our awesome team members will get back to you as soon as possible."
+ buttonText = "Send message"
+ # netlify = true
+
+ # Since this template is static, the contact form uses www.formspree.io as a
+ # proxy. The form makes a POST request to their servers to send the actual
+ # email. Visitors can send up to a 1000 emails each month for free.
+ #
+ # What you need to do for the setup?
+ #
+ # - set your email address under 'email' below
+ # - upload the generated site to your server
+ # - send a dummy email yourself to confirm your account
+ # - click the confirm link in the email from www.formspree.io
+ # - you're done. Happy mailing!
+
+ # It is possible to substitute formspring with other providers
+ # as an example the mailout plugin from caddy.
+ # Provide the post URL for the form and depending on the provider
+ # add some custom JS script to finish the implementation.
+ # postURL = "https://example.com/mailout/"
+
+ email = "sales@stackfocus.org"
+
+ # Success and error message overwrite for async contact form
+ #thanks = "Thank you for awesomely contacting us."
+ #error = "Message could not be send. Please contact us at mail@example.com instead."
+
+ [params.contact.captcha]
+ # sitekey = ""
+
+ # 'warning' defines error messages for invalid inputs
+ [params.contact.form.name]
+ text = "Your Name *"
+ warning = "Please enter your name."
+
+ [params.contact.form.email]
+ text = "Your Email *"
+ warning = "Please enter your email address."
+
+ [params.contact.form.phone]
+ text = "Your Phone *"
+ warning = "Please enter your phone number."
+
+ [params.contact.form.message]
+ text = "Your Message *"
+ warning = "Please enter a message."
+
+ # Add optional form fields to identify contact forms
+ #[[params.contact.form.hidden]]
+ # name = "someID"
+ # value = "example.com"
+ #
+ #[[params.contact.form.hidden]]
+ # Special values for name such as "page" and "site" will be autofilled
+ # name = "page"
+
+ # Footer section
+ [params.footer]
+ enable = true
+ copyright = "© 2023 StackFocus Software, LLC"
+
+ [[params.footer.social]]
+ icon = "fa-twitter"
+ link = "#"
+ title = "Twitter"
+
+ [[params.footer.social]]
+ icon = "fa-facebook"
+ link = "#"
+ title = "Facebook"
+
+ [[params.footer.social]]
+ icon = "fa-linkedin"
+ link = "#"
+ title = "LinkedIn"
+
+ [[params.footer.quicklinks]]
+ text = "Privacy Policy"
+ link = "#"
+
+ [[params.footer.quicklinks]]
+ text = "Terms of Use"
+ link = "#"
diff --git a/images/Kevin.jpg b/images/Kevin.jpg
deleted file mode 100644
index b545a05..0000000
Binary files a/images/Kevin.jpg and /dev/null differ
diff --git a/images/Matt.jpg b/images/Matt.jpg
deleted file mode 100644
index e1a7d4b..0000000
Binary files a/images/Matt.jpg and /dev/null differ
diff --git a/images/header.jpg b/images/header.jpg
deleted file mode 100644
index 194ef14..0000000
Binary files a/images/header.jpg and /dev/null differ
diff --git a/images/pic01.jpg b/images/pic01.jpg
deleted file mode 100644
index 1d7831b..0000000
Binary files a/images/pic01.jpg and /dev/null differ
diff --git a/images/pic02.jpg b/images/pic02.jpg
deleted file mode 100644
index 3364e73..0000000
Binary files a/images/pic02.jpg and /dev/null differ
diff --git a/images/pic03.jpg b/images/pic03.jpg
deleted file mode 100644
index b348fb0..0000000
Binary files a/images/pic03.jpg and /dev/null differ
diff --git a/index.html b/index.html
deleted file mode 100644
index d645791..0000000
--- a/index.html
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
StackFocus - Open-Source Web Applications
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Intuitive, beautiful, open-source:
- It's what we do.
-
-
-
-
-
-
-
-
PostMaster
-
- PostMaster is a beautiful web application to manage domains, users, and aliases on a Linux mail server. With it's responsive user interface and friendly user APIs, Linux mail server management has never been easier.
-
-
-
-
-
-
-
ADReset 2
-
- ADReset 2 is a self-service Active Directory password reset portal. It will allow a user to reset their forgotten password via email, secret questions, and/or 2-step verification codes. Coming to a datacenter near you in the summer of 2016.
-
-
-
-
-
-
-
SwagIP
-
- SwagIP is a small web application that allows you to view your public IP address and HTTP headers from a Linux/Unix CLI, PowerShell, or web browser.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/static/custom.css b/static/custom.css
new file mode 100644
index 0000000..179167f
--- /dev/null
+++ b/static/custom.css
@@ -0,0 +1,51 @@
+header{
+ background-size: auto;
+}
+header .intro-text .intro-lead-in {
+ font-size: 35px;
+ line-height: 20px;
+ text-transform:normal;
+ font-weight:bold;
+ font-style:normal;
+}
+
+header .intro-text .intro-heading {
+ font-size: 20px;
+ line-height: 20px;
+ text-transform:none;
+ font-weight:normal;
+}
+
+.btn-xl {
+ border-color: #23572D;
+ background-color: #23572D;
+}
+.btn-xl:hover {
+ border-color: #2a2a2a;
+ background-color: #2a2a2a;
+}
+.btn-xl:focus {
+ border-color: #2a2a2a;
+ background-color: #2a2a2a;
+}
+
+.text-primary {
+ color: #23572D;
+}
+
+a:hover, a:focus, a:active {
+ color: #23572D;
+}
+
+a {
+ color: #2a2a2a;
+}
+
+#portfolio .portfolio-item .portfolio-link .portfolio-hover {
+ background: #23572D;
+}
+
+.btn-primary, .btn-primary:hover {
+ border-color: #23572D;
+ background-color: #23572D;
+}
\ No newline at end of file
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644
index 0000000..e3a71ca
Binary files /dev/null and b/static/favicon.ico differ
diff --git a/static/img/header-bg.jpg b/static/img/header-bg.jpg
new file mode 100644
index 0000000..2921a5d
Binary files /dev/null and b/static/img/header-bg.jpg differ
diff --git a/static/img/icon.svg b/static/img/icon.svg
new file mode 100644
index 0000000..e7a304a
--- /dev/null
+++ b/static/img/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/img/image.svg b/static/img/image.svg
new file mode 100644
index 0000000..b71cf47
--- /dev/null
+++ b/static/img/image.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/img/logo.svg b/static/img/logo.svg
new file mode 100644
index 0000000..acd9c6c
--- /dev/null
+++ b/static/img/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/img/portfolio/cloud-migration.png b/static/img/portfolio/cloud-migration.png
new file mode 100644
index 0000000..90b4821
Binary files /dev/null and b/static/img/portfolio/cloud-migration.png differ
diff --git a/static/img/portfolio/kubernetes.png b/static/img/portfolio/kubernetes.png
new file mode 100644
index 0000000..cd61728
Binary files /dev/null and b/static/img/portfolio/kubernetes.png differ
diff --git a/themes/hugo-agency-theme b/themes/hugo-agency-theme
new file mode 160000
index 0000000..684beac
--- /dev/null
+++ b/themes/hugo-agency-theme
@@ -0,0 +1 @@
+Subproject commit 684beac7ca6a1db9f2930da46b2e641e30e3bd66
diff --git a/web.config b/web.config
deleted file mode 100644
index 85e4614..0000000
--- a/web.config
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-