From b10787d23ca645932e89383ebb39402d1eb84700 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Mon, 29 Jan 2018 10:47:26 +0300
Subject: first ver

---
 src/components/still-image/still-image.vue | 51 ++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 src/components/still-image/still-image.vue

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
new file mode 100644
index 00000000..fa086e51
--- /dev/null
+++ b/src/components/still-image/still-image.vue
@@ -0,0 +1,51 @@
+<template>
+  <div class='still-image' :class='{ animated: animated }' >
+    <canvas ref="canvas" v-if="animated"></canvas>
+    <img ref="src" :src="src" :referrerpolicy="referrerpolicy" v-on:load="drawCanvas"/>
+  </div>
+</template>
+
+<script src="./still-image.js"></script>
+
+<style lang="scss">
+@import '../../_variables.scss';
+.still-image {
+    position: relative;
+    
+    &:hover canvas {
+        display: none;
+    }
+    
+    &.animated {
+        &:hover::before,
+        img {
+            visibility: hidden
+        }
+        
+        &:hover img {
+            visibility: visible
+        }
+
+        &::before {
+            content: 'gif';
+            position: absolute;
+            top: 5px;
+            left: 5px;
+            background: rgba(255,255,255,.5);
+            display: block;
+            padding: 2px;
+            z-index: 2;
+        }
+    }
+
+    canvas {
+        position: absolute;
+        top: 0;
+        bottom: 0;
+        left: 0;
+        right: 0;
+        width: 100%;
+        height: 100%;
+    }
+}
+</style>
-- 
cgit v1.2.3-70-g09d2


From 3257991f4196cb6c2c77b3f81ec9f1850e243211 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sat, 3 Feb 2018 19:55:45 +0300
Subject: unfinished fetch() version that doesn't work

