From 76a963d7d8d8f56320eaa9f12676b29a23f4c75c Mon Sep 17 00:00:00 2001
From: Jonas Leder <jonas@jonasled.de>
Date: Mon, 11 Jan 2021 14:10:09 +0100
Subject: [PATCH] starting implementation of scss

---
 .dockerignore         |   1 +
 .gitignore            |   5 +-
 Dockerfile            |  13 +-
 public/css/style.css  | 478 ------------------------------------------
 public/yarn-error.log |  37 ++++
 public/yarn.lock      |   4 +
 scss/style.scss       | 477 +++++++++++++++++++++++++++++++++++++++++
 7 files changed, 534 insertions(+), 481 deletions(-)
 create mode 100644 .dockerignore
 delete mode 100644 public/css/style.css
 create mode 100644 public/yarn-error.log
 create mode 100644 public/yarn.lock
 create mode 100644 scss/style.scss

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..62c8935
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+.idea/
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 7aae344..5d7ab2d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,7 @@
 public/internal/config.php
 
 #phpstorm
-.idea/
\ No newline at end of file
+.idea/
+
+#node
+node_modules/
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 1616c6d..db9cefa 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,3 +1,12 @@
+# Bootstrap CSS
+FROM ruby:latest AS build-env
+WORKDIR /build
+COPY . /build
+RUN gem install sass
+RUN sass --update scss:public/css
+
+
+# Prepare Webserver
 ARG INSTALL_CRON=0
 ARG INSTALL_COMPOSER=0
 ARG PHP_VERSION
@@ -12,7 +21,7 @@ FROM thecodingmachine/php:8.0-v4-slim-apache
 # |
 
 USER root
-RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh
+RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && a2enmod headers
 USER docker
 
 # |--------------------------------------------------------------------------
@@ -41,4 +50,4 @@ ENV APACHE_RUN_USER=www-data \
 # |--------------------------------------------------------------------------
 # | Add php files of website
 # |--------------------------------------------------------------------------
