From fc7cd6eaf6812656acf41b250358323a370dfdf3 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 16 Dec 2018 02:02:49 +0300
Subject: [PATCH 1/3] small fix for overflowing tab-switcher

---
 src/components/tab_switcher/tab_switcher.scss | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/components/tab_switcher/tab_switcher.scss b/src/components/tab_switcher/tab_switcher.scss
index fbd3321b..fa37349f 100644
--- a/src/components/tab_switcher/tab_switcher.scss
+++ b/src/components/tab_switcher/tab_switcher.scss
@@ -9,7 +9,6 @@
   .tabs {
     display: flex;
     position: relative;
-    justify-content: center;
     width: 100%;
     overflow-y: hidden;
     overflow-x: auto;

From a1d00b9398d711eb42f3bc5da70e5a6d48810154 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 16 Dec 2018 02:07:32 +0300
Subject: [PATCH 2/3] changed bottom-shadow hiding method to be more compatible
 with overflow

---
 src/components/tab_switcher/tab_switcher.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/tab_switcher/tab_switcher.scss b/src/components/tab_switcher/tab_switcher.scss
index fa37349f..26b1727a 100644
--- a/src/components/tab_switcher/tab_switcher.scss
+++ b/src/components/tab_switcher/tab_switcher.scss
@@ -13,7 +13,6 @@
     overflow-y: hidden;
     overflow-x: auto;
     padding-top: 5px;
-    height: 32px;
     box-sizing: border-box;
 
     &::after, &::before {
@@ -33,6 +32,7 @@
       border-bottom-left-radius: 0;
       border-bottom-right-radius: 0;
       padding: 5px 1em 99px;
+      margin-bottom: 5px - 99px - 1px;
       white-space: nowrap;
 
       &:not(.active) {

From 1b9a5a3efe783ca7cfe53116afc64756eb7a9f04 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Sun, 16 Dec 2018 02:35:42 +0300
Subject: [PATCH 3/3] more visual fixes

---
 src/components/tab_switcher/tab_switcher.jsx  | 12 +++--
 src/components/tab_switcher/tab_switcher.scss | 51 +++++++++++--------
 2 files changed, 40 insertions(+), 23 deletions(-)

diff --git a/src/components/tab_switcher/tab_switcher.jsx b/src/components/tab_switcher/tab_switcher.jsx
index 9e3dee04..2f362c4d 100644
--- a/src/components/tab_switcher/tab_switcher.jsx
+++ b/src/components/tab_switcher/tab_switcher.jsx
@@ -18,12 +18,18 @@ export default Vue.component('tab-switcher', {
     const tabs = this.$slots.default
           .filter(slot => slot.data)
           .map((slot, index) => {
-            const classes = ['tab']
+            const classesTab = ['tab']
+            const classesWrapper = ['tab-wrapper']
 
             if (index === this.active) {
-              classes.push('active')
+              classesTab.push('active')
+              classesWrapper.push('active')
             }
-            return (<button onClick={this.activateTab(index)} class={ classes.join(' ') }>{slot.data.attrs.label}</button>)
+            return (
+              <div class={ classesWrapper.join(' ')}>
+                <button onClick={this.activateTab(index)} class={ classesTab.join(' ') }>{slot.data.attrs.label}</button>
+              </div>
+            )
           });
     const contents = this.$slots.default.filter(_=>_.data).map(( slot, index ) => {
       const active = index === this.active
diff --git a/src/components/tab_switcher/tab_switcher.scss b/src/components/tab_switcher/tab_switcher.scss
index 26b1727a..428335c0 100644
--- a/src/components/tab_switcher/tab_switcher.scss
+++ b/src/components/tab_switcher/tab_switcher.scss
@@ -19,46 +19,57 @@
       display: block;
       content: '';
       flex: 1 1 auto;
-    }
-
-    .tab, &::after, &::before {
       border-bottom: 1px solid;
       border-bottom-color: $fallback--border;
       border-bottom-color: var(--border, $fallback--border);
     }
 
-    .tab {
+    .tab-wrapper {
+      height: 28px;
+      overflow: hidden;
       position: relative;
-      border-bottom-left-radius: 0;
-      border-bottom-right-radius: 0;
-      padding: 5px 1em 99px;
-      margin-bottom: 5px - 99px - 1px;
-      white-space: nowrap;
+      display: flex;
+      flex: 0 0 auto;
 
-      &:not(.active) {
-        z-index: 4;
+      .tab {
+        width: 100%;
+        min-width: 1px;
+        position: relative;
+        border-bottom-left-radius: 0;
+        border-bottom-right-radius: 0;
+        padding: 6px 1em;
+        padding-bottom: 99px;
+        margin-bottom: 6px - 99px;
+        white-space: nowrap;
 
-        &:hover {
-          z-index: 6;
+        &:not(.active) {
+          z-index: 4;
+
+          &:hover {
+            z-index: 6;
+          }
         }
 
+        &.active {
+          background: transparent;
+          z-index: 5;
+        }
+      }
+
+      &:not(.active) {
         &::after {
           content: '';
           position: absolute;
           left: 0;
           right: 0;
-          top: 26px;
+          bottom: 0;
+          z-index: 7;
           border-bottom: 1px solid;
           border-bottom-color: $fallback--border;
           border-bottom-color: var(--border, $fallback--border);
         }
       }
-
-      &.active {
-        background: transparent;
-        border-bottom: none;
-        z-index: 5;
-      }
     }
+
   }
 }