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/user_profile/user_profile.vue | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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

diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 359abfef..14d8cfe9 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div v-if="user" class="user-profile panel panel-default base00-background">
+    <div v-if="user" class="user-profile panel panel-default">
       <user-card-content :user="user" :switcher="true"></user-card-content>
     </div>
     <Timeline :title="$t('user_profile.timeline_title')" :timeline="timeline" :timeline-name="'user'" :user-id="userId"/>
@@ -16,6 +16,9 @@
   flex-basis: 500px;
   padding-bottom: 10px;
   border-radius: 10px;
+  .panel-heading {
+      background: transparent;
+  }
 }
 
 </style>
-- 
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/user_profile/user_profile.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/user_profile/user_profile.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