-COPY ./public /var/www/html
\ No newline at end of file
+COPY --from=build-env /build/public /var/www/html
\ No newline at end of file
diff --git a/public/css/style.css b/public/css/style.css
deleted file mode 100644
index 6cf7bfb..0000000
--- a/public/css/style.css
+++ /dev/null
@@ -1,478 +0,0 @@
-@media all {
-    div,
-    h1,
-    p {
-        margin: 0;
-        padding: 0;
-        border: 0;
-        font-size: 100%;
-        vertical-align: baseline;
-    }
-    * {
-        -webkit-box-sizing: border-box;
-        -moz-box-sizing: border-box;
-        box-sizing: border-box;
-    }
-    *:before,
-    *:after {
-        -webkit-box-sizing: border-box;
-        -moz-box-sizing: border-box;
-        box-sizing: border-box;
-    }
-    div {
-        zoom: 1;
-    }
-    div:before,
-    div:after {
-        content: "";
-        display: table;
-    }
-    div:after {
-        clear: both;
-    }
-    h1 {
-        font-weight: bold;
-    }
-    p {
-        margin: 0 0 14px 0;
-    }
-    h1 {
-        margin: 0 0 54px 0;
-        color: #000;
-        text-transform: uppercase;
-        font-size: 3em;
-        font-weight: 600;
-        line-height: 115%;
-    }
-    p {
-        -webkit-font-smoothing: subpixel-antialiased;
-    }
-    .gridContainer {
-        width: 100%;
-        padding-left: 15px;
-        padding-right: 15px;
-        margin-left: auto;
-        margin-right: auto;
-    }
-    .header-homepage {
-        background-image:url(/img/bannerHome.webp);
-        background-position: center center;
-        background-repeat: no-repeat;
-        background-size: cover;
-        position: relative;
-        color: #fff;
-        z-index: 0;
-        padding-top: 160px;
-        padding-bottom: 160px;
-    }
-    .header-homepage:before {
-        width: 100%;
-        height: 100%;
-        top: 0;
-        left: 0;
-        position: absolute;
-        z-index: -1;
-        display: inline-block;
-    }
-    .header-separator-bottom {
-        position: absolute;
-        bottom: -1px;
-        left: 0;
-        width: 100%;
-    }
-    .header-separator svg {
-        display: block;
-        width: calc(100% + 1.3px);
-    }
-    .header-separator {
-        position: absolute;
-        width: 100%;
-        max-width: 100%;
-        bottom: -1px;
-        overflow: hidden;
-    }
-    .svg-white-bg {
-        fill: #1a2332;
-    }
-    .header-description {
-        min-height: 100px;
-        text-align: center;
-    }
-    p.header-subtitle {
-        color: #fff;
-        font-weight: 300;
-        font-size: 1.4em;
-        text-align: inherit;
-    }
-    .color-overlay:before {
-        width: 100%;
-        height: 100%;
-        top: 0;
-        left: 0;
-        position: absolute;
-        z-index: -1;
-        display: inline-block;
-        content: "";
-        -webkit-transform: translate3d(0, 0, -1px);
-    }
-    .header-wrapper {
-        background-color: #ebebeb;
-        position: relative;
-    }
-    h1.heading8 {
-        font-weight: 600;
-        font-size: 2.2em;
-        color: #fff;
-        margin-bottom: 25px;
-    }
-    .header-description-row {
-        padding: 0 15px 0 15px;
-        display: block;
-    }
-    .align-holder {
-        width: 100%;
-    }
-    .header-buttons-wrapper {
-        margin: 0;
-    }
-    @media only screen and (min-width:768px) {
-        h1 {
-            font-size: 3.4em;
-        }
-        p {
-            line-height: 130%;
-        }
-        h1.heading8 {
-            font-size: 3.3em;
-        }
-        .gridContainer {
-            width: 90%;
-            max-width: 1232px;
-        }
-        .gridContainer .row {
-            margin-left: -15px;
-            margin-right: -15px;
-            clear: both;
-        }
-        .header-description-row:before,
-        .header-description-row:after {
-            content: normal;
-        }
-        .header-content-centered {
-            margin-left: auto;
-            margin-right: auto;
-        }
-        .header-buttons-wrapper {
-            margin: 0 -9px 0 -9px;
-            clear: both;
-        }
-    }
-    @media only screen and (min-width:1024px) {
-        .gridContainer {
-            width: 80%;
-        }
-        h1 {
-            font-size: 3.8em;
-        }
-        p {
-            line-height: 150%;
-        }
-    }
-}
-
-.red {
-    color: red;
-}
-
-
-@media all {
-    .gridContainer {
-        margin-right: auto!important;
-        margin-left: auto!important;
-    }
-    .header-homepage {
-        background-color: #fff;
-    }
-    @media only screen and (min-width:1024px) {
-        .header-homepage {
-            min-height: auto;
-        }
-    }
-    p {
-        margin: 0 0 20px 0;
-    }
-}
-
-@media all {
-    .homepage-template .svg-white-bg {
-        fill: #fff;
-    }
-}
-
-.header-homepage.color-overlay:before {
-    background-color: #000;
-    opacity: .4;
-}
-
-.header-homepage+.header-separator svg {
-    height: 90px!important;
-}
-
-.header-separator svg {
-    height: 90px!important;
-}
-
-.header-homepage .header-description-row {
-    padding-top: 8%;
-    padding-bottom: 8%;
-}
-
-@media only screen and (min-width:768px) {
-    .header-content .align-holder {
-        text-align: center!important;
-    }
-    .header-content {
-        width: 100%!important;
-    }
-}
-
-@media only screen and (min-width:768px) {
-    .header-homepage {
-        padding-bottom: 230px;
-    }
-}
-
-body {
-    margin: 0;
-    background-color: #151d28;
-    color: #b3b3b3;
-    font-family: 'Source Sans Pro', sans-serif;
-}
-#content{
-    background-color: #1a2332;
-    width: 100%;
-    padding: 20px 20%;
-}
-
-#content img{
-    max-width: 40%;
-}
-
-#blueBar{
-    height: 5px;
-    width: 100%;
-    background-color: #03A8F4;
-}
-
-footer{
-    display: flex;
-    justify-content: center;
-    flex-direction: column;
-}
-
-a{
-    padding: 0;
-    color: #b3b3b3;
-    text-decoration:underline;
-}
-
-footer a{
-    text-decoration: none;
-}
-
-.footerIconSpacer{
-    margin-left: 10px;
-    display: inline;
-}
-
-.center{
-    text-align: center;
-}
-
-article{
-    border: 2px solid #b3b3b3;
-    border-radius: 20px;
-    padding: 10px;
-    margin-right: 20px;
-    width: 100%;
-    height: 100%;
-}
-
-#blog{
-    width: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-}
-
-article:last-child{
-    margin-right: 0;
-}
-
-article h2{
-    text-align: center;
-    margin: 0;
-}
-
-button{
-    background: #1cb09a;
-    color: #fff;
-    text-transform: uppercase;
-    border: 0;
-    padding: 5px;
-    cursor: pointer;
-    border-radius: 5px;
-}
-
-#homeImage{
-    float: left;
-}
-
-.spacer{
-    clear: both;
-}
-
-#footerContent{
-    width: 100%;
-    display: flex;
-    justify-content: center;
-
-}
-#footerContent div{
-    border-right: #3d3d3d 1px solid;
-    padding: 20px;
-}
-#footerContent div{
-    border-left: #3d3d3d 1px solid;
-}
-
-#footerContent h3{
-    margin-top: 0;
-}
-
-.cookieinfo{
-    position: fixed;
-    left: 0px;
-    right: 0px;
-    height: auto;
-    min-height: 21px;
-    z-index: 2147483647;
-    line-height: 21px;
-    padding: 8px 18px;
-    font-family: verdana, arial, sans-serif;
-    font-size: 14px;
-    text-align: center;
-    bottom: 0px;
-    opacity: 1;
-    background: #1a2332;
-    color: #b3b3b3;
-
-}
-
-.cookieinfo-close{
-    float: right;
-    display: block;
-    padding: 5px 8px;
-    min-width: 100px;
-    margin-left: 5px;
-    border-radius: 5px;
-    cursor: pointer;
-    background: #1cb09a;
-    color: #fff;
-    text-align: center;
-}
-
-.cookieinfo-text {
-    display:block;
-    padding:5px 0 5px 0;
-}
-
-.cookieinfo-link{
-    text-decoration: none;
-    color: #1cb09a;
-}
-#newComment form input, #newComment form textarea{
-    width: 100%;
-    background: #1a2332;
-    color: #b3b3b3;
-    border: solid #212a39;
-}
-
-#newComment form input:focus, #newComment form textarea:focus{
-    outline: none;
- }
-
-#newComment form textarea{
-    resize: vertical;
-}
-#newComment form input[type=submit]{
-    background: #1cb09a;
-    color: #fff;
-    text-transform: uppercase;
-    padding: 15px;
-    font-size: 14px;
-    cursor: pointer;
-    outline: 0;
-    border: 0;
-}
-
-.comment{
-    display: flex;
-}
-
-.commentTitle{
-    margin-bottom: 5px;
-}
-
-.comment img{
-    margin-right: 10px;
-    width: 100px;
-    height: 100px;
-}
-
-.commentArticle{
-    display: flex;
-    justify-content: center;
-    flex-direction: column;
-    align-items: center;
-    min-height: 100px;
-}
-
-.commentText{
-    margin: 0;
-    width: 100%;
-}
-
-.emailBox {
-    display: inline;
-}
-
-@media only screen and (max-width: 600px) {
-    #homeImage{
-        float: none;
-    }
-    #content{
-        padding-left: 10px;
-        padding-right: 10px;
-    }
-    #blog{
-        flex-direction: column;
-    }
-    article {
-        margin-bottom: 10px;
-        margin-right: 0;
-    }
-    #banner a{
-        display: block;
-    }
-
-    #banner img {
-        max-width: none;
-        width: 100%;
-    }
-
-    #newestPost{
-        display: none;
-    }
-
-}
\ No newline at end of file
diff --git a/public/yarn-error.log b/public/yarn-error.log
new file mode 100644
index 0000000..6556db8
--- /dev/null
+++ b/public/yarn-error.log
@@ -0,0 +1,37 @@
+Arguments: 
+  C:\Program Files\nodejs\node.exe C:\Program Files (x86)\Yarn\bin\yarn.js init
+
+PATH: 
+  C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files\Oculus\Support\oculus-runtime;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\PuTTY\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Touch Portal\plugins\adb\platform-tools;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;D:\gitlab_runner;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility;C:\Program Files\LLVM\bin;C:\Program Files\Multipass\bin;C:\ProgramData\ComposerSetup\bin;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\WINDOWS\system32;D:\dartsdk-windows-x64-release\dart-sdk\bin;D:\dartsdk-windows-x64-release\flutter\bin;D:\php-7.4.11;C:\MinGW\bin;C:\Program Files (x86)\Gow\bin;C:\Users\admin\AppData\Local\Programs\Python\Python38;C:\Program Files (x86)\Graphviz2.38\bin;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\WireGuard\;C:\Program Files\WorldPainter;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\Streamlink\bin;D:\sdk\go\bin;C:\Program Files (x86)\Yarn\bin\;D:\Ruby27-x64\bin;d:\chrome\tools;C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files\Oculus\Support\oculus-runtime;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\PuTTY\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Touch Portal\plugins\adb\platform-tools;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;D:\gitlab_runner;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\;C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts;C:\Users\admin\AppData\Roaming\Python\Python38\Scripts;C:\Program Files\Azure Data Studio\bin;C:\Users\admin\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Docker\Docker\resources\bin;C:\Users\admin\go\bin;C:\Python27\DLLs;C:\Users\admin\AppData\Local\Yarn\bin
+
+Yarn version: 
+  1.22.5
+
+Node version: 
+  12.16.1
+
+Platform: 
+  win32 x64
+
+Trace: 
+  Error: canceled
+      at Interface.<anonymous> (C:\Program Files (x86)\Yarn\lib\cli.js:137009:13)
+      at Interface.emit (events.js:311:20)
+      at Interface._ttyWrite (readline.js:893:16)
+      at ReadStream.onkeypress (readline.js:198:10)
+      at ReadStream.emit (events.js:311:20)
+      at emitKeys (internal/readline/utils.js:438:14)
+      at emitKeys.next (<anonymous>)
+      at ReadStream.onData (readline.js:1160:36)
+      at ReadStream.emit (events.js:311:20)
+      at addChunk (_stream_readable.js:294:12)
+
+npm manifest: 
+  No manifest
+
+yarn manifest: 
+  No manifest
+
+Lockfile: 
+  # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+  # yarn lockfile v1
diff --git a/public/yarn.lock b/public/yarn.lock
new file mode 100644
index 0000000..fb57ccd
--- /dev/null
+++ b/public/yarn.lock
@@ -0,0 +1,4 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
diff --git a/scss/style.scss b/scss/style.scss
new file mode 100644
index 0000000..58f94ba
--- /dev/null
+++ b/scss/style.scss
@@ -0,0 +1,477 @@
+@media all {
+  div,
+  h1,
+  p {
+    margin: 0;
+    padding: 0;
+    border: 0;
+    font-size: 100%;
+    vertical-align: baseline;
+  }
+  * {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+  }
+  *:before,
+  *:after {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+  }
+  div {
+    zoom: 1;
+  }
+  div:before,
+  div:after {
+    content: "";
+    display: table;
+  }
+  div:after {
+    clear: both;
+  }
+  h1 {
+    font-weight: bold;
+  }
+  p {
+    margin: 0 0 14px 0;
+  }
+  h1 {
+    margin: 0 0 54px 0;
+    color: #000;
+    text-transform: uppercase;
+    font-size: 3em;
+    font-weight: 600;
+    line-height: 115%;
+  }
+  p {
+    -webkit-font-smoothing: subpixel-antialiased;
+  }
+  .gridContainer {
+    width: 100%;
+    padding-left: 15px;
+    padding-right: 15px;
+    margin-left: auto;
+    margin-right: auto;
+  }
+  .header-homepage {
+    background-image:url(/img/bannerHome.webp);
+    background-position: center center;
+    background-repeat: no-repeat;
+    background-size: cover;
+    position: relative;
+    color: #fff;
+    z-index: 0;
+    padding-top: 160px;
+    padding-bottom: 160px;
+  }
+  .header-homepage:before {
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+    position: absolute;
+    z-index: -1;
+    display: inline-block;
+  }
+  .header-separator-bottom {
+    position: absolute;
+    bottom: -1px;
+    left: 0;
+    width: 100%;
+  }
+  .header-separator svg {
+    display: block;
+    width: calc(100% + 1.3px);
+  }
+  .header-separator {
+    position: absolute;
+    width: 100%;
+    max-width: 100%;
+    bottom: -1px;
+    overflow: hidden;
+  }
+  .svg-white-bg {
+    fill: #1a2332;
+  }
+  .header-description {
+    min-height: 100px;
+    text-align: center;
+  }
+  p.header-subtitle {
+    color: #fff;
+    font-weight: 300;
+    font-size: 1.4em;
+    text-align: inherit;
+  }
+  .color-overlay:before {
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+    position: absolute;
+    z-index: -1;
+    display: inline-block;
+    content: "";
+    -webkit-transform: translate3d(0, 0, -1px);
+  }
+  .header-wrapper {
+    background-color: #ebebeb;
+    position: relative;
+  }
+  h1.heading8 {
+    font-weight: 600;
+    font-size: 2.2em;
+    color: #fff;
+    margin-bottom: 25px;
+  }
+  .header-description-row {
+    padding: 0 15px 0 15px;
+    display: block;
+  }
+  .align-holder {
+    width: 100%;
+  }
+  .header-buttons-wrapper {
+    margin: 0;
+  }
+  @media only screen and (min-width:768px) {
+    h1 {
+      font-size: 3.4em;
+    }
+    p {
+      line-height: 130%;
+    }
+    h1.heading8 {
+      font-size: 3.3em;
+    }
+    .gridContainer {
+      width: 90%;
+      max-width: 1232px;
+    }
+    .gridContainer .row {
+      margin-left: -15px;
+      margin-right: -15px;
+      clear: both;
+    }
+    .header-description-row:before,
+    .header-description-row:after {
+      content: normal;
+    }
+    .header-content-centered {
+      margin-left: auto;
+      margin-right: auto;
+    }
+    .header-buttons-wrapper {
+      margin: 0 -9px 0 -9px;
+      clear: both;
+    }
+  }
+  @media only screen and (min-width:1024px) {
+    .gridContainer {
+      width: 80%;
+    }
+    h1 {
+      font-size: 3.8em;
+    }
+    p {
+      line-height: 150%;
+    }
+  }
+}
+
+.red {
+  color: red;
+}
+
+
+@media all {
+  .gridContainer {
+    margin-right: auto!important;
+    margin-left: auto!important;
+  }
+  .header-homepage {
+    background-color: #fff;
+  }
+  @media only screen and (min-width:1024px) {
+    .header-homepage {
+      min-height: auto;
+    }
+  }
+  p {
+    margin: 0 0 20px 0;
+  }
+}
+
+@media all {
+  .homepage-template .svg-white-bg {
+    fill: #fff;
+  }
+}
+
+.header-homepage.color-overlay:before {
+  background-color: #000;
+  opacity: .4;
+}
+
+.header-homepage+.header-separator svg {
+  height: 90px!important;
+}
+
+.header-separator svg {
+  height: 90px!important;
+}
+
+.header-homepage .header-description-row {
+  padding-top: 8%;
+  padding-bottom: 8%;
+}
+
+@media only screen and (min-width:768px) {
+  .header-content .align-holder {
+    text-align: center!important;
+  }
+  .header-content {
+    width: 100%!important;
+  }
+}
+
+@media only screen and (min-width:768px) {
+  .header-homepage {
+    padding-bottom: 230px;
+  }
+}
+
+body {
+  margin: 0;
+  background-color: #151d28;
+  color: #b3b3b3;
+  font-family: 'Source Sans Pro', sans-serif;
+}
+#content{
+  background-color: #1a2332;
+  width: 100%;
+  padding: 20px 20%;
+  img {
+    max-width: 40%;
+  }
+}
+
+#blueBar{
+  height: 5px;
+  width: 100%;
+  background-color: #03A8F4;
+}
+
+footer{
+  display: flex;
+  justify-content: center;
+  flex-direction: column;
+  a {
+    text-decoration: none;
+  }
+}
+
+a{
+  padding: 0;
+  color: #b3b3b3;
+  text-decoration:underline;
+}
+
+.footerIconSpacer{
+  margin-left: 10px;
+  display: inline;
+}
+
+.center{
+  text-align: center;
+}
+
+article{
+  border: 2px solid #b3b3b3;
+  border-radius: 20px;
+  padding: 10px;
+  margin-right: 20px;
+  width: 100%;
+  height: 100%;
+  h2{
+    text-align: center;
+    margin: 0;
+  }
+}
+
+#blog{
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+article:last-child{
+  margin-right: 0;
+}
+
+button{
+  background: #1cb09a;
+  color: #fff;
+  text-transform: uppercase;
+  border: 0;
+  padding: 5px;
+  cursor: pointer;
+  border-radius: 5px;
+}
+
+#homeImage{
+  float: left;
+}
+
+.spacer{
+  clear: both;
+}
+
+#footerContent{
+  width: 100%;
+  display: flex;
+  justify-content: center;
+
+  div{
+    border-right: #3d3d3d 1px solid;
+    padding: 20px;
+  }
+
+  h3 {
+    margin-top: 0;
+  }
+}
+
+.cookieinfo{
+  position: fixed;
+  left: 0px;
+  right: 0px;
+  height: auto;
+  min-height: 21px;
+  z-index: 2147483647;
+  line-height: 21px;
+  padding: 8px 18px;
+  font-family: verdana, arial, sans-serif;
+  font-size: 14px;
+  text-align: center;
+  bottom: 0px;
+  opacity: 1;
+  background: #1a2332;
+  color: #b3b3b3;
+
+}
+
+.cookieinfo-close{
+  float: right;
+  display: block;
+  padding: 5px 8px;
+  min-width: 100px;
+  margin-left: 5px;
+  border-radius: 5px;
+  cursor: pointer;
+  background: #1cb09a;
+  color: #fff;
+  text-align: center;
+}
+
+.cookieinfo-text {
+  display:block;
+  padding:5px 0 5px 0;
+}
+
+.cookieinfo-link{
+  text-decoration: none;
+  color: #1cb09a;
+}
+#newComment {
+  form {
+    input, textarea{
+      width: 100%;
+      background: #1a2332;
+      color: #b3b3b3;
+      border: solid #212a39;
+    }
+
+    input:focus, textarea:focus {
+      outline: none;
+    }
+
+    textarea{
+      resize: vertical;
+    }
+
+    input[type=submit]{
+      background: #1cb09a;
+      color: #fff;
+      text-transform: uppercase;
+      padding: 15px;
+      font-size: 14px;
+      cursor: pointer;
+      outline: 0;
+      border: 0;
+    }
+  }
+}
+
+.comment{
+  display: flex;
+  img{
+    margin-right: 10px;
+    width: 100px;
+    height: 100px;
+  }
+}
+
+.commentTitle{
+  margin-bottom: 5px;
+}
+
+.commentArticle{
+  display: flex;
+  justify-content: center;
+  flex-direction: column;
+  align-items: center;
+  min-height: 100px;
+}
+
+.commentText{
+  margin: 0;
+  width: 100%;
+}
+
+.emailBox {
+  display: inline;
+}
+
+@media only screen and (max-width: 600px) {
+  #homeImage{
+    float: none;
+  }
+  #content{
+    padding-left: 10px;
+    padding-right: 10px;
+  }
+  #blog{
+    flex-direction: column;
+  }
+  article {
+    margin-bottom: 10px;
+    margin-right: 0;
+  }
+  #banner {
+    a {
+      display: block;
+    }
+    img {
+      max-width: none;
+      width: 100%;
+    }
+  }
+
+  #newestPost{
+    display: none;
+  }
+
+}
\ No newline at end of file
-- 
GitLab