')
- .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);
\ No newline at end of file
diff --git a/static/sass/libs/_breakpoints.scss b/static/sass/libs/_breakpoints.scss
deleted file mode 100644
index c5301d8..0000000
--- a/static/sass/libs/_breakpoints.scss
+++ /dev/null
@@ -1,223 +0,0 @@
-// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
-
-// Vars.
-
- /// Breakpoints.
- /// @var {list}
- $breakpoints: () !global;
-
-// Mixins.
-
- /// Sets breakpoints.
- /// @param {map} $x Breakpoints.
- @mixin breakpoints($x: ()) {
- $breakpoints: $x !global;
- }
-
- /// Wraps @content in a @media block targeting a specific orientation.
- /// @param {string} $orientation Orientation.
- @mixin orientation($orientation) {
- @media screen and (orientation: #{$orientation}) {
- @content;
- }
- }
-
- /// Wraps @content in a @media block using a given query.
- /// @param {string} $query Query.
- @mixin breakpoint($query: null) {
-
- $breakpoint: null;
- $op: null;
- $media: null;
-
- // Determine operator, breakpoint.
-
- // Greater than or equal.
- @if (str-slice($query, 0, 2) == '>=') {
-
- $op: 'gte';
- $breakpoint: str-slice($query, 3);
-
- }
-
- // Less than or equal.
- @elseif (str-slice($query, 0, 2) == '<=') {
-
- $op: 'lte';
- $breakpoint: str-slice($query, 3);
-
- }
-
- // Greater than.
- @elseif (str-slice($query, 0, 1) == '>') {
-
- $op: 'gt';
- $breakpoint: str-slice($query, 2);
-
- }
-
- // Less than.
- @elseif (str-slice($query, 0, 1) == '<') {
-
- $op: 'lt';
- $breakpoint: str-slice($query, 2);
-
- }
-
- // Not.
- @elseif (str-slice($query, 0, 1) == '!') {
-
- $op: 'not';
- $breakpoint: str-slice($query, 2);
-
- }
-
- // Equal.
- @else {
-
- $op: 'eq';
- $breakpoint: $query;
-
- }
-
- // Build media.
- @if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
-
- $a: map-get($breakpoints, $breakpoint);
-
- // Range.
- @if (type-of($a) == 'list') {
-
- $x: nth($a, 1);
- $y: nth($a, 2);
-
- // Max only.
- @if ($x == null) {
-
- // Greater than or equal (>= 0 / anything)
- @if ($op == 'gte') {
- $media: 'screen';
- }
-
- // Less than or equal (<= y)
- @elseif ($op == 'lte') {
- $media: 'screen and (max-width: ' + $y + ')';
- }
-
- // Greater than (> y)
- @elseif ($op == 'gt') {
- $media: 'screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Less than (< 0 / invalid)
- @elseif ($op == 'lt') {
- $media: 'screen and (max-width: -1px)';
- }
-
- // Not (> y)
- @elseif ($op == 'not') {
- $media: 'screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Equal (<= y)
- @else {
- $media: 'screen and (max-width: ' + $y + ')';
- }
-
- }
-
- // Min only.
- @else if ($y == null) {
-
- // Greater than or equal (>= x)
- @if ($op == 'gte') {
- $media: 'screen and (min-width: ' + $x + ')';
- }
-
- // Less than or equal (<= inf / anything)
- @elseif ($op == 'lte') {
- $media: 'screen';
- }
-
- // Greater than (> inf / invalid)
- @elseif ($op == 'gt') {
- $media: 'screen and (max-width: -1px)';
- }
-
- // Less than (< x)
- @elseif ($op == 'lt') {
- $media: 'screen and (max-width: ' + ($x - 1) + ')';
- }
-
- // Not (< x)
- @elseif ($op == 'not') {
- $media: 'screen and (max-width: ' + ($x - 1) + ')';
- }
-
- // Equal (>= x)
- @else {
- $media: 'screen and (min-width: ' + $x + ')';
- }
-
- }
-
- // Min and max.
- @else {
-
- // Greater than or equal (>= x)
- @if ($op == 'gte') {
- $media: 'screen and (min-width: ' + $x + ')';
- }
-
- // Less than or equal (<= y)
- @elseif ($op == 'lte') {
- $media: 'screen and (max-width: ' + $y + ')';
- }
-
- // Greater than (> y)
- @elseif ($op == 'gt') {
- $media: 'screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Less than (< x)
- @elseif ($op == 'lt') {
- $media: 'screen and (max-width: ' + ($x - 1) + ')';
- }
-
- // Not (< x and > y)
- @elseif ($op == 'not') {
- $media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
- }
-
- // Equal (>= x and <= y)
- @else {
- $media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
- }
-
- }
-
- }
-
- // String.
- @else {
-
- // Missing a media type? Prefix with "screen".
- @if (str-slice($a, 0, 1) == '(') {
- $media: 'screen and ' + $a;
- }
-
- // Otherwise, use as-is.
- @else {
- $media: $a;
- }
-
- }
-
- }
-
- // Output.
- @media #{$media} {
- @content;
- }
-
- }
\ No newline at end of file
diff --git a/static/sass/libs/_functions.scss b/static/sass/libs/_functions.scss
deleted file mode 100644
index f563aab..0000000
--- a/static/sass/libs/_functions.scss
+++ /dev/null
@@ -1,90 +0,0 @@
-/// 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;
-
-}
-
-/// 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;
-
-}
-
-/// 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/static/sass/libs/_html-grid.scss b/static/sass/libs/_html-grid.scss
deleted file mode 100644
index 7438a8c..0000000
--- a/static/sass/libs/_html-grid.scss
+++ /dev/null
@@ -1,149 +0,0 @@
-// html-grid.scss v1.0 | @ajlkn | MIT licensed */
-
-// Mixins.
-
- /// Initializes the current element as an HTML grid.
- /// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
- /// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
- @mixin html-grid($gutters: 1.5em, $suffix: '') {
-
- // Initialize.
- $cols: 12;
- $multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
- $unit: 100% / $cols;
-
- // Suffixes.
- $suffixes: null;
-
- @if (type-of($suffix) == 'list') {
- $suffixes: $suffix;
- }
- @else {
- $suffixes: ($suffix);
- }
-
- // Gutters.
- $guttersCols: null;
- $guttersRows: null;
-
- @if (type-of($gutters) == 'list') {
-
- $guttersCols: nth($gutters, 1);
- $guttersRows: nth($gutters, 2);
-
- }
- @else {
-
- $guttersCols: $gutters;
- $guttersRows: 0;
-
- }
-
- // Row.
- display: flex;
- flex-wrap: wrap;
- box-sizing: border-box;
- align-items: stretch;
-
- // Columns.
- > * {
- box-sizing: border-box;
- }
-
- // Gutters.
- &.gtr-uniform {
- > * {
- > :last-child {
- margin-bottom: 0;
- }
- }
- }
-
- // Alignment.
- &.aln-left {
- justify-content: flex-start;
- }
-
- &.aln-center {
- justify-content: center;
- }
-
- &.aln-right {
- justify-content: flex-end;
- }
-
- &.aln-top {
- align-items: flex-start;
- }
-
- &.aln-middle {
- align-items: center;
- }
-
- &.aln-bottom {
- align-items: flex-end;
- }
-
- // Step through suffixes.
- @each $suffix in $suffixes {
-
- // Suffix.
- @if ($suffix != '') {
- $suffix: '-' + $suffix;
- }
- @else {
- $suffix: '';
- }
-
- // Row.
-
- // Important.
- > .imp#{$suffix} {
- order: -1;
- }
-
- // Columns, offsets.
- @for $i from 1 through $cols {
- > .col-#{$i}#{$suffix} {
- width: $unit * $i;
- }
-
- > .off-#{$i}#{$suffix} {
- margin-left: $unit * $i;
- }
- }
-
- // Step through multipliers.
- @each $multiplier in $multipliers {
-
- // Gutters.
- $class: null;
-
- @if ($multiplier != 1) {
- $class: '.gtr-' + ($multiplier * 100);
- }
-
- {$class} {
- margin-top: ($guttersRows * $multiplier * -1);
- margin-left: ($guttersCols * $multiplier * -1);
-
- > * {
- padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
- }
-
- // Uniform.
- &.gtr-uniform {
- margin-top: $guttersCols * $multiplier * -1;
-
- > * {
- padding-top: $guttersCols * $multiplier;
- }
- }
-
- }
-
- }
-
- }
-
- }
\ No newline at end of file
diff --git a/static/sass/libs/_mixins.scss b/static/sass/libs/_mixins.scss
deleted file mode 100644
index a331483..0000000
--- a/static/sass/libs/_mixins.scss
+++ /dev/null
@@ -1,78 +0,0 @@
-/// Makes an element's :before pseudoelement a FontAwesome icon.
-/// @param {string} $content Optional content value to use.
-/// @param {string} $category Optional category to use.
-/// @param {string} $where Optional pseudoelement to target (before or after).
-@mixin icon($content: false, $category: regular, $where: before) {
-
- text-decoration: none;
-
- &:#{$where} {
-
- @if $content {
- content: $content;
- }
-
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- display: inline-block;
- font-style: normal;
- font-variant: normal;
- text-rendering: auto;
- line-height: 1;
- text-transform: none !important;
-
- @if ($category == brands) {
- font-family: 'Font Awesome 5 Brands';
- }
- @elseif ($category == solid) {
- font-family: 'Font Awesome 5 Free';
- font-weight: 900;
- }
- @else {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400;
- }
-
- }
-
-}
-
-/// 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';
- }
-
- $x: 0.1em;
-
- @if unit(_size(element-margin)) == 'rem' {
- $x: 0.1rem;
- }
-
- padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
-
-}
-
-/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
-/// @param {string} $svg SVG data URL.
-/// @return {string} Encoded SVG data URL.
-@function svg-url($svg) {
-
- $svg: str-replace($svg, '"', '\'');
- $svg: str-replace($svg, '%', '%25');
- $svg: str-replace($svg, '<', '%3C');
- $svg: str-replace($svg, '>', '%3E');
- $svg: str-replace($svg, '&', '%26');
- $svg: str-replace($svg, '#', '%23');
- $svg: str-replace($svg, '{', '%7B');
- $svg: str-replace($svg, '}', '%7D');
- $svg: str-replace($svg, ';', '%3B');
-
- @return url("data:image/svg+xml;charset=utf8,#{$svg}");
-
-}
\ No newline at end of file
diff --git a/static/sass/libs/_vars.scss b/static/sass/libs/_vars.scss
deleted file mode 100644
index 3358992..0000000
--- a/static/sass/libs/_vars.scss
+++ /dev/null
@@ -1,22 +0,0 @@
-// Misc.
- $misc: (
- z-index-base: 10000
- );
-
-// Duration.
- $duration: (
- navPanel: 0.5s
- );
-
-// Size.
- $size: (
- navPanel: 275px
- );
-
-// Font.
- $font: (
- );
-
-// Palette.
- $palette: (
- );
\ No newline at end of file
diff --git a/static/sass/libs/_vendor.scss b/static/sass/libs/_vendor.scss
deleted file mode 100644
index 6599a3f..0000000
--- a/static/sass/libs/_vendor.scss
+++ /dev/null
@@ -1,376 +0,0 @@
-// vendor.scss v1.0 | @ajlkn | MIT licensed */
-
-// Vars.
-
- /// Vendor prefixes.
- /// @var {list}
- $vendor-prefixes: (
- '-moz-',
- '-webkit-',
- '-ms-',
- ''
- );
-
- /// Properties that should be vendorized.
- /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
- /// @var {list}
- $vendor-properties: (
-
- // Animation.
- 'animation',
- 'animation-delay',
- 'animation-direction',
- 'animation-duration',
- 'animation-fill-mode',
- 'animation-iteration-count',
- 'animation-name',
- 'animation-play-state',
- 'animation-timing-function',
-
- // Appearance.
- 'appearance',
-
- // Backdrop filter.
- 'backdrop-filter',
-
- // Background image options.
- 'background-clip',
- 'background-origin',
- 'background-size',
-
- // Box sizing.
- 'box-sizing',
-
- // Clip path.
- 'clip-path',
-
- // Filter effects.
- 'filter',
-
- // Flexbox.
- 'align-content',
- 'align-items',
- 'align-self',
- 'flex',
- 'flex-basis',
- 'flex-direction',
- 'flex-flow',
- 'flex-grow',
- 'flex-shrink',
- 'flex-wrap',
- 'justify-content',
- 'order',
-
- // Font feature.
- 'font-feature-settings',
- 'font-language-override',
- 'font-variant-ligatures',
-
- // Font kerning.
- 'font-kerning',
-
- // Fragmented borders and backgrounds.
- 'box-decoration-break',
-
- // Grid layout.
- 'grid-column',
- 'grid-column-align',
- 'grid-column-end',
- 'grid-column-start',
- 'grid-row',
- 'grid-row-align',
- 'grid-row-end',
- 'grid-row-start',
- 'grid-template-columns',
- 'grid-template-rows',
-
- // Hyphens.
- 'hyphens',
- 'word-break',
-
- // Masks.
- 'mask',
- 'mask-border',
- 'mask-border-outset',
- 'mask-border-repeat',
- 'mask-border-slice',
- 'mask-border-source',
- 'mask-border-width',
- 'mask-clip',
- 'mask-composite',
- 'mask-image',
- 'mask-origin',
- 'mask-position',
- 'mask-repeat',
- 'mask-size',
-
- // Multicolumn.
- 'break-after',
- 'break-before',
- 'break-inside',
- 'column-count',
- 'column-fill',
- 'column-gap',
- 'column-rule',
- 'column-rule-color',
- 'column-rule-style',
- 'column-rule-width',
- 'column-span',
- 'column-width',
- 'columns',
-
- // Object fit.
- 'object-fit',
- 'object-position',
-
- // Regions.
- 'flow-from',
- 'flow-into',
- 'region-fragment',
-
- // Scroll snap points.
- 'scroll-snap-coordinate',
- 'scroll-snap-destination',
- 'scroll-snap-points-x',
- 'scroll-snap-points-y',
- 'scroll-snap-type',
-
- // Shapes.
- 'shape-image-threshold',
- 'shape-margin',
- 'shape-outside',
-
- // Tab size.
- 'tab-size',
-
- // Text align last.
- 'text-align-last',
-
- // Text decoration.
- 'text-decoration-color',
- 'text-decoration-line',
- 'text-decoration-skip',
- 'text-decoration-style',
-
- // Text emphasis.
- 'text-emphasis',
- 'text-emphasis-color',
- 'text-emphasis-position',
- 'text-emphasis-style',
-
- // Text size adjust.
- 'text-size-adjust',
-
- // Text spacing.
- 'text-spacing',
-
- // Transform.
- 'transform',
- 'transform-origin',
-
- // Transform 3D.
- 'backface-visibility',
- 'perspective',
- 'perspective-origin',
- 'transform-style',
-
- // Transition.
- 'transition',
- 'transition-delay',
- 'transition-duration',
- 'transition-property',
- 'transition-timing-function',
-
- // Unicode bidi.
- 'unicode-bidi',
-
- // User select.
- 'user-select',
-
- // Writing mode.
- 'writing-mode',
-
- );
-
- /// Values that should be vendorized.
- /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
- /// @var {list}
- $vendor-values: (
-
- // Cross fade.
- 'cross-fade',
-
- // Element function.
- 'element',
-
- // Filter function.
- 'filter',
-
- // Flexbox.
- 'flex',
- 'inline-flex',
-
- // Grab cursors.
- 'grab',
- 'grabbing',
-
- // Gradients.
- 'linear-gradient',
- 'repeating-linear-gradient',
- 'radial-gradient',
- 'repeating-radial-gradient',
-
- // Grid layout.
- 'grid',
- 'inline-grid',
-
- // Image set.
- 'image-set',
-
- // Intrinsic width.
- 'max-content',
- 'min-content',
- 'fit-content',
- 'fill',
- 'fill-available',
- 'stretch',
-
- // Sticky position.
- 'sticky',
-
- // Transform.
- 'transform',
-
- // Zoom cursors.
- 'zoom-in',
- 'zoom-out',
-
- );
-
-// 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;
-
- }
-
-// Mixins.
-
- /// 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; }
-
- }
-
- /// 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/static/sass/main.scss b/static/sass/main.scss
deleted file mode 100644
index 76e1578..0000000
--- a/static/sass/main.scss
+++ /dev/null
@@ -1,1195 +0,0 @@
-@import 'libs/vars';
-@import 'libs/functions';
-@import 'libs/mixins';
-@import 'libs/vendor';
-@import 'libs/breakpoints';
-@import 'libs/html-grid';
-@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,600,600italic,700');
-@import url('fontawesome-all.min.css');
-
-/*
- Miniport by HTML5 UP
- html5up.net | @ajlkn
- Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-*/
-
-// Breakpoints.
-
- @include breakpoints((
- xlarge: ( 1281px, 1680px ),
- large: ( 981px, 1280px ),
- medium: ( 737px, 980px ),
- small: ( null, 736px )
- ));
-
-// Reset.
-// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: 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;
-
- &:before,
- &:after {
- content: '';
- content: none;
- }
- }
-
- table {
- border-collapse: collapse;
- border-spacing: 0;
- }
-
- body {
- -webkit-text-size-adjust: none;
- }
-
- mark {
- background-color: transparent;
- color: inherit;
- }
-
- input::-moz-focus-inner {
- border: 0;
- padding: 0;
- }
-
- input, select, textarea {
- -moz-appearance: none;
- -webkit-appearance: none;
- -ms-appearance: none;
- appearance: none;
- }
-
-/* Basic */
-
- // Set box model to border-box.
- // Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
- html {
- box-sizing: border-box;
- }
-
- *, *:before, *:after {
- box-sizing: inherit;
- }
-
- body {
- padding-top: 3.5em;
-
- // Stops initial animations until page loads.
- &.is-preload {
- *, *:before, *:after {
- @include vendor('animation', 'none !important');
- @include vendor('transition', 'none !important');
- }
- }
-
- }
-
- body, input, textarea, select {
- font-family: 'Open Sans', sans-serif;
- line-height: 1.85em;
- color: #888;
- font-weight: 300;
- font-size: 13pt;
-
- }
-
- a {
- @include vendor('transition', 'color .2s ease-in-out');
- color: #43B3E0;
- text-decoration: underline;
-
- &:hover {
- color: #43bff0 !important;
- }
-
- img {
- border: 0;
- }
- }
-
- b, strong {
- font-weight: 600;
- color: #3e3e3e;
- }
-
- i, em {
- font-style: italic;
- }
-
- sub {
- position: relative;
- top: 0.5em;
- font-size: 0.8em;
- }
-
- sup {
- position: relative;
- top: -0.5em;
- font-size: 0.8em;
- }
-
- blockquote {
- border-left: solid 0.75em #eee;
- padding: 1em 0 1em 1.5em;
- font-style: italic;
- }
-
- h1, h2, h3, h4, h5, h6 {
- color: #3e3e3e;
- margin: 0 0 0.75em 0;
- }
-
- h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
- text-decoration: none;
- color: inherit;
- }
-
- h2, h3, h4, h5, h6 {
- font-weight: 700;
- }
-
- h1 {
- font-size: 3.25em;
- letter-spacing: -0.025em;
- font-weight: 300;
-
- strong {
- font-weight: 700;
- }
- }
-
- h2 {
- font-size: 2em;
- letter-spacing: -0.015em;
- }
-
- h3 {
- font-size: 1.5em;
- letter-spacing: -0.015em;
- }
-
- em, i {
- font-style: italic;
- }
-
- br.clear {
- clear: both;
- }
-
- hr {
- border: 0;
- border-top: solid 1px #444;
- border-top-color: rgba(0, 0, 0, 0.35);
- box-shadow: 0px 1px 0px 0px rgba(255, 255, 255, 0.1);
- height: 1px;
- margin: 3em 0;
- }
-
- p, ul, ol, dl, table {
- margin-bottom: 2em;
- }
-
- header {
- margin: 0 0 3em 0;
-
- > p {
- font-size: 1.25em;
- margin: 0;
- }
- }
-
- footer {
- margin: 3em 0 0 0;
-
- > p {
- font-size: 1.25em;
- }
- }
-
-/* Container */
-
- .container {
- margin: 0 auto;
- max-width: calc(100% - 50px);
- width: 1200px;
-
- &.medium {
- width: (1200px * 0.75);
- }
-
- @include breakpoint('<=xlarge') {
- width: 1200px;
-
- &.medium {
- width: (1200px * 0.75);
- }
- }
-
- @include breakpoint('<=large') {
- width: 960px;
-
- &.medium {
- width: (960px * 0.75);
- }
- }
-
- @include breakpoint('<=medium') {
- width: 100%;
-
- &.medium {
- width: (100% * 0.75);
- }
- }
-
- @include breakpoint('<=small') {
- width: 100%;
- max-width: calc(100% - 30px);
-
- &.medium {
- width: 100%;
- }
- }
- }
-
-/* Row */
-
- .row {
- @include html-grid((25px, 25px));
-
- @include breakpoint('<=xlarge') {
- @include html-grid((25px, 25px), 'xlarge');
- }
-
- @include breakpoint('<=large') {
- @include html-grid((25px, 25px), 'large');
- }
-
- @include breakpoint('<=medium') {
- @include html-grid((25px, 25px), 'medium');
- }
-
- @include breakpoint('<=small') {
- @include html-grid((15px, 15px), 'small');
- }
- }
-
-/* Form */
-
- form {
- label {
- color: #3e3e3e;
- font-weight: 700;
- display: block;
- margin: 0 0 0.5em 0;
- }
-
- input[type=text],
- input[type=email],
- input[type=password],
- select,
- textarea {
- @include vendor('transition', ('background .2s ease-in-out', 'box-shadow .2s ease-in-out'));
- -webkit-appearance: none;
- display: block;
- border: 0;
- padding: 0.75em;
- font-size: 1em;
- border-radius: 8px;
- border: solid 1px #ddd;
- background: #fff;
- color: #bbb;
- box-shadow: inset 0px 2px 3px 1px rgba(0, 0, 0, 0.05), 0px 1px 0px 0px rgba(255, 255, 255, 0.025);
- width: 100%;
-
- &:focus {
- background: #fafafa;
- box-shadow: inset 0px 2px 5px 0px rgba(0, 0, 0, 0.05), 0px 1px 0px 0px rgba(255, 255, 255, 0.025), inset 0px 0px 2px 1px #43bff0;
- }
- }
-
- textarea {
- height: 15em;
- }
-
- .actions {
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- ::-webkit-input-placeholder {
- color: #555 !important;
- }
-
- :-moz-placeholder {
- color: #555 !important;
- }
-
- ::-moz-placeholder {
- color: #555 !important;
- }
-
- :-ms-input-placeholder {
- color: #555 !important;
- }
-
- ::-moz-focus-inner {
- border: 0;
- }
- }
-
-/* Tables */
-
- table {
- width: 100%;
-
- &.default {
- width: 100%;
-
- tr {
- border-top: solid 1px #eee;
-
- &:first-child {
- border-top: 0;
- }
- }
-
- td {
- padding: 0.5em 1em 0.5em 1em;
- }
-
- th {
- text-align: left;
- padding: 0.5em 1em 0.5em 1em;
- font-weight: 600;
- margin: 0 0 1em 0;
- }
-
- thead {
- background: #4f4f4f;
- color: #fff;
- }
- }
- }
-
-/* Section/Article */
-
- section, article {
- margin-bottom: 3em;
- }
-
- section > :last-child,
- article > :last-child,
- section:last-child,
- article:last-child {
- margin-bottom: 0;
- }
-
-/* Image */
-
- .image {
- display: inline-block;
- position: relative;
-
- img {
- display: block;
- width: 100%;
- }
-
- &.fit {
- display: block;
- width: 100%;
- }
-
- &.featured {
- display: block;
- width: 100%;
- margin: 0 0 2em 0;
- }
-
- &.left {
- float: left;
- margin: 0 2em 2em 0;
- }
-
- &.centered {
- display: block;
- margin: 0 0 2em 0;
-
- img {
- margin: 0 auto;
- width: auto;
- }
- }
- }
-
-/* Button */
-
- input[type="button"],
- input[type="submit"],
- input[type="reset"],
- button,
- .button {
- @include vendor('background-image', ('url("images/bg.png")', 'linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2))'));
- @include vendor('transition', 'background-color .2s ease-in-out');
- -webkit-appearance: none;
- position: relative;
- display: inline-block;
- color: #fff !important;
- text-decoration: none;
- font-weight: 700;
- border: 0;
- outline: 0;
- cursor: pointer;
- border-radius: 8px;
- text-shadow: -1px -1px 0.5px rgba(0, 0, 0, 0.5);
- overflow: hidden;
- box-shadow: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.5), inset 0px 2px 1px 0px rgba(255, 255, 255, 0.75);
- background-color: #43B3E0;
- padding: 1em 2.35em 1em 2.35em;
- font-size: 1.1em;
- max-width: 24em;
-
- &:hover {
- background-color: #43bff0;
- color: #fff !important;
- }
-
- &:active {
- background-color: #3BA8D3;
- top: 1px;
- }
-
- &.large {
- font-size: 1.5em;
- letter-spacing: -0.025em;
- }
-
- &.alt {
- background-color: #444;
- box-shadow: inset 0px 0px 0px 1px #242424, inset 0px 2px 1px 0px rgba(255, 255, 255, 0.2);
-
- &:hover {
- background-color: #4f4f4f;
- color: #fff !important;
- }
-
- &:active {
- background-color: #3f3f3f;
- }
- }
- }
-
-/* List */
-
- ul {
- list-style: disc;
- padding-left: 1em;
-
- li {
- padding-left: 0.5em;
- }
-
- }
-
- ol {
- list-style: decimal;
- padding-left: 1.25em;
-
- li {
- padding-left: 0.25em;
- }
- }
-
-/* Social */
-
- ul.social {
- cursor: default;
- margin: 0;
- list-style: none;
- padding-left: 0;
-
- li {
- position: relative;
- display: inline-block;
- margin: 0.25em;
- top: 0;
- padding-left: 0;
-
- a {
- @include vendor('transition', 'top .2s ease-in-out');
- display: block;
- width: 48px;
- height: 48px;
- border-radius: 6px;
- top: 0;
- position: relative;
-
- &:before {
- @include vendor('background-image', ('url("images/bg.png")', 'linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2))'));
- @include vendor('transition', 'background-color .2s ease-in-out');
- background-color: #444;
- border-radius: 6px;
- box-shadow: inset 0px 0px 0px 1px #282828, inset 0px 2px 1px 0px rgba(255, 255, 255, 0.1);
- color: #2E2E2E !important;
- display: block;
- font-size: 26px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- outline: 0;
- overflow: hidden;
- text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.1);
- width: 48px;
- }
-
- &.fa-twitter {
- background-color: #2DAAE4;
- }
-
- &.fa-facebook-f {
- background-color: #3C5A98;
- }
-
- &.fa-dribbble {
- background-color: #C4376B;
- }
-
- &.fa-linkedin-in {
- background-color: #006599;
- }
-
- &.fa-tumblr {
- background-color: #51718A;
- }
-
- &.fa-google-plus {
- background-color: #DA2713;
- }
-
- &.fa-github {
- background-color: #FAFAFA;
- }
-
- &.fa-rss {
- background-color: #F2600B;
- }
-
- &.fa-instagram {
- background-color: #E0D7C8;
- }
-
- &.fa-foursquare {
- background-color: #39A3D4;
- }
-
- &.fa-skype {
- background-color: #10BEF1;
- }
-
- &.fa-soundcloud {
- background-color: #FE5419;
- }
-
- &.fa-youtube {
- background-color: #BF2E25;
- }
-
- &.fa-blogger {
- background-color: #FF6501;
- }
-
- &.fa-flickr {
- background-color: #0062DB;
- }
-
- &.fa-vimeo {
- background-color: #4C8AB0;
- }
-
- &:hover {
- top: -5px;
-
- &:before {
- background-color: transparent;
- }
- }
- }
- }
- }
-
-/* Actions */
-
- ul.actions {
- list-style: none;
- padding-left: 0;
-
- li {
- display: inline-block;
- margin: 0 0 0 1em;
- padding-left: 0;
-
- &:first-child {
- margin-left: 0;
- }
- }
- }
-
-/* Box */
-
- .box {
- background: #fff;
- box-shadow: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15), 0px 2px 3px 0px rgba(0, 0, 0, 0.1);
- text-align: center;
- padding: 2em;
-
- &.style1 {
- padding: 3em 2em 3.5em 2em;
-
- h3 {
- margin-bottom: 0.5em;
- }
- }
-
- &.style2 {
- h3 {
- margin-bottom: 0.25em;
- }
-
- .image {
- position: relative;
- left: 2em;
- top: 2em;
- margin: -4em 0 4em -4em;
- width: auto;
- }
- }
- }
-
-/* Icons */
-
- .icon {
- @include icon;
- text-decoration: none;
-
- &:before {
- font-size: 1.25em;
- }
-
- > .label {
- display: none;
- }
-
- &.solid {
- &:before {
- font-weight: 900;
- }
- }
-
- &.brands {
- &:before {
- font-family: 'Font Awesome 5 Brands';
- }
- }
-
- &.featured {
- color: #EA8A95;
- display: block;
- margin: 0 0 1.5em 0;
- cursor: default;
-
- &:before {
- font-size: 6em;
- }
- }
- }
-
-/* Wrappers */
-
- .wrapper {
- background-image: url('images/bg.png');
- box-shadow: inset 0px 1px 0px 0px rgba(0, 0, 0, 0.05), inset 0px 2px 3px 0px rgba(0, 0, 0, 0.1);
- padding: 8em 0 8em 0;
- text-align: center;
-
- &.style1 {
- background-image: none;
- background-color: #fff;
- }
-
- &.style2 {
- background-color: #fafafa;
- text-shadow: 1px 1px 0px #fff;
- }
-
- &.style3 {
- background-color: #f4f4f4;
- text-shadow: 1px 1px 0px #fff;
- }
-
- &.style4 {
- background-color: #303030;
- color: #999;
- text-shadow: -1px -1px 0px #181818;
-
- h1, h2, h3, h4, h5, h6 {
- color: #fff;
- }
-
- form {
- input[type=text],
- input[type=password],
- select,
- textarea {
- border: none;
- background: #282828;
-
- &:focus {
- background: #252525;
- }
- }
- }
- }
- }
-
-/* Nav */
-
- #nav {
- background-color: #282828;
- text-align: center;
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- z-index: 10000;
- cursor: default;
- height: 3.5em;
- line-height: 3.5em;
-
- ul {
- margin-bottom: 0;
- list-style: none;
- padding-left: 0;
- }
-
- li {
- display: inline-block;
- padding-left: 0;
- }
-
- a {
- @include vendor('transition', 'background-color .2s ease-in-out');
- position: relative;
- display: block;
- color: #fff;
- text-decoration: none;
- outline: 0;
- font-weight: 600;
- border-radius: 8px;
- color: #fff;
- height: 2.5em;
- line-height: 2.5em;
- padding: 0 1.25em;
-
- &:hover {
- color: #fff !important;
- background: #383838;
- }
-
- &.active {
- background: #484848;
-
- &:before {
- content: '';
- display: block;
- position: absolute;
- bottom: -0.6em;
- left: 50%;
- margin-left: -0.75em;
- border-left: solid 0.75em transparent;
- border-right: solid 0.75em transparent;
- border-top: solid 0.6em #282828;
- }
- }
- }
- }
-
-/* Articles */
-
- body > article {
- margin-bottom: 0;
- }
-
- #top {
- padding: 10em 0 10em 0;
- text-align: left;
-
- .image {
- border-radius: 100%;
- width: 20em;
- height: 20em;
- margin: 0;
-
- img {
- border-radius: 100%;
- }
- }
-
- h1 {
- margin-top: 0.35em;
- }
-
- p {
- font-size: 1.5em;
- line-height: 1.75em;
-
- a {
- color: inherit;
- }
- }
- }
-
- #contact {
- footer {
- font-size: 0.9em;
- }
- }
-
-/* Copyright */
-
- #copyright {
- color: #666;
- font-size: 1em;
- line-height: 1em;
- list-style: none;
- padding-left: 0;
- margin-bottom: 0;
-
- li {
- display: inline-block;
- border-left: solid 1px rgba(0, 0, 0, 0.5);
- box-shadow: -1px 0px 0px 0px rgba(255, 255, 255, 0.1);
- padding: 0 0 0 1em;
- margin: 0 0 0 1em;
-
- &:first-child {
- border: 0;
- box-shadow: none;
- padding-left: 0;
- margin-left: 0;
- }
- }
-
- a {
- @include vendor('transition', 'color .2s ease-in-out');
- color: inherit;
-
- &:hover {
- color: #777;
- }
- }
- }
-
-/* Large */
-
- @include breakpoint('<=large') {
-
- /* Basic */
-
- body {
- font-size: 11pt;
- }
-
- input, textarea, select {
- font-size: 11pt;
- }
-
- header {
- margin: 0 0 4em 0;
- }
-
- /* Wrappers */
-
- .wrapper {
- padding: 5em 0 5em 0;
- text-align: center;
-
- &.style4 {
- .row-special {
- margin: 2em 0 0 0;
- padding: 2em 0 2em 0;
- }
- }
- }
-
- /* Articles */
-
- #top {
- padding: 8em 0;
-
- .image {
- width: 24em;
- height: 24em;
- margin: 0;
- }
- }
-
- }
-
-/* Medium */
-
- @include breakpoint('<=medium') {
-
- /* Articles */
-
- #top {
- text-align: center;
- padding: 5em 0;
-
- .image {
- margin: 0 auto 2em auto;
- }
- }
-
- }
-
-/* Small */
-
- @include breakpoint('<=small') {
-
- /* Basic */
-
- body {
- padding-top: 44px;
- }
-
- body, input, textarea, select {
- line-height: 1.75em;
- font-size: 10pt;
- letter-spacing: 0;
- }
-
- h1, h2, h3, h4, h5, h6 {
- font-size: 1.25em;
- margin: 0 0 0.4em 0;
- }
-
- h1 {
- font-size: 2.25em;
- line-height: 1.25em;
- }
-
- header {
- margin: 0 0 2em 0;
-
- > p {
- font-size: 1.25em;
- }
- }
-
- footer {
- margin: 2.5em 0 0 0;
-
- > p {
- font-size: 1.25em;
- }
- }
-
- hr {
- margin: 1.5em 0 2em 0;
- }
-
- /* Section/Article */
-
- section, article {
- clear: both;
- }
-
- /* Button */
-
- input[type="button"],
- input[type="submit"],
- input[type="reset"],
- button,
- .button {
- text-align: center;
- font-size: 1.2em;
- width: 100%;
- padding: 1em 0 1em 0;
-
- &.large {
- font-size: 1.2em;
- letter-spacing: 0;
- }
- }
-
- /* Social */
-
- ul.social {
- padding: 1em 0.5em 0 0.5em;
-
- li {
- margin: 0.5em 0.5em 0.5em 0.5em;
-
- a {
- top: 0 !important;
-
- &:before {
- background-color: transparent !important;
- }
- }
- }
- }
-
- /* Actions */
-
- ul.actions {
- margin: 0;
-
- li {
- display: block;
- margin: 15px 0 0 0;
-
- &:first-child {
- margin-top: 0;
- }
- }
- }
-
- /* Box */
-
- .box {
- padding: 30px 20px 30px 20px;
- margin: 0 0 20px 0 !important;
-
- h3 {
- margin-bottom: 0.25em;
- }
-
- .image {
- &.centered {
- margin-bottom: 1em;
- }
-
- &.featured {
- position: relative;
- left: 20px;
- top: 20px;
- margin: -50px 0 50px -40px;
- width: auto;
- }
- }
-
- &.style1 {
- max-width: 32em;
- margin-left: auto !important;
- margin-right: auto !important;
- }
-
- &.style2 {
- max-width: 32em;
- margin-left: auto !important;
- margin-right: auto !important;
- }
- }
-
- /* Wrappers */
-
- .wrapper {
- padding: 3em 0;
- text-align: center;
- }
-
- /* Nav */
- #nav {
- height: 44px;
- line-height: 44px;
-
- a {
- padding: 0 0.75em;
- height: inherit;
- line-height: inherit;
- border-radius: 0;
-
- &:hover {
- background-color: transparent;
- }
- }
- }
-
- /* Articles */
-
- #top {
- padding: 3em 0;
-
- .image {
- width: 15em;
- height: 15em;
- margin-bottom: 0;
- }
-
- p {
- font-size: 1em;
- }
- }
-
- #contact {
- footer {
- margin: 0;
- }
- }
-
- /* Copyright */
-
- #copyright {
- font-size: 1em;
- margin: 0;
-
- li {
- display: block;
- margin: 1em 0 0 0;
- padding: 0;
- box-shadow: none;
- border-left: 0;
-
- &:first-child {
- margin-top: 0;
- }
- }
- }
-
- }
\ No newline at end of file
diff --git a/static/webfonts/fa-brands-400.eot b/static/webfonts/fa-brands-400.eot
deleted file mode 100644
index cba6c6c..0000000
Binary files a/static/webfonts/fa-brands-400.eot and /dev/null differ
diff --git a/static/webfonts/fa-brands-400.svg b/static/webfonts/fa-brands-400.svg
deleted file mode 100644
index b9881a4..0000000
--- a/static/webfonts/fa-brands-400.svg
+++ /dev/null
@@ -1,3717 +0,0 @@
-
-
-
diff --git a/static/webfonts/fa-brands-400.ttf b/static/webfonts/fa-brands-400.ttf
deleted file mode 100644
index 8d75ded..0000000
Binary files a/static/webfonts/fa-brands-400.ttf and /dev/null differ
diff --git a/static/webfonts/fa-brands-400.woff b/static/webfonts/fa-brands-400.woff
deleted file mode 100644
index 3375bef..0000000
Binary files a/static/webfonts/fa-brands-400.woff and /dev/null differ
diff --git a/static/webfonts/fa-brands-400.woff2 b/static/webfonts/fa-brands-400.woff2
deleted file mode 100644
index d0b8f69..0000000
Binary files a/static/webfonts/fa-brands-400.woff2 and /dev/null differ
diff --git a/static/webfonts/fa-regular-400.eot b/static/webfonts/fa-regular-400.eot
deleted file mode 100644
index a4e5989..0000000
Binary files a/static/webfonts/fa-regular-400.eot and /dev/null differ
diff --git a/static/webfonts/fa-regular-400.svg b/static/webfonts/fa-regular-400.svg
deleted file mode 100644
index 463af27..0000000
--- a/static/webfonts/fa-regular-400.svg
+++ /dev/null
@@ -1,801 +0,0 @@
-
-
-
diff --git a/static/webfonts/fa-regular-400.ttf b/static/webfonts/fa-regular-400.ttf
deleted file mode 100644
index 7157aaf..0000000
Binary files a/static/webfonts/fa-regular-400.ttf and /dev/null differ
diff --git a/static/webfonts/fa-regular-400.woff b/static/webfonts/fa-regular-400.woff
deleted file mode 100644
index ad077c6..0000000
Binary files a/static/webfonts/fa-regular-400.woff and /dev/null differ
diff --git a/static/webfonts/fa-regular-400.woff2 b/static/webfonts/fa-regular-400.woff2
deleted file mode 100644
index 2eca12b..0000000
Binary files a/static/webfonts/fa-regular-400.woff2 and /dev/null differ
diff --git a/static/webfonts/fa-solid-900.eot b/static/webfonts/fa-solid-900.eot
deleted file mode 100644
index e994171..0000000
Binary files a/static/webfonts/fa-solid-900.eot and /dev/null differ
diff --git a/static/webfonts/fa-solid-900.svg b/static/webfonts/fa-solid-900.svg
deleted file mode 100644
index 00296e9..0000000
--- a/static/webfonts/fa-solid-900.svg
+++ /dev/null
@@ -1,5034 +0,0 @@
-
-
-
diff --git a/static/webfonts/fa-solid-900.ttf b/static/webfonts/fa-solid-900.ttf
deleted file mode 100644
index 25abf38..0000000
Binary files a/static/webfonts/fa-solid-900.ttf and /dev/null differ
diff --git a/static/webfonts/fa-solid-900.woff b/static/webfonts/fa-solid-900.woff
deleted file mode 100644
index 23ee663..0000000
Binary files a/static/webfonts/fa-solid-900.woff and /dev/null differ
diff --git a/static/webfonts/fa-solid-900.woff2 b/static/webfonts/fa-solid-900.woff2
deleted file mode 100644
index c20c7f4..0000000
Binary files a/static/webfonts/fa-solid-900.woff2 and /dev/null differ
diff --git a/static/webfonts/fa-v4compatibility.woff2 b/static/webfonts/fa-v4compatibility.woff2
deleted file mode 100644
index 275e92f..0000000
Binary files a/static/webfonts/fa-v4compatibility.woff2 and /dev/null differ
diff --git a/templates/home.pt b/templates/home.pt
index d1c2b6f..dbd7834 100644
--- a/templates/home.pt
+++ b/templates/home.pt
@@ -1,76 +1,72 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
- Home
+ Home
-
-
-
+
+
+
-
-
-
-
-
-
-

