diff --git a/src/components/GlobalTopNav/index.jsx b/src/components/GlobalTopNav/index.jsx index 34d10d3..983d0c6 100644 --- a/src/components/GlobalTopNav/index.jsx +++ b/src/components/GlobalTopNav/index.jsx @@ -174,7 +174,7 @@ const GlobalTopNav = () => { > - + Home @@ -183,7 +183,7 @@ const GlobalTopNav = () => { toggleSubMenu(e, 'menu-Mega-Menu')} @@ -204,7 +204,7 @@ const GlobalTopNav = () => { toggleSubMenu(e, 'menu-Mega-Menu')} onKeyDown={(e) => a11yClick(e) && toggleSubMenu(e, 'menu-Mega-Menu') @@ -219,7 +219,8 @@ const GlobalTopNav = () => { Sub menu item 1 @@ -231,7 +232,8 @@ const GlobalTopNav = () => { Sub menu item 2 @@ -244,7 +246,8 @@ const GlobalTopNav = () => { toggleSubSubMenu(e, 'menu-Mega-Menu-Sub-menu-item-3') @@ -283,7 +286,7 @@ const GlobalTopNav = () => { toggleSubSubMenu(e, 'menu-Mega-Menu-Sub-menu-item-3') @@ -302,7 +305,7 @@ const GlobalTopNav = () => { Sub menu item 3.1 @@ -314,7 +317,7 @@ const GlobalTopNav = () => { Sub menu item 3.2 @@ -327,7 +330,7 @@ const GlobalTopNav = () => { Sub menu item 3.3 @@ -344,7 +347,8 @@ const GlobalTopNav = () => { toggleSubSubMenu(e, 'menu-Mega-Menu-Sub-menu-item-4') @@ -383,7 +387,7 @@ const GlobalTopNav = () => { toggleSubSubMenu(e, 'menu-Mega-Menu-Sub-menu-item-4') @@ -402,7 +406,7 @@ const GlobalTopNav = () => { Sub menu item 4.1 @@ -411,7 +415,7 @@ const GlobalTopNav = () => { Sub menu item 4.2 @@ -420,7 +424,7 @@ const GlobalTopNav = () => { Sub menu item 4.3 @@ -429,7 +433,7 @@ const GlobalTopNav = () => { Sub menu item 4.4 @@ -438,7 +442,7 @@ const GlobalTopNav = () => { Sub menu item 4.5 @@ -447,7 +451,7 @@ const GlobalTopNav = () => { Sub menu item 4.6 @@ -460,7 +464,7 @@ const GlobalTopNav = () => { Contact diff --git a/src/components/MegaList/index.module.scss b/src/components/MegaList/index.module.scss index 1887e14..15ee632 100644 --- a/src/components/MegaList/index.module.scss +++ b/src/components/MegaList/index.module.scss @@ -37,21 +37,35 @@ } .open { - @include open; + @include slideOpen; + + @media (prefers-reduced-motion: reduce) { + transform: translate3d(100%, 0, 0); + } @include respond-to('large') { animation: none; display: flex; opacity: 1; + @media (prefers-reduced-motion: reduce) { + transform: none; + } } } .closed { - @include closed; + @include slideClosed; + + @media (prefers-reduced-motion: reduce) { + transform: translate3d(-100%, 0, 0); + } @include respond-to('large') { animation: none; display: none; opacity: 0; + @media (prefers-reduced-motion: reduce) { + transform: none; + } } } diff --git a/src/components/Nav/index.module.scss b/src/components/Nav/index.module.scss index 8a804ee..7bfaecf 100644 --- a/src/components/Nav/index.module.scss +++ b/src/components/Nav/index.module.scss @@ -44,21 +44,35 @@ } .open { - @include open; + @include slideOpen; + + @media (prefers-reduced-motion: reduce) { + transform: translate3d(100%, 0, 0); + } @include respond-to('large') { animation: none; display: flex; opacity: 1; + @media (prefers-reduced-motion: reduce) { + transform: none; + } } } .closed { - @include closed; + @include slideClosed; + + @media (prefers-reduced-motion: reduce) { + transform: translate3d(-100%, 0, 0); + } @include respond-to('large') { animation: none; display: none; opacity: 0; + @media (prefers-reduced-motion: reduce) { + transform: none; + } } } diff --git a/src/components/NavItem/index.module.scss b/src/components/NavItem/index.module.scss index ce37ff1..ffd18ad 100644 --- a/src/components/NavItem/index.module.scss +++ b/src/components/NavItem/index.module.scss @@ -6,27 +6,20 @@ margin-right: 0; margin-bottom: 1rem; margin-left: 0; - padding: 0; + @include respond-to('large') { display: flex; - flex-direction: row; + flex-direction: column; + align-items: flex-start; + justify-content: flex-start; height: auto; margin-top: 0; margin-right: 0; margin-bottom: 0; - margin-left: 2rem; - align-items: center; - } - - @include respond-to('large') { - display: block; + margin-left: 0; padding-left: 1rem; padding-right: 1rem; } - - @include respond-to('large') { - margin-left: 0; - } } .heading { diff --git a/src/components/NavItemDescription/index.module.scss b/src/components/NavItemDescription/index.module.scss index dd2c78d..76ab3a9 100644 --- a/src/components/NavItemDescription/index.module.scss +++ b/src/components/NavItemDescription/index.module.scss @@ -3,8 +3,5 @@ .root { color: #000; font-size: 0.75rem; - @include respond-to('large') { - margin-top: 0; - margin-bottom: 0; - } + margin-bottom: 1rem; } diff --git a/src/components/NavItemLink/index.jsx b/src/components/NavItemLink/index.jsx index 5d8389e..4fc2680 100644 --- a/src/components/NavItemLink/index.jsx +++ b/src/components/NavItemLink/index.jsx @@ -12,6 +12,7 @@ const NavItemLink = ({ role, href, isBack, + isHeading, isForward, isActive, className, @@ -24,6 +25,7 @@ const NavItemLink = ({ const rootClasses = classNames( styles['root'], isBack && styles['back'], + isHeading && styles['heading'], isForward && styles['forward'], isActive && styles['active'], className && className @@ -47,6 +49,7 @@ const NavItemLink = ({ NavItemLink.defaultProps = { role: 'menuitem', isBack: false, + isHeading: false, isForward: false, isActive: false, } @@ -56,6 +59,7 @@ NavItemLink.propTypes = { role: PropTypes.string, href: PropTypes.string.isRequired, isBack: PropTypes.bool, + isHeading: PropTypes.bool, isForward: PropTypes.bool, isActive: PropTypes.bool, className: PropTypes.string, diff --git a/src/components/NavItemLink/index.module.scss b/src/components/NavItemLink/index.module.scss index 84b64ec..9579d53 100644 --- a/src/components/NavItemLink/index.module.scss +++ b/src/components/NavItemLink/index.module.scss @@ -3,10 +3,14 @@ .root { width: 100%; display: flex; + flex-direction: row; position: relative; + margin-bottom: 1rem; +} + +.heading { @include respond-to('large') { - align-items: center; - height: 4rem; + height: 1rem; } } diff --git a/src/components/NavList/index.module.scss b/src/components/NavList/index.module.scss index 91dca78..b1897e7 100644 --- a/src/components/NavList/index.module.scss +++ b/src/components/NavList/index.module.scss @@ -22,6 +22,7 @@ z-index: 1; @include respond-to('large') { + padding-top: 0; flex-direction: row; height: 4rem; } @@ -67,17 +68,31 @@ } .open { - @include open; + @include slideOpen; + + @media (prefers-reduced-motion: reduce) { + transform: translate3d(100%, 0, 0); + } @include respond-to('large') { animation: none; + @media (prefers-reduced-motion: reduce) { + transform: none; + } } } .closed { - @include closed; + @include slideClosed; + + @media (prefers-reduced-motion: reduce) { + transform: translate3d(-100%, 0, 0); + } @include respond-to('large') { animation: none; + @media (prefers-reduced-motion: reduce) { + transform: none; + } } } diff --git a/src/styles/animations.scss b/src/styles/animations.scss index e10824e..6d9490b 100644 --- a/src/styles/animations.scss +++ b/src/styles/animations.scss @@ -1,6 +1,6 @@ $slideDuration: 0.75s; $slideOpenFillAnimationMode: both; -$slideRightToLeftFillAnimationMode: both; +$slideClosedFillAnimationMode: both; @keyframes slideOpen { from { @@ -12,7 +12,7 @@ $slideRightToLeftFillAnimationMode: both; } } -@keyframes slideRightToLeft { +@keyframes slideClosed { from { transform: translate3d(100%, 0, 0); } diff --git a/src/styles/mixins.scss b/src/styles/mixins.scss index de16a09..b8ef291 100644 --- a/src/styles/mixins.scss +++ b/src/styles/mixins.scss @@ -1,16 +1,22 @@ @import './animations.scss'; @import './breakpoints.scss'; -@mixin open { +@mixin slideOpen { animation-duration: $slideDuration; animation-fill-mode: $slideOpenFillAnimationMode; animation-name: slideOpen; animation-iteration-count: 1; + @media (prefers-reduced-motion: reduce) { + animation: none; + } } -@mixin closed { +@mixin slideClosed { animation-duration: $slideDuration; - animation-fill-mode: $slideRightToLeftFillAnimationMode; - animation-name: slideRightToLeft; + animation-fill-mode: $slideClosedFillAnimationMode; + animation-name: slideClosed; animation-iteration-count: 1; + @media (prefers-reduced-motion: reduce) { + animation: none; + } }