123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- /** === Main menu === */
- .main-navigation {
- display: block;
- margin-top: $size__spacing-unit;
- body.page & {
- display: block;
- }
- > div {
- display: inline;
- }
- /* Un-style buttons */
- button {
- display: inline-block;
- border: none;
- padding: 0;
- margin: 0;
- font-family: $font__heading;
- font-weight: 700;
- line-height: $font__line-height-heading;
- text-decoration: none;
- background: transparent;
- color: inherit;
- cursor: pointer;
- transition: background 250ms ease-in-out,
- transform 150ms ease;
- -webkit-appearance: none;
- -moz-appearance: none;
- &:hover,
- &:focus {
- background: transparent;
- }
- &:focus {
- outline: 1px solid transparent;
- outline-offset: -4px;
- }
- &:active {
- transform: scale(0.99);
- }
- }
- .main-menu {
- display: inline-block;
- margin: 0;
- padding: 0;
- > li {
- color: $color__link;
- display: inline;
- position: relative;
- > a {
- font-weight: 700;
- color: $color__link;
- margin-right: #{0.5 * $size__spacing-unit};
- + svg {
- margin-right: #{0.5 * $size__spacing-unit};
- }
- &:hover,
- &:hover + svg {
- color: $color__link-hover;
- }
- }
- &.menu-item-has-children {
- display: inline-block;
- position: inherit;
- @include media(tablet) {
- position: relative;
- }
- > a {
- margin-right: #{0.125 * $size__spacing-unit};
- }
- & > a,
- .menu-item-has-children > a {
- &:after {
- content: "";
- display: none;
- }
- }
- .submenu-expand {
- display: inline-block;
- margin-right: #{0.25 * $size__spacing-unit};
- /* Priority+ Menu */
- &.main-menu-more-toggle {
- position: relative;
- height: 24px;
- line-height: $font__line-height-heading;
- width: 24px;
- padding: 0;
- margin-left: #{0.5 * $size__spacing-unit};
- svg {
- height: 24px;
- width: 24px;
- top: #{-0.125 * $size__spacing-unit};
- vertical-align: text-bottom;
- }
- }
- .wp-customizer-unloading &,
- &.is-empty {
- display: none;
- }
- svg {
- position: relative;
- top: 0.2rem;
- }
- }
- }
- &:last-child > a,
- &:last-child.menu-item-has-children .submenu-expand {
- margin-right: 0;
- }
- }
- }
- .sub-menu {
- background-color: $color__link;
- color: $color__background-body;
- list-style: none;
- padding-left: 0;
- position: absolute;
- opacity: 0;
- text-align: left;
- left: -9999px;
- z-index: 99999;
- @include media(tablet) {
- width: auto;
- min-width: -moz-max-content;
- min-width: -webkit-max-content;
- min-width: max-content;
- }
- > li {
- display: block;
- float: none;
- position: relative;
- &.menu-item-has-children {
- .submenu-expand {
- display: inline-block;
- position: absolute;
- width: calc( 24px + #{$size__spacing-unit} );
- right: 0;
- top: calc( .125 * #{$size__spacing-unit} );
- bottom: 0;
- color: white;
- line-height: 1;
- padding: calc( .5 * #{$size__spacing-unit} );
- svg {
- top: 0;
- }
- }
- .submenu-expand {
- margin-right: 0;
- }
- @include media(tablet) {
- .menu-item-has-children > a {
- &:after {
- content: "\203a";
- }
- }
- }
- }
- > a,
- > .menu-item-link-return {
- color: $color__background-body;
- display: block;
- line-height: $font__line-height-heading;
- padding: calc( .5 * #{$size__spacing-unit} ) calc( 24px + #{$size__spacing-unit} ) calc( .5 * #{$size__spacing-unit} ) $size__spacing-unit;
- white-space: nowrap;
- &:hover,
- &:focus {
- background: $color__link-hover;
- &:after {
- background: $color__link-hover;
- }
- }
- }
- > a:empty {
- display: none;
- }
- &.mobile-parent-nav-menu-item {
- display: none;
- font-size: $font__size-sm;
- font-weight: normal;
- svg {
- position: relative;
- top: 0.2rem;
- margin-right: calc( .25 * #{$size__spacing-unit} );
- }
- }
- }
- }
- /*
- * Sub-menu styles
- *
- * :focus-within needs its own selector so other similar
- * selectors don’t get ignored if a browser doesn’t recognize it
- */
- .main-menu .menu-item-has-children:not(.off-canvas):focus-within > .sub-menu {
- display: block;
- left: 0;
- margin-top: 0;
- opacity: 1;
- width: auto;
- min-width: 100%;
- /* Non-mobile position */
- @include media(tablet) {
- display: block;
- margin-top: 0;
- opacity: 1;
- position: absolute;
- left: 0;
- right: auto;
- top: auto;
- bottom: auto;
- height: auto;
- min-width: -moz-max-content;
- min-width: -webkit-max-content;
- min-width: max-content;
- transform: none;
- }
- &.hidden-links {
- left: 0;
- width: 100%;
- display: table;
- position: absolute;
- @include media(tablet) {
- right: 0;
- left: auto;
- display: block;
- width: max-content;
- }
- }
- .submenu-expand {
- display: none;
- }
- .sub-menu {
- display: block;
- margin-top: inherit;
- position: relative;
- width: 100%;
- left: 0;
- opacity: 1;
- /* Non-mobile position */
- @include media(tablet) {
- float: none;
- max-width: 100%;
- }
- }
- /* Nested sub-menu dashes */
- .sub-menu {
- counter-reset: submenu;
- }
- .sub-menu > li > a::before {
- font-family: $font__body;
- font-weight: normal;
- content: "\2013\00a0" counters(submenu, "\2013\00a0", none);
- counter-increment: submenu
- }
- }
- .main-menu .menu-item-has-children:not(.off-canvas):hover > .sub-menu,
- .main-menu .menu-item-has-children:not(.off-canvas):focus > .sub-menu,
- .main-menu .menu-item-has-children.is-focused:not(.off-canvas) > .sub-menu {
- display: block;
- left: 0;
- margin-top: 0;
- opacity: 1;
- width: auto;
- min-width: 100%;
- /* Non-mobile position */
- @include media(tablet) {
- display: block;
- float: none;
- margin-top: 0;
- opacity: 1;
- position: absolute;
- left: 0;
- right: auto;
- top: auto;
- bottom: auto;
- height: auto;
- min-width: -moz-max-content;
- min-width: -webkit-max-content;
- min-width: max-content;
- transform: none;
- }
- &.hidden-links {
- left: 0;
- width: 100%;
- display: table;
- position: absolute;
- @include media(tablet) {
- right: 0;
- left: auto;
- display: table;
- width: max-content;
- }
- }
- .submenu-expand {
- display: none;
- }
- .sub-menu {
- display: block;
- margin-top: inherit;
- position: relative;
- width: 100%;
- left: 0;
- opacity: 1;
- /* Non-mobile position */
- @include media(tablet) {
- float: none;
- max-width: 100%;
- }
- }
- /* Nested sub-menu dashes */
- .sub-menu {
- counter-reset: submenu;
- }
- .sub-menu > li > a::before {
- font-family: $font__body;
- font-weight: normal;
- content: "\2013\00a0" counters(submenu, "\2013\00a0", none);
- counter-increment: submenu
- }
- }
- /**
- * Fade-in animation for top-level submenus
- */
- .main-menu > .menu-item-has-children:not(.off-canvas):hover > .sub-menu {
- animation: fade_in 0.1s forwards;
- }
- /**
- * Off-canvas touch device styles
- */
- .main-menu .menu-item-has-children.off-canvas .sub-menu {
- .submenu-expand .svg-icon {
- transform: rotate(270deg);
- }
- .sub-menu {
- opacity: 0;
- position: absolute;
- z-index: 0;
- transform: translateX(-100%);
- }
- li:hover,
- li:focus,
- li > a:hover,
- li > a:focus {
- background-color: transparent;
- }
- > li > a,
- > li > .menu-item-link-return {
- white-space: inherit;
- }
- &.expanded-true {
- display: table;
- margin-top: 0;
- opacity: 1;
- padding-left: 0;
- /* Mobile position */
- left: 0;
- top: 0;
- right: 0;
- bottom: 0;
- position: fixed;
- z-index: 100000; /* Make sure appears above mobile admin bar */
- width: 100vw;
- height: 100vh;
- max-width: 100vw;
- transform: translateX(+100%);
- animation: slide_in_right 0.3s forwards;
- > .mobile-parent-nav-menu-item {
- display: block;
- }
- /* Prevent menu from being blocked by admin bar */
- .admin-bar & {
- top: 46px;
- height: calc( 100vh - 46px );
- .sub-menu.expanded-true {
- top: 0;
- }
- /* WP core breakpoint */
- @media only screen and ( min-width: 782px ) {
- top: 32px;
- height: calc( 100vh - 32px );
- .sub-menu.expanded-true {
- top: 0;
- }
- }
- }
- }
- }
- // Hide duplicate menu-more-link when re-loading a menu in the customizer
- .main-menu-more {
- &:nth-child(n+3) {
- display: none;
- }
- }
- }
- /* Menu animation */
- @keyframes slide_in_right {
- 100% {
- transform: translateX(0%);
- }
- }
- @keyframes fade_in {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
|