-
- ${page.title}
- ${page.description}
-
-
-
-
-
-
+
+
+
+ ${page.title}_
+ ${page.description}
-
-
-
+
+
+
+
+
+ pyjoke
+
+
+
$pyjoke
+
+
+
-
-
-
-
-
-
-
-
-
- The UK's annual Python conference
-
-
-
-
-
-
- Europe's longest-running community-driven Python conference
-
-
-
-
-
-
- The charitable organisation behind the Python programming language
-
-
-
-
-
+ pip install pyjokes
-
\ No newline at end of file
+
+
+
+
+
+
+
Friends of pyjokes
+
+
+
+
+
+ The UK's annual Python conference
+
+
+
+
+ Europe's longest-running community-driven Python conference
+
+
+
+
+ The charitable organisation behind the Python programming language
+
+
+
+
+
+
diff --git a/templates/layout.pt b/templates/layout.pt
index 847ab0d..e73edfc 100644
--- a/templates/layout.pt
+++ b/templates/layout.pt
@@ -1,73 +1,111 @@
-
-
-
-
- Pyjokes -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Follow us on social media
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+ pyjokes —
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/page.pt b/templates/page.pt
index ce17d03..efd3c29 100644
--- a/templates/page.pt
+++ b/templates/page.pt
@@ -1,30 +1,27 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
- ${page.title}
+ ${page.title}
-
-
-
-
-
-

-
-
-
-
+
+
+
+
\ No newline at end of file
+
+
+
+