Skip to content

Commit c2224b0

Browse files
authored
svelte: Fix NavTabs border rendering on Firefox mobile (#12910)
The production build (via Vite) un-nests CSS nesting into flat rules. On Firefox mobile, `border-bottom: none` in a `max-width` media query failed to override the base `border-bottom` declaration, causing visible horizontal borders between tabs in the mobile layout. Instead of setting `border-bottom` as a default and overriding it with `none` on mobile, each layout now only sets the borders it needs via complementary `min-width`/`max-width` media queries.
1 parent fb84acf commit c2224b0

2 files changed

Lines changed: 19 additions & 14 deletions

File tree

svelte/src/lib/components/nav-tabs/NavTabs.svelte

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@
2626
list-style: none;
2727
padding: 0;
2828
margin: 0;
29-
border-bottom: var(--nav-tabs-border-width) solid var(--gray-border);
29+
30+
@media only screen and (min-width: 551px) {
31+
border-bottom: var(--nav-tabs-border-width) solid var(--gray-border);
32+
}
3033
3134
@media only screen and (max-width: 550px) {
3235
flex-direction: column;
3336
border-left: var(--nav-tabs-border-width) solid var(--gray-border);
34-
border-bottom: none;
3537
}
3638
}
3739
</style>

svelte/src/lib/components/nav-tabs/Tab.svelte

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,18 @@
2525
<style>
2626
.link {
2727
display: block;
28-
padding: calc(var(--nav-tabs-padding-v) + var(--nav-tabs-border-width)) var(--nav-tabs-padding-h)
29-
var(--nav-tabs-padding-v);
3028
color: var(--main-color);
31-
border-top-left-radius: var(--nav-tabs-radius);
32-
border-top-right-radius: var(--nav-tabs-radius);
33-
border-bottom: var(--nav-tabs-border-width) solid transparent;
34-
margin-bottom: calc(0px - var(--nav-tabs-border-width));
3529
transition:
3630
color var(--transition-medium),
3731
border-bottom-color var(--transition-medium);
3832
3933
&.active {
4034
color: var(--link-hover-color);
41-
border-bottom-color: var(--link-hover-color);
4235
background: var(--main-bg-dark);
4336
}
4437
4538
&:hover {
4639
color: var(--link-hover-color);
47-
border-bottom-color: var(--link-hover-color);
4840
transition:
4941
color var(--transition-instant),
5042
border-bottom-color var(--transition-instant);
@@ -59,15 +51,26 @@
5951
z-index: 1;
6052
}
6153
54+
@media only screen and (min-width: 551px) {
55+
padding: calc(var(--nav-tabs-padding-v) + var(--nav-tabs-border-width)) var(--nav-tabs-padding-h)
56+
var(--nav-tabs-padding-v);
57+
border-top-left-radius: var(--nav-tabs-radius);
58+
border-top-right-radius: var(--nav-tabs-radius);
59+
border-bottom: var(--nav-tabs-border-width) solid transparent;
60+
margin-bottom: calc(0px - var(--nav-tabs-border-width));
61+
62+
&.active,
63+
&:hover {
64+
border-bottom-color: var(--link-hover-color);
65+
}
66+
}
67+
6268
@media only screen and (max-width: 550px) {
6369
padding: var(--nav-tabs-padding-v) var(--nav-tabs-padding-h) var(--nav-tabs-padding-v)
6470
calc(var(--nav-tabs-padding-h) + var(--nav-tabs-border-width));
65-
66-
border-top-left-radius: 0;
71+
border-top-right-radius: var(--nav-tabs-radius);
6772
border-bottom-right-radius: var(--nav-tabs-radius);
68-
border-bottom: none;
6973
border-left: var(--nav-tabs-border-width) solid transparent;
70-
margin-bottom: 0;
7174
margin-left: calc(0px - var(--nav-tabs-border-width));
7275
7376
&.active,

0 commit comments

Comments
 (0)