---
 src/components/attachment/attachment.vue   |  1 -
 src/components/status/status.js            |  4 +++-
 src/components/status/status.vue           | 26 +++++++++++++++++++++++---
 src/components/still-image/still-image.js  | 21 ++++++++++++++++-----
 src/components/still-image/still-image.vue |  5 +++--
 5 files changed, 45 insertions(+), 12 deletions(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index 2810e205..4ee5153b 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -127,7 +127,6 @@
               flex: 1;
 
               img {
-                  object-fit: contain;
                   width: 100%;
                   height: 100%; /* If this isn't here, chrome will stretch the images */
                   max-height: 500px;
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 12f3bb25..7397e80c 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -4,6 +4,7 @@ import RetweetButton from '../retweet_button/retweet_button.vue'
 import DeleteButton from '../delete_button/delete_button.vue'
 import PostStatusForm from '../post_status_form/post_status_form.vue'
 import UserCardContent from '../user_card_content/user_card_content.vue'
+import StillImage from '../still-image/still-image.vue'
 import { filter, find } from 'lodash'
 
 const Status = {
@@ -76,7 +77,8 @@ const Status = {
     RetweetButton,
     DeleteButton,
     PostStatusForm,
-    UserCardContent
+    UserCardContent,
+    StillImage
   },
   methods: {
     linkClicked ({target}) {
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 28272b0b..999adb21 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -34,7 +34,7 @@
       <div class="media status container">
         <div class="media-left">
           <a :href="status.user.statusnet_profile_url">
-            <img @click.prevent="toggleUserExpanded" :class="{retweeted: retweet}" class='avatar' :src="status.user.profile_image_url_original">
+            <StillImage @click.native.prevent="toggleUserExpanded" :class="{retweeted: retweet}" class='avatar' :src="status.user.profile_image_url_original"/>
             <img v-if="retweet" class='avatar-retweeter' :src="statusoid.user.profile_image_url_original"></img>
           </a>
         </div>
@@ -84,7 +84,7 @@
             </div>
 
             <div class="status-preview base00-background base03-border" v-if="showPreview && preview">
-              <img class="avatar" :src="preview.user.profile_image_url_original">
+              <StillImage class="avatar" :src="preview.user.profile_image_url_original"/>
               <div class="text">
                 <h4>
                   {{ preview.user.name }}
@@ -146,6 +146,7 @@
     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;
@@ -266,7 +267,6 @@
         margin: 0.2em 0.3em 0 0;
         img {
           float: right;
-          border-radius: 5px;
         }
      }
 
@@ -330,6 +330,17 @@
  .status .avatar {
    width: 48px;
    height: 48px;
+   border-radius: 5px;
+   overflow: hidden;
+
+   img {
+       width: 100%;
+       height: 100%;
+   }
+
+   &.animated::before {
+       display: none;
+   }
 
    &.retweeted {
      width: 40px;
@@ -339,6 +350,15 @@
    }
  }
 
+ .status:hover .animated.avatar {
+     canvas {
+         display: none;
+     }
+     img {
+         visibility: visible;
+     }
+ }
+
  .status img.avatar-retweeter {
    width: 24px;
    height: 24px;
diff --git a/src/components/still-image/still-image.js b/src/components/still-image/still-image.js
index fa027bc4..e674b932 100644
--- a/src/components/still-image/still-image.js
+++ b/src/components/still-image/still-image.js
@@ -12,16 +12,27 @@ const StillImage = {
     }
   },
   computed: {
-    animated () {
-      return this.mimetype === 'image/gif'
+    animated: {
+      get () {
+        // If mimetype is gif then it is certainly animated, if it's undefined - we don't know YET
+        return this.mimetype === 'image/gif' ? true : this.mimetype == null ? 'maybe' : false
+      },
+      set (val) {
+        this.mimetype = val
+      }
     }
   },
   methods: {
-    drawCanvas() {
+    onLoad () {
       const canvas = this.$refs.canvas
       if (!canvas) return
-      const ctx = canvas.getContext('2d')
-      ctx.drawImage(this.$refs.src, 1, 1, canvas.width, canvas.height)
+      canvas.getContext('2d').drawImage(this.$refs.src, 1, 1, canvas.width, canvas.height)
+      if (this.animated === 'maybe') {
+        fetch(this.src).then((data) => {
+          console.log(data)
+          this.animated = data.type
+        })
+      }
     }
   }
 }
diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index fa086e51..cc426fff 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -1,7 +1,7 @@
 <template>
   <div class='still-image' :class='{ animated: animated }' >
     <canvas ref="canvas" v-if="animated"></canvas>
-    <img ref="src" :src="src" :referrerpolicy="referrerpolicy" v-on:load="drawCanvas"/>
+    <img ref="src" :src="src" :referrerpolicy="referrerpolicy" v-on:load="onLoad"/>
   </div>
 </template>
 
@@ -31,9 +31,10 @@
             position: absolute;
             top: 5px;
             left: 5px;
-            background: rgba(255,255,255,.5);
+            background: rgba(127,127,127,.7);
             display: block;
             padding: 2px;
+            border-radius: 3px;
             z-index: 2;
         }
     }
-- 
cgit v1.2.3-70-g09d2


From 55bc1a3414ac15b08554a43c00f7f631ca1d304a Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sat, 3 Feb 2018 20:32:13 +0300
Subject: fixed stretched spurdo in notifications, misc fixes, detect gif by
 extension for now

---
 src/components/attachment/attachment.vue        |  6 ++++++
 src/components/notifications/notifications.scss |  4 ++++
 src/components/still-image/still-image.js       | 16 ++--------------
 src/components/still-image/still-image.vue      |  1 +
 4 files changed, 13 insertions(+), 14 deletions(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index 4ee5153b..a1b35d91 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -126,7 +126,13 @@
               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;
diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss
index 241f10b4..4fda255b 100644
--- a/src/components/notifications/notifications.scss
+++ b/src/components/notifications/notifications.scss
@@ -104,6 +104,10 @@
     max-height: 12em;
     overflow-y: hidden;
     //text-overflow: ellipsis;
+
+    img {
+        object-fit: contain;
+    }
   }
 
   .notification-gradient {
diff --git a/src/components/still-image/still-image.js b/src/components/still-image/still-image.js
index e674b932..595652f2 100644
--- a/src/components/still-image/still-image.js
+++ b/src/components/still-image/still-image.js
@@ -12,14 +12,8 @@ const StillImage = {
     }
   },
   computed: {
-    animated: {
-      get () {
-        // If mimetype is gif then it is certainly animated, if it's undefined - we don't know YET
-        return this.mimetype === 'image/gif' ? true : this.mimetype == null ? 'maybe' : false
-      },
-      set (val) {
-        this.mimetype = val
-      }
+    animated () {
+      return this.mimetype === 'image/gif' || this.src.endsWith('.gif')
     }
   },
   methods: {
@@ -27,12 +21,6 @@ const StillImage = {
       const canvas = this.$refs.canvas
       if (!canvas) return
       canvas.getContext('2d').drawImage(this.$refs.src, 1, 1, canvas.width, canvas.height)
-      if (this.animated === 'maybe') {
-        fetch(this.src).then((data) => {
-          console.log(data)
-          this.animated = data.type
-        })
-      }
     }
   }
 }
diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index cc426fff..b141cdaf 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -11,6 +11,7 @@
 @import '../../_variables.scss';
 .still-image {
     position: relative;
+    line-height: 0;
     
     &:hover canvas {
         display: none;
-- 
cgit v1.2.3-70-g09d2


From 5efd8a4aa6cd4deca287781be24083fc468c563a Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sat, 3 Feb 2018 20:37:27 +0300
Subject: fixes

---
 src/components/still-image/still-image.js  | 7 -------
 src/components/still-image/still-image.vue | 7 +++++--
 2 files changed, 5 insertions(+), 9 deletions(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/still-image/still-image.js b/src/components/still-image/still-image.js
index 595652f2..f0b25265 100644
--- a/src/components/still-image/still-image.js
+++ b/src/components/still-image/still-image.js
@@ -1,16 +1,9 @@
-import fileTypeService from '../../services/file_type/file_type.service.js'
-
 const StillImage = {
   props: [
     'src',
     'referrerpolicy',
     'mimetype'
   ],
-  data () {
-    return {
-      hideNsfwLocal: this.$store.state.config.hideNsfw,
-    }
-  },
   computed: {
     animated () {
       return this.mimetype === 'image/gif' || this.src.endsWith('.gif')
diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index b141cdaf..91d7f77a 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -30,11 +30,14 @@
         &::before {
             content: 'gif';
             position: absolute;
+            line-height: 10px;
+            font-size: 10px;
             top: 5px;
             left: 5px;
-            background: rgba(127,127,127,.7);
+            background: rgba(127,127,127,.5);
+            color: #FFF;
             display: block;
-            padding: 2px;
+            padding: 2px 4px;
             border-radius: 3px;
             z-index: 2;
         }
-- 
cgit v1.2.3-70-g09d2


From 0c4dc26808c3bb7508bf9005f3c3430f1c7e2039 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Mon, 12 Mar 2018 02:31:33 +0300
Subject: after nine years of development, hopefully, it has been worth the
 weight

---
 src/components/notifications/notifications.js          |  3 ++-
 src/components/notifications/notifications.scss        | 18 +++++++++++++++++-
 src/components/notifications/notifications.vue         |  2 +-
 src/components/settings/settings.js                    |  6 +++++-
 src/components/settings/settings.vue                   |  8 ++++++--
 src/components/status/status.vue                       |  8 ++++----
 src/components/still-image/still-image.js              |  7 ++++++-
 src/components/still-image/still-image.vue             | 14 ++++++++++----
 src/components/user_card_content/user_card_content.js  |  4 ++++
 src/components/user_card_content/user_card_content.vue | 17 +++++++++++++++--
 src/i18n/messages.js                                   |  2 ++
 11 files changed, 72 insertions(+), 17 deletions(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
index 5f0d7f26..e9b83bf0 100644
--- a/src/components/notifications/notifications.js
+++ b/src/components/notifications/notifications.js
@@ -1,4 +1,5 @@
 import Status from '../status/status.vue'
+import StillImage from '../still-image/still-image.vue'
 
 import { sortBy, take, filter } from 'lodash'
 
@@ -31,7 +32,7 @@ const Notifications = {
     }
   },
   components: {
-    Status
+    Status, StillImage
   },
   watch: {
     unseenCount (count) {
diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss
index 4fda255b..3c500b36 100644
--- a/src/components/notifications/notifications.scss
+++ b/src/components/notifications/notifications.scss
@@ -88,10 +88,26 @@
     }
 
     .avatar {
-      padding-top: 0.3em;
+      margin-top: 0.3em;
       width: 32px;
       height: 32px;
       border-radius: 50%;
+      overflow: hidden;
+      line-height: 0;
+
+      &.animated::before {
+        display: none;
+      }
+
+    }
+
+    &:hover .animated.avatar {
+      canvas {
+        display: none;
+      }
+      img {
+        visibility: visible;
+      }
     }
 
     &:last-child {
diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue
index b341fcef..8e6f12b2 100644
--- a/src/components/notifications/notifications.vue
+++ b/src/components/notifications/notifications.vue
@@ -10,7 +10,7 @@
         <div v-for="notification in visibleNotifications" :key="notification" class="notification" :class='{"unseen": !notification.seen}'>
           <div>
             <a :href="notification.action.user.statusnet_profile_url" target="_blank">
-              <img class='avatar' :src="notification.action.user.profile_image_url_original">
+              <StillImage class='avatar' :src="notification.action.user.profile_image_url_original"/>
             </a>
           </div>
           <div class='text' style="width: 100%;">
diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js
index b88937bb..a26111d6 100644
--- a/src/components/settings/settings.js
+++ b/src/components/settings/settings.js
@@ -10,7 +10,8 @@ const settings = {
       muteWordsString: this.$store.state.config.muteWords.join('\n'),
       autoLoadLocal: this.$store.state.config.autoLoad,
       streamingLocal: this.$store.state.config.streaming,
-      hoverPreviewLocal: this.$store.state.config.hoverPreview
+      hoverPreviewLocal: this.$store.state.config.hoverPreview,
+      stopGifs: this.$store.state.config.stopGifs
     }
   },
   components: {
@@ -43,6 +44,9 @@ const settings = {
     muteWordsString (value) {
       value = filter(value.split('\n'), (word) => trim(word).length > 0)
       this.$store.dispatch('setOption', { name: 'muteWords', value })
+    },
+    stopGifs (value) {
+      this.$store.dispatch('setOption', { name: 'stopGifs', value })
     }
   }
 }
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index 8fdd09de..5aa7596a 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -29,8 +29,8 @@
                 <label for="hideNsfw">{{$t('settings.nsfw_clickthrough')}}</label>
             </li>
             <li>
-                <input type="checkbox" id="autoLoad" v-model="autoLoadLocal">
-                <label for="autoLoad">{{$t('settings.autoload')}}</label>
+                <input type="checkbox" id="autoload" v-model="autoloadlocal">
+                <label for="autoload">{{$t('settings.autoload')}}</label>
             </li>
             <li>
                 <input type="checkbox" id="streaming" v-model="streamingLocal">
@@ -40,6 +40,10 @@
                 <input type="checkbox" id="hoverPreview" v-model="hoverPreviewLocal">
                 <label for="hoverPreview">{{$t('settings.reply_link_preview')}}</label>
             </li>
+            <li>
+                <input type="checkbox" id="stopGifs" v-model="stopGifs">
+                <label for="stopGifs">{{$t('settings.stop_gifs')}}</label>
+            </li>
         </ul>
       </div>
     </div>
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 999adb21..d451b67c 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -35,7 +35,7 @@
         <div class="media-left">
           <a :href="status.user.statusnet_profile_url">
             <StillImage @click.native.prevent="toggleUserExpanded" :class="{retweeted: retweet}" class='avatar' :src="status.user.profile_image_url_original"/>
-            <img v-if="retweet" class='avatar-retweeter' :src="statusoid.user.profile_image_url_original"></img>
+            <StillImage v-if="retweet" class='avatar avatar-retweeter' :src="statusoid.user.profile_image_url_original"/>
           </a>
         </div>
         <div class="media-body">
@@ -265,7 +265,7 @@
 
      .media-left {
         margin: 0.2em 0.3em 0 0;
-        img {
+        .avatar {
           float: right;
         }
      }
@@ -359,7 +359,7 @@
      }
  }
 
- .status img.avatar-retweeter {
+ .status .avatar-retweeter {
    width: 24px;
    height: 24px;
    position: absolute;
@@ -433,7 +433,7 @@
      }
    }
 
-   .status img.avatar-retweeter {
+   .status .avatar-retweeter {
      width: 22px;
      height: 22px;
      position: absolute;
diff --git a/src/components/still-image/still-image.js b/src/components/still-image/still-image.js
index f0b25265..0839aca5 100644
--- a/src/components/still-image/still-image.js
+++ b/src/components/still-image/still-image.js
@@ -4,9 +4,14 @@ const StillImage = {
     'referrerpolicy',
     'mimetype'
   ],
+  data () {
+    return {
+      stopGifs: this.$store.state.config.stopGifs
+    }
+  },
   computed: {
     animated () {
-      return this.mimetype === 'image/gif' || this.src.endsWith('.gif')
+      return this.stopGifs && (this.mimetype === 'image/gif' || this.src.endsWith('.gif'))
     }
   },
   methods: {
diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index 91d7f77a..5695c554 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -12,17 +12,23 @@
 .still-image {
     position: relative;
     line-height: 0;
-    
+    overflow: hidden;
+
     &:hover canvas {
         display: none;
     }
-    
+
+    img {
+        width: 100%;
+        height: 100%
+    }
+
     &.animated {
         &:hover::before,
         img {
-            visibility: hidden
+            visibility: hidden;
         }
-        
+
         &:hover img {
             visibility: visible
         }
diff --git a/src/components/user_card_content/user_card_content.js b/src/components/user_card_content/user_card_content.js
index 32d62ebb..8c9ccda1 100644
--- a/src/components/user_card_content/user_card_content.js
+++ b/src/components/user_card_content/user_card_content.js
@@ -1,3 +1,4 @@
+import StillImage from '../still-image/still-image.vue'
 import { hex2rgb } from '../../services/color_convert/color_convert.js'
 
 export default {
@@ -35,6 +36,9 @@ export default {
       return Math.round(this.user.statuses_count / days)
     }
   },
+  components: {
+    StillImage
+  },
   methods: {
     followUser () {
       const store = this.$store
diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue
index ef000c94..71a879df 100644
--- a/src/components/user_card_content/user_card_content.vue
+++ b/src/components/user_card_content/user_card_content.vue
@@ -7,7 +7,7 @@
         </router-link>
         <div class='container'>
           <router-link :to="{ name: 'user-profile', params: { id: user.id } }">
-            <img :src="user.profile_image_url_original">
+            <StillImage class="avatar" :src="user.profile_image_url_original"/>
           </router-link>
           <span class="glyphicon glyphicon-user"></span>
           <div class="name-and-screen-name">
@@ -135,13 +135,26 @@
     overflow: hidden;
   }
 
-  img {
+  .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;
+    }
+  }
+
+  &:hover .animated.avatar {
+    canvas {
+      display: none;
+    }
+    img {
+      visibility: visible;
+    }
   }
 
 	text-shadow: 0px 1px 1.5px rgba(0, 0, 0, 1.0);
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index c4a62128..48708539 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -245,6 +245,7 @@ const en = {
     hide_attachments_in_tl: 'Hide attachments in timeline',
     hide_attachments_in_convo: 'Hide attachments in conversations',
     nsfw_clickthrough: 'Enable clickthrough NSFW attachment hiding',
+    stop_gifs: 'Play-on-hover GIFs',
     autoload: 'Enable automatic loading when scrolled to the bottom',
     streaming: 'Enable automatic streaming of new posts when scrolled to the top',
     reply_link_preview: 'Enable reply-link preview on mouse hover',
@@ -1096,6 +1097,7 @@ const ru = {
     attachments: 'Вложения',
     hide_attachments_in_tl: 'Прятать вложения в ленте',
     hide_attachments_in_convo: 'Прятать вложения в разговорах',
+    stop_gifs: 'Проигрывать GIF анимации только при наведении',
     nsfw_clickthrough: 'Включить скрытие NSFW вложений',
     autoload: 'Включить автоматическую загрузку при прокрутке вниз',
     streaming: 'Включить автоматическую загрузку новых сообщений при прокрутке вверх',
-- 
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/still-image/still-image.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


From 4bbc3ada5d12cfd1dbccbdcb081246b00735452a Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 8 Apr 2018 14:45:12 +0300
Subject: fix some incorrect radii

---
 src/components/nav_panel/nav_panel.vue     | 12 ++++++++----
 src/components/still-image/still-image.vue |  5 +++--
 2 files changed, 11 insertions(+), 6 deletions(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue
index 04ac5738..5db3f555 100644
--- a/src/components/nav_panel/nav_panel.vue
+++ b/src/components/nav_panel/nav_panel.vue
@@ -47,13 +47,17 @@
   padding: 0;
 
   &:first-child a {
-    border-top-right-radius: 10px;
-    border-top-left-radius: 10px;
+    border-top-right-radius: $fallback--panelRadius;
+    border-top-right-radius: var(--panelRadius, $fallback--panelRadius);
+    border-top-left-radius: $fallback--panelRadius;
+    border-top-left-radius: var(--panelRadius, $fallback--panelRadius);
   }
 
   &:last-child a {
-    border-bottom-right-radius: 10px;
-    border-bottom-left-radius: 10px;
+    border-bottom-right-radius: $fallback--panelRadius;
+    border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);
+    border-bottom-left-radius: $fallback--panelRadius;
+    border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);
   }
 }
 
diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index 5fefe714..071e0380 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -16,7 +16,7 @@
   width: 100%;
   height: 100%
 
-  &:hover canvas {
+            &:hover canvas {
     display: none;
   }
 
@@ -46,7 +46,8 @@
       color: #FFF;
       display: block;
       padding: 2px 4px;
-      border-radius: 3px;
+      border-radius: $fallback--tooltipRadius;
+      border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
       z-index: 2;
     }
   }
-- 
cgit v1.2.3-70-g09d2


From bc8ae96cac0fa83e11602a0d909c025b4f1f1e89 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 8 Apr 2018 14:46:36 +0300
Subject: indent fix (my editor screws up here)

---
 src/components/still-image/still-image.vue | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index 071e0380..cffd5d42 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -16,7 +16,7 @@
   width: 100%;
   height: 100%
 
-            &:hover canvas {
+  &:hover canvas {
     display: none;
   }
 
-- 
cgit v1.2.3-70-g09d2


From bf2d4516d59884c657feed4ebe16bf3f1357bda1 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Mon, 9 Apr 2018 02:10:04 +0300
Subject: small fix for still-gifs

---
 src/components/still-image/still-image.vue | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/components/still-image/still-image.vue')

diff --git a/src/components/still-image/still-image.vue b/src/components/still-image/still-image.vue
index cffd5d42..a37c678d 100644
--- a/src/components/still-image/still-image.vue
+++ b/src/components/still-image/still-image.vue
@@ -14,7 +14,7 @@
   line-height: 0;
   overflow: hidden;
   width: 100%;
-  height: 100%
+  height: 100%;
 
   &:hover canvas {
     display: none;
@@ -22,7 +22,7 @@
 
   img {
     width: 100%;
-    height: 100%
+    height: 100%;
   }
 
   &.animated {
-- 
cgit v1.2.3-70-g09d2

