From aa0564406a95824cc45c815571292716b65806a1 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sat, 31 Mar 2018 21:14:36 +0300
Subject: getting rid of baseXX, some small fixes. Seems to be usable.

---
 src/components/attachment/attachment.vue | 200 +++++++++++++++----------------
 1 file changed, 98 insertions(+), 102 deletions(-)

(limited to 'src/components/attachment/attachment.vue')

diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index a1b35d91..eeb6e6b8 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="attachment base03-border" :class="{[type]: true, loading}" v-show="!isEmpty">
+  <div class="attachment" :class="{[type]: true, loading}" v-show="!isEmpty">
     <a class="image-attachment" v-if="hidden" @click.prevent="toggleHidden()">
       <img :key="nsfwImage" :src="nsfwImage"/>
     </a>
@@ -8,10 +8,10 @@
     </div>
 
     <a v-if="type === 'image' && !hidden" class="image-attachment" :href="attachment.url" target="_blank">
-      <StillImage class="base03-border" referrerpolicy="no-referrer" :mimetype="attachment.mimetype" :src="attachment.large_thumb_url || attachment.url"/>
+      <StillImage referrerpolicy="no-referrer" :mimetype="attachment.mimetype" :src="attachment.large_thumb_url || attachment.url"/>
     </a>
 
-    <video class="base03" v-if="type === 'video' && !hidden" :src="attachment.url" controls loop></video>
+    <video v-if="type === 'video' && !hidden" :src="attachment.url" controls loop></video>
 
     <audio v-if="type === 'audio'" :src="attachment.url" controls></audio>
 
@@ -30,115 +30,111 @@
 <script src="./attachment.js"></script>
 
 <style lang="scss">
-  .attachments {
-      display: flex;
-      flex-wrap: wrap;
-      margin-right: -0.7em;
+.attachments {
+    display: flex;
+    flex-wrap: wrap;
+    margin-right: -0.7em;
 
-      .attachment.media-upload-container {
+    .attachment.media-upload-container {
         flex: 0 0 auto;
         max-height: 300px;
         max-width: 100%;
-      }
-      
-      .attachment {
-          flex: 1 0 30%;
-          margin: 0.5em 0.7em 0.6em 0.0em;
-          align-self: flex-start;
-
-          border-style: solid;
-          border-width: 1px;
-          border-radius: 5px;
-          overflow: hidden;
-
-          // fixes small gap below video
-          &.video {
+    }
+
+    .attachment {
+        flex: 1 0 30%;
+        margin: 0.5em 0.7em 0.6em 0.0em;
+        align-self: flex-start;
+        border-color: var(--border);
+
+        border-style: solid;
+        border-width: 1px;
+        border-radius: 5px;
+        overflow: hidden;
+
+        // fixes small gap below video
+        &.video {
             line-height: 0;
-          }
+        }
 
-          &.html {
+        &.html {
             flex-basis: 90%;
             width: 100%;
             display: flex;
-          }
+        }
 
-          &.loading {
+        &.loading {
             cursor: progress;
-          }
-
-          .hider {
-              position: absolute;
-              margin: 10px;
-              padding: 5px;
-              background: rgba(230,230,230,0.6);
-              font-weight: bold;
-              z-index: 4;
-          }
-
-          video {
-              max-height: 500px;
-              height: 100%;
-              width: 100%;
-              z-index: 0;
-          }
-
-          audio {
-              width: 100%;
-          }
-
-          img.media-upload {
-              margin-bottom: -2px;
-              max-height: 300px;
-              max-width: 100%;
-          }
-
-          .oembed {
-              width: 100%;
-              margin-right: 15px;
-              display: flex;
-
-              img {
-                  width: 100%;
-              }
-
-              .image {
-                  flex: 1;
-                  img {
-                      border: 0px;
-                      border-radius: 5px;
-                      height: 100%;
-                      object-fit: cover;
-                  }
-              }
-
-              .text {
-                  flex: 2;
-                  margin: 8px;
-                  word-break: break-all;
-                  h1 {
-                      font-size: 14px;
-                      margin: 0px;
-                  }
-              }
-          }
-
-          a.image-attachment {
-              display: flex;
-              flex: 1;
-
-              .still-image {
-                  width: 100%;
-                  height: 100%;
-              }
-
-              img {
-                  object-fit: contain;
-                  width: 100%;
-                  height: 100%; /* If this isn't here, chrome will stretch the images */
-                  max-height: 500px;
-                  image-orientation: from-image;
-              }
-          }
-      }
+        }
+
+        .hider {
+            position: absolute;
+            margin: 10px;
+            padding: 5px;
+            background: rgba(230,230,230,0.6);
+            font-weight: bold;
+            z-index: 4;
+        }
+
+        video {
+            max-height: 500px;
+            height: 100%;
+            width: 100%;
+            z-index: 0;
+        }
+
+        audio {
+            width: 100%;
+        }
+
+        img.media-upload {
+            margin-bottom: -2px;
+            max-height: 300px;
+            max-width: 100%;
+        }
+
+        .oembed {
+            width: 100%;
+            margin-right: 15px;
+            display: flex;
+
+            img {
+                width: 100%;
+            }
+
+            .image {
+                flex: 1;
+                img {
+                    border: 0px;
+                    border-radius: 5px;
+                    height: 100%;
+                    object-fit: cover;
+                }
+            }
+
+            .text {
+                flex: 2;
+                margin: 8px;
+                word-break: break-all;
+                h1 {
+                    font-size: 14px;
+                    margin: 0px;
+                }
+            }
+        }
+
+        a.image-attachment {
+            display: flex;
+            flex: 1;
+
+            img {
+                object-fit: contain;
+                width: 100%;
+                height: 100%; /* If this isn't here, chrome will stretch the images */
+                max-height: 500px;
+                image-orientation: from-image;
+            }
+        }
+    }
  }
 </style>
-- 
cgit v1.2.3-70-g09d2


From acdb5e5c7a2dac1908a5daafd94c31bc116a1799 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 1 Apr 2018 05:28:20 +0300
Subject: cleanup. added fallback mechanism for IE11 and unsupported browsers.

---
 src/App.scss                                       | 290 +++++++++++----------
 src/_variables.scss                                |  20 +-
 src/components/attachment/attachment.vue           |   5 +-
 src/components/delete_button/delete_button.vue     |   4 +-
 src/components/favorite_button/favorite_button.vue |  30 ++-
 src/components/login_form/login_form.vue           |   3 +-
 src/components/nav_panel/nav_panel.vue             |  20 +-
 src/components/notifications/notifications.js      |   5 -
 src/components/notifications/notifications.scss    |  43 +--
 src/components/notifications/notifications.vue     |   4 +-
 .../post_status_form/post_status_form.vue          |  24 +-
 src/components/registration/registration.vue       |  28 +-
 src/components/retweet_button/retweet_button.vue   |  28 +-
 src/components/settings/settings.vue               |   1 +
 src/components/status/status.vue                   | 169 ++++++------
 src/components/style_switcher/style_switcher.vue   |  11 +-
 src/components/timeline/timeline.vue               |  67 ++---
 src/components/user_card/user_card.vue             |  14 +-
 .../user_card_content/user_card_content.js         |   5 -
 .../user_card_content/user_card_content.vue        |  22 +-
 src/components/user_finder/user_finder.vue         |  36 +--
 src/services/style_setter/style_setter.js          |  16 +-
 22 files changed, 462 insertions(+), 383 deletions(-)

(limited to 'src/components/attachment/attachment.vue')

diff --git a/src/App.scss b/src/App.scss
index 6e0378db..ec80626b 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -1,10 +1,11 @@
 @import './_variables.scss';
+
 #app {
-    background-size: cover;
-    background-attachment: fixed;
-    background-repeat: no-repeat;
-    background-position: 0 50px;
-    min-height: 100vh;
+  background-size: cover;
+  background-attachment: fixed;
+  background-repeat: no-repeat;
+  background-position: 0 50px;
+  min-height: 100vh;
 }
 
 i {
@@ -12,7 +13,7 @@ i {
 }
 
 h4 {
-    margin: 0;
+  margin: 0;
 }
 
 #content {
@@ -26,49 +27,53 @@ h4 {
 }
 
 .text-center {
-    text-align: center;
+  text-align: center;
 }
 
 body {
-    font-family: sans-serif;
-    font-size: 14px;
-    margin: 0;
-    color: var(--fg);
+  font-family: sans-serif;
+  font-size: 14px;
+  margin: 0;
+  color: $fallback--fg;
+  color: var(--fg, $fallback--fg);
 }
 
 a {
-    text-decoration: none;
-    color: var(--link);
+  text-decoration: none;
+  color: $fallback--link;
+  color: var(--link, $fallback--link);
 }
 
 button{
-    user-select: none;
-    color: var(--faint);
-    background-color: var(--btn);
-    border: none;
-    border-radius: 5px;
-    cursor: pointer;
-    border-top: 1px solid rgba(255, 255, 255, 0.2);
-    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
-    box-shadow: 0px 0px 2px black;
-    font-size: 14px;
-    font-family: sans-serif;
-
-
-
-    &:hover {
-        box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3);
-    }
+  user-select: none;
+  color: $fallback--faint;
+  color: var(--faint, $fallback--faint);
+  background-color: $fallback--btn;
+  background-color: var(--btn, $fallback--btn);
+  border: none;
+  border-radius: 5px;
+  cursor: pointer;
+  border-top: 1px solid rgba(255, 255, 255, 0.2);
+  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+  box-shadow: 0px 0px 2px black;
+  font-size: 14px;
+  font-family: sans-serif;
 
-    &:disabled {
-      cursor: not-allowed;
-      opacity: 0.5;
-    }
+  &:hover {
+    box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3);
+  }
 
-    &.pressed {
-      color: var(--faint);
-      background-color: var(--bg)
-    }
+  &:disabled {
+    cursor: not-allowed;
+    opacity: 0.5;
+  }
+
+  &.pressed {
+    color: $fallback--faint;
+    color: var(--faint, $fallback--faint);
+    background-color: $fallback--bg;
+    background-color: var(--bg, $fallback--bg)
+  }
 }
 
 
