diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js
index 92d517b7..e25f98ff 100644
--- a/src/components/emoji_picker/emoji_picker.js
+++ b/src/components/emoji_picker/emoji_picker.js
@@ -6,7 +6,8 @@ const EmojiPicker = {
   data () {
     return {
       keyword: '',
-      activeGroup: 'standard'
+      activeGroup: 'standard',
+      showingAdditional: false
     }
   },
   methods: {
@@ -28,6 +29,9 @@ const EmojiPicker = {
           this.activeGroup = key
         }
       })
+    },
+    toggleAdditional (value) {
+      this.showingAdditional = value
     }
   },
   computed: {
diff --git a/src/components/emoji_picker/emoji_picker.scss b/src/components/emoji_picker/emoji_picker.scss
new file mode 100644
index 00000000..72889441
--- /dev/null
+++ b/src/components/emoji_picker/emoji_picker.scss
@@ -0,0 +1,83 @@
+@import '../../_variables.scss';
+
+.emoji-picker {
+  position: absolute;
+  z-index: 1;
+  right: 0;
+  width: 300px;
+  height: 300px;
+  display: flex;
+  flex-direction: column;
+  margin: 0 !important;
+
+  .emoji {
+    &-tabs {
+      &-item {
+        padding: 0 5px;
+
+        &.active {
+          border-bottom: 4px solid;
+
+          i {
+            color: $fallback--lightText;
+            color: var(--lightText, $fallback--lightText);
+          }
+        }
+      }
+    }
+
+    &-content {
+      display: flex;
+      flex-direction: column;
+    }
+
+    &-search {
+      padding: 5px;
+      flex: 0 0 1px;
+
+      input {
+        width: 100%;
+      }
+    }
+
+    &-groups {
+      flex: 1 1 1px;
+      position: relative;
+      overflow: auto;
+    }
+
+    &-group {
+      display: flex;
+      align-items: center;
+      flex-wrap: wrap;
+      padding: 5px;
+      justify-content: space-between;
+
+      &-title {
+        font-size: 12px;
+        width: 100%;
+        margin: 0;
+      }
+    }
+
+    &-item {
+      width: 32px;
+      height: 32px;
+      box-sizing: border-box;
+      display: flex;
+      font-size: 32px;
+      align-items: center;
+      justify-content: center;
+      margin: 2px;
+
+      cursor: pointer;
+
+      img {
+        max-width: 100%;
+        max-height: 100%;
+      }
+    }
+
+  }
+
+}
diff --git a/src/components/emoji_picker/emoji_picker.vue b/src/components/emoji_picker/emoji_picker.vue
index 70d08700..ec1702f3 100644
--- a/src/components/emoji_picker/emoji_picker.vue
+++ b/src/components/emoji_picker/emoji_picker.vue
@@ -1,161 +1,72 @@
 <template>
-  <div class="emoji-dropdown-menu panel panel-default">
-    <div class="panel-heading emoji-tabs">
-      <span
-        v-for="(value, key) in emojis"
-        :key="key"
-        class="emoji-tabs-item"
-        :class="{'active': activeGroup === key}"
-        :title="value.text"
-        @click.prevent="highlight(key)"
-      >
-        <i :class="value.icon" />
+  <div class="emoji-picker panel panel-default">
+    <div class="panel-heading">
+      <span class="emoji-tabs">
+        <span
+          v-for="(value, key) in emojis"
+          :key="key"
+          class="emoji-tabs-item"
+          :class="{'active': activeGroup === key}"
+          :title="value.text"
+          @click.prevent="highlight(key)"
+        >
+          <i :class="value.icon" />
+        </span>
+      </span>
+      <span class="additional-tabs">
+        <slot name="tabs" />
       </span>
     </div>
     <div class="panel-body emoji-dropdown-menu-content">
-      <div class="emoji-search">
-        <input
-          v-model="keyword"
-          type="text"
-          class="form-control"
-        >
-      </div>
       <div
-        ref="emoji-groups"
-        class="emoji-groups"
-        @scroll="scrolledGroup"
+        v-if="!showingAdditional"
+        class="emoji-content"
       >
+        <div class="emoji-search">
+          <input
+            v-model="keyword"
+            type="text"
+            class="form-control"
+          >
+        </div>
         <div
-          v-for="(value, key) in emojis"
-          :key="key"
-          class="emoji-group"
+          ref="emoji-groups"
+          class="emoji-groups"
+          @scroll="scrolledGroup"
         >
-          <h6
-            :ref="'group-' + key"
-            class="emoji-group-title"
+          <div
+            v-for="(value, key) in emojis"
+            :key="key"
+            class="emoji-group"
           >
-            {{ value.text }}
-          </h6>
-          <span
-            v-for="emoji in value.emojis"
-            :key="key + emoji.displayText"
-            :title="emoji.displayText"
-            class="emoji-item"
-            @click="onEmoji(emoji)"
-          >
-            <span v-if="!emoji.imageUrl">{{ emoji.replacement }}</span>
-            <img
-              v-else
-              :src="emoji.imageUrl"
+            <h6
+              :ref="'group-' + key"
+              class="emoji-group-title"
             >
-          </span>
+              {{ value.text }}
+            </h6>
+            <span
+              v-for="emoji in value.emojis"
+              :key="key + emoji.displayText"
+              :title="emoji.displayText"
+              class="emoji-item"
+              @click="onEmoji(emoji)"
+            >
+              <span v-if="!emoji.imageUrl">{{ emoji.replacement }}</span>
+              <img
+                v-else
+                :src="emoji.imageUrl"
+              >
+            </span>
+          </div>
         </div>
       </div>
+      <div v-if="showingAdditional" class="additional-tabs-content">
+        <slot name="tab-content" />
+      </div>
     </div>
-  </div>
+</div>
 </template>
 
 <script src="./emoji_picker.js"></script>
-
-<style lang="scss">
-@import '../../_variables.scss';
-
-.emoji {
-  &-dropdown {
-    position: absolute;
-    right: 0;
-    top: 28px;
-    z-index: 1;
-
-    &-toggle {
-      cursor: pointer;
-      position: absolute;
-      top: -23px;
-      right: 2px;
-      line-height: 1;
-
-      i {
-        font-size: 18px;
-      }
-    }
-
-    &-menu {
-      position: absolute;
-      z-index: 1;
-      right: 0;
-      width: 300px;
-      height: 300px;
-      display: flex;
-      flex-direction: column;
-      margin: 0 !important;
-
-      &-content {
-        flex: 1 1 1px;
-        display: flex;
-        flex-direction: column;
-      }
-    }
-  }
-
-  &-tabs {
-    &-item {
-      padding: 0 5px;
-
-      &.active {
-        border-bottom: 4px solid;
-
-        i {
-          color: $fallback--lightText;
-          color: var(--lightText, $fallback--lightText);
-        }
-      }
-    }
-  }
-
-  &-search {
-    padding: 5px;
-
-    input {
-      width: 100%;
-    }
-  }
-
-  &-groups {
-    flex: 1 1 1px;
-    overflow: auto;
-    position: relative;
-  }
-
-  &-group {
-    display: flex;
-    align-items: center;
-    flex-wrap: wrap;
-    width: 100%;
-
-    &-title {
-      font-size: 12px;
-      width: 100%;
-      margin: 0;
-      padding: 5px;
-    }
-  }
-
-  &-item {
-    width: 32px;
-    height: 32px;
-    box-sizing: border-box;
-    display: flex;
-    font-size: 32px;
-    align-items: center;
-    justify-content: center;
-    margin: 2px;
-    cursor: pointer;
-
-    img {
-      max-width: 100%;
-      max-height: 100%;
-    }
-  }
-
-}
-</style>
+<style lang="scss" src="./emoji_picker.scss"></style>