From: Kevin Ball Date: Wed, 31 May 2017 17:13:51 +0000 (-0700) Subject: Merge branch 'develop' into brettsmason-menu-rework X-Git-Tag: v6.4.0-rc1~20^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a2da8abf2043e8c741ad14fd4e02ddecffc9737b;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Merge branch 'develop' into brettsmason-menu-rework --- a2da8abf2043e8c741ad14fd4e02ddecffc9737b diff --cc scss/components/_accordion-menu.scss index ab7043d24,67e0d6281..a86ad5df4 --- a/scss/components/_accordion-menu.scss +++ b/scss/components/_accordion-menu.scss @@@ -2,18 -2,6 +2,18 @@@ /// @group accordion-menu //// +/// Sets accordion menu padding. +/// @type Number +$accordionmenu-padding: $global-menu-padding !default; + +/// Sets accordion menu nested margin +/// @type Number - $accordionmenu-nested-margin: $global-menu-nested-margin !default; ++$accordionmenu-nested-margin: $global-menu-nested-margin !default; + +/// Sets accordion menu submenu padding. +/// @type Number +$accordionmenu-submenu-padding: $accordionmenu-padding !default; + /// Sets if accordion menus have the default arrow styles. /// @type Boolean $accordionmenu-arrows: true !default; @@@ -26,55 -38,92 +50,117 @@@ $accordionmenu-submenu-toggle-height: $ /// @type Length $accordionmenu-arrow-size: 6px !default; +@mixin zf-accordion-menu-left-right-arrows { - .is-accordion-submenu-parent > a { ++ .is-accordion-submenu-parent:not(.has-submenu-toggle) > a { + position: relative; + + &::after { + @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down); + position: absolute; + top: 50%; + margin-top: -1 * ($accordionmenu-arrow-size / 2); + #{$global-right}: 1rem; + } + } + &.align-left .is-accordion-submenu-parent > a::after { + left: auto; + right: 1rem; + } + &.align-right .is-accordion-submenu-parent > a::after { + right: auto; + left: 1rem; + } +} @mixin foundation-accordion-menu { + .accordion-menu { + @if $accordionmenu-border { + border-bottom: $accordionmenu-border; + } + li { + @if $accordionmenu-border { + border-top: $accordionmenu-border; + border-right: $accordionmenu-border; + border-left: $accordionmenu-border; + } - } - - .is-accordion-submenu li { - @if $accordionmenu-border { - border-right: 0; - border-left: 0; - } + width: 100%; } a { + @if $accordionmenu-item-background { + background: $accordionmenu-item-background; + } + padding: $accordionmenu-padding; } - // Submenu li styling - .is-accordion-submenu-parent { - position: relative; + .nested.is-accordion-submenu { + @include menu-nested($accordionmenu-nested-margin); + } - & > a { - margin-#{$global-right}: $accordionmenu-submenu-toggle-width; + &.align-#{$global-right} { + .nested.is-accordion-submenu { + @include menu-nested($accordionmenu-nested-margin, right); } } + } - // Submenu toggle - .submenu-toggle { - position: absolute; - top: 0; - #{$global-right}: 0; ++ .is-accordion-submenu li { ++ @if $accordionmenu-border { ++ border-right: 0; ++ border-left: 0; ++ } ++ } + - width: $accordionmenu-submenu-toggle-width; - height: $accordionmenu-submenu-toggle-height; ++ .is-accordion-submenu-parent { ++ position: relative; ++ } + - border-#{$global-left}: $accordion-submenu-toggle-border; + .is-accordion-submenu-parent > a { + padding: $accordionmenu-submenu-padding; + } - @if $accordionmenu-submenu-toggle-background { - background: $accordionmenu-submenu-toggle-background; - } ++ .has-submenu-toggle > a { ++ margin-#{$global-right}: $accordionmenu-submenu-toggle-width; ++ } + - // Add the arrow to the toggle - &::after { - @include css-triangle(6px, $accordionmenu-arrow-color, down); ++ // Submenu toggle ++ .submenu-toggle { ++ position: absolute; ++ top: 0; ++ #{$global-right}: 0; + - top: 0; - bottom: 0; - margin: auto; - } - } ++ width: $accordionmenu-submenu-toggle-width; ++ height: $accordionmenu-submenu-toggle-height; + - // Rotate the arrow when menu is open - .submenu-toggle[aria-expanded='true']::after { - transform: scaleY(-1); - transform-origin: 50% 50%; ++ border-#{$global-left}: $accordion-submenu-toggle-border; ++ ++ @if $accordionmenu-submenu-toggle-background { ++ background: $accordionmenu-submenu-toggle-background; + } + - .submenu-toggle-text { - @include element-invisible; ++ // Add the arrow to the toggle ++ &::after { ++ @include css-triangle(6px, $accordionmenu-arrow-color, down); ++ ++ top: 0; ++ bottom: 0; ++ margin: auto; + } + } + - // If arrows are enabled, display them - @if $accordionmenu-arrows { - .is-accordion-submenu-parent:not(.has-submenu-toggle) > a { - position: relative; ++ // Rotate the arrow when menu is open ++ .submenu-toggle[aria-expanded='true']::after { ++ transform: scaleY(-1); ++ transform-origin: 50% 50%; ++ } + - &::after { - @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down); ++ .submenu-toggle-text { ++ @include element-invisible; ++ } + - position: absolute; - top: 50%; - margin-top: -1 * ($accordionmenu-arrow-size / 2); - #{$global-right}: 1rem; - } - } + @if $accordionmenu-arrows { + @include zf-accordion-menu-left-right-arrows; .is-accordion-submenu-parent[aria-expanded='true'] > a::after { transform: rotate(180deg);