@@ -78,11 +83,13 @@ input, textarea, select {
   border-bottom: 1px solid rgba(255, 255, 255, 0.2);
   border-top: 1px solid rgba(0, 0, 0, 0.2);
   box-shadow: 0px 0px 2px black inset;
-  background-color: var(--lightBg);
-  color: var(--lightFg);
+  background-color: $fallback--lightBg;
+  background-color: var(--lightBg, $fallback--lightBg);
+  color: $fallback--lightFg;
+  color: var(--lightFg, $fallback--lightFg);
   font-family: sans-serif;
   font-size: 14px;
-  padding: 5px;
+  padding: 8px 7px 4px;
 
   // TODO: Restyle <select> in a decent way. Needs different markup
   // -webkit-appearance:none;
@@ -93,7 +100,8 @@ input, textarea, select {
   &[type=checkbox] {
     display: none;
     &:checked + label::before {
-      color: var(--fg);
+      color: $fallback--fg;
+      color: var(--fg, $fallback--fg);
     }
     + label::before {
       display: inline-block;
@@ -106,7 +114,8 @@ input, textarea, select {
       border-top: 1px solid rgba(0, 0, 0, 0.2);
       box-shadow: 0px 0px 2px black inset;
       margin-right: .5em;
-      background-color: var(--btn);
+      background-color: $fallback--btn;
+      background-color: var(--btn, $fallback--btn);
       vertical-align: baseline;
       text-align: center;
       line-height: 1.1em;
@@ -126,129 +135,136 @@ input, textarea, select {
 .icon-binoculars,
 .icon-plus-squared,
 .icon-spin4 {
-  color: var(--icon)
+  color: $fallback--icon;
+  color: var(--icon, $fallback--icon)
 }
 
 
 .container {
-    display: flex;
-    flex-wrap: wrap;
-    margin: 0;
-    padding: 0 10px 0 10px;
+  display: flex;
+  flex-wrap: wrap;
+  margin: 0;
+  padding: 0 10px 0 10px;
 }
 
 .gaps {
-    margin: -1em 0 0 -1em;
+  margin: -1em 0 0 -1em;
 }
 
 .item {
-    flex: 1;
-    line-height: 25px;
-    height: 25px;
-    overflow: hidden;
+  flex: 1;
+  line-height: 25px;
+  height: 25px;
+  overflow: hidden;
 
-    .nav-icon {
-      font-size: 1.1em;
-      margin-left: 0.4em;
-    }
+  .nav-icon {
+    font-size: 1.1em;
+    margin-left: 0.4em;
+  }
 }
 
 .gaps > .item {
-    padding: 1em 0 0 1em;
+  padding: 1em 0 0 1em;
 }
 
 .auto-size {
-    flex: 1
+  flex: 1
 }
 
 nav {
-    width: 100%;
+  width: 100%;
+  align-items: center;
+  position: fixed;
+  height: 50px;
+
+  .inner-nav {
+    padding-left: 20px;
+    padding-right: 20px;
+    display: flex;
     align-items: center;
-    position: fixed;
+    flex-basis: 970px;
+    margin: auto;
     height: 50px;
-
-    .inner-nav {
-        padding-left: 20px;
-        padding-right: 20px;
-        display: flex;
-        align-items: center;
-        flex-basis: 970px;
-        margin: auto;
-        height: 50px;
-        background-repeat: no-repeat;
-        background-position: center;
-        background-size: contain;
-    }
+    background-repeat: no-repeat;
+    background-position: center;
+    background-size: contain;
+  }
 }
 
 main-router {
-    flex: 1;
+  flex: 1;
 }
 
 .status.compact {
-    color: rgba(0, 0, 0, 0.42);
-    font-weight: 300;
+  color: rgba(0, 0, 0, 0.42);
+  font-weight: 300;
 
-    p {
-        margin: 0;
-        font-size: 0.8em
-    }
+  p {
+    margin: 0;
+    font-size: 0.8em
+  }
 }
 
 /* Panel */
 
 .panel {
-    display: flex;
-    flex-direction: column;
-    margin: 0.5em;
+  display: flex;
+  flex-direction: column;
+  margin: 0.5em;
 
-    background-color: var(--bg);
+  background-color: $fallback--bg;
+  background-color: var(--bg, $fallback--bg);
 
-    border-radius: 10px;
-    box-shadow: 1px 1px 4px rgba(0,0,0,.6);
-    overflow: hidden;
+  border-radius: 10px;
+  border-radius: $fallback--panelRadius;
+  border-radius: var(--panelRadius, 10px);
+  box-shadow: 1px 1px 4px rgba(0,0,0,.6);
+  overflow: hidden;
 }
 
 .panel-body:empty::before {
-    content: "¯\\_(ツ)_/¯"; // Could use words but it'd require translations
-    display: block;
-    margin: 1em;
-    text-align: center;
+  content: "¯\\_(ツ)_/¯"; // Could use words but it'd require translations
+  display: block;
+  margin: 1em;
+  text-align: center;
 }
 
 .panel-heading {
-    border-radius: 10px 10px 0 0;
-    background-size: cover;
-    padding: 0.6em 1.0em;
-    text-align: left;
-    font-size: 1.3em;
-    line-height: 24px;
-    background-color: var(--btn);
+  border-radius: 10px 10px 0 0;
+  background-size: cover;
+  padding: 0.6em 1.0em;
+  text-align: left;
+  font-size: 1.3em;
+  line-height: 24px;
+  background-color: $fallback--btn;
+  background-color: var(--btn, $fallback--btn);
 }
 
 .panel-footer {
-    border-radius: 0 0 10px 10px;
+  border-radius: 0 0 10px 10px;
 }
 
 .panel-body > p {
-	line-height: 18px;
-    padding: 1em;
-    margin: 0;
+  line-height: 18px;
+  padding: 1em;
+  margin: 0;
 }
 
 .container > * {
-    min-width: 0px;
+  min-width: 0px;
 }
 
 .fa {
-    color: grey;
+  color: grey;
 }
 
 nav {
-    z-index: 1000;
-    background-color: var(--bg);
-    color: var(--faint);
-    box-shadow: 0px 0px 4px rgba(0,0,0,.6);
+  z-index: 1000;
+  background-color: $fallback--btn;
+  background-color: var(--btn, $fallback--btn);
+  color: $fallback--faint;
+  color: var(--faint, $fallback--faint);
+  box-shadow: 0px 0px 4px rgba(0,0,0,.6);
 }
 
 .fade-enter-active, .fade-leave-active {
@@ -259,9 +275,9 @@ nav {
 }
 
 .main {
-    flex-basis: 60%;
-    flex-grow: 1;
-    flex-shrink: 1;
+  flex-basis: 60%;
+  flex-grow: 1;
+  flex-shrink: 1;
 }
 
 .sidebar-bounds {
@@ -276,20 +292,20 @@ nav {
 }
 
 .mobile-shown {
-    display: none;
+  display: none;
 }
 
 .panel-switcher {
-    display: none;
-    width: 100%;
-    height: 46px;
-    button {
-        display: block;
-        flex: 1;
-        max-height: 32px;
-        margin: 0.5em;
-        padding: 0.5em;
-    }
+  display: none;
+  width: 100%;
+  height: 46px;
+  button {
+    display: block;
+    flex: 1;
+    max-height: 32px;
+    margin: 0.5em;
+    padding: 0.5em;
+  }
 }
 
 @media all and (min-width: 960px) {
@@ -324,24 +340,24 @@ nav {
 }
 
 @media all and (max-width: 959px) {
-    .mobile-hidden {
-        display: none;
-    }
+  .mobile-hidden {
+    display: none;
+  }
 
-    .panel-switcher {
-        display: flex;
-    }
+  .panel-switcher {
+    display: flex;
+  }
 
-    .container {
-        padding: 0 0 0 0;
-    }
+  .container {
+    padding: 0 0 0 0;
+  }
 
-    .panel {
-        margin: 0.5em 0 0.5em 0;
-    }
+  .panel {
+    margin: 0.5em 0 0.5em 0;
+  }
 }
 
 .item.right {
-    text-align: right;
-    padding-right: 20px;
+  text-align: right;
+  padding-right: 20px;
 }
diff --git a/src/_variables.scss b/src/_variables.scss
index fa7eaec1..eccc0aab 100644
--- a/src/_variables.scss
+++ b/src/_variables.scss
@@ -1,6 +1,20 @@
 $main-color: #f58d2c;
 $main-background: white;
 $darkened-background: whitesmoke;
-$green_: #0fa00f;
-$blue_: #0095ff;
-$red_: #ff0000;
+
+$fallback--bg: #121a24;
+$fallback--btn: #182230;
+$fallback--faint: #999;
+$fallback--fg: #b9b9ba;
+$fallback--link: #d8a070;
+$fallback--icon: #666;
+$fallback--lightBg: rgb(21, 30, 42);
+$fallback--lightFg: #b9b9ba;
+$fallback--border: #222;
+$fallback--cRed: #ff0000;
+$fallback--cBlue: #0095ff;
+$fallback--cGreen: #0fa00f;
+$fallback--cOrange: orange;
+$fallback--cYellow: yellow;
+
+$fallback--panelRadius: 10px;
diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index eeb6e6b8..e3b1e4d4 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -30,6 +30,8 @@
 <script src="./attachment.js"></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
+
 .attachments {
     display: flex;
     flex-wrap: wrap;
@@ -45,7 +47,8 @@
         flex: 1 0 30%;
         margin: 0.5em 0.7em 0.6em 0.0em;
         align-self: flex-start;
-        border-color: var(--border);
+        border-color: $fallback--border;
+        border-color: var(--border, $fallback--border);
 
         border-style: solid;
         border-width: 1px;
diff --git a/src/components/delete_button/delete_button.vue b/src/components/delete_button/delete_button.vue
index 66727e7c..9966d85e 100644
--- a/src/components/delete_button/delete_button.vue
+++ b/src/components/delete_button/delete_button.vue
@@ -14,8 +14,8 @@
   .icon-cancel,.delete-status {
     cursor: pointer;
     &:hover {
-      color: $red_;
-      color: var(--red);
+      color: var(--cRed, $fallback--cRed);
+      color: $fallback--cRed;
     }
   }
 </style>
diff --git a/src/components/favorite_button/favorite_button.vue b/src/components/favorite_button/favorite_button.vue
index a6e4c46b..f25c589a 100644
--- a/src/components/favorite_button/favorite_button.vue
+++ b/src/components/favorite_button/favorite_button.vue
@@ -11,18 +11,22 @@
 
 <script src="./favorite_button.js" ></script>
 
-<style lang='scss'>
-  .fav-active {
-      cursor: pointer;
-      animation-duration: 0.6s;
-      &:hover {
-        color: orange;
-        color: var(--cOrange);
-      }
-  }
-  .favorite-button.icon-star {
-      color: orange;
-      color: var(--cOrange);
-  }
+<style lang="scss">
+@import '../../_variables.scss';
+
+.fav-active {
+    cursor: pointer;
+    animation-duration: 0.6s;
+
+    &:hover {
+        color: $fallback--cOrange;
+        color: var(--cOrange, $fallback--cOrange);
+    }
+}
+
+.favorite-button.icon-star {
+    color: $fallback--cOrange;
+    color: var(--cOrange, $fallback--cOrange);
+}
 
 </style>
diff --git a/src/components/login_form/login_form.vue b/src/components/login_form/login_form.vue
index 553858a3..82000d6b 100644
--- a/src/components/login_form/login_form.vue
+++ b/src/components/login_form/login_form.vue
@@ -31,6 +31,7 @@
 <script src="./login_form.js" ></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
 
 .login-form {
     input {
@@ -47,7 +48,7 @@
         border-radius: 5px;
         text-align: center;
         background-color: rgba(255, 48, 16, 0.65);
-        background-color: var(--cRed);
+       background-color: $fallback--cRed;
         min-height: 28px;
         line-height: 28px;
     }
diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue
index 2a92586b..43b4c3dc 100644
--- a/src/components/nav_panel/nav_panel.vue
+++ b/src/components/nav_panel/nav_panel.vue
@@ -30,6 +30,8 @@
 <script src="./nav_panel.js" ></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
+
 .nav-panel ul {
     list-style: none;
     margin: 0;
@@ -38,13 +40,17 @@
 
 .nav-panel li {
     border-bottom: 1px solid;
-    border-color: var(--border);
-    background-color: var(--bg);
+    border-color: $fallback--border;
+    border-color: var(--border, $fallback--border);
+    background-color: $fallback--bg;
+    background-color: var(--bg, $fallback--bg);
     padding: 0;
+
     &:first-child a {
         border-top-right-radius: 10px;
         border-top-left-radius: 10px;
     }
+
     &:last-child a {
         border-bottom-right-radius: 10px;
         border-bottom-left-radius: 10px;
@@ -58,16 +64,20 @@
 .nav-panel a {
     display: block;
     padding: 0.8em 0.85em;
+
     &:hover {
-        background-color: var(--lightBg);
+        background-color: $fallback--lightBg;
+        background-color: var(--lightBg, $fallback--lightBg);
     }
+
     &.router-link-active {
         font-weight: bolder;
-        background-color: var(--lightBg);
+        background-color: $fallback--lightBg;
+        background-color: var(--lightBg, $fallback--lightBg);
+
         &:hover {
             text-decoration: underline;
         }
     }
  }
-
 </style>
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
index 58d82a09..e55c6e24 100644
--- a/src/components/notifications/notifications.js
+++ b/src/components/notifications/notifications.js
@@ -24,11 +24,6 @@ const Notifications = {
     },
     unseenCount () {
       return this.unseenNotifications.length
-    },
-    hiderStyle () {
-      return {
-        background: `linear-gradient(to bottom, rgba(0, 0, 0, 0), ${this.$store.state.config.colors.bg} 80%)`
-      }
     }
   },
   components: {
diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss
index a739d52e..5af2454e 100644
--- a/src/components/notifications/notifications.scss
+++ b/src/components/notifications/notifications.scss
@@ -5,32 +5,39 @@
   padding-bottom: 15em;
 
   .panel {
-    background: var(--bg)
+    background: $fallback--bg;
+    background: var(--bg, $fallback--bg)
   }
 
   .panel-body {
-    border-color: var(--border)
+    border-color: $fallback--border;
+    border-color: var(--border, $fallback--border)
   }
 
   .panel-heading {
     // force the text to stay centered, while keeping
     // the button in the right side of the panel heading
     position: relative;
-    background: var(--btn);
-    color: var(--faint);
+    background: $fallback--btn;
+    background: var(--btn, $fallback--btn);
+    color: $fallback--faint;
+    color: var(--faint, $fallback--faint);
     .read-button {
       position: absolute;
       right: 0.7em;
       height: 1.8em;
       line-height: 100%;
-      background-color: var(--btn);
-      color: var(--faint);
+      background-color: $fallback--btn;
+      background-color: var(--btn, $fallback--btn);
+      color: $fallback--faint;
+      color: var(--faint, $fallback--faint);
     }
   }
 
   .unseen-count {
     display: inline-block;
-    background-color: var(--cRed);
+    background-color: $fallback--cRed;
+    background-color: var(--cRed, $fallback--cRed);
     text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5);
     min-width: 1.3em;
     border-radius: 1.3em;
@@ -52,6 +59,10 @@
     border-bottom: 1px solid;
     border-bottom-color: inherit;
 
+    .notification-gradient {
+      background: linear-gradient(to bottom, rgba(0, 0, 0, 0), $fallback--bg 80%);
+      background: linear-gradient(to bottom, rgba(0, 0, 0, 0), var(--bg, $fallback--bg) 80%)
+    }
 
     .text {
       min-width: 0px;
@@ -61,23 +72,24 @@
       overflow: hidden;
 
       .icon-retweet.lit {
-        color: $green_;
-        color: var(--cGreen);
+        color: $fallback--cGreen;
+        color: var(--cGreen, $fallback--cGreen);
       }
 
       .icon-user-plus.lit {
-        color: $blue_;
-        color: var(--cBlue);
+        color: $fallback--cBlue;
+        color: var(--cBlue, $fallback--cBlue);
       }
 
       .icon-reply.lit {
-        color: $blue_;
-        color: var(--cBlue);
+        color: $fallback--cBlue;
+        color: var(--cBlue, $fallback--cBlue);
       }
 
       .icon-star.lit {
         color: orange;
-        color: var(--cOrange);
+        color: $fallback--cOrange;
+        color: var(--cOrange, $fallback--cOrange);
       }
 
       .status-content {
@@ -151,7 +163,8 @@
   }
 
   .unseen {
-    border-left: 4px solid var(--cRed);
+    border-left: 4px solid $fallback--cRed;
+    border-left: 4px solid var(--cRed, $fallback--cRed);
     padding-left: 6px;
   }
 }
diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue
index 77e29426..17bae71e 100644
--- a/src/components/notifications/notifications.vue
+++ b/src/components/notifications/notifications.vue
@@ -20,7 +20,7 @@
                 <i class="fa icon-star lit"></i>
                 <small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
               </h1>
-              <div class="notification-gradient" :style="hiderStyle"></div>
+              <div class="notification-gradient"></div>
               <div class="notification-content" v-html="notification.status.statusnet_html"></div>
             </div>
             <div v-if="notification.type === 'repeat'">
@@ -29,7 +29,7 @@
                 <i class="fa icon-retweet lit"></i>
                 <small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
               </h1>
-              <div class="notification-gradient" :style="hiderStyle"></div>
+              <div class="notification-gradient"></div>
               <div class="notification-content" v-html="notification.status.statusnet_html"></div>
             </div>
             <div v-if="notification.type === 'mention'">
diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue
index 3f268ff5..d57418fb 100644
--- a/src/components/post_status_form/post_status_form.vue
+++ b/src/components/post_status_form/post_status_form.vue
@@ -50,6 +50,7 @@
 <script src="./post_status_form.js"></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
 
 .tribute-container {
     ul {
@@ -83,11 +84,13 @@
             display: flex;
         }
     }
+
     .error {
         border-radius: 5px;
         text-align: center;
         background-color: rgba(255, 48, 16, 0.65);
-        background-color: var(--cRed);
+        background-color: $fallback--cRed;
+        background-color: var(--cRed, $fallback--cRed);
         padding: 0.25em;
         margin: 0.35em;
         display: flex;
@@ -98,7 +101,8 @@
 
         .attachment {
             position: relative;
-            border: var(--border);
+            border: $fallback--border;
+            border: var(--border, $fallback--border);
             margin: 0.5em 0.8em 0.2em 0;
         }
 
@@ -139,11 +143,11 @@
     }
 
     form textarea {
-        border-radius: 5px;
         line-height:16px;
-        padding: 5px;
         resize: none;
         overflow: hidden;
+        transition: min-height 200ms;
+        min-height: 1px;
     }
 
     form textarea:focus {
@@ -170,8 +174,10 @@
         z-index: 1;
         box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);
         min-width: 75%;
-        background: var(--btn);
-        color: var(--lightFg);
+        background: $fallback--btn;
+        background: var(--btn, $fallback--btn);
+        color: $fallback--lightFg;
+        color: var(--lightFg, $fallback--lightFg);
     }
 
     .autocomplete {
@@ -179,19 +185,23 @@
         padding: 0.2em 0.4em 0.2em 0.4em;
         border-bottom: 1px solid rgba(0, 0, 0, 0.4);
         display: flex;
+
         img {
             width: 24px;
             height: 24px;
             border-radius: 2px;
             object-fit: contain;
         }
+
         span {
             line-height: 24px;
             margin: 0 0.1em 0 0.2em;
         }
+
         small {
             margin-left: .5em;
-            color: var(--faint);
+            color: $fallback--faint;
+            color: var(--faint, $fallback--faint);
         }
     }
 }
diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue
index 786a59e3..0966645d 100644
--- a/src/components/registration/registration.vue
+++ b/src/components/registration/registration.vue
@@ -55,6 +55,7 @@
 
 <script src="./registration.js"></script>
 <style lang="scss">
+@import '../../_variables.scss';
 
 .registration-form {
     display: flex;
@@ -87,18 +88,13 @@
     }
 
     form textarea {
-        border: solid;
-        border-width: 1px;
-        border-color: silver;
         border-radius: 5px;
         line-height:16px;
-        padding: 5px;
         resize: vertical;
     }
 
     input {
         border-radius: 5px;
-        padding: 0.1em 0.2em 0.2em 0.2em;
     }
 
     .captcha {
@@ -111,21 +107,21 @@
         //width: 10em;
         margin-top: 0.6em;
         height: 28px;
-  }
+    }
 
-  .error {
-    border-radius: 5px;
-    text-align: center;
-    margin: 0.5em 0.6em 0;
-    background-color: rgba(255, 48, 16, 0.65);
-    background-color: var(--cRed);
-    min-height: 28px;
-    line-height: 28px;
-  }
+    .error {
+        border-radius: 5px;
+        text-align: center;
+        margin: 0.5em 0.6em 0;
+        background-color: $fallback--cRed;
+        background-color: var(--cRed, $fallback--cRed);
+        min-height: 28px;
+        line-height: 28px;
+    }
 }
 
 @media all and (max-width: 959px) {
-  .registration-form .container {
+    .registration-form .container {
     flex-direction: column-reverse;
   }
 }
diff --git a/src/components/retweet_button/retweet_button.vue b/src/components/retweet_button/retweet_button.vue
index 7c75f3bc..a21942c3 100644
--- a/src/components/retweet_button/retweet_button.vue
+++ b/src/components/retweet_button/retweet_button.vue
@@ -11,18 +11,18 @@
 
 <script src="./retweet_button.js" ></script>
 
-<style lang='scss'>
-  @import '../../_variables.scss';
-  .rt-active {
-     cursor: pointer;
-     animation-duration: 0.6s;
-     &:hover {
-      color: $green_;
-      color: var(--cGreen);
-     }
-  }
-  .icon-retweet.retweeted {
-     color: $green_;
-     color: var(--cGreen);
-  }
+<style lang="scss">
+@import '../../_variables.scss';
+.rt-active {
+    cursor: pointer;
+    animation-duration: 0.6s;
+    &:hover {
+        color: $fallback--cGreen;
+        color: var(--cGreen, $fallback--cGreen);
+    }
+}
+.icon-retweet.retweeted {
+    color: $fallback--cGreen;
+    color: var(--cGreen, $fallback--cGreen);
+}
 </style>
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index b842c9e9..98f70f7b 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -56,6 +56,7 @@
 <style lang="scss">
  .setting-item {
    margin: 1em 1em 1.4em;
+
    textarea {
      width: 100%;
      height: 100px;
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 8410aeba..80f6a315 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -139,8 +139,10 @@ status-text-container {
     max-width: 34em;
     padding: 0.5em;
     display: flex;
-    background-color: var(--bg);
-    border-color: var(--border);
+    background-color: $fallback--bg;
+    background-color: var(--bg, $fallback--bg);
+    border-color: $fallback--border;
+    border-color: var(--border, $fallback--border);
     border-style: solid;
     border-width: 1px;
     border-radius: 4px;
@@ -181,15 +183,19 @@ status-text-container {
     word-break: break-word;
     border-left-width: 0px;
     line-height: 18px;
-    background-color: var(--bg);
-    border-color: var(--border);
+    background-color: $fallback--bg;
+    background-color: var(--bg, $fallback--bg);
+    border-color: $fallback--border;
+    border-color: var(--border, $fallback--border);
 
     &_focused {
-        background-color: var(--lightBg);
+        background-color: $fallback--lightBg;
+        background-color: var(--lightBg, $fallback--lightBg);
     }
 
     .usercard {
-        border-color: var(--border);
+        border-color: $fallback--border;
+        border-color: var(--border, $fallback--border);
     }
 
     .timeline & {
@@ -211,7 +217,6 @@ status-text-container {
 
 
     .user-content {
-
         min-height: 52px;
         padding-top: 1px;
     }
@@ -224,14 +229,17 @@ status-text-container {
         small {
             font-weight: lighter;
         }
+
         h4 {
             margin-right: 0.4em;
         }
+
         .name-and-links {
             flex: 1 0;
             display: flex;
             flex-wrap: wrap;
         }
+
         .replies {
             flex-basis: 100%;
         }
@@ -310,6 +318,7 @@ status-text-container {
     from {
         opacity: 0;
     }
+
     to {
         opacity: 1;
     }
@@ -335,14 +344,14 @@ status-text-container {
 }
 
 .icon-reply:hover {
-    color: $blue_;
-    color: var(--cBlue);
- }
+    color: $fallback--cBlue;
+    color: var(--cBlue, $fallback--cBlue);
+}
 
- .icon-reply.icon-reply-active {
-     color: $blue_;
-     color: var(--cBlue);
- }
+.icon-reply.icon-reply-active {
+    color: $fallback--cBlue;
+    color: var(--cBlue, $fallback--cBlue);
+}
 
  .status .avatar {
    width: 48px;
@@ -359,13 +368,13 @@ status-text-container {
        display: none;
    }
 
-   &.retweeted {
-     width: 40px;
-     height: 40px;
-     margin-right: 8px;
-     margin-bottom: 8px;
-   }
- }
+    &.retweeted {
+        width: 40px;
+        height: 40px;
+        margin-right: 8px;
+        margin-bottom: 8px;
+    }
+}
 
  .status:hover .animated.avatar {
      canvas {
@@ -376,79 +385,81 @@ status-text-container {
      }
  }
 
- .status .avatar-retweeter {
-   width: 24px;
-   height: 24px;
-   position: absolute;
-   margin-left: 24px;
-   margin-top: 24px;
- }
+.status img.avatar-retweeter {
+    width: 24px;
+    height: 24px;
+    position: absolute;
+    margin-left: 24px;
+    margin-top: 24px;
+}
 
- .status.compact .avatar {
-     width: 32px;
- }
+.status.compact .avatar {
+    width: 32px;
+}
 
- .status {
-     padding: 0.4em 0.7em 0.45em 0.7em;
-     border-left: 4px var(--cRed);
-     border-left-style: inherit;
- }
+.status {
+    padding: 0.4em 0.7em 0.45em 0.7em;
+    border-left: 4px $fallback--cRed;
+    border-left: 4px var(--cRed, $fallback--cRed);
+    border-left-style: inherit;
+}
 
- .status-conversation:last-child {
+.status-conversation:last-child {
     border-bottom: none;
- }
+}
 
- .timeline .panel.timeline {
+.timeline .panel.timeline {
     border-radius: 10px;
     overflow: hidden;
- }
+}
 
- .muted {
-   padding: 0.1em 0.4em 0.1em 0.8em;
-   button {
-     margin-left: auto;
-   }
+.muted {
+    padding: 0.1em 0.4em 0.1em 0.8em;
+    button {
+        margin-left: auto;
+    }
 
-   .muteWords {
-     margin-left: 10px;
-   }
- }
+    .muteWords {
+        margin-left: 10px;
+    }
+}
 
- a.unmute {
-   display: block;
-   margin-left: auto;
- }
+a.unmute {
+    display: block;
+    margin-left: auto;
+}
 
- .reply-left {
-   flex: 0;
-   min-width: 48px;
- }
+.reply-left {
+    flex: 0;
+    min-width: 48px;
+}
 
- .reply-body {
-   flex: 1;
- }
+.reply-body {
+    flex: 1;
+}
 
- @media all and (max-width: 960px) {
-   .status-el {
-     .name-and-links {
-       margin-left: -0.25em;
-     }
-   }
-   .status {
-     max-width: 100%;
-   }
+@media all and (max-width: 960px) {
+    .status-el {
+        .name-and-links {
+            margin-left: -0.25em;
+        }
+    }
 
-   .status .avatar {
-     width: 40px;
-     height: 40px;
+    .status {
+        max-width: 100%;
+    }
 
-     &.retweeted {
-       width: 34px;
-       height: 34px;
-       margin-right: 8px;
-       margin-bottom: 8px;
-     }
-   }
+    .status .avatar {
+        width: 40px;
+        height: 40px;
+
+        &.retweeted {
+            width: 34px;
+            height: 34px;
+            margin-right: 8px;
+            margin-bottom: 8px;
+        }
+    }
 
    .status .avatar-retweeter {
      width: 22px;
diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue
index 6c0cc6e7..e6a00275 100644
--- a/src/components/style_switcher/style_switcher.vue
+++ b/src/components/style_switcher/style_switcher.vue
@@ -47,6 +47,7 @@
 <script src="./style_switcher.js"></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
 .style-switcher {
     margin-right: 1em;
 }
@@ -65,14 +66,20 @@
     margin: 5px 6px 5px 0;
 
     label {
-        color: var(--faint);
+        color: var(--faint, $fallback--faint);
     }
 }
+
+.theme-color-cl {
+    border: 0;
+    box-shadow: none;
+    background: transparent;
+}
+
 .theme-color-cl,
 .theme-color-in {
     margin-left: 4px;
     border-radius: 2px;
-    border: 0;
 }
 
 .theme-color-in {
diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue
index b6a5ab14..c3cc939a 100644
--- a/src/components/timeline/timeline.vue
+++ b/src/components/timeline/timeline.vue
@@ -52,54 +52,63 @@
 <script src="./timeline.js"></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
 
-  .timeline {
+.timeline {
     .timeline-heading {
-      position: relative;
-      display: flex;
+        position: relative;
+        display: flex;
     }
+
     .title {
-      white-space: nowrap;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      max-width: 70%;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        max-width: 70%;
     }
+
     .loadmore-button {
-      position: absolute;
-      right: 0.6em;
-      font-size: 14px;
+        position: absolute;
+        right: 0.6em;
+        font-size: 14px;
 
-      min-width: 6em;
-      height: 1.8em;
-      line-height: 100%;
+        min-width: 6em;
+        height: 1.8em;
+        line-height: 100%;
     }
+
     .loadmore-text {
-      position: absolute;
-      right: 0.6em;
-      font-size: 14px;
-      min-width: 6em;
-      border-radius: 5px;
-      background-color: transparent;
-      color: var(--faint);
-      font-family: sans-serif;
-      text-align: center;
-      padding: 0 0.5em 0 0.5em;
-      opacity: 0.8;
+        position: absolute;
+        right: 0.6em;
+        font-size: 14px;
+        min-width: 6em;
+        border-radius: 5px;
+        background-color: transparent;
+        color: $fallback--faint;
+        color: var(--faint, $fallback--faint);
+        font-family: sans-serif;
+        text-align: center;
+        padding: 0 0.5em 0 0.5em;
+        opacity: 0.8;
     }
+
     .error {
-      color: var(--lightFg);
-      background-color: var(--cRed);
+        color: $fallback--lightFg;
+        color: var(--lightFg, $fallback--lightFg);
+        background-color: $fallback--cRed;
+        background-color: var(--cRed, $fallback--cRed);
     }
-  }
+}
 
-  .new-status-notification {
+.new-status-notification {
     position:relative;
     margin-top: -1px;
     font-size: 1.1em;
     border-width: 1px 0 0 0;
     border-style: solid;
     border-radius: 0 0 10px 10px;
-    border-color: var(--border);
+    border-color: $fallback--border;
+    border-color: var(--border, $fallback--border);
     padding: 10px;
     z-index: 1;
   }
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
index 0561fa95..6487d2a6 100644
--- a/src/components/user_card/user_card.vue
+++ b/src/components/user_card/user_card.vue
@@ -21,6 +21,8 @@
 <script src="./user_card.js"></script>
 
 <style lang="scss">
+@import '../../_variables.scss';
+
 .name-and-screen-name {
     margin-left: 0.7em;
     margin-top:0.0em;
@@ -34,10 +36,6 @@
     float: right;
 }
 
-.follows {
-
-}
-
 .card {
     display: flex;
     flex: 1 0;
@@ -47,7 +45,8 @@
     padding-left: 1em;
     border-bottom: 1px solid;
     margin: 0;
-    border-bottom-color: var(--border);
+    border-bottom-color: $fallback--border;
+		border-bottom-color: var(--border, $fallback--border);
 
     .avatar {
         margin-top: 0.2em;
@@ -69,8 +68,9 @@
     .panel-heading {
         background: transparent;
     }
+
     p {
-      margin-bottom: 0;
+        margin-bottom: 0;
     }
-  }
+}
 </style>
diff --git a/src/components/user_card_content/user_card_content.js b/src/components/user_card_content/user_card_content.js
index b7f156d2..2e448f1c 100644
--- a/src/components/user_card_content/user_card_content.js
+++ b/src/components/user_card_content/user_card_content.js
@@ -15,11 +15,6 @@ export default {
         }
       }
     },
-    bodyStyle () {
-      return {
-        background: `linear-gradient(to bottom, rgba(0, 0, 0, 0), ${this.$store.state.config.colors.bg} 80%)`
-      }
-    },
     isOtherUser () {
       return this.user.id !== this.$store.state.users.currentUser.id
     },
diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue
index e3c9b5f9..ca3da632 100644
--- a/src/components/user_card_content/user_card_content.vue
+++ b/src/components/user_card_content/user_card_content.vue
@@ -70,7 +70,7 @@
         </div>
       </div>
     </div>
-    <div class="panel-body profile-panel-body" :style="bodyStyle">
+    <div class="panel-body profile-panel-body">
       <div class="user-counts">
         <div class="user-count">
           <a href="#" v-on:click.prevent="setProfileView('statuses')" v-if="switcher"><h5>{{ $t('user_card.statuses') }}</h5></a>
@@ -99,19 +99,21 @@
 @import '../../_variables.scss';
 
 .profile-panel-background {
-  background-size: cover;
-  border-radius: 10px;
+    background-size: cover;
+    border-radius: 10px;
 
-  .panel-heading {
-    padding: 0.6em 0em;
-    text-align: center;
-  }
+    .panel-heading {
+        padding: 0.6em 0em;
+        text-align: center;
+    }
 }
 
 .profile-panel-body {
-  top: -0em;
-  padding-top: 4em;
-  word-wrap: break-word;
+    top: -0em;
+    padding-top: 4em;
+    word-wrap: break-word;
+    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), $fallback--bg 80%);
+    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), var(--bg, $fallback--bg) 80%)
 }
 
 .user-info {
diff --git a/src/components/user_finder/user_finder.vue b/src/components/user_finder/user_finder.vue
index 66b2fc87..e4453fe7 100644
--- a/src/components/user_finder/user_finder.vue
+++ b/src/components/user_finder/user_finder.vue
@@ -16,25 +16,25 @@
 <script src="./user_finder.js"></script>
 
 <style lang="scss">
- .user-finder-container {
-   height: 21px;
-   max-width: 100%;
- }
+@import '../../_variables.scss';
 
- .user-finder-icon {
- }
+.user-finder-container {
+    height: 21px;
+    max-width: 100%;
+}
 
- .user-finder-input {
-   border-radius: 5px;
-   max-width: 80%;
-   padding: 0.1em 0.2em 0.2em 0.2em;
- }
+.user-finder-input {
+    border-radius: 5px;
+    max-width: 80%;
+    padding: 0.1em 0.2em 0.2em 0.2em;
+}
 
- .finder-error {
-   background-color: rgba(255, 48, 16, 0.65);
-   margin: 0.35em;
-   border-radius: 5px;
-   padding: 0.25em;
-   color: var(--faint);
- }
+.finder-error {
+    background-color: rgba(255, 48, 16, 0.65);
+    margin: 0.35em;
+    border-radius: 5px;
+    padding: 0.25em;
+    color: $fallback--faint;
+    color: var(--faint, $fallback--faint);
+}
 </style>
diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js
index 1bd8df51..bedadb12 100644
--- a/src/services/style_setter/style_setter.js
+++ b/src/services/style_setter/style_setter.js
@@ -47,8 +47,6 @@ const setStyle = (href, commit) => {
     head.appendChild(styleEl)
     // const styleSheet = styleEl.sheet
 
-    // styleSheet.insertRule(`a { color: ${colors['base08']}`, 'index-max')
-    // styleSheet.insertRule(`body { color: ${colors['base05']}`, 'index-max')
     body.style.display = 'initial'
   }
 
@@ -82,20 +80,14 @@ const setColors = (col, commit) => {
   colors['base07'] = rgb2hex(col.text.r - mod * 2, col.text.g - mod * 2, col.text.b - mod * 2)
   colors.link = rgb2hex(col.link.r, col.link.g, col.link.b)                   // links
   colors.icon = rgb2hex((col.bg.r + col.text.r) / 2, (col.bg.g + col.text.g) / 2, (col.bg.b + col.text.b) / 2) // icons
-  colors.cBlue = 'blue'
+  colors.cBlue = '#0095ff'
   colors.cRed = 'red'
-  colors.cGreen = 'green'
+  colors.cGreen = '#0fa00f'
   colors.cYellow = 'yellow'
   colors.cOrange = 'orange'
 
-  const colorVars = Object.entries(colors).map(([k, v]) => {
-    return `--${k}: ${v}`
-  })
-  console.log(colorVars)
-
-  styleSheet.insertRule(`body { ${colorVars.join(';')} }`, 'index-max')
-  // styleSheet.insertRule(`.base05-border { border-color: ${colors['base05']}`, 'index-max')
-  // styleSheet.insertRule(`.base03-border { border-color: ${colors['base03']}`, 'index-max')
+  styleSheet.toString()
+  styleSheet.insertRule(`body { ${Object.entries(colors).map(([k, v]) => `--${k}: ${v}`).join(';')} }`, 'index-max')
   body.style.display = 'initial'
 
   commit('setOption', { name: 'colors', value: colors })
-- 
cgit v1.2.3-70-g09d2


From 33b1d85921e326e0d81c4bf1a6fa02fec2cbbd5c Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 1 Apr 2018 22:07:25 +0300
Subject: border-radii moved to variables, made rgbo colors use theme data,
 customizable from settings screen.

---
 src/App.scss                                       |  36 +++---
 src/_variables.scss                                |   7 +-
 src/components/attachment/attachment.vue           |   6 +-
 src/components/chat_panel/chat_panel.vue           |  58 +++++----
 src/components/login_form/login_form.vue           |  10 +-
 src/components/media_upload/media_upload.vue       |   2 +-
 src/components/notifications/notifications.scss    |   2 +-
 .../post_status_form/post_status_form.vue          |  16 ++-
 src/components/registration/registration.vue       |   8 +-
 src/components/settings/settings.vue               |  57 +++++----
 src/components/status/status.vue                   |  10 +-
 src/components/style_switcher/style_switcher.js    |  27 ++++-
 src/components/style_switcher/style_switcher.vue   |  23 +++-
 src/components/timeline/timeline.vue               |   3 -
 src/components/user_card/user_card.vue             |   9 +-
 .../user_card_content/user_card_content.vue        | 134 ++++++++++++++-------
 src/components/user_finder/user_finder.vue         |   4 +-
 src/components/user_panel/user_panel.vue           |   8 +-
 src/components/user_profile/user_profile.vue       |  13 +-
 src/components/user_settings/user_settings.vue     |  36 ++----
 src/services/style_setter/style_setter.js          |  26 +++-
 21 files changed, 308 insertions(+), 187 deletions(-)

(limited to 'src/components/attachment/attachment.vue')

diff --git a/src/App.scss b/src/App.scss
index ec80626b..a7b56523 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -51,7 +51,8 @@ button{
   background-color: $fallback--btn;
   background-color: var(--btn, $fallback--btn);
   border: none;
-  border-radius: 5px;
+  border-radius: $fallback--btnRadius;
+  border-radius: var(--btnRadius, $fallback--btnRadius);
   cursor: pointer;
   border-top: 1px solid rgba(255, 255, 255, 0.2);
   border-bottom: 1px solid rgba(0, 0, 0, 0.2);
@@ -79,7 +80,8 @@ button{
 
 input, textarea, select {
   border: none;
-  border-radius: 5px;
+  border-radius: $fallback--btnRadius;
+  border-radius: var(--btnRadius, $fallback--btnRadius);
   border-bottom: 1px solid rgba(255, 255, 255, 0.2);
   border-top: 1px solid rgba(0, 0, 0, 0.2);
   box-shadow: 0px 0px 2px black inset;
@@ -90,6 +92,7 @@ input, textarea, select {
   font-family: sans-serif;
   font-size: 14px;
   padding: 8px 7px 4px;
+  box-sizing: border-box;
 
   // TODO: Restyle <select> in a decent way. Needs different markup
   // -webkit-appearance:none;
@@ -109,32 +112,27 @@ input, textarea, select {
       transition: color 200ms;
       width: 1.1em;
       height: 1.1em;
-      border-radius: 2px;
+      border-radius: $fallback--checkBoxRadius;
+      border-radius: var(--checkBoxRadius, $fallback--checkBoxRadius);
       border-bottom: 1px solid rgba(255, 255, 255, 0.2);
       border-top: 1px solid rgba(0, 0, 0, 0.2);
       box-shadow: 0px 0px 2px black inset;
       margin-right: .5em;
       background-color: $fallback--btn;
       background-color: var(--btn, $fallback--btn);
-      vertical-align: baseline;
+      vertical-align: top;
       text-align: center;
       line-height: 1.1em;
       font-size: 1.1em;
       box-sizing: border-box;
       color: transparent;
       overflow: hidden;
+      box-sizing: border-box;
     }
   }
 }
 
-.icon-cancel,
-.icon-reply,
-.icon-retweet,
-.icon-star-empty,
-.icon-eye-off,
-.icon-binoculars,
-.icon-plus-squared,
-.icon-spin4 {
+i[class^=icon-] {
   color: $fallback--icon;
   color: var(--icon, $fallback--icon)
 }
@@ -188,6 +186,11 @@ nav {
     background-repeat: no-repeat;
     background-position: center;
     background-size: contain;
+
+    a i {
+      color: $fallback--link;
+      color: var(--link, $fallback--link);
+    }
   }
 }
 
@@ -215,9 +218,8 @@ main-router {
   background-color: $fallback--bg;
   background-color: var(--bg, $fallback--bg);
 
-  border-radius: 10px;
   border-radius: $fallback--panelRadius;
-  border-radius: var(--panelRadius, 10px);
+  border-radius: var(--panelRadius, $fallback--panelRadius);
   box-shadow: 1px 1px 4px rgba(0,0,0,.6);
   overflow: hidden;
 }
@@ -230,7 +232,8 @@ main-router {
 }
 
 .panel-heading {
-  border-radius: 10px 10px 0 0;
+  border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;
+  border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;
   background-size: cover;
   padding: 0.6em 1.0em;
   text-align: left;
@@ -241,7 +244,8 @@ main-router {
 }
 
 .panel-footer {
-  border-radius: 0 0 10px 10px;
+  border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;
+  border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);
 }
 
 .panel-body > p {
diff --git a/src/_variables.scss b/src/_variables.scss
index eccc0aab..1f5d4b3e 100644
--- a/src/_variables.scss
+++ b/src/_variables.scss
@@ -15,6 +15,11 @@ $fallback--cRed: #ff0000;
 $fallback--cBlue: #0095ff;
 $fallback--cGreen: #0fa00f;
 $fallback--cOrange: orange;
-$fallback--cYellow: yellow;
 
 $fallback--panelRadius: 10px;
+$fallback--checkBoxRadius: 2px;
+$fallback--btnRadius: 4px;
+$fallback--tooltipRadius: 5px;
+$fallback--avatarRadius: 4px;
+$fallback--avatarAltRadius: 10px;
+$fallback--attachmentRadius: 10px;
diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index e3b1e4d4..1fdee5d3 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -52,7 +52,8 @@
 
         border-style: solid;
         border-width: 1px;
-        border-radius: 5px;
+        border-radius: $fallback--attachmentRadius;
+        border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
         overflow: hidden;
 
         // fixes small gap below video
@@ -109,7 +110,8 @@
                 flex: 1;
                 img {
                     border: 0px;
-                    border-radius: 5px;
+                    border-radius: $fallback--attachmentRadius;
+                    border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
                     height: 100%;
                     object-fit: cover;
                 }
diff --git a/src/components/chat_panel/chat_panel.vue b/src/components/chat_panel/chat_panel.vue
index 69996f76..fd997aa8 100644
--- a/src/components/chat_panel/chat_panel.vue
+++ b/src/components/chat_panel/chat_panel.vue
@@ -29,30 +29,36 @@
 <script src="./chat_panel.js"></script>
 
 <style lang="scss">
- .chat-window {
-   max-height: 200px;
-   overflow-y: auto;
-   overflow-x: hidden;
- }
- .chat-message {
-   padding: 0.2em 0.5em
- }
- .chat-avatar {
-     img {
-         height: 32px;
-         width: 32px;
-         border-radius: 5px;
-         margin-right: 0.5em;
-     }
- }
- .chat-input {
-     display: flex;
-     form {
-         flex: auto;
-         input {
-             margin: 0.5em;
-             width: fill-available;
-         }
-     }
- }
+@import '../../_variables.scss';
+
+.chat-window {
+    max-height: 200px;
+    overflow-y: auto;
+    overflow-x: hidden;
+}
+
+.chat-message {
+    padding: 0.2em 0.5em
+}
+
+.chat-avatar {
+    img {
+        height: 32px;
+        width: 32px;
+        border-radius: $fallback--avatarRadius;
+        border-radius: var(--avatarRadius, $fallback--avatarRadius);
+        margin-right: 0.5em;
+    }
+}
+
+.chat-input {
+    display: flex;
+    form {
+        flex: auto;
+        input {
+            margin: 0.5em;
+            width: fill-available;
+        }
+    }
+}
 </style>
diff --git a/src/components/login_form/login_form.vue b/src/components/login_form/login_form.vue
index 82000d6b..ac492262 100644
--- a/src/components/login_form/login_form.vue
+++ b/src/components/login_form/login_form.vue
@@ -34,21 +34,17 @@
 @import '../../_variables.scss';
 
 .login-form {
-    input {
-        border-radius: 5px;
-        padding: 0.1em 0.2em 0.2em 0.2em;
-    }
-
     .btn {
         min-height: 28px;
         width: 10em;
     }
 
     .error {
-        border-radius: 5px;
+        border-radius: $fallback--tooltipRadius;
+        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
         text-align: center;
         background-color: rgba(255, 48, 16, 0.65);
-       background-color: $fallback--cRed;
+        background-color: $fallback--cRed;
         min-height: 28px;
         line-height: 28px;
     }
diff --git a/src/components/media_upload/media_upload.vue b/src/components/media_upload/media_upload.vue
index 8e83e7f1..8b931d2d 100644
--- a/src/components/media_upload/media_upload.vue
+++ b/src/components/media_upload/media_upload.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="media-upload" @drop.prevent @dragover.prevent="fileDrag" @drop="fileDrop">
     <label class="btn btn-default">
-      <i class="animate-spin" v-if="uploading"></i>
+      <i class="icon-spin4 animate-spin" v-if="uploading"></i>
       <i class="icon-upload" v-if="!uploading"></i>
       <input type=file style="position: fixed; top: -100em"></input>
     </label>
diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss
index 5af2454e..7ef4f07d 100644
--- a/src/components/notifications/notifications.scss
+++ b/src/components/notifications/notifications.scss
@@ -120,6 +120,7 @@
       margin-top: 0.3em;
       width: 32px;
       height: 32px;
+      border-radius: $fallback--avatarAltRadius;
       border-radius: 50%;
       overflow: hidden;
       line-height: 0;
@@ -141,7 +142,6 @@
 
     &:last-child {
       border-bottom: none;
-      border-radius: 0 0 10px 10px;
     }
   }
 
diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue
index d57418fb..abf3b5b7 100644
--- a/src/components/post_status_form/post_status_form.vue
+++ b/src/components/post_status_form/post_status_form.vue
@@ -64,7 +64,8 @@
         padding: 3px;
         width: 16px;
         height: 16px;
-        border-radius: 50%;
+        border-radius: $fallback--avatarAltRadius;
+        border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
     }
 }
 
@@ -86,7 +87,8 @@
     }
 
     .error {
-        border-radius: 5px;
+        border-radius: $fallback--tooltipRadius;
+        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
         text-align: center;
         background-color: rgba(255, 48, 16, 0.65);
         background-color: $fallback--cRed;
@@ -111,7 +113,8 @@
             margin: 10px;
             padding: 5px;
             background: rgba(230,230,230,0.6);
-            border-radius: 5px;
+            border-radius: $fallback--attachmentRadius;
+            border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
             font-weight: bold;
         }
     }
@@ -148,6 +151,7 @@
         overflow: hidden;
         transition: min-height 200ms;
         min-height: 1px;
+        box-sizing: content-box;
     }
 
     form textarea:focus {
@@ -169,7 +173,8 @@
 
     .autocomplete-panel {
         margin: 0 0.5em 0 0.5em;
-        border-radius: 5px;
+        border-radius: $fallback--tooltipRadius;
+        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
         position: absolute;
         z-index: 1;
         box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);
@@ -189,7 +194,8 @@
         img {
             width: 24px;
             height: 24px;
-            border-radius: 2px;
+            border-radius: $fallback--avatarRadius;
+            border-radius: var(--avatarRadius, $fallback--avatarRadius);
             object-fit: contain;
         }
 
diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue
index 0966645d..b9093082 100644
--- a/src/components/registration/registration.vue
+++ b/src/components/registration/registration.vue
@@ -88,15 +88,10 @@
     }
 
     form textarea {
-        border-radius: 5px;
         line-height:16px;
         resize: vertical;
     }
 
-    input {
-        border-radius: 5px;
-    }
-
     .captcha {
         max-width: 350px;
         margin-bottom: 0.4em;
@@ -110,7 +105,8 @@
     }
 
     .error {
-        border-radius: 5px;
+        border-radius: $fallback--tooltipRadius;
+        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
         text-align: center;
         margin: 0.5em 0.6em 0;
         background-color: $fallback--cRed;
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index 98f70f7b..9f195687 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -54,33 +54,40 @@
 </script>
 
 <style lang="scss">
- .setting-item {
-   margin: 1em 1em 1.4em;
+@import '../../_variables.scss';
 
-   textarea {
-     width: 100%;
-     height: 100px;
-   }
+.setting-item {
+    margin: 1em 1em 1.4em;
 
-   .old-avatar {
-     width: 128px;
-     border-radius: 5px;
-   }
+    textarea {
+        width: 100%;
+        height: 100px;
+    }
 
-   .new-avatar {
-     object-fit: cover;
-     width: 128px;
-     height: 128px;
-     border-radius: 5px;
-   }
+    .old-avatar {
+        width: 128px;
+        border-radius: $fallback--avatarRadius;
+        border-radius: var(--avatarRadius, $fallback--avatarRadius);
+    }
 
-   .btn {
-     margin-top: 1em;
-     min-height: 28px;
-     width: 10em;
-   }
- }
- .setting-list {
-   list-style-type: none;
- }
+    .new-avatar {
+        object-fit: cover;
+        width: 128px;
+        height: 128px;
+        border-radius: $fallback--avatarRadius;
+        border-radius: var(--avatarRadius, $fallback--avatarRadius);
+    }
+
+    .btn {
+        margin-top: 1em;
+        min-height: 28px;
+        width: 10em;
+    }
+}
+.setting-list {
+    list-style-type: none;
+    li {
+        margin-bottom: 0.5em;
+    }
+}
 </style>
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 80f6a315..14ffd922 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -145,7 +145,8 @@ status-text-container {
     border-color: var(--border, $fallback--border);
     border-style: solid;
     border-width: 1px;
-    border-radius: 4px;
+    border-radius: $fallback--tooltipRadius;
+    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
     box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);
     margin-top: 0.5em;
     margin-left: 1em;
@@ -155,7 +156,8 @@ status-text-container {
         flex-shrink: 0;
         width: 32px;
         height: 32px;
-        border-radius: 50%;
+        border-radius: $fallback--avatarAltRadius;
+        border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
     }
 
     .text {
@@ -287,7 +289,8 @@ status-text-container {
         margin: 0.2em 0.3em 0 0;
         .avatar {
             float: right;
-            border-radius: 5px;
+            border-radius: $fallback--avatarRadius;
+            border-radius: var(--avatarRadius, $fallback--avatarRadius);
         }
     }
 
@@ -409,7 +412,6 @@ status-text-container {
 }
 
 .timeline .panel.timeline {
-    border-radius: 10px;
     overflow: hidden;
 }
 
diff --git a/src/components/style_switcher/style_switcher.js b/src/components/style_switcher/style_switcher.js
index 6e414338..5e5ba266 100644
--- a/src/components/style_switcher/style_switcher.js
+++ b/src/components/style_switcher/style_switcher.js
@@ -8,7 +8,11 @@ export default {
       bgColorLocal: '',
       fgColorLocal: '',
       textColorLocal: '',
-      linkColorLocal: ''
+      linkColorLocal: '',
+      redColorLocal: '#ff0000',
+      blueColorLocal: '#0095ff',
+      greenColorLocal: '#0fa00f',
+      orangeColorLocal: '#E3FF00'
     }
   },
   created () {
@@ -25,6 +29,11 @@ export default {
     this.fgColorLocal = rgbstr2hex(this.$store.state.config.colors.lightBg)
     this.textColorLocal = rgbstr2hex(this.$store.state.config.colors.fg)
     this.linkColorLocal = rgbstr2hex(this.$store.state.config.colors.link)
+
+    this.redColorLocal = rgbstr2hex(this.$store.state.config.colors.cRed || this.redColorLocal)
+    this.blueColorLocal = rgbstr2hex(this.$store.state.config.colors.cBlue || this.blueColorLocal)
+    this.greenColorLocal = rgbstr2hex(this.$store.state.config.colors.cGreen || this.greenColorLocal)
+    this.orangeColorLocal = rgbstr2hex(this.$store.state.config.colors.cOrange || this.orangeColorLocal)
   },
   methods: {
     setCustomTheme () {
@@ -43,6 +52,12 @@ export default {
       const fgRgb = rgb(this.fgColorLocal)
       const textRgb = rgb(this.textColorLocal)
       const linkRgb = rgb(this.linkColorLocal)
+
+      const redRgb = rgb(this.redColorLocal)
+      const blueRgb = rgb(this.blueColorLocal)
+      const greenRgb = rgb(this.greenColorLocal)
+      const orangeRgb = rgb(this.orangeColorLocal)
+
       if (bgRgb && fgRgb && linkRgb) {
         this.$store.dispatch('setOption', {
           name: 'customTheme',
@@ -50,7 +65,11 @@ export default {
             fg: fgRgb,
             bg: bgRgb,
             text: textRgb,
-            link: linkRgb
+            link: linkRgb,
+            cRed: redRgb,
+            cBlue: blueRgb,
+            cGreen: greenRgb,
+            cOrange: orangeRgb
           }})
       }
     }
@@ -61,6 +80,10 @@ export default {
       this.fgColorLocal = this.selected[2]
       this.textColorLocal = this.selected[3]
       this.linkColorLocal = this.selected[4]
+      this.redColorLocal = this.selected[5]
+      this.blueColorLocal = this.selected[6]
+      this.greenColorLocal = this.selected[7]
+      this.orangeColorLocal = this.selected[8]
     }
   }
 }
diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue
index e6a00275..e2853d01 100644
--- a/src/components/style_switcher/style_switcher.vue
+++ b/src/components/style_switcher/style_switcher.vue
@@ -27,6 +27,28 @@
         <input id="linkcolor-t" class="theme-color-in" type="text" v-model="linkColorLocal">
       </div>
     </div>
+    <div class="color-container additional colors">
+      <div class="color-item">
+        <label for="redcolor" class="theme-color-lb">{{$t('settings.cRed')}}</label>
+        <input id="redcolor" class="theme-color-cl" type="color" v-model="redColorLocal">
+        <input id="redcolor-t" class="theme-color-in" type="text" v-model="redColorLocal">
+      </div>
+      <div class="color-item">
+        <label for="bluecolor" class="theme-color-lb">{{$t('settings.cBlue')}}</label>
+        <input id="bluecolor" class="theme-color-cl" type="color" v-model="blueColorLocal">
+        <input id="bluecolor-t" class="theme-color-in" type="text" v-model="blueColorLocal">
+      </div>
+      <div class="color-item">
+        <label for="greencolor" class="theme-color-lb">{{$t('settings.cGreen')}}</label>
+        <input id="greencolor" class="theme-color-cl" type="color" v-model="greenColorLocal">
+        <input id="greencolor-t" class="theme-color-in" type="green" v-model="greenColorLocal">
+      </div>
+      <div class="color-item">
+        <label for="orangecolor" class="theme-color-lb">{{$t('settings.cOrange')}}</label>
+        <input id="orangecolor" class="theme-color-cl" type="color" v-model="orangeColorLocal">
+        <input id="orangecolor-t" class="theme-color-in" type="text" v-model="orangeColorLocal">
+      </div>
+    </div>
     <div>
       <div class="panel">
         <div class="panel-heading" :style="{ 'background-color': fgColorLocal, 'color': textColorLocal }">Preview</div>
@@ -79,7 +101,6 @@
 .theme-color-cl,
 .theme-color-in {
     margin-left: 4px;
-    border-radius: 2px;
 }
 
 .theme-color-in {
diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue
index c3cc939a..aa3a8bff 100644
--- a/src/components/timeline/timeline.vue
+++ b/src/components/timeline/timeline.vue
@@ -82,7 +82,6 @@
         right: 0.6em;
         font-size: 14px;
         min-width: 6em;
-        border-radius: 5px;
         background-color: transparent;
         color: $fallback--faint;
         color: var(--faint, $fallback--faint);
@@ -106,8 +105,6 @@
     font-size: 1.1em;
     border-width: 1px 0 0 0;
     border-style: solid;
-    border-radius: 0 0 10px 10px;
-    border-color: $fallback--border;
     border-color: var(--border, $fallback--border);
     padding: 10px;
     z-index: 1;
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
index 6487d2a6..660689d2 100644
--- a/src/components/user_card/user_card.vue
+++ b/src/components/user_card/user_card.vue
@@ -52,16 +52,19 @@
         margin-top: 0.2em;
         width:32px;
         height: 32px;
-        border-radius: 50%;
+        border-radius: $fallback--avatarAltRadius;
+        border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
     }
 }
 
 .usercard {
     width: fill-available;
     margin: 0.2em 0 0.7em 0;
-    border-radius: 10px;
+    border-radius: $fallback--panelRadius;
+    border-radius: var(--panelRadius, $fallback--panelRadius);
     border-style: solid;
-    border-color: inherit;
+    border-color: $fallback--border;
+		border-color: var(--border, $fallback--border);
     border-width: 1px;
     overflow: hidden;
 
diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue
index ca3da632..3f4689fd 100644
--- a/src/components/user_card_content/user_card_content.vue
+++ b/src/components/user_card_content/user_card_content.vue
@@ -100,7 +100,8 @@
 
 .profile-panel-background {
     background-size: cover;
-    border-radius: 10px;
+    border-radius: $fallback--panelRadius;
+    border-radius: var(--panelRadius, $fallback--panelRadius);
 
     .panel-heading {
         padding: 0.6em 0em;
@@ -117,14 +118,9 @@
 }
 
 .user-info {
-	color: white;
-  padding: 0 16px 16px 16px;
-  margin-bottom: -4em;
-
-  .usersettings {
     color: white;
-    opacity: 0.8;
-  }
+    padding: 0 16px 16px 16px;
+    margin-bottom: -4em;
 
   .container{
     padding: 16px 10px 4px 10px;
@@ -186,51 +182,104 @@
     flex-flow: row wrap;
     justify-content: space-between;
 
-    div {
-      flex: 1;
+    .usersettings {
+        color: white;
+        opacity: 0.8;
     }
-    margin-top: 0.7em;
-    margin-bottom: -1.0em;
 
-    .following {
-      color: white;
-      font-size: 14px;
-      flex: 0 0 100%;
-      margin: -0.7em 0.0em 0.3em 0.0em;
-      padding-left: 16px;
-      text-align: left;
+    .container{
+        padding: 16px 10px 4px 10px;
+        display: flex;
+        flex-wrap: wrap;
+        flex-direction: column;
+        align-content: flex-start;
+        justify-content: center;
+        max-height: 56px;
+        overflow: hidden;
     }
 
-    .mute {
-      max-width: 220px;
-      min-height: 28px;
+    img {
+        border-radius: $fallback--avatarRadius;
+        border-radius: var(--avatarRadius, $fallback--avatarRadius);
+        flex: 1 0 100%;
+        width: 56px;
+        height: 56px;
+        box-shadow: 0px 1px 8px rgba(0,0,0,0.75);
+        object-fit: cover;
     }
 
-    .remote-follow {
-      max-width: 220px;
-      min-height: 28px;
-    }
+    text-shadow: 0px 1px 1.5px rgba(0, 0, 0, 1.0);
 
-    .follow {
-      max-width: 220px;
-      min-height: 28px;
+    .name-and-screen-name {
+        display: block;
+        margin-left: 0.6em;
+        text-align: left;
+        text-overflow: ellipsis;
+        white-space: nowrap;
     }
 
-    button {
-      width: 92%;
-      height: 100%;
+    .user-name{
+        color: white;
     }
 
-    .remote-button {
-      height: 28px !important;
-      width: 92%;
+    .user-screen-name {
+        color: white;
+        font-weight: lighter;
+        font-size: 15px;
+        padding-right: 0.1em;
+        flex: 0 0 auto;
     }
 
-    .pressed {
-      border-bottom-color: rgba(255, 255, 255, 0.2);
-      border-top-color: rgba(0, 0, 0, 0.2);
+    .user-interactions {
+        display: flex;
+        flex-flow: row wrap;
+        justify-content: space-between;
+
+        div {
+            flex: 1;
+        }
+        margin-top: 0.7em;
+        margin-bottom: -1.0em;
+
+        .following {
+            color: white;
+            font-size: 14px;
+            flex: 0 0 100%;
+            margin: -0.7em 0.0em 0.3em 0.0em;
+            padding-left: 16px;
+            text-align: left;
+        }
+
+        .mute {
+            max-width: 220px;
+            min-height: 28px;
+        }
+
+        .remote-follow {
+            max-width: 220px;
+            min-height: 28px;
+        }
+
+        .follow {
+            max-width: 220px;
+            min-height: 28px;
+        }
+
+        button {
+            width: 92%;
+            height: 100%;
+        }
+
+        .remote-button {
+            height: 28px !important;
+            width: 92%;
+        }
+
+        .pressed {
+            border-bottom-color: rgba(255, 255, 255, 0.2);
+            border-top-color: rgba(0, 0, 0, 0.2);
+        }
     }
-  }
 }
 
 .user-counts {
@@ -244,7 +293,8 @@
     flex: 1;
 
     h5 {
-    	font-size:1em;
+        color: white;
+        font-size:1em;
         font-weight: bolder;
         margin: 0 0 0.25em;
     }
@@ -254,7 +304,7 @@
 }
 
 .dailyAvg {
-  font-size: 0.8em;
-  opacity: 0.5;
+    font-size: 0.8em;
+    opacity: 0.5;
 }
 </style>
diff --git a/src/components/user_finder/user_finder.vue b/src/components/user_finder/user_finder.vue
index e4453fe7..f9362a7d 100644
--- a/src/components/user_finder/user_finder.vue
+++ b/src/components/user_finder/user_finder.vue
@@ -24,7 +24,6 @@
 }
 
 .user-finder-input {
-    border-radius: 5px;
     max-width: 80%;
     padding: 0.1em 0.2em 0.2em 0.2em;
 }
@@ -32,7 +31,8 @@
 .finder-error {
     background-color: rgba(255, 48, 16, 0.65);
     margin: 0.35em;
-    border-radius: 5px;
+    border-radius: $fallback--tooltipRadius;
+    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
     padding: 0.25em;
     color: $fallback--faint;
     color: var(--faint, $fallback--faint);
diff --git a/src/components/user_panel/user_panel.vue b/src/components/user_panel/user_panel.vue
index 7da767b7..05af7bc3 100644
--- a/src/components/user_panel/user_panel.vue
+++ b/src/components/user_panel/user_panel.vue
@@ -13,9 +13,9 @@
 <script src="./user_panel.js"></script>
 
 <style lang="scss">
-  .user-panel {
-    .panel-heading {
-      background: transparent;
+.user-panel {
+    .profile-panel-background .panel-heading {
+        background: transparent;
     }
-  }
+}
 </style>
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 14d8cfe9..e6060451 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -12,13 +12,12 @@
 <style lang="scss">
 
 .user-profile {
-  flex: 2;
-  flex-basis: 500px;
-  padding-bottom: 10px;
-  border-radius: 10px;
-  .panel-heading {
-      background: transparent;
-  }
+    flex: 2;
+    flex-basis: 500px;
+    padding-bottom: 10px;
+    .panel-heading {
+        background: transparent;
+    }
 }
 
 </style>
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index fecc67b8..39bb498c 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -75,31 +75,21 @@
 
 <style lang="scss">
 .profile-edit {
-  .name-changer {
-    border-radius: 5px;
-    padding: 0.2em 0.2em 0.2em 0.2em;
-  }
-  .name-submit {
-    padding: 0.2em 0.5em 0.2em 0.5em;
-  }
-  .bio {
-    border-radius: 5px;
-    margin: 0;
-  }
+    .bio {
+        margin: 0;
+    }
 
-  input[type=file] {
-      padding: 5px;
-      border-radius: 5px;
-  }
+    input[type=file] {
+        padding: 5px;
+    }
 
-  .banner {
-    max-width: 400px;
-    border-radius: 5px;
-  }
+    .banner {
+        max-width: 400px;
+    }
 
-  .uploading {
-    font-size: 1.5em;
-    margin: 0.25em;
-  }
+    .uploading {
+        font-size: 1.5em;
+        margin: 0.25em;
+    }
 }
 </style>
diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js
index bedadb12..503a0d72 100644
--- a/src/services/style_setter/style_setter.js
+++ b/src/services/style_setter/style_setter.js
@@ -69,6 +69,7 @@ const setColors = (col, commit) => {
   if (isDark) {
     mod = mod * -1
   }
+  console.log(JSON.stringify(col, null, ' '))
 
   colors.bg = rgb2hex(col.bg.r, col.bg.g, col.bg.b)                         // background
   colors.lightBg = rgb2hex((col.bg.r + col.fg.r) / 2, (col.bg.g + col.fg.g) / 2, (col.bg.b + col.fg.b) / 2) // hilighted bg
@@ -77,14 +78,16 @@ const setColors = (col, commit) => {
   colors.faint = rgb2hex(col.text.r + mod * 2, col.text.g + mod * 2, col.text.b + mod * 2) // faint text
   colors.fg = rgb2hex(col.text.r, col.text.g, col.text.b)                   // text
   colors.lightFg = rgb2hex(col.text.r - mod, col.text.g - mod, col.text.b - mod) // strong text
+
   colors['base07'] = rgb2hex(col.text.r - mod * 2, col.text.g - mod * 2, col.text.b - mod * 2)
+
   colors.link = rgb2hex(col.link.r, col.link.g, col.link.b)                   // links
   colors.icon = rgb2hex((col.bg.r + col.text.r) / 2, (col.bg.g + col.text.g) / 2, (col.bg.b + col.text.b) / 2) // icons
-  colors.cBlue = '#0095ff'
-  colors.cRed = 'red'
-  colors.cGreen = '#0fa00f'
-  colors.cYellow = 'yellow'
-  colors.cOrange = 'orange'
+
+  colors.cBlue = col.cBlue && rgb2hex(col.cBlue.r, col.cBlue.g, col.cBlue.b)
+  colors.cRed = col.cRed && rgb2hex(col.cRed.r, col.cRed.g, col.cRed.b)
+  colors.cGreen = col.cGreen && rgb2hex(col.cGreen.r, col.cGreen.g, col.cGreen.b)
+  colors.cOrange = col.cOrange && rgb2hex(col.cOrange.r, col.cOrange.g, col.cOrange.b)
 
   styleSheet.toString()
   styleSheet.insertRule(`body { ${Object.entries(colors).map(([k, v]) => `--${k}: ${v}`).join(';')} }`, 'index-max')
@@ -103,12 +106,23 @@ const setPreset = (val, commit) => {
       const fgRgb = hex2rgb(theme[2])
       const textRgb = hex2rgb(theme[3])
       const linkRgb = hex2rgb(theme[4])
+
+      const cRedRgb = hex2rgb(theme[5] || '#FF0000')
+      const cBlueRgb = hex2rgb(theme[6] || '#0000FF')
+      const cGreenRgb = hex2rgb(theme[7] || '#00FF00')
+      const cOrangeRgb = hex2rgb(theme[8] || '#E3FF00')
+
       const col = {
         bg: bgRgb,
         fg: fgRgb,
         text: textRgb,
-        link: linkRgb
+        link: linkRgb,
+        cRed: cRedRgb,
+        cBlue: cBlueRgb,
+        cGreen: cGreenRgb,
+        cOrange: cOrangeRgb
       }
+
       // This is a hack, this function is only called during initial load.
       // We want to cancel loading the theme from config.json if we're already
       // loading a theme from the persisted state.
-- 
cgit v1.2.3-70-g09d2


From 529643d35acf10ce5d8793cd2d8309f5bd36d249 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sat, 7 Apr 2018 19:30:27 +0300
Subject: indents

---
 src/components/attachment/attachment.vue           | 194 ++++-----
 src/components/chat_panel/chat_panel.vue           |  36 +-
 src/components/delete_button/delete_button.vue     |  16 +-
 src/components/favorite_button/favorite_button.vue |  17 +-
 src/components/login_form/login_form.vue           |  47 +-
 src/components/nav_panel/nav_panel.vue             |  64 +--
 .../post_status_form/post_status_form.vue          | 297 +++++++------
 src/components/registration/registration.vue       |  98 ++---
 src/components/retweet_button/retweet_button.vue   |  16 +-
 src/components/settings/settings.vue               |  52 +--
 src/components/status/status.vue                   | 476 ++++++++++-----------
 src/components/style_switcher/style_switcher.vue   |  68 +--
 src/components/timeline/timeline.vue               |  92 ++--
 src/components/user_card/user_card.vue             |  78 ++--
 .../user_card_content/user_card_content.vue        | 234 +++++-----
 src/components/user_finder/user_finder.vue         |  22 +-
 src/components/user_profile/user_profile.vue       |  13 +-
 src/components/user_settings/user_settings.vue     |  26 +-
 18 files changed, 921 insertions(+), 925 deletions(-)

(limited to 'src/components/attachment/attachment.vue')

diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index 1fdee5d3..65dc3bab 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -33,113 +33,113 @@
 @import '../../_variables.scss';
 
 .attachments {
-    display: flex;
-    flex-wrap: wrap;
-    margin-right: -0.7em;
-
-    .attachment.media-upload-container {
-        flex: 0 0 auto;
-        max-height: 300px;
-        max-width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  margin-right: -0.7em;
+
+  .attachment.media-upload-container {
+    flex: 0 0 auto;
+    max-height: 300px;
+    max-width: 100%;
+  }
+
+  .attachment {
+    flex: 1 0 30%;
+    margin: 0.5em 0.7em 0.6em 0.0em;
+    align-self: flex-start;
+    border-color: $fallback--border;
+    border-color: var(--border, $fallback--border);
+
+    border-style: solid;
+    border-width: 1px;
+    border-radius: $fallback--attachmentRadius;
+    border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
+    overflow: hidden;
+
+    // fixes small gap below video
+    &.video {
+      line-height: 0;
     }
 
-    .attachment {
-        flex: 1 0 30%;
-        margin: 0.5em 0.7em 0.6em 0.0em;
-        align-self: flex-start;
-        border-color: $fallback--border;
-        border-color: var(--border, $fallback--border);
-
-        border-style: solid;
-        border-width: 1px;
-        border-radius: $fallback--attachmentRadius;
-        border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
-        overflow: hidden;
-
-        // fixes small gap below video
-        &.video {
-            line-height: 0;
-        }
+    &.html {
+      flex-basis: 90%;
+      width: 100%;
+      display: flex;
+    }
 
-        &.html {
-            flex-basis: 90%;
-            width: 100%;
-            display: flex;
-        }
+    &.loading {
+      cursor: progress;
+    }
 
-        &.loading {
-            cursor: progress;
-        }
+    .hider {
+      position: absolute;
+      margin: 10px;
+      padding: 5px;
+      background: rgba(230,230,230,0.6);
+      font-weight: bold;
+      z-index: 4;
+    }
 
-        .hider {
-            position: absolute;
-            margin: 10px;
-            padding: 5px;
-            background: rgba(230,230,230,0.6);
-            font-weight: bold;
-            z-index: 4;
-        }
+    video {
+      max-height: 500px;
+      height: 100%;
+      width: 100%;
+      z-index: 0;
+    }
 
-        video {
-            max-height: 500px;
-            height: 100%;
-            width: 100%;
-            z-index: 0;
-        }
+    audio {
+      width: 100%;
+    }
 
-        audio {
-            width: 100%;
-        }
+    img.media-upload {
+      margin-bottom: -2px;
+      max-height: 300px;
+      max-width: 100%;
+    }
 
-        img.media-upload {
-            margin-bottom: -2px;
-            max-height: 300px;
-            max-width: 100%;
+    .oembed {
+      width: 100%;
+      margin-right: 15px;
+      display: flex;
+
+      img {
+        width: 100%;
+      }
+
+      .image {
+        flex: 1;
+        img {
+          border: 0px;
+          border-radius: $fallback--attachmentRadius;
+          border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
+          height: 100%;
+          object-fit: cover;
         }
-
-        .oembed {
-            width: 100%;
-            margin-right: 15px;
-            display: flex;
-
-            img {
-                width: 100%;
-            }
-
-            .image {
-                flex: 1;
-                img {
-                    border: 0px;
-                    border-radius: $fallback--attachmentRadius;
-                    border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
-                    height: 100%;
-                    object-fit: cover;
-                }
-            }
-
-            .text {
-                flex: 2;
-                margin: 8px;
-                word-break: break-all;
-                h1 {
-                    font-size: 14px;
-                    margin: 0px;
-                }
-            }
+      }
+
+      .text {
+        flex: 2;
+        margin: 8px;
+        word-break: break-all;
+        h1 {
+          font-size: 14px;
+          margin: 0px;
         }
+      }
+    }
 
-        a.image-attachment {
-            display: flex;
-            flex: 1;
-
-            img {
-                object-fit: contain;
-                width: 100%;
-                height: 100%; /* If this isn't here, chrome will stretch the images */
-                max-height: 500px;
-                image-orientation: from-image;
-            }
-        }
+    a.image-attachment {
+      display: flex;
+      flex: 1;
+
+      img {
+        object-fit: contain;
+        width: 100%;
+        height: 100%; /* If this isn't here, chrome will stretch the images */
+        max-height: 500px;
+        image-orientation: from-image;
+      }
     }
- }
+  }
+}
 </style>
diff --git a/src/components/chat_panel/chat_panel.vue b/src/components/chat_panel/chat_panel.vue
index fd997aa8..50bd0017 100644
--- a/src/components/chat_panel/chat_panel.vue
+++ b/src/components/chat_panel/chat_panel.vue
@@ -32,33 +32,33 @@
 @import '../../_variables.scss';
 
 .chat-window {
-    max-height: 200px;
-    overflow-y: auto;
-    overflow-x: hidden;
+  max-height: 200px;
+  overflow-y: auto;
+  overflow-x: hidden;
 }
 
 .chat-message {
-    padding: 0.2em 0.5em
+  padding: 0.2em 0.5em
 }
 
 .chat-avatar {
-    img {
-        height: 32px;
-        width: 32px;
-        border-radius: $fallback--avatarRadius;
-        border-radius: var(--avatarRadius, $fallback--avatarRadius);
-        margin-right: 0.5em;
-    }
+  img {
+    height: 32px;
+    width: 32px;
+    border-radius: $fallback--avatarRadius;
+    border-radius: var(--avatarRadius, $fallback--avatarRadius);
+    margin-right: 0.5em;
+  }
 }
 
 .chat-input {
-    display: flex;
-    form {
-        flex: auto;
-        input {
-            margin: 0.5em;
-            width: fill-available;
-        }
+  display: flex;
+  form {
+    flex: auto;
+    input {
+      margin: 0.5em;
+      width: fill-available;
     }
+  }
 }
 </style>
diff --git a/src/components/delete_button/delete_button.vue b/src/components/delete_button/delete_button.vue
index 9966d85e..d13547e2 100644
--- a/src/components/delete_button/delete_button.vue
+++ b/src/components/delete_button/delete_button.vue
@@ -8,14 +8,14 @@
 
 <script src="./delete_button.js" ></script>
 
-<style lang='scss'>
-  @import '../../_variables.scss';
+<style lang="scss">
+@import '../../_variables.scss';
 
-  .icon-cancel,.delete-status {
-    cursor: pointer;
-    &:hover {
-      color: var(--cRed, $fallback--cRed);
-      color: $fallback--cRed;
-    }
+.icon-cancel,.delete-status {
+  cursor: pointer;
+  &:hover {
+    color: var(--cRed, $fallback--cRed);
+    color: $fallback--cRed;
   }
+}
 </style>
diff --git a/src/components/favorite_button/favorite_button.vue b/src/components/favorite_button/favorite_button.vue
index f25c589a..1e1a6970 100644
--- a/src/components/favorite_button/favorite_button.vue
+++ b/src/components/favorite_button/favorite_button.vue
@@ -15,18 +15,17 @@
 @import '../../_variables.scss';
 
 .fav-active {
-    cursor: pointer;
-    animation-duration: 0.6s;
+  cursor: pointer;
+  animation-duration: 0.6s;
 
-    &:hover {
-        color: $fallback--cOrange;
-        color: var(--cOrange, $fallback--cOrange);
-    }
-}
-
-.favorite-button.icon-star {
+  &:hover {
     color: $fallback--cOrange;
     color: var(--cOrange, $fallback--cOrange);
+  }
 }
 
+.favorite-button.icon-star {
+  color: $fallback--cOrange;
+  color: var(--cOrange, $fallback--cOrange);
+}
 </style>
diff --git a/src/components/login_form/login_form.vue b/src/components/login_form/login_form.vue
index ac492262..840ea1a4 100644
--- a/src/components/login_form/login_form.vue
+++ b/src/components/login_form/login_form.vue
@@ -34,32 +34,31 @@
 @import '../../_variables.scss';
 
 .login-form {
-    .btn {
-        min-height: 28px;
-        width: 10em;
-    }
+  .btn {
+    min-height: 28px;
+    width: 10em;
+  }
 
-    .error {
-        border-radius: $fallback--tooltipRadius;
-        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
-        text-align: center;
-        background-color: rgba(255, 48, 16, 0.65);
-        background-color: $fallback--cRed;
-        min-height: 28px;
-        line-height: 28px;
-    }
+  .error {
+    border-radius: $fallback--tooltipRadius;
+    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
+    text-align: center;
+    background-color: rgba(255, 48, 16, 0.65);
+    background-color: $fallback--cRed;
+    min-height: 28px;
+    line-height: 28px;
+  }
 
-    .register {
-        flex: 1 1;
-    }
+  .register {
+    flex: 1 1;
+  }
 
-    .login-bottom {
-        margin-top: 1.0em;
-        display: flex;
-        flex-direction: row;
-        align-items: center;
-        justify-content: space-between;
-    }
+  .login-bottom {
+    margin-top: 1.0em;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: space-between;
+  }
 }
-
 </style>
diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue
index 43b4c3dc..04ac5738 100644
--- a/src/components/nav_panel/nav_panel.vue
+++ b/src/components/nav_panel/nav_panel.vue
@@ -33,51 +33,51 @@
 @import '../../_variables.scss';
 
 .nav-panel ul {
-    list-style: none;
-    margin: 0;
-    padding: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
 }
 
 .nav-panel li {
-    border-bottom: 1px solid;
-    border-color: $fallback--border;
-    border-color: var(--border, $fallback--border);
-    background-color: $fallback--bg;
-    background-color: var(--bg, $fallback--bg);
-    padding: 0;
+  border-bottom: 1px solid;
+  border-color: $fallback--border;
+  border-color: var(--border, $fallback--border);
+  background-color: $fallback--bg;
+  background-color: var(--bg, $fallback--bg);
+  padding: 0;
 
-    &:first-child a {
-        border-top-right-radius: 10px;
-        border-top-left-radius: 10px;
-    }
+  &:first-child a {
+    border-top-right-radius: 10px;
+    border-top-left-radius: 10px;
+  }
 
-    &:last-child a {
-        border-bottom-right-radius: 10px;
-        border-bottom-left-radius: 10px;
-    }
+  &:last-child a {
+    border-bottom-right-radius: 10px;
+    border-bottom-left-radius: 10px;
+  }
 }
 
 .nav-panel li:last-child {
-    border: none;
+  border: none;
 }
 
 .nav-panel a {
-    display: block;
-    padding: 0.8em 0.85em;
+  display: block;
+  padding: 0.8em 0.85em;
 
-    &:hover {
-        background-color: $fallback--lightBg;
-        background-color: var(--lightBg, $fallback--lightBg);
-    }
+  &:hover {
+    background-color: $fallback--lightBg;
+    background-color: var(--lightBg, $fallback--lightBg);
+  }
 
-    &.router-link-active {
-        font-weight: bolder;
-        background-color: $fallback--lightBg;
-        background-color: var(--lightBg, $fallback--lightBg);
+  &.router-link-active {
+    font-weight: bolder;
+    background-color: $fallback--lightBg;
+    background-color: var(--lightBg, $fallback--lightBg);
 
-        &:hover {
-            text-decoration: underline;
-        }
+    &:hover {
+      text-decoration: underline;
     }
- }
+  }
+}
 </style>
diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue
index bce361db..0f99b3b1 100644
--- a/src/components/post_status_form/post_status_form.vue
+++ b/src/components/post_status_form/post_status_form.vue
@@ -53,163 +53,162 @@
 @import '../../_variables.scss';
 
 .tribute-container {
-    ul {
-        padding: 0px;
-        li {
-            display: flex;
-            align-items: center;
-        }
-    }
-    img {
-        padding: 3px;
-        width: 16px;
-        height: 16px;
-        border-radius: $fallback--avatarAltRadius;
-        border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
-    }
+  ul {
+    padding: 0px;
+    li {
+      display: flex;
+      align-items: center;
+    }
+  }
+  img {
+    padding: 3px;
+    width: 16px;
+    height: 16px;
+    border-radius: $fallback--avatarAltRadius;
+    border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
+  }
 }
 
 .post-status-form, .login {
-    .form-bottom {
-        display: flex;
-        padding: 0.5em;
-        height: 32px;
-
-        button {
-            width: 10em;
-        }
-
-        p {
-            margin: 0.35em;
-            padding: 0.35em;
-            display: flex;
-        }
-    }
-
-    .error {
-        border-radius: $fallback--tooltipRadius;
-        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
-        text-align: center;
-        background-color: rgba(255, 48, 16, 0.65);
-        background-color: $fallback--cRed;
-        background-color: var(--cRed, $fallback--cRed);
-        padding: 0.25em;
-        margin: 0.35em;
-        display: flex;
-    }
-
-    .attachments {
-        padding: 0 0.5em;
-
-        .attachment {
-            position: relative;
-            border: $fallback--border;
-            border: var(--border, $fallback--border);
-            margin: 0.5em 0.8em 0.2em 0;
-        }
-
-        i {
-            position: absolute;
-            margin: 10px;
-            padding: 5px;
-            background: rgba(230,230,230,0.6);
-            border-radius: $fallback--attachmentRadius;
-            border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
-            font-weight: bold;
-        }
-    }
-
-
-    .btn {
-        cursor: pointer;
-    }
-
-    .btn[disabled] {
-        cursor: not-allowed;
-    }
-
-    .icon-cancel {
-        cursor: pointer;
-    }
+  .form-bottom {
+    display: flex;
+    padding: 0.5em;
+    height: 32px;
+
+    button {
+      width: 10em;
+    }
+
+    p {
+      margin: 0.35em;
+      padding: 0.35em;
+      display: flex;
+    }
+  }
+
+  .error {
+    border-radius: $fallback--tooltipRadius;
+    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
+    text-align: center;
+    background-color: rgba(255, 48, 16, 0.65);
+    background-color: $fallback--cRed;
+    background-color: var(--cRed, $fallback--cRed);
+    padding: 0.25em;
+    margin: 0.35em;
+    display: flex;
+  }
+
+  .attachments {
+    padding: 0 0.5em;
+
+    .attachment {
+      position: relative;
+      border: $fallback--border;
+      border: var(--border, $fallback--border);
+      margin: 0.5em 0.8em 0.2em 0;
+    }
+
+    i {
+      position: absolute;
+      margin: 10px;
+      padding: 5px;
+      background: rgba(230,230,230,0.6);
+      border-radius: $fallback--attachmentRadius;
+      border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
+      font-weight: bold;
+    }
+  }
+
+
+  .btn {
+    cursor: pointer;
+  }
+
+  .btn[disabled] {
+    cursor: not-allowed;
+  }
+
+  .icon-cancel {
+    cursor: pointer;
+  }
+
+  form {
+    display: flex;
+    flex-direction: column;
+    padding: 0.6em;
+  }
+
+  .form-group {
+    display: flex;
+    flex-direction: column;
+    padding: 0.3em 0.5em 0.6em;
+    line-height:24px;
+  }
+
+  form textarea {
+    line-height:16px;
+    resize: none;
+    overflow: hidden;
+    transition: min-height 200ms 100ms;
+    min-height: 1px;
+    box-sizing: content-box;
+  }
+
+  form textarea:focus {
+    min-height: 48px;
+  }
+
+  .btn {
+    cursor: pointer;
+  }
+
+  .btn[disabled] {
+    cursor: not-allowed;
+  }
+
+  .icon-cancel {
+    cursor: pointer;
+    z-index: 4;
+  }
+
+  .autocomplete-panel {
+    margin: 0 0.5em 0 0.5em;
+    border-radius: $fallback--tooltipRadius;
+    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
+    position: absolute;
+    z-index: 1;
+    box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);
+    min-width: 75%;
+    background: $fallback--btn;
+    background: var(--btn, $fallback--btn);
+    color: $fallback--lightFg;
+    color: var(--lightFg, $fallback--lightFg);
+  }
+
+  .autocomplete {
+    cursor: pointer;
+    padding: 0.2em 0.4em 0.2em 0.4em;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
+    display: flex;
 
-    form {
-        display: flex;
-        flex-direction: column;
-        padding: 0.6em;
-    }
-
-    .form-group {
-        display: flex;
-        flex-direction: column;
-        padding: 0.3em 0.5em 0.6em;
-        line-height:24px;
-    }
-
-    form textarea {
-        line-height:16px;
-        resize: none;
-        overflow: hidden;
-        transition: min-height 200ms 100ms;
-        min-height: 1px;
-        box-sizing: content-box;
-    }
-
-    form textarea:focus {
-        min-height: 48px;
-    }
-
-    .btn {
-        cursor: pointer;
-    }
-
-    .btn[disabled] {
-        cursor: not-allowed;
-    }
-
-    .icon-cancel {
-        cursor: pointer;
-        z-index: 4;
+    img {
+      width: 24px;
+      height: 24px;
+      border-radius: $fallback--avatarRadius;
+      border-radius: var(--avatarRadius, $fallback--avatarRadius);
+      object-fit: contain;
     }
 
-    .autocomplete-panel {
-        margin: 0 0.5em 0 0.5em;
-        border-radius: $fallback--tooltipRadius;
-        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
-        position: absolute;
-        z-index: 1;
-        box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);
-        min-width: 75%;
-        background: $fallback--btn;
-        background: var(--btn, $fallback--btn);
-        color: $fallback--lightFg;
-        color: var(--lightFg, $fallback--lightFg);
+    span {
+      line-height: 24px;
+      margin: 0 0.1em 0 0.2em;
     }
 
-    .autocomplete {
-        cursor: pointer;
-        padding: 0.2em 0.4em 0.2em 0.4em;
-        border-bottom: 1px solid rgba(0, 0, 0, 0.4);
-        display: flex;
-
-        img {
-            width: 24px;
-            height: 24px;
-            border-radius: $fallback--avatarRadius;
-            border-radius: var(--avatarRadius, $fallback--avatarRadius);
-            object-fit: contain;
-        }
-
-        span {
-            line-height: 24px;
-            margin: 0 0.1em 0 0.2em;
-        }
-
-        small {
-            margin-left: .5em;
-            color: $fallback--faint;
-            color: var(--faint, $fallback--faint);
-        }
+    small {
+      margin-left: .5em;
+      color: $fallback--faint;
+      color: var(--faint, $fallback--faint);
     }
+  }
 }
-
 </style>
diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue
index b9093082..b443024b 100644
--- a/src/components/registration/registration.vue
+++ b/src/components/registration/registration.vue
@@ -58,66 +58,66 @@
 @import '../../_variables.scss';
 
 .registration-form {
-    display: flex;
-    flex-direction: column;
-    margin: 0.6em;
+  display: flex;
+  flex-direction: column;
+  margin: 0.6em;
 
-    .container {
-        display: flex;
-        flex-direction: row;
-        //margin-bottom: 1em;
-    }
+  .container {
+    display: flex;
+    flex-direction: row;
+    //margin-bottom: 1em;
+  }
 
-    .terms-of-service {
-        flex: 0 1 50%;
-        margin: 0.8em;
-    }
+  .terms-of-service {
+    flex: 0 1 50%;
+    margin: 0.8em;
+  }
 
-    .text-fields {
-        margin-top: 0.6em;
-        flex: 1 0;
-        display: flex;
-        flex-direction: column;
-    }
+  .text-fields {
+    margin-top: 0.6em;
+    flex: 1 0;
+    display: flex;
+    flex-direction: column;
+  }
 
-    .form-group {
-        display: flex;
-        flex-direction: column;
-        padding: 0.3em 0.0em 0.3em;
-        line-height:24px;
-    }
+  .form-group {
+    display: flex;
+    flex-direction: column;
+    padding: 0.3em 0.0em 0.3em;
+    line-height:24px;
+  }
 
-    form textarea {
-        line-height:16px;
-        resize: vertical;
-    }
+  form textarea {
+    line-height:16px;
+    resize: vertical;
+  }
 
-    .captcha {
-        max-width: 350px;
-        margin-bottom: 0.4em;
-    }
+  .captcha {
+    max-width: 350px;
+    margin-bottom: 0.4em;
+  }
 
-    .btn {
-        //align-self: flex-start;
-        //width: 10em;
-        margin-top: 0.6em;
-        height: 28px;
-    }
+  .btn {
+    //align-self: flex-start;
+    //width: 10em;
+    margin-top: 0.6em;
+    height: 28px;
+  }
 
-    .error {
-        border-radius: $fallback--tooltipRadius;
-        border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
-        text-align: center;
-        margin: 0.5em 0.6em 0;
-        background-color: $fallback--cRed;
-        background-color: var(--cRed, $fallback--cRed);
-        min-height: 28px;
-        line-height: 28px;
-    }
+  .error {
+    border-radius: $fallback--tooltipRadius;
+    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
+    text-align: center;
+    margin: 0.5em 0.6em 0;
+    background-color: $fallback--cRed;
+    background-color: var(--cRed, $fallback--cRed);
+    min-height: 28px;
+    line-height: 28px;
+  }
 }
 
 @media all and (max-width: 959px) {
-    .registration-form .container {
+  .registration-form .container {
     flex-direction: column-reverse;
   }
 }
diff --git a/src/components/retweet_button/retweet_button.vue b/src/components/retweet_button/retweet_button.vue
index a21942c3..1bee3d08 100644
--- a/src/components/retweet_button/retweet_button.vue
+++ b/src/components/retweet_button/retweet_button.vue
@@ -14,15 +14,15 @@
 <style lang="scss">
 @import '../../_variables.scss';
 .rt-active {
-    cursor: pointer;
-    animation-duration: 0.6s;
-    &:hover {
-        color: $fallback--cGreen;
-        color: var(--cGreen, $fallback--cGreen);
-    }
-}
-.icon-retweet.retweeted {
+  cursor: pointer;
+  animation-duration: 0.6s;
+  &:hover {
     color: $fallback--cGreen;
     color: var(--cGreen, $fallback--cGreen);
+  }
+}
+.icon-retweet.retweeted {
+  color: $fallback--cGreen;
+  color: var(--cGreen, $fallback--cGreen);
 }
 </style>
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index 9f195687..0c9ddc3e 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -57,37 +57,37 @@
 @import '../../_variables.scss';
 
 .setting-item {
-    margin: 1em 1em 1.4em;
+  margin: 1em 1em 1.4em;
 
-    textarea {
-        width: 100%;
-        height: 100px;
-    }
+  textarea {
+    width: 100%;
+    height: 100px;
+  }
 
-    .old-avatar {
-        width: 128px;
-        border-radius: $fallback--avatarRadius;
-        border-radius: var(--avatarRadius, $fallback--avatarRadius);
-    }
+  .old-avatar {
+    width: 128px;
+    border-radius: $fallback--avatarRadius;
+    border-radius: var(--avatarRadius, $fallback--avatarRadius);
+  }
 
-    .new-avatar {
-        object-fit: cover;
-        width: 128px;
-        height: 128px;
-        border-radius: $fallback--avatarRadius;
-        border-radius: var(--avatarRadius, $fallback--avatarRadius);
-    }
+  .new-avatar {
+    object-fit: cover;
+    width: 128px;
+    height: 128px;
+    border-radius: $fallback--avatarRadius;
+    border-radius: var(--avatarRadius, $fallback--avatarRadius);
+  }
 
-    .btn {
-        margin-top: 1em;
-        min-height: 28px;
-        width: 10em;
-    }
+  .btn {
+    margin-top: 1em;
+    min-height: 28px;
+    width: 10em;
+  }
 }
 .setting-list {
-    list-style-type: none;
-    li {
-        margin-bottom: 0.5em;
-    }
+  list-style-type: none;
+  li {
+    margin-bottom: 0.5em;
+  }
 }
 </style>
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 3f49fd7a..4937ae8b 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -131,351 +131,351 @@
 @import '../../_variables.scss';
 
 status-text-container {
-    display: block;
+  display: block;
 }
 
 .status-preview {
-    position: absolute;
-    max-width: 34em;
-    padding: 0.5em;
-    display: flex;
-    background-color: $fallback--bg;
-    background-color: var(--bg, $fallback--bg);
-    border-color: $fallback--border;
-    border-color: var(--border, $fallback--border);
-    border-style: solid;
-    border-width: 1px;
-    border-radius: $fallback--tooltipRadius;
-    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
-    box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);
-    margin-top: 0.5em;
-    margin-left: 1em;
-    z-index: 50;
-
-    .avatar {
-        flex-shrink: 0;
-        width: 32px;
-        height: 32px;
-        border-radius: $fallback--avatarAltRadius;
-        border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
-    }
-
-    .text {
-        h4 {
-            margin-bottom: 0.4em;
-            small {
-                font-weight: lighter;
-            }
-        }
-        padding: 0 0.5em 0.5em 0.5em;
+  position: absolute;
+  max-width: 34em;
+  padding: 0.5em;
+  display: flex;
+  background-color: $fallback--bg;
+  background-color: var(--bg, $fallback--bg);
+  border-color: $fallback--border;
+  border-color: var(--border, $fallback--border);
+  border-style: solid;
+  border-width: 1px;
+  border-radius: $fallback--tooltipRadius;
+  border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
+  box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5);
+  margin-top: 0.5em;
+  margin-left: 1em;
+  z-index: 50;
+
+  .avatar {
+    flex-shrink: 0;
+    width: 32px;
+    height: 32px;
+    border-radius: $fallback--avatarAltRadius;
+    border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
+  }
+
+  .text {
+    h4 {
+      margin-bottom: 0.4em;
+      small {
+        font-weight: lighter;
+      }
     }
+    padding: 0 0.5em 0.5em 0.5em;
+  }
 }
 
 .status-preview-loading {
-    display: block;
-    font-size: 2em;
-    min-width: 8em;
-    text-align: center;
+  display: block;
+  font-size: 2em;
+  min-width: 8em;
+  text-align: center;
 }
 
 .status-el {
-    hyphens: auto;
-    overflow-wrap: break-word;
-    word-wrap: break-word;
-    word-break: break-word;
-    border-left-width: 0px;
-    line-height: 18px;
-    background-color: $fallback--bg;
-    background-color: var(--bg, $fallback--bg);
+  hyphens: auto;
+  overflow-wrap: break-word;
+  word-wrap: break-word;
+  word-break: break-word;
+  border-left-width: 0px;
+  line-height: 18px;
+  background-color: $fallback--bg;
+  background-color: var(--bg, $fallback--bg);
+  border-color: $fallback--border;
+  border-color: var(--border, $fallback--border);
+
+  &_focused {
+    background-color: $fallback--lightBg;
+    background-color: var(--lightBg, $fallback--lightBg);
+  }
+
+  .usercard {
     border-color: $fallback--border;
     border-color: var(--border, $fallback--border);
+  }
 
-    &_focused {
-        background-color: $fallback--lightBg;
-        background-color: var(--lightBg, $fallback--lightBg);
-    }
+  .timeline & {
+    border-bottom-width: 1px;
+    border-bottom-style: solid;
+  }
 
-    .usercard {
-        border-color: $fallback--border;
-        border-color: var(--border, $fallback--border);
+  .notify {
+    .avatar {
+      border-width: 3px;
+      border-style: solid;
     }
+  }
 
-    .timeline & {
-        border-bottom-width: 1px;
-        border-bottom-style: solid;
-    }
+  .media-body {
+    flex: 1;
+    padding-left: 0.5em;
+  }
 
-    .notify {
-        .avatar {
-            border-width: 3px;
-            border-style: solid;
-        }
-    }
 
-    .media-body {
-        flex: 1;
-        padding-left: 0.5em;
-    }
+  .user-content {
+    min-height: 52px;
+    padding-top: 1px;
+  }
 
+  .media-heading {
+    display: flex;
+    min-height: 1.4em;
+    margin-bottom: 0.3em;
 
-    .user-content {
-        min-height: 52px;
-        padding-top: 1px;
+    .links a i {
+      color: $fallback--link;
+      color: var(--link, $fallback--link);
     }
 
-    .media-heading {
-        display: flex;
-        min-height: 1.4em;
-        margin-bottom: 0.3em;
 
-        .links a i {
-            color: $fallback--link;
-            color: var(--link, $fallback--link);
-        }
+    small {
+      font-weight: lighter;
+    }
 
+    h4 {
+      margin-right: 0.4em;
+    }
 
-        small {
-            font-weight: lighter;
-        }
+    .name-and-links {
+      flex: 1 0;
+      display: flex;
+      flex-wrap: wrap;
+    }
 
-        h4 {
-            margin-right: 0.4em;
-        }
+    .replies {
+      flex-basis: 100%;
+    }
+  }
 
-        .name-and-links {
-            flex: 1 0;
-            display: flex;
-            flex-wrap: wrap;
-        }
+  .source_url {
 
-        .replies {
-            flex-basis: 100%;
-        }
-    }
+  }
 
-    .source_url {
+  .expand {
+    margin-right: -0.3em;
+  }
 
-    }
+  a {
+    display: inline-block;
+    word-break: break-all;
+  }
 
-    .expand {
-        margin-right: -0.3em;
-    }
+  .status-content {
+    margin: 3px 15px 4px 0;
+    max-height: 400px;
+    overflow-y: auto;
+    overflow-x: hidden;
 
-    a {
-        display: inline-block;
-        word-break: break-all;
+    img, video {
+      max-width: 100%;
+      max-height: 400px;
+      vertical-align: middle;
+      object-fit: contain;
     }
 
-    .status-content {
-        margin: 3px 15px 4px 0;
-        max-height: 400px;
-        overflow-y: auto;
-        overflow-x: hidden;
-
-        img, video {
-            max-width: 100%;
-            max-height: 400px;
-            vertical-align: middle;
-            object-fit: contain;
-        }
-
-        blockquote {
-            margin: 0.2em 0 0.2em 2em;
-            font-style: italic;
-        }
+    blockquote {
+      margin: 0.2em 0 0.2em 2em;
+      font-style: italic;
     }
+  }
 
-    p {
-        margin: 0;
-        margin-top: 0.2em;
-        margin-bottom: 0.5em;
-    }
+  p {
+    margin: 0;
+    margin-top: 0.2em;
+    margin-bottom: 0.5em;
+  }
 
-    .media-left {
-        margin: 0.2em 0.3em 0 0;
-        .avatar {
-            float: right;
-            border-radius: $fallback--avatarRadius;
-            border-radius: var(--avatarRadius, $fallback--avatarRadius);
-        }
+  .media-left {
+    margin: 0.2em 0.3em 0 0;
+    .avatar {
+      float: right;
+      border-radius: $fallback--avatarRadius;
+      border-radius: var(--avatarRadius, $fallback--avatarRadius);
     }
+  }
 
-    .retweet-info {
-        padding: 0.7em 0 0 0.6em;
+  .retweet-info {
+    padding: 0.7em 0 0 0.6em;
 
-        .media-left {
-            display: flex;
+    .media-left {
+      display: flex;
 
-            i {
-                align-self: center;
-                text-align: right;
-                flex: 1;
-                padding-right: 0.3em;
-            }
-        }
+      i {
+        align-self: center;
+        text-align: right;
+        flex: 1;
+        padding-right: 0.3em;
+      }
     }
+  }
 
 
 }
 
 .status-fadein {
-    animation-duration: 0.5s;
-    animation-name: fadein;
+  animation-duration: 0.5s;
+  animation-name: fadein;
 }
 
 @keyframes fadein {
-    from {
-        opacity: 0;
-    }
+  from {
+    opacity: 0;
+  }
 
-    to {
-        opacity: 1;
-    }
+  to {
+    opacity: 1;
+  }
 }
 
 .greentext {
-    color: green;
+  color: green;
 }
 
 .status-conversation {
-    border-left-style: solid;
+  border-left-style: solid;
 }
 
 .status-actions {
-    padding-top: 0.15em;
-    width: 100%;
-    display: flex;
+  padding-top: 0.15em;
+  width: 100%;
+  display: flex;
 
-    div, favorite-button {
-        max-width: 6em;
-        flex: 1;
-    }
+  div, favorite-button {
+    max-width: 6em;
+    flex: 1;
+  }
 }
 
 .icon-reply:hover {
-    color: $fallback--cBlue;
-    color: var(--cBlue, $fallback--cBlue);
+  color: $fallback--cBlue;
+  color: var(--cBlue, $fallback--cBlue);
 }
 
 .icon-reply.icon-reply-active {
-    color: $fallback--cBlue;
-    color: var(--cBlue, $fallback--cBlue);
+  color: $fallback--cBlue;
+  color: var(--cBlue, $fallback--cBlue);
 }
 
- .status .avatar {
-   width: 48px;
-   height: 48px;
-   border-radius: 5px;
-   overflow: hidden;
-
-   img {
-       width: 100%;
-       height: 100%;
-   }
+.status .avatar {
+  width: 48px;
+  height: 48px;
+  border-radius: 5px;
+  overflow: hidden;
 
-   &.animated::before {
-       display: none;
-   }
-
-    &.retweeted {
-        width: 40px;
-        height: 40px;
-        margin-right: 8px;
-        margin-bottom: 8px;
-    }
+  img {
+    width: 100%;
+    height: 100%;
+  }
+
+  &.animated::before {
+    display: none;
+  }
+
+  &.retweeted {
+    width: 40px;
+    height: 40px;
+    margin-right: 8px;
+    margin-bottom: 8px;
+  }
 }
 
- .status:hover .animated.avatar {
-     canvas {
-         display: none;
-     }
-     img {
-         visibility: visible;
-     }
- }
+.status:hover .animated.avatar {
+  canvas {
+    display: none;
+  }
+  img {
+    visibility: visible;
+  }
+}
 
 .status .avatar-retweeter {
-    width: 24px;
-    height: 24px;
-    position: absolute;
-    margin-left: 24px;
-    margin-top: 24px;
+  width: 24px;
+  height: 24px;
+  position: absolute;
+  margin-left: 24px;
+  margin-top: 24px;
 }
 
 .status.compact .avatar {
-    width: 32px;
+  width: 32px;
 }
 
 .status {
-    padding: 0.4em 0.7em 0.45em 0.7em;
-    border-left: 4px $fallback--cRed;
-    border-left: 4px var(--cRed, $fallback--cRed);
-    border-left-style: inherit;
+  padding: 0.4em 0.7em 0.45em 0.7em;
+  border-left: 4px $fallback--cRed;
+  border-left: 4px var(--cRed, $fallback--cRed);
+  border-left-style: inherit;
 }
 
 .status-conversation:last-child {
-    border-bottom: none;
+  border-bottom: none;
 }
 
 .timeline .panel.timeline {
-    overflow: hidden;
+  overflow: hidden;
 }
 
 .muted {
-    padding: 0.1em 0.4em 0.1em 0.8em;
-    button {
-        margin-left: auto;
-    }
+  padding: 0.1em 0.4em 0.1em 0.8em;
+  button {
+    margin-left: auto;
+  }
 
-    .muteWords {
-        margin-left: 10px;
-    }
+  .muteWords {
+    margin-left: 10px;
+  }
 }
 
 a.unmute {
-    display: block;
-    margin-left: auto;
+  display: block;
+  margin-left: auto;
 }
 
 .reply-left {
-    flex: 0;
-    min-width: 48px;
+  flex: 0;
+  min-width: 48px;
 }
 
 .reply-body {
-    flex: 1;
+  flex: 1;
 }
 
 @media all and (max-width: 960px) {
-    .status-el {
-        .name-and-links {
-            margin-left: -0.25em;
-        }
+  .status-el {
+    .name-and-links {
+      margin-left: -0.25em;
     }
+  }
 
-    .status {
-        max-width: 100%;
-    }
+  .status {
+    max-width: 100%;
+  }
 
-    .status .avatar {
-        width: 40px;
-        height: 40px;
+  .status .avatar {
+    width: 40px;
+    height: 40px;
 
-        &.retweeted {
-            width: 34px;
-            height: 34px;
-            margin-right: 8px;
-            margin-bottom: 8px;
-        }
+    &.retweeted {
+      width: 34px;
+      height: 34px;
+      margin-right: 8px;
+      margin-bottom: 8px;
     }
+  }
 
-   .status .avatar-retweeter {
-     width: 22px;
-     height: 22px;
-     position: absolute;
-     margin-left: 18px;
-     margin-top: 18px;
-   }
- }
+  .status .avatar-retweeter {
+    width: 22px;
+    height: 22px;
+    position: absolute;
+    margin-left: 18px;
+    margin-top: 18px;
+  }
+}
 
 </style>
diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue
index e2853d01..6bdd4391 100644
--- a/src/components/style_switcher/style_switcher.vue
+++ b/src/components/style_switcher/style_switcher.vue
@@ -71,61 +71,61 @@
 <style lang="scss">
 @import '../../_variables.scss';
 .style-switcher {
-    margin-right: 1em;
+  margin-right: 1em;
 }
 
 .color-container {
-    display: flex;
-    flex-wrap: wrap;
-    justify-content: space-between;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
 }
 
 .color-item {
-    min-width: 20em;
-    display:flex;
-    flex: 1 1 0;
-    align-items: baseline;
-    margin: 5px 6px 5px 0;
+  min-width: 20em;
+  display:flex;
+  flex: 1 1 0;
+  align-items: baseline;
+  margin: 5px 6px 5px 0;
 
-    label {
-        color: var(--faint, $fallback--faint);
-    }
+  label {
+    color: var(--faint, $fallback--faint);
+  }
 }
 
 .theme-color-cl {
-    border: 0;
-    box-shadow: none;
-    background: transparent;
+  border: 0;
+  box-shadow: none;
+  background: transparent;
 }
 
 .theme-color-cl,
 .theme-color-in {
-    margin-left: 4px;
+  margin-left: 4px;
 }
 
 .theme-color-in {
-    padding: 5px;
-    min-width: 4em;
-    max-width: 7em;
-    flex: 1;
+  padding: 5px;
+  min-width: 4em;
+  max-width: 7em;
+  flex: 1;
 }
 .theme-color-lb {
-    flex: 2;
-    min-width: 7em;
-    max-width: 10em;
+  flex: 2;
+  min-width: 7em;
+  max-width: 10em;
 }
 
 .theme-color-cl {
-    padding: 1px;
-    max-width: 8em;
-    align-self: stretch;
-    height: 100%;
-    flex: 0;
-    min-width: 2em;
-    cursor: pointer;
- }
+  padding: 1px;
+  max-width: 8em;
+  align-self: stretch;
+  height: 100%;
+  flex: 0;
+  min-width: 2em;
+  cursor: pointer;
+}
 
- .theme-preview-content {
-   padding: 20px;
- }
+.theme-preview-content {
+  padding: 20px;
+}
 </style>
diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue
index aa3a8bff..adbbcd47 100644
--- a/src/components/timeline/timeline.vue
+++ b/src/components/timeline/timeline.vue
@@ -55,58 +55,58 @@
 @import '../../_variables.scss';
 
 .timeline {
-    .timeline-heading {
-        position: relative;
-        display: flex;
-    }
+  .timeline-heading {
+    position: relative;
+    display: flex;
+  }
 
-    .title {
-        white-space: nowrap;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        max-width: 70%;
-    }
+  .title {
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    max-width: 70%;
+  }
 
-    .loadmore-button {
-        position: absolute;
-        right: 0.6em;
-        font-size: 14px;
+  .loadmore-button {
+    position: absolute;
+    right: 0.6em;
+    font-size: 14px;
 
-        min-width: 6em;
-        height: 1.8em;
-        line-height: 100%;
-    }
+    min-width: 6em;
+    height: 1.8em;
+    line-height: 100%;
+  }
 
-    .loadmore-text {
-        position: absolute;
-        right: 0.6em;
-        font-size: 14px;
-        min-width: 6em;
-        background-color: transparent;
-        color: $fallback--faint;
-        color: var(--faint, $fallback--faint);
-        font-family: sans-serif;
-        text-align: center;
-        padding: 0 0.5em 0 0.5em;
-        opacity: 0.8;
-    }
+  .loadmore-text {
+    position: absolute;
+    right: 0.6em;
+    font-size: 14px;
+    min-width: 6em;
+    background-color: transparent;
+    color: $fallback--faint;
+    color: var(--faint, $fallback--faint);
+    font-family: sans-serif;
+    text-align: center;
+    padding: 0 0.5em 0 0.5em;
+    opacity: 0.8;
+  }
 
-    .error {
-        color: $fallback--lightFg;
-        color: var(--lightFg, $fallback--lightFg);
-        background-color: $fallback--cRed;
-        background-color: var(--cRed, $fallback--cRed);
-    }
+  .error {
+    color: $fallback--lightFg;
+    color: var(--lightFg, $fallback--lightFg);
+    background-color: $fallback--cRed;
+    background-color: var(--cRed, $fallback--cRed);
+  }
 }
 
 .new-status-notification {
-    position:relative;
-    margin-top: -1px;
-    font-size: 1.1em;
-    border-width: 1px 0 0 0;
-    border-style: solid;
-    border-color: var(--border, $fallback--border);
-    padding: 10px;
-    z-index: 1;
-  }
+  position:relative;
+  margin-top: -1px;
+  font-size: 1.1em;
+  border-width: 1px 0 0 0;
+  border-style: solid;
+  border-color: var(--border, $fallback--border);
+  padding: 10px;
+  z-index: 1;
+}
 </style>
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
index 660689d2..7381ef8f 100644
--- a/src/components/user_card/user_card.vue
+++ b/src/components/user_card/user_card.vue
@@ -24,56 +24,56 @@
 @import '../../_variables.scss';
 
 .name-and-screen-name {
-    margin-left: 0.7em;
-    margin-top:0.0em;
-    margin-right: 2em;
-    text-align: left;
-    width: 100%;
+  margin-left: 0.7em;
+  margin-top:0.0em;
+  margin-right: 2em;
+  text-align: left;
+  width: 100%;
 }
 
 .follows-you {
-    margin-left: 2em;
-    float: right;
+  margin-left: 2em;
+  float: right;
 }
 
 .card {
-    display: flex;
-    flex: 1 0;
-    padding-top: 0.6em;
-    padding-right: 1em;
-    padding-bottom: 0.6em;
-    padding-left: 1em;
-    border-bottom: 1px solid;
-    margin: 0;
-    border-bottom-color: $fallback--border;
-		border-bottom-color: var(--border, $fallback--border);
+  display: flex;
+  flex: 1 0;
+  padding-top: 0.6em;
+  padding-right: 1em;
+  padding-bottom: 0.6em;
+  padding-left: 1em;
+  border-bottom: 1px solid;
+  margin: 0;
+  border-bottom-color: $fallback--border;
+	border-bottom-color: var(--border, $fallback--border);
 
-    .avatar {
-        margin-top: 0.2em;
-        width:32px;
-        height: 32px;
-        border-radius: $fallback--avatarAltRadius;
-        border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
-    }
+  .avatar {
+    margin-top: 0.2em;
+    width:32px;
+    height: 32px;
+    border-radius: $fallback--avatarAltRadius;
+    border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);
+  }
 }
 
 .usercard {
-    width: fill-available;
-    margin: 0.2em 0 0.7em 0;
-    border-radius: $fallback--panelRadius;
-    border-radius: var(--panelRadius, $fallback--panelRadius);
-    border-style: solid;
-    border-color: $fallback--border;
-		border-color: var(--border, $fallback--border);
-    border-width: 1px;
-    overflow: hidden;
+  width: fill-available;
+  margin: 0.2em 0 0.7em 0;
+  border-radius: $fallback--panelRadius;
+  border-radius: var(--panelRadius, $fallback--panelRadius);
+  border-style: solid;
+  border-color: $fallback--border;
+	border-color: var(--border, $fallback--border);
+  border-width: 1px;
+  overflow: hidden;
 
-    .panel-heading {
-        background: transparent;
-    }
+  .panel-heading {
+    background: transparent;
+  }
 
-    p {
-        margin-bottom: 0;
-    }
+  p {
+    margin-bottom: 0;
+  }
 }
 </style>
diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue
index d028e866..eb1d2338 100644
--- a/src/components/user_card_content/user_card_content.vue
+++ b/src/components/user_card_content/user_card_content.vue
@@ -99,159 +99,159 @@
 @import '../../_variables.scss';
 
 .profile-panel-background {
-    background-size: cover;
-    border-radius: $fallback--panelRadius;
-    border-radius: var(--panelRadius, $fallback--panelRadius);
+  background-size: cover;
+  border-radius: $fallback--panelRadius;
+  border-radius: var(--panelRadius, $fallback--panelRadius);
 
-    .panel-heading {
-        padding: 0.6em 0em;
-        text-align: center;
-    }
+  .panel-heading {
+    padding: 0.6em 0em;
+    text-align: center;
+  }
 }
 
 .profile-panel-body {
-    top: -0em;
-    padding-top: 4em;
-    word-wrap: break-word;
-    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), $fallback--bg 80%);
-    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), var(--bg, $fallback--bg) 80%)
+  top: -0em;
+  padding-top: 4em;
+  word-wrap: break-word;
+  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), $fallback--bg 80%);
+  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), var(--bg, $fallback--bg) 80%)
 }
 
 .user-info {
-    color: white;
-    padding: 0 16px 16px 16px;
-    margin-bottom: -4em;
+  color: white;
+  padding: 0 16px 16px 16px;
+  margin-bottom: -4em;
 
-    .container {
-        padding: 16px 10px 4px 10px;
-        display: flex;
-        flex-wrap: wrap;
-        flex-direction: column;
-        align-content: flex-start;
-        justify-content: center;
-        max-height: 56px;
-        overflow: hidden;
-    }
+  .container {
+    padding: 16px 10px 4px 10px;
+    display: flex;
+    flex-wrap: wrap;
+    flex-direction: column;
+    align-content: flex-start;
+    justify-content: center;
+    max-height: 56px;
+    overflow: hidden;
+  }
 
-    .avatar {
-        border-radius: 5px;
-        flex: 1 0 100%;
-        width: 56px;
-        height: 56px;
-        box-shadow: 0px 1px 8px rgba(0,0,0,0.75);
-        object-fit: cover;
+  .avatar {
+    border-radius: 5px;
+    flex: 1 0 100%;
+    width: 56px;
+    height: 56px;
+    box-shadow: 0px 1px 8px rgba(0,0,0,0.75);
+    object-fit: cover;
 
-        &.animated::before {
-            display: none;
-        }
+    &.animated::before {
+      display: none;
     }
+  }
 
-    &:hover .animated.avatar {
-        canvas {
-            display: none;
-        }
-        img {
-            visibility: visible;
-        }
+  &:hover .animated.avatar {
+    canvas {
+      display: none;
+    }
+    img {
+      visibility: visible;
     }
+  }
 
-    text-shadow: 0px 1px 1.5px rgba(0, 0, 0, 1.0);
+  text-shadow: 0px 1px 1.5px rgba(0, 0, 0, 1.0);
 
-    .name-and-screen-name {
-        display: block;
-        margin-left: 0.6em;
-        text-align: left;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-    }
+  .name-and-screen-name {
+    display: block;
+    margin-left: 0.6em;
+    text-align: left;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
 
-    .user-name{
-        color: white;
-    }
+  .user-name{
+    color: white;
+  }
 
-    .user-screen-name {
-        color: white;
-        font-weight: lighter;
-        font-size: 15px;
-        padding-right: 0.1em;
-        flex: 0 0 auto;
-    }
+  .user-screen-name {
+    color: white;
+    font-weight: lighter;
+    font-size: 15px;
+    padding-right: 0.1em;
+    flex: 0 0 auto;
+  }
 
-    .user-interactions {
-        display: flex;
-        flex-flow: row wrap;
-        justify-content: space-between;
+  .user-interactions {
+    display: flex;
+    flex-flow: row wrap;
+    justify-content: space-between;
 
-        div {
-            flex: 1;
-        }
-        margin-top: 0.7em;
-        margin-bottom: -1.0em;
+    div {
+      flex: 1;
+    }
+    margin-top: 0.7em;
+    margin-bottom: -1.0em;
 
-        .following {
-            color: white;
-            font-size: 14px;
-            flex: 0 0 100%;
-            margin: -0.7em 0.0em 0.3em 0.0em;
-            padding-left: 16px;
-            text-align: left;
-        }
+    .following {
+      color: white;
+      font-size: 14px;
+      flex: 0 0 100%;
+      margin: -0.7em 0.0em 0.3em 0.0em;
+      padding-left: 16px;
+      text-align: left;
+    }
 
-        .mute {
-            max-width: 220px;
-            min-height: 28px;
-        }
+    .mute {
+      max-width: 220px;
+      min-height: 28px;
+    }
 
-        .remote-follow {
-            max-width: 220px;
-            min-height: 28px;
-        }
+    .remote-follow {
+      max-width: 220px;
+      min-height: 28px;
+    }
 
-        .follow {
-            max-width: 220px;
-            min-height: 28px;
-        }
+    .follow {
+      max-width: 220px;
+      min-height: 28px;
+    }
 
-        button {
-            width: 92%;
-            height: 100%;
-        }
+    button {
+      width: 92%;
+      height: 100%;
+    }
 
-        .remote-button {
-            height: 28px !important;
-            width: 92%;
-        }
+    .remote-button {
+      height: 28px !important;
+      width: 92%;
+    }
 
-        .pressed {
-            border-bottom-color: rgba(255, 255, 255, 0.2);
-            border-top-color: rgba(0, 0, 0, 0.2);
-        }
+    .pressed {
+      border-bottom-color: rgba(255, 255, 255, 0.2);
+      border-top-color: rgba(0, 0, 0, 0.2);
     }
+  }
 }
 
 .user-counts {
-    display: flex;
-    line-height:16px;
-    padding: 1em 1.5em 0em 1em;
-    text-align: center;
+  display: flex;
+  line-height:16px;
+  padding: 1em 1.5em 0em 1em;
+  text-align: center;
 }
 
 .user-count {
-    flex: 1;
+  flex: 1;
 
-    h5 {
-        color: white;
-        font-size:1em;
-        font-weight: bolder;
-        margin: 0 0 0.25em;
-    }
-    a {
-        text-decoration: none;
-    }
+  h5 {
+    color: white;
+    font-size:1em;
+    font-weight: bolder;
+    margin: 0 0 0.25em;
+  }
+  a {
+    text-decoration: none;
+  }
 }
 
 .dailyAvg {
-    font-size: 0.8em;
-    opacity: 0.5;
+  font-size: 0.8em;
+  opacity: 0.5;
 }
 </style>
diff --git a/src/components/user_finder/user_finder.vue b/src/components/user_finder/user_finder.vue
index f9362a7d..6a0df947 100644
--- a/src/components/user_finder/user_finder.vue
+++ b/src/components/user_finder/user_finder.vue
@@ -19,22 +19,22 @@
 @import '../../_variables.scss';
 
 .user-finder-container {
-    height: 21px;
-    max-width: 100%;
+  height: 21px;
+  max-width: 100%;
 }
 
 .user-finder-input {
-    max-width: 80%;
-    padding: 0.1em 0.2em 0.2em 0.2em;
+  max-width: 80%;
+  padding: 0.1em 0.2em 0.2em 0.2em;
 }
 
 .finder-error {
-    background-color: rgba(255, 48, 16, 0.65);
-    margin: 0.35em;
-    border-radius: $fallback--tooltipRadius;
-    border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
-    padding: 0.25em;
-    color: $fallback--faint;
-    color: var(--faint, $fallback--faint);
+  background-color: rgba(255, 48, 16, 0.65);
+  margin: 0.35em;
+  border-radius: $fallback--tooltipRadius;
+  border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
+  padding: 0.25em;
+  color: $fallback--faint;
+  color: var(--faint, $fallback--faint);
 }
 </style>
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index e6060451..838a43ab 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -12,12 +12,11 @@
 <style lang="scss">
 
 .user-profile {
-    flex: 2;
-    flex-basis: 500px;
-    padding-bottom: 10px;
-    .panel-heading {
-        background: transparent;
-    }
+  flex: 2;
+  flex-basis: 500px;
+  padding-bottom: 10px;
+  .panel-heading {
+    background: transparent;
+  }
 }
-
 </style>
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 39bb498c..ed1864cc 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -75,21 +75,21 @@
 
 <style lang="scss">
 .profile-edit {
-    .bio {
-        margin: 0;
-    }
+  .bio {
+    margin: 0;
+  }
 
-    input[type=file] {
-        padding: 5px;
-    }
+  input[type=file] {
+    padding: 5px;
+  }
 
-    .banner {
-        max-width: 400px;
-    }
+  .banner {
+    max-width: 400px;
+  }
 
-    .uploading {
-        font-size: 1.5em;
-        margin: 0.25em;
-    }
+  .uploading {
+    font-size: 1.5em;
+    margin: 0.25em;
+  }
 }
 </style>
-- 
cgit v1.2.3-70-g09d2


From 65f82cf29438fc898cb7733f7bfc8a7868e6f4af Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sat, 7 Apr 2018 21:58:29 +0300
Subject: <select> styling (abeit somewhat not pretty code-wise), default
 colors for default schemes.

---
 src/App.scss                                       |  40 ++++++++--
 src/components/attachment/attachment.vue           |   5 ++
 .../post_status_form/post_status_form.vue          |   4 +-
 src/components/still-image/still-image.vue         |  82 +++++++++++----------
 src/components/style_switcher/style_switcher.js    |  18 ++---
 src/components/style_switcher/style_switcher.vue   |  30 +++++---
 src/i18n/messages.js                               |  12 +--
 src/services/style_setter/style_setter.js          |   4 +-
 static/font/config.json                            |  12 +++
 static/font/css/animation.css                      |   7 --
 static/font/css/fontello-codes.css                 |   2 +
 static/font/css/fontello-embedded.css              |  14 ++--
 static/font/css/fontello-ie7-codes.css             |   2 +
 static/font/css/fontello-ie7.css                   |   2 +
 static/font/css/fontello.css                       |  16 ++--
 static/font/demo.html                              |  53 ++++++-------
 static/font/font/fontello.eot                      | Bin 9340 -> 9812 bytes
 static/font/font/fontello.svg                      |   6 +-
 static/font/font/fontello.ttf                      | Bin 9172 -> 9644 bytes
 static/font/font/fontello.woff                     | Bin 5728 -> 6032 bytes
 static/font/font/fontello.woff2                    | Bin 4916 -> 5108 bytes
 static/styles.json                                 |  14 ++--
 22 files changed, 193 insertions(+), 130 deletions(-)

(limited to 'src/components/attachment/attachment.vue')

diff --git a/src/App.scss b/src/App.scss
index 63815bf9..942f5fb2 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -77,8 +77,12 @@ button{
   }
 }
 
+label.select {
+  padding: 0;
 
-input, textarea, select {
+}
+
+input, textarea, .select {
   border: none;
   border-radius: $fallback--btnRadius;
   border-radius: var(--btnRadius, $fallback--btnRadius);
@@ -93,11 +97,35 @@ input, textarea, select {
   font-size: 14px;
   padding: 8px 7px 4px;
   box-sizing: border-box;
+  display: inline-block;
+  position: relative;
+
+  .icon-down-open {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    right: 5px;
+    height: 100%;
+    color: $fallback--fg;
+    color: var(--fg, $fallback--fg);
+    line-height: 29px;
+    z-index: 0;
+    pointer-events: none;
+  }
 
-  // TODO: Restyle <select> in a decent way. Needs different markup
-  // -webkit-appearance:none;
-  // -moz-appearance:none;
-  // appearance:none;
+  select {
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    appearance: none;
+    background: transparent;
+    border: none;
+    margin: 0;
+    color: $fallback--fg;
+    color: var(--fg, $fallback--fg);
+    padding: 4px 3ch 3px 3px;
+    width: 100%;
+    z-index: 1;
+  }
 
   &[type=radio],
   &[type=checkbox] {
@@ -185,7 +213,7 @@ nav {
     height: 50px;
     background-repeat: no-repeat;
     background-position: center;
-    background-size: contain;
+    background-size: auto 80%;
 
     a i {
       color: $fallback--link;
diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index 65dc3bab..04f6add4 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -41,6 +41,11 @@
     flex: 0 0 auto;
     max-height: 300px;
     max-width: 100%;
+    line-height: 0;
+
+    video {
+      max-height: 300px;
+    }
   }
 
   .attachment {
diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue
index 0f99b3b1..929f81ee 100644
--- a/src/components/post_status_form/post_status_form.vue
+++ b/src/components/post_status_form/post_status_form.vue
@@ -103,8 +103,8 @@
 
     .attachment {
       position: relative;
-      border: $fallback--border;
-      border: var(--border, $fallback--border);
+      border: 1px solid $fallback--border;
+      border: 1px solid var(--border, $fallback--border);
       margin: 0.5em 0.8em 0.2em 0;
     }
 
diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index 5695c554..5fefe714 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -10,53 +10,55 @@
 <style lang="scss">
 @import '../../_variables.scss';
 .still-image {
-    position: relative;
-    line-height: 0;
-    overflow: hidden;
+  position: relative;
+  line-height: 0;
+  overflow: hidden;
+  width: 100%;
+  height: 100%
 
-    &:hover canvas {
-        display: none;
-    }
+  &:hover canvas {
+    display: none;
+  }
+
+  img {
+    width: 100%;
+    height: 100%
+  }
 
+  &.animated {
+    &:hover::before,
     img {
-        width: 100%;
-        height: 100%
+      visibility: hidden;
     }
 
-    &.animated {
-        &:hover::before,
-        img {
-            visibility: hidden;
-        }
-
-        &:hover img {
-            visibility: visible
-        }
-
-        &::before {
-            content: 'gif';
-            position: absolute;
-            line-height: 10px;
-            font-size: 10px;
-            top: 5px;
-            left: 5px;
-            background: rgba(127,127,127,.5);
-            color: #FFF;
-            display: block;
-            padding: 2px 4px;
-            border-radius: 3px;
-            z-index: 2;
-        }
+    &:hover img {
+      visibility: visible
     }
 
-    canvas {
-        position: absolute;
-        top: 0;
-        bottom: 0;
-        left: 0;
-        right: 0;
-        width: 100%;
-        height: 100%;
+    &::before {
+      content: 'gif';
+      position: absolute;
+      line-height: 10px;
+      font-size: 10px;
+      top: 5px;
+      left: 5px;
+      background: rgba(127,127,127,.5);
+      color: #FFF;
+      display: block;
+      padding: 2px 4px;
+      border-radius: 3px;
+      z-index: 2;
     }
+  }
+
+  canvas {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    width: 100%;
+    height: 100%;
+  }
 }
 </style>
diff --git a/src/components/style_switcher/style_switcher.js b/src/components/style_switcher/style_switcher.js
index 5e5ba266..e6b80ac9 100644
--- a/src/components/style_switcher/style_switcher.js
+++ b/src/components/style_switcher/style_switcher.js
@@ -6,7 +6,7 @@ export default {
       availableStyles: [],
       selected: this.$store.state.config.theme,
       bgColorLocal: '',
-      fgColorLocal: '',
+      btnColorLocal: '',
       textColorLocal: '',
       linkColorLocal: '',
       redColorLocal: '#ff0000',
@@ -26,7 +26,7 @@ export default {
   },
   mounted () {
     this.bgColorLocal = rgbstr2hex(this.$store.state.config.colors.bg)
-    this.fgColorLocal = rgbstr2hex(this.$store.state.config.colors.lightBg)
+    this.btnColorLocal = rgbstr2hex(this.$store.state.config.colors.lightBg)
     this.textColorLocal = rgbstr2hex(this.$store.state.config.colors.fg)
     this.linkColorLocal = rgbstr2hex(this.$store.state.config.colors.link)
 
@@ -37,7 +37,7 @@ export default {
   },
   methods: {
     setCustomTheme () {
-      if (!this.bgColorLocal && !this.fgColorLocal && !this.linkColorLocal) {
+      if (!this.bgColorLocal && !this.btnColorLocal && !this.linkColorLocal) {
         // reset to picked themes
       }
       const rgb = (hex) => {
@@ -49,7 +49,7 @@ export default {
         } : null
       }
       const bgRgb = rgb(this.bgColorLocal)
-      const fgRgb = rgb(this.fgColorLocal)
+      const btnRgb = rgb(this.btnColorLocal)
       const textRgb = rgb(this.textColorLocal)
       const linkRgb = rgb(this.linkColorLocal)
 
@@ -58,11 +58,11 @@ export default {
       const greenRgb = rgb(this.greenColorLocal)
       const orangeRgb = rgb(this.orangeColorLocal)
 
-      if (bgRgb && fgRgb && linkRgb) {
+      if (bgRgb && btnRgb && linkRgb) {
         this.$store.dispatch('setOption', {
           name: 'customTheme',
           value: {
-            fg: fgRgb,
+            fg: btnRgb,
             bg: bgRgb,
             text: textRgb,
             link: linkRgb,
@@ -77,12 +77,12 @@ export default {
   watch: {
     selected () {
       this.bgColorLocal = this.selected[1]
-      this.fgColorLocal = this.selected[2]
+      this.btnColorLocal = this.selected[2]
       this.textColorLocal = this.selected[3]
       this.linkColorLocal = this.selected[4]
       this.redColorLocal = this.selected[5]
-      this.blueColorLocal = this.selected[6]
-      this.greenColorLocal = this.selected[7]
+      this.greenColorLocal = this.selected[6]
+      this.blueColorLocal = this.selected[7]
       this.orangeColorLocal = this.selected[8]
     }
   }
diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue
index 6bdd4391..2ebf2b90 100644
--- a/src/components/style_switcher/style_switcher.vue
+++ b/src/components/style_switcher/style_switcher.vue
@@ -1,11 +1,15 @@
 <template>
   <div>
-    <p>{{$t('settings.presets')}}</p>
-    <select v-model="selected" class="style-switcher">
-      <option v-for="style in availableStyles" :value="style">{{style[0]}}</option>
-    </select>
-    <p>{{$t('settings.theme_help')}}</p>
+    <div>{{$t('settings.presets')}}
+      <label for="style-switcher" class='select'>
+        <select id="style-switcher" v-model="selected" class="style-switcher">
+          <option v-for="style in availableStyles" :value="style">{{style[0]}}</option>
+        </select>
+        <i class="icon-down-open"/>
+      </label>
+    </div>
     <div class="color-container">
+      <p>{{$t('settings.theme_help')}}</p>
       <div class="color-item">
         <label for="bgcolor" class="theme-color-lb">{{$t('settings.background')}}</label>
         <input id="bgcolor" class="theme-color-cl" type="color" v-model="bgColorLocal">
@@ -13,8 +17,8 @@
       </div>
       <div class="color-item">
         <label for="fgcolor" class="theme-color-lb">{{$t('settings.foreground')}}</label>
-        <input id="fgcolor" class="theme-color-cl" type="color" v-model="fgColorLocal">
-        <input id="fgcolor-t" class="theme-color-in" type="text" v-model="fgColorLocal">
+        <input id="fgcolor" class="theme-color-cl" type="color" v-model="btnColorLocal">
+        <input id="fgcolor-t" class="theme-color-in" type="text" v-model="btnColorLocal">
       </div>
       <div class="color-item">
         <label for="textcolor" class="theme-color-lb">{{$t('settings.text')}}</label>
@@ -26,8 +30,6 @@
         <input id="linkcolor" class="theme-color-cl" type="color" v-model="linkColorLocal">
         <input id="linkcolor-t" class="theme-color-in" type="text" v-model="linkColorLocal">
       </div>
-    </div>
-    <div class="color-container additional colors">
       <div class="color-item">
         <label for="redcolor" class="theme-color-lb">{{$t('settings.cRed')}}</label>
         <input id="redcolor" class="theme-color-cl" type="color" v-model="redColorLocal">
@@ -51,14 +53,20 @@
     </div>
     <div>
       <div class="panel">
-        <div class="panel-heading" :style="{ 'background-color': fgColorLocal, 'color': textColorLocal }">Preview</div>
+        <div class="panel-heading" :style="{ 'background-color': btnColorLocal, 'color': textColorLocal }">Preview</div>
         <div class="panel-body theme-preview-content" :style="{ 'background-color': bgColorLocal, 'color': textColorLocal }">
           <h4>Content</h4>
           <br>
           A bunch of more content and
           <a :style="{ 'color': linkColorLocal }">a nice lil' link</a>
+          <i :style="{ 'color': blueColorLocal }" class="icon-reply"/>
+          <i :style="{ 'color': greenColorLocal }" class="icon-retweet"/>
+          <i :style="{ 'color': redColorLocal }" class="icon-cancel"/>
+          <i :style="{ 'color': orangeColorLocal }" class="icon-star"/>
+          <br>
           <br>
-          <button class="btn" :style="{ 'background-color': fgColorLocal, 'color': textColorLocal }">Button</button>
+          <div class="finder-error" :style="{ 'background-color': redColorLocal }">And a scary alert</div>
+          <button class="btn" :style="{ 'background-color': btnColorLocal, 'color': textColorLocal }">Button</button>
         </div>
       </div>
     </div>
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index df923be4..9f3d65ce 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -46,7 +46,7 @@ const de = {
     settings: 'Einstellungen',
     theme: 'Farbschema',
     presets: 'Voreinstellungen',
-    theme_help: 'Benutze HTML Farbcodes (#aabbcc) um dein Farbschema anzupassen.',
+    theme_help: 'Benutze HTML Farbcodes (#rrggbb) um dein Farbschema anzupassen.',
     background: 'Hintergrund',
     foreground: 'Vordergrund',
     text: 'Text',
@@ -238,7 +238,7 @@ const en = {
     settings: 'Settings',
     theme: 'Theme',
     presets: 'Presets',
-    theme_help: 'Use hex color codes (#aabbcc) to customize your color theme.',
+    theme_help: 'Use hex color codes (#rrggbb) to customize your color theme.',
     background: 'Background',
     foreground: 'Foreground',
     text: 'Text',
@@ -812,7 +812,7 @@ const oc = {
     settings: 'Paramètres',
     theme: 'Tèma',
     presets: 'Pre-enregistrats',
-    theme_help: 'Emplegatz los còdis de color hex (#aabbcc) per personalizar vòstre tèma de color.',
+    theme_help: 'Emplegatz los còdis de color hex (#rrggbb) per personalizar vòstre tèma de color.',
     background: 'Rèire plan',
     foreground: 'Endavant',
     text: 'Tèxte',
@@ -998,7 +998,7 @@ const es = {
     settings: 'Ajustes',
     theme: 'Tema',
     presets: 'Por defecto',
-    theme_help: 'Use códigos de color hexadecimales (#aabbcc) para personalizar su tema de colores.',
+    theme_help: 'Use códigos de color hexadecimales (#rrggbb) para personalizar su tema de colores.',
     background: 'Segundo plano',
     foreground: 'Primer plano',
     text: 'Texto',
@@ -1098,7 +1098,7 @@ const pt = {
     settings: 'Configurações',
     theme: 'Tema',
     presets: 'Predefinições',
-    theme_help: 'Use cores em código hexadecimal (#aabbcc) para personalizar seu esquema de cores.',
+    theme_help: 'Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.',
     background: 'Plano de Fundo',
     foreground: 'Primeiro Plano',
     text: 'Texto',
@@ -1198,7 +1198,7 @@ const ru = {
     settings: 'Настройки',
     theme: 'Тема',
     presets: 'Пресеты',
-    theme_help: 'Используйте шестнадцатеричные коды цветов (#aabbcc) для настройки темы.',
+    theme_help: 'Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.',
     background: 'Фон',
     foreground: 'Передний план',
     text: 'Текст',
diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js
index 503a0d72..9ec9b735 100644
--- a/src/services/style_setter/style_setter.js
+++ b/src/services/style_setter/style_setter.js
@@ -108,8 +108,8 @@ const setPreset = (val, commit) => {
       const linkRgb = hex2rgb(theme[4])
 
       const cRedRgb = hex2rgb(theme[5] || '#FF0000')
-      const cBlueRgb = hex2rgb(theme[6] || '#0000FF')
-      const cGreenRgb = hex2rgb(theme[7] || '#00FF00')
+      const cGreenRgb = hex2rgb(theme[6] || '#00FF00')
+      const cBlueRgb = hex2rgb(theme[7] || '#0000FF')
       const cOrangeRgb = hex2rgb(theme[8] || '#E3FF00')
 
       const col = {
diff --git a/static/font/config.json b/static/font/config.json
index 98ece6ad..c3985655 100644
--- a/static/font/config.json
+++ b/static/font/config.json
@@ -95,6 +95,18 @@
       "css": "logout",
       "code": 59400,
       "src": "fontawesome"
+    },
+    {
+      "uid": "ccddff8e8670dcd130e3cb55fdfc2fd0",
+      "css": "down-open",
+      "code": 59401,
+      "src": "fontawesome"
+    },
+    {
+      "uid": "44b9e75612c5fad5505edd70d071651f",
+      "css": "attach",
+      "code": 59402,
+      "src": "entypo"
     }
   ]
 }
\ No newline at end of file
diff --git a/static/font/css/animation.css b/static/font/css/animation.css
index c8cfc252..ac5a9562 100644
--- a/static/font/css/animation.css
+++ b/static/font/css/animation.css
@@ -8,13 +8,6 @@
   animation: spin 2s infinite linear;
   display: inline-block;
 }
-.animate-spin-slow {
-  -moz-animation: spin 4s infinite linear;
-  -o-animation: spin 4s infinite linear;
-  -webkit-animation: spin 4s infinite linear;
-  animation: spin 4s infinite linear;
-  display: inline-block;
-}
 @-moz-keyframes spin {
   0% {
     -moz-transform: rotate(0deg);
diff --git a/static/font/css/fontello-codes.css b/static/font/css/fontello-codes.css
index 8831e4ee..7402a411 100644
--- a/static/font/css/fontello-codes.css
+++ b/static/font/css/fontello-codes.css
@@ -8,6 +8,8 @@
 .icon-plus-squared:before { content: '\e806'; } /* '' */
 .icon-cog:before { content: '\e807'; } /* '' */
 .icon-logout:before { content: '\e808'; } /* '' */
+.icon-down-open:before { content: '\e809'; } /* '' */
+.icon-attach:before { content: '\e80a'; } /* '' */
 .icon-spin3:before { content: '\e832'; } /* '' */
 .icon-spin4:before { content: '\e834'; } /* '' */
 .icon-menu:before { content: '\f0c9'; } /* '' */
diff --git a/static/font/css/fontello-embedded.css b/static/font/css/fontello-embedded.css
index f9d38315..e3405676 100644
--- a/static/font/css/fontello-embedded.css
+++ b/static/font/css/fontello-embedded.css
@@ -1,15 +1,15 @@
 @font-face {
   font-family: 'fontello';
-  src: url('../font/fontello.eot?34768509');
-  src: url('../font/fontello.eot?34768509#iefix') format('embedded-opentype'),
-       url('../font/fontello.svg?34768509#fontello') format('svg');
+  src: url('../font/fontello.eot?50813206');
+  src: url('../font/fontello.eot?50813206#iefix') format('embedded-opentype'),
+       url('../font/fontello.svg?50813206#fontello') format('svg');
   font-weight: normal;
   font-style: normal;
 }
 @font-face {
   font-family: 'fontello';
-  src: url('data:application/octet-stream;base64,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') format('woff'),
-       url('data:application/octet-stream;base64,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') format('truetype');
+  src: url('data:application/octet-stream;base64,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') format('woff'),
+       url('data:application/octet-stream;base64,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AAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype');
 }
 /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
 /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
@@ -17,7 +17,7 @@
 @media screen and (-webkit-min-device-pixel-ratio:0) {
   @font-face {
     font-family: 'fontello';
-    src: url('../font/fontello.svg?34768509#fontello') format('svg');
+    src: url('../font/fontello.svg?50813206#fontello') format('svg');
   }
 }
 */
@@ -61,6 +61,8 @@
 .icon-plus-squared:before { content: '\e806'; } /* '' */
 .icon-cog:before { content: '\e807'; } /* '' */
 .icon-logout:before { content: '\e808'; } /* '' */
+.icon-down-open:before { content: '\e809'; } /* '' */
+.icon-attach:before { content: '\e80a'; } /* '' */
 .icon-spin3:before { content: '\e832'; } /* '' */
 .icon-spin4:before { content: '\e834'; } /* '' */
 .icon-menu:before { content: '\f0c9'; } /* '' */
diff --git a/static/font/css/fontello-ie7-codes.css b/static/font/css/fontello-ie7-codes.css
index 3c915b3c..9e9969bb 100644
--- a/static/font/css/fontello-ie7-codes.css
+++ b/static/font/css/fontello-ie7-codes.css
@@ -8,6 +8,8 @@
 .icon-plus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
 .icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
 .icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.icon-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
 .icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
 .icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
 .icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c9;&nbsp;'); }
diff --git a/static/font/css/fontello-ie7.css b/static/font/css/fontello-ie7.css
index 2fe2a707..5ed9dff1 100644
--- a/static/font/css/fontello-ie7.css
+++ b/static/font/css/fontello-ie7.css
@@ -19,6 +19,8 @@
 .icon-plus-squared { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
 .icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
 .icon-logout { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
+.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
+.icon-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }
 .icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe832;&nbsp;'); }
 .icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe834;&nbsp;'); }
 .icon-menu { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c9;&nbsp;'); }
diff --git a/static/font/css/fontello.css b/static/font/css/fontello.css
index 0c0d2930..09e6bb54 100644
--- a/static/font/css/fontello.css
+++ b/static/font/css/fontello.css
@@ -1,11 +1,11 @@
 @font-face {
   font-family: 'fontello';
-  src: url('../font/fontello.eot?64848116');
-  src: url('../font/fontello.eot?64848116#iefix') format('embedded-opentype'),
-       url('../font/fontello.woff2?64848116') format('woff2'),
-       url('../font/fontello.woff?64848116') format('woff'),
-       url('../font/fontello.ttf?64848116') format('truetype'),
-       url('../font/fontello.svg?64848116#fontello') format('svg');
+  src: url('../font/fontello.eot?73580499');
+  src: url('../font/fontello.eot?73580499#iefix') format('embedded-opentype'),
+       url('../font/fontello.woff2?73580499') format('woff2'),
+       url('../font/fontello.woff?73580499') format('woff'),
+       url('../font/fontello.ttf?73580499') format('truetype'),
+       url('../font/fontello.svg?73580499#fontello') format('svg');
   font-weight: normal;
   font-style: normal;
 }
@@ -15,7 +15,7 @@
 @media screen and (-webkit-min-device-pixel-ratio:0) {
   @font-face {
     font-family: 'fontello';
-    src: url('../font/fontello.svg?64848116#fontello') format('svg');
+    src: url('../font/fontello.svg?73580499#fontello') format('svg');
   }
 }
 */
@@ -64,6 +64,8 @@
 .icon-plus-squared:before { content: '\e806'; } /* '' */
 .icon-cog:before { content: '\e807'; } /* '' */
 .icon-logout:before { content: '\e808'; } /* '' */
+.icon-down-open:before { content: '\e809'; } /* '' */
+.icon-attach:before { content: '\e80a'; } /* '' */
 .icon-spin3:before { content: '\e832'; } /* '' */
 .icon-spin4:before { content: '\e834'; } /* '' */
 .icon-menu:before { content: '\f0c9'; } /* '' */
diff --git a/static/font/demo.html b/static/font/demo.html
index 2c5503c0..7afc7267 100644
--- a/static/font/demo.html
+++ b/static/font/demo.html
@@ -229,11 +229,11 @@ body {
 }
 @font-face {
       font-family: 'fontello';
-      src: url('./font/fontello.eot?1253892');
-      src: url('./font/fontello.eot?1253892#iefix') format('embedded-opentype'),
-           url('./font/fontello.woff?1253892') format('woff'),
-           url('./font/fontello.ttf?1253892') format('truetype'),
-           url('./font/fontello.svg?1253892#fontello') format('svg');
+      src: url('./font/fontello.eot?97388161');
+      src: url('./font/fontello.eot?97388161#iefix') format('embedded-opentype'),
+           url('./font/fontello.woff?97388161') format('woff'),
+           url('./font/fontello.ttf?97388161') format('truetype'),
+           url('./font/fontello.svg?97388161#fontello') format('svg');
       font-weight: normal;
       font-style: normal;
     }
@@ -275,7 +275,7 @@ body {
       /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
     }
      </style>
-    <link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/fontello-ie7.css"><![endif]-->
+    <link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/" + font.fontname + "-ie7.css"><![endif]-->
     <script>
       function toggleCodes(on) {
         var obj = document.getElementById('icons');
@@ -291,37 +291,38 @@ body {
   </head>
   <body>
     <div class="container header">
-      <h1>
-        fontello
-         <small>font demo</small>
-      </h1>
+      <h1>fontello <small>font demo</small></h1>
       <label class="switch">
         <input type="checkbox" onclick="toggleCodes(this.checked)">show codes
       </label>
     </div>
-    <div id="icons" class="container">
+    <div class="container" id="icons">
       <div class="row">
-        <div title="Code: 0xe800" class="the-icons span3"><i class="demo-icon icon-cancel">&#xe800;</i> <span class="i-name">icon-cancel</span><span class="i-code">0xe800</span></div>
-        <div title="Code: 0xe801" class="the-icons span3"><i class="demo-icon icon-upload">&#xe801;</i> <span class="i-name">icon-upload</span><span class="i-code">0xe801</span></div>
-        <div title="Code: 0xe802" class="the-icons span3"><i class="demo-icon icon-star">&#xe802;</i> <span class="i-name">icon-star</span><span class="i-code">0xe802</span></div>
-        <div title="Code: 0xe803" class="the-icons span3"><i class="demo-icon icon-star-empty">&#xe803;</i> <span class="i-name">icon-star-empty</span><span class="i-code">0xe803</span></div>
+        <div class="the-icons span3" title="Code: 0xe800"><i class="demo-icon icon-cancel">&#xe800;</i> <span class="i-name">icon-cancel</span><span class="i-code">0xe800</span></div>
+        <div class="the-icons span3" title="Code: 0xe801"><i class="demo-icon icon-upload">&#xe801;</i> <span class="i-name">icon-upload</span><span class="i-code">0xe801</span></div>
+        <div class="the-icons span3" title="Code: 0xe802"><i class="demo-icon icon-star">&#xe802;</i> <span class="i-name">icon-star</span><span class="i-code">0xe802</span></div>
+        <div class="the-icons span3" title="Code: 0xe803"><i class="demo-icon icon-star-empty">&#xe803;</i> <span class="i-name">icon-star-empty</span><span class="i-code">0xe803</span></div>
       </div>
       <div class="row">
-        <div title="Code: 0xe804" class="the-icons span3"><i class="demo-icon icon-retweet">&#xe804;</i> <span class="i-name">icon-retweet</span><span class="i-code">0xe804</span></div>
-        <div title="Code: 0xe805" class="the-icons span3"><i class="demo-icon icon-eye-off">&#xe805;</i> <span class="i-name">icon-eye-off</span><span class="i-code">0xe805</span></div>
-        <div title="Code: 0xe806" class="the-icons span3"><i class="demo-icon icon-plus-squared">&#xe806;</i> <span class="i-name">icon-plus-squared</span><span class="i-code">0xe806</span></div>
-        <div title="Code: 0xe807" class="the-icons span3"><i class="demo-icon icon-cog">&#xe807;</i> <span class="i-name">icon-cog</span><span class="i-code">0xe807</span></div>
+        <div class="the-icons span3" title="Code: 0xe804"><i class="demo-icon icon-retweet">&#xe804;</i> <span class="i-name">icon-retweet</span><span class="i-code">0xe804</span></div>
+        <div class="the-icons span3" title="Code: 0xe805"><i class="demo-icon icon-eye-off">&#xe805;</i> <span class="i-name">icon-eye-off</span><span class="i-code">0xe805</span></div>
+        <div class="the-icons span3" title="Code: 0xe806"><i class="demo-icon icon-plus-squared">&#xe806;</i> <span class="i-name">icon-plus-squared</span><span class="i-code">0xe806</span></div>
+        <div class="the-icons span3" title="Code: 0xe807"><i class="demo-icon icon-cog">&#xe807;</i> <span class="i-name">icon-cog</span><span class="i-code">0xe807</span></div>
       </div>
       <div class="row">
-        <div title="Code: 0xe808" class="the-icons span3"><i class="demo-icon icon-logout">&#xe808;</i> <span class="i-name">icon-logout</span><span class="i-code">0xe808</span></div>
-        <div title="Code: 0xe832" class="the-icons span3"><i class="demo-icon icon-spin3 animate-spin">&#xe832;</i> <span class="i-name">icon-spin3</span><span class="i-code">0xe832</span></div>
-        <div title="Code: 0xe834" class="the-icons span3"><i class="demo-icon icon-spin4 animate-spin">&#xe834;</i> <span class="i-name">icon-spin4</span><span class="i-code">0xe834</span></div>
-        <div title="Code: 0xf0c9" class="the-icons span3"><i class="demo-icon icon-menu">&#xf0c9;</i> <span class="i-name">icon-menu</span><span class="i-code">0xf0c9</span></div>
+        <div class="the-icons span3" title="Code: 0xe808"><i class="demo-icon icon-logout">&#xe808;</i> <span class="i-name">icon-logout</span><span class="i-code">0xe808</span></div>
+        <div class="the-icons span3" title="Code: 0xe809"><i class="demo-icon icon-down-open">&#xe809;</i> <span class="i-name">icon-down-open</span><span class="i-code">0xe809</span></div>
+        <div class="the-icons span3" title="Code: 0xe80a"><i class="demo-icon icon-attach">&#xe80a;</i> <span class="i-name">icon-attach</span><span class="i-code">0xe80a</span></div>
+        <div class="the-icons span3" title="Code: 0xe832"><i class="demo-icon icon-spin3 animate-spin">&#xe832;</i> <span class="i-name">icon-spin3</span><span class="i-code">0xe832</span></div>
       </div>
       <div class="row">
-        <div title="Code: 0xf112" class="the-icons span3"><i class="demo-icon icon-reply">&#xf112;</i> <span class="i-name">icon-reply</span><span class="i-code">0xf112</span></div>
-        <div title="Code: 0xf1e5" class="the-icons span3"><i class="demo-icon icon-binoculars">&#xf1e5;</i> <span class="i-name">icon-binoculars</span><span class="i-code">0xf1e5</span></div>
-        <div title="Code: 0xf234" class="the-icons span3"><i class="demo-icon icon-user-plus">&#xf234;</i> <span class="i-name">icon-user-plus</span><span class="i-code">0xf234</span></div>
+        <div class="the-icons span3" title="Code: 0xe834"><i class="demo-icon icon-spin4 animate-spin">&#xe834;</i> <span class="i-name">icon-spin4</span><span class="i-code">0xe834</span></div>
+        <div class="the-icons span3" title="Code: 0xf0c9"><i class="demo-icon icon-menu">&#xf0c9;</i> <span class="i-name">icon-menu</span><span class="i-code">0xf0c9</span></div>
+        <div class="the-icons span3" title="Code: 0xf112"><i class="demo-icon icon-reply">&#xf112;</i> <span class="i-name">icon-reply</span><span class="i-code">0xf112</span></div>
+        <div class="the-icons span3" title="Code: 0xf1e5"><i class="demo-icon icon-binoculars">&#xf1e5;</i> <span class="i-name">icon-binoculars</span><span class="i-code">0xf1e5</span></div>
+      </div>
+      <div class="row">
+        <div class="the-icons span3" title="Code: 0xf234"><i class="demo-icon icon-user-plus">&#xf234;</i> <span class="i-name">icon-user-plus</span><span class="i-code">0xf234</span></div>
       </div>
     </div>
     <div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
diff --git a/static/font/font/fontello.eot b/static/font/font/fontello.eot
index 52fbefa9..78ba01c9 100644
Binary files a/static/font/font/fontello.eot and b/static/font/font/fontello.eot differ
diff --git a/static/font/font/fontello.svg b/static/font/font/fontello.svg
index 43e9bee4..d57b9628 100644
--- a/static/font/font/fontello.svg
+++ b/static/font/font/fontello.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Copyright (C) 2017 by original authors @ fontello.com</metadata>
+<metadata>Copyright (C) 2018 by original authors @ fontello.com</metadata>
 <defs>
 <font id="fontello" horiz-adv-x="1000" >
 <font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
@@ -24,6 +24,10 @@
 
 <glyph glyph-name="logout" unicode="&#xe808;" d="M357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-26t-27-64v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />
 
+<glyph glyph-name="down-open" unicode="&#xe809;" d="M939 399l-414-413q-10-11-25-11t-25 11l-414 413q-11 11-11 26t11 25l93 92q10 11 25 11t25-11l296-296 296 296q11 11 25 11t26-11l92-92q11-11 11-25t-11-26z" horiz-adv-x="1000" />
+
+<glyph glyph-name="attach" unicode="&#xe80a;" d="M244-140q-102 0-170 72-72 70-74 166t84 190l496 496q80 80 174 54 44-12 79-47t47-79q26-96-54-176l-474-474q-40-40-88-46-48-4-80 28-30 24-27 74t47 92l332 334q24 26 50 0t0-50l-332-332q-44-44-20-70 12-8 24-6 24 4 46 26l474 474q50 50 34 108-16 60-76 76-54 14-108-36l-494-494q-66-76-64-143t52-117q50-48 117-50t141 62l496 494q24 24 50 0 26-22 0-48l-496-496q-82-82-186-82z" horiz-adv-x="939" />
+
 <glyph glyph-name="spin3" unicode="&#xe832;" d="M494 850c-266 0-483-210-494-472-1-19 13-20 13-20l84 0c16 0 19 10 19 18 10 199 176 358 378 358 107 0 205-45 273-118l-58-57c-11-12-11-27 5-31l247-50c21-5 46 11 37 44l-58 227c-2 9-16 22-29 13l-65-60c-89 91-214 148-352 148z m409-508c-16 0-19-10-19-18-10-199-176-358-377-358-108 0-205 45-274 118l59 57c10 12 10 27-5 31l-248 50c-21 5-46-11-37-44l58-227c2-9 16-22 30-13l64 60c89-91 214-148 353-148 265 0 482 210 493 473 1 18-13 19-13 19l-84 0z" horiz-adv-x="1000" />
 
 <glyph glyph-name="spin4" unicode="&#xe834;" d="M498 850c-114 0-228-39-320-116l0 0c173 140 428 130 588-31 134-134 164-332 89-495-10-29-5-50 12-68 21-20 61-23 84 0 3 3 12 15 15 24 71 180 33 393-112 539-99 98-228 147-356 147z m-409-274c-14 0-29-5-39-16-3-3-13-15-15-24-71-180-34-393 112-539 185-185 479-195 676-31l0 0c-173-140-428-130-589 31-134 134-163 333-89 495 11 29 6 50-12 68-11 11-27 17-44 16z" horiz-adv-x="1001" />
diff --git a/static/font/font/fontello.ttf b/static/font/font/fontello.ttf
index 2548731d..91feac6d 100644
Binary files a/static/font/font/fontello.ttf and b/static/font/font/fontello.ttf differ
diff --git a/static/font/font/fontello.woff b/static/font/font/fontello.woff
index fbbf748f..539e4835 100644
Binary files a/static/font/font/fontello.woff and b/static/font/font/fontello.woff differ
diff --git a/static/font/font/fontello.woff2 b/static/font/font/fontello.woff2
index 89c49787..99d58137 100644
Binary files a/static/font/font/fontello.woff2 and b/static/font/font/fontello.woff2 differ
diff --git a/static/styles.json b/static/styles.json
index 92715565..7116ef20 100644
--- a/static/styles.json
+++ b/static/styles.json
@@ -1,9 +1,9 @@
 {
-  "pleroma-dark": [ "Pleroma Dark", "#121a24", "#182230", "#b9b9ba", "#d8a070" ],
-  "pleroma-light": [ "Pleroma Light", "#f2f4f6", "#dbe0e8", "#304055", "#f86f0f" ],
-  "classic-dark": [ "Classic Dark", "#161c20", "#282e32", "#b9b9b9", "#baaa9c" ],
-  "bird": [ "Bird", "#f8fafd", "#e6ecf0", "#14171a", "#0084b8"],
-  "ir-black": [ "Ir Black", "#000000", "#242422", "#b5b3aa", "#ff6c60" ],
-  "monokai": [ "Monokai", "#272822", "#383830", "#f8f8f2", "#f92672" ],
-  "mammal": [ "Mammal", "#272c37", "#444b5d", "#f8f8f8", "#9bacc8" ]
+  "pleroma-dark": [ "Pleroma Dark", "#121a24", "#182230", "#b9b9ba", "#d8a070", "#d31014", "#0fa00f", "#0095ff", "#ffa500" ],
+  "pleroma-light": [ "Pleroma Light", "#f2f4f6", "#dbe0e8", "#304055", "#f86f0f", "#d31014", "#0fa00f", "#0095ff", "#ffa500" ],
+  "classic-dark": [ "Classic Dark", "#161c20", "#282e32", "#b9b9b9", "#baaa9c", "#d31014", "#0fa00f", "#0095ff", "#ffa500" ],
+  "bird": [ "Bird", "#f8fafd", "#e6ecf0", "#14171a", "#0084b8", "#e0245e", "#17bf63", "#1b95e0", "#fab81e"],
+  "ir-black": [ "Ir Black", "#000000", "#242422", "#b5b3aa", "#ff6c60", "#FF6C60", "#A8FF60", "#96CBFE", "#FFFFB6" ],
+  "monokai": [ "Monokai", "#272822", "#383830", "#f8f8f2", "#f92672", "#F92672", "#a6e22e", "#66d9ef", "#f4bf75" ],
+  "mammal": [ "Mammal", "#272c37", "#444b5d", "#f8f8f8", "#9bacc8", "#7f3142", "#2bd850", "#2b90d9", "#ca8f04" ]
 }
-- 
cgit v1.2.3-70-g09d2

