Skip to content

Commit

Permalink
fix($theme-default): overlap navbar dropdown menus (fix #2227) (#2365)
Browse files Browse the repository at this point in the history
  • Loading branch information
billyyyyy3320 committed Aug 23, 2020
1 parent d4d0380 commit ceb0fa9
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 11 deletions.
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`DropdownLink renders dropdown link. 1`] = `
<div class="dropdown-wrapper"><button type="button" aria-label="Learn More Select" class="dropdown-title"><span class="title">Learn More</span> <span class="arrow right"></span></button>
<div class="dropdown-wrapper"><button type="button" aria-label="Learn More Select" class="dropdown-title"><span class="title">Learn More</span> <span class="arrow down"></span></button> <button type="button" aria-label="Learn More Select" class="mobile-dropdown-title"><span class="title">Learn More</span> <span class="arrow right"></span></button>
<ul class="nav-dropdown" style="display: none;" name="dropdown">
<li class="dropdown-item">
<!----> <a class="nav-link">
Expand Down
42 changes: 32 additions & 10 deletions packages/@vuepress/theme-default/components/DropdownLink.vue
Expand Up @@ -7,6 +7,17 @@
class="dropdown-title"
type="button"
:aria-label="dropdownAriaLabel"
@click="handleDropdown"
>
<span class="title">{{ item.text }}</span>
<span
class="arrow down"
/>
</button>
<button
class="mobile-dropdown-title"
type="button"
:aria-label="dropdownAriaLabel"
@click="setOpen(!open)"
>
<span class="title">{{ item.text }}</span>
Expand Down Expand Up @@ -105,6 +116,17 @@ export default {
isLastItemOfArray (item, array) {
return last(array) === item
},
/**
* Open the dropdown when user tab and click from keyboard.
*
* Use event.detail to detect tab and click from keyboard. Ref: https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
* The Tab + Click is UIEvent > KeyboardEvent, so the detail is 0.
*/
handleDropdown () {
const isTriggerByTab = event.detail === 0
if (isTriggerByTab) this.setOpen(!this.open)
}
}
}
Expand All @@ -130,6 +152,13 @@ export default {
vertical-align middle
margin-top -1px
margin-left 0.4rem
.mobile-dropdown-title
@extends .dropdown-title

This comment has been minimized.

Copy link
@frankrousseau

frankrousseau Aug 24, 2020

Not sure that it happens for everyone. But this line breaks our vuepress build.
Here is our vuepress project:Β https://github.com/cgwire/kitsu/tree/docs

This comment has been minimized.

Copy link
@frankrousseau

frankrousseau Aug 24, 2020

When I remove it, everything works fine.

This comment has been minimized.

Copy link
@FarhiaM

FarhiaM Aug 29, 2020

Yeah, we are seeing the same thing in our project: https://github.com/FrontEndFoxes/curriculum

Upgrading from 1.5.3 to 1.5.4 breaks our build.

display none
font-weight 600
font-size inherit
&:hover
color $accentColor
.nav-dropdown
.dropdown-item
color inherit
Expand Down Expand Up @@ -175,10 +204,9 @@ export default {
&.open .dropdown-title
margin-bottom 0.5rem
.dropdown-title
font-weight 600
font-size inherit
&:hover
color $accentColor
display: none
.mobile-dropdown-title
display: block
.nav-dropdown
transition height .1s ease-out
overflow hidden
Expand All @@ -203,12 +231,6 @@ export default {
display block !important
&.open:blur
display none
.dropdown-title .arrow
// make the arrow always down at desktop
border-left 4px solid transparent
border-right 4px solid transparent
border-top 6px solid $arrowBgColor
border-bottom 0
.nav-dropdown
display none
// Avoid height shaked by clicking
Expand Down

0 comments on commit ceb0fa9

Please sign in to comment.