From 9ef8104f6af0304093c46524b8784a29be33fd12 Mon Sep 17 00:00:00 2001 From: m26lebla <m26lebla@uwaterloo.ca> Date: Thu, 12 Nov 2020 16:10:18 -0500 Subject: [PATCH] creation of the jump to menu using menu--horizontal.twig --- css/styles.css | 138 +++++++++++------- js/component_scripts.min.js | 36 ++++- .../_patterns/03-layouts/header/_header.scss | 3 +- .../_patterns/03-layouts/header/header.twig | 15 +- source/_patterns/03-layouts/header/header.yml | 72 +++++---- .../site-container/site-container.yml | 70 +++++---- .../menu/menu--header/_menu--header.scss | 108 +++++++++++--- .../menu/menu--header/menu--header.twig | 12 +- .../menu/menu--header/menu--header.yml | 72 +++++---- .../menu/menu--horizontal/menu--horizontal.js | 14 +- .../menu--secondary/_menu--secondary.scss | 3 - .../menu/menu--secondary/menu--secondary.yml | 2 +- .../04-components/site-logo/_site-logo.scss | 1 - 13 files changed, 361 insertions(+), 185 deletions(-) diff --git a/css/styles.css b/css/styles.css index b585d1b8..5bb39d90 100644 --- a/css/styles.css +++ b/css/styles.css @@ -1840,11 +1840,10 @@ svg:not(:root) { padding-right: 0; } } @media (min-width: 48.06rem) { .uw-header__wrapper { - grid-template-columns: 12.5rem auto; } } + grid-template-columns: auto 10rem; } } .uw-header__wrapper .uw-site-logo { grid-column: 1 / 3; - grid-row: 1 / 2; - text-align: center; } + grid-row: 1 / 2; } @media (min-width: 48.06rem) { .uw-header__wrapper .uw-site-logo { grid-column: 1 / 2; @@ -4084,23 +4083,68 @@ fieldset, grid-column: 3; grid-row: 1; } } -.uw-header-menu { - background-color: #000; } - .uw-header-menu ul { +.uw-horizontal-nav.uw-horizontal-nav--header { + background: #000; + max-width: inherit; + width: inherit; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--wrapper { + background: #000; display: block; - text-align: center; } - .uw-header-menu li { - display: inline-block; - padding: 0 0.5rem; } - .uw-header-menu a { - color: #fff; - font-family: "BureauGrotCond Book", impact, "avenir next condensed heavy", "Droid Sans", sans-serif; - font-size: 0.88889rem; - letter-spacing: .045rem; - text-decoration: none; - text-transform: uppercase; } - .uw-header-menu a:hover { - text-decoration: underline; } + max-width: inherit; + padding: 0; + position: relative; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--home { + display: none; + grid-column: none; + padding: 0; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu { + width: inherit; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu { + border: 1px solid #fff; + height: auto; + width: 6rem; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu a { + color: #fff; + outline: none; + outline-offset: unset; + width: 100%; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu a:hover { + color: #000; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu.menu--subnav a { + color: #000; + outline: none; + outline-offset: unset; + width: 100%; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu--horizontal > .menu--item { + background: #000; + width: 100%; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a { + padding-right: 24px; + position: relative; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a::after { + content: '\e906'; + display: block; + font-family: fdsu-rwd; + position: absolute; + right: 0.5rem; + text-align: center; + top: 0.5rem; + transform: scale(0.75, 0.75); } + @media (min-width: 48.06rem) { + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a::after { + transform: scale(0.75, 0.75) rotate(90deg); } } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu--subnav { + display: none; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu .submenu-active .menu--subnav { + border-width: 0; + height: auto; + left: 0; + min-height: auto; + min-width: 13rem; + padding: 1rem; + width: auto; } + .uw-horizontal-nav.uw-horizontal-nav--header .uw-horizontal-nav--menu .menu .submenu-active .menu--subnav .menu--subnav { + border: 0 solid #fff; } .org-default .uw-horizontal-nav .uw-site-home__link { background-color: #000; } @@ -4711,35 +4755,32 @@ fieldset, justify-content: flex-start; text-transform: inherit; width: 100%; } - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item { - white-space: nowrap; - width: 100%; } - @media (min-width: 48.06rem) { - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item { - width: auto; } } - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item a { - display: inline-block; - font-weight: inherit; - line-height: 1.25rem; - text-decoration: none; } - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item a:hover { - background-color: #eee; - color: #000; } - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a { - padding-right: 24px; - position: relative; } - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a::after { - content: '\e906'; - display: block; - font-family: fdsu-rwd; - position: absolute; - right: 0.5rem; - text-align: center; - top: 0.5rem; - transform: scale(0.75, 0.75); } - @media (min-width: 48.06rem) { - .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a::after { - transform: scale(0.75, 0.75) rotate(90deg); } } + @media (min-width: 48.06rem) { + .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item { + width: auto; } } + .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item a { + display: inline-block; + font-weight: inherit; + line-height: 1.25rem; + text-decoration: none; } + .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item a:hover { + background-color: #eee; + color: #000; } + .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a { + padding-right: 24px; + position: relative; } + .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a::after { + content: '\e906'; + display: block; + font-family: fdsu-rwd; + position: absolute; + right: 0.5rem; + text-align: center; + top: 0.5rem; + transform: scale(0.75, 0.75); } + @media (min-width: 48.06rem) { + .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--horizontal > .menu--item.has-submenu > a::after { + transform: scale(0.75, 0.75) rotate(90deg); } } .uw-horizontal-nav--secondary .uw-horizontal-nav--menu .menu--subnav { display: none; font-size: 0.79rem; @@ -5215,7 +5256,6 @@ picture { width: 100%; } .uw-site-logo { - margin: 0 auto; width: 12.5rem; } .uw-site-logo .uw-site-logo__link { background: url("../source/images/logos/uwaterloo-logo.svg") 0 50% no-repeat; diff --git a/js/component_scripts.min.js b/js/component_scripts.min.js index 5bfc2a72..c36cf177 100644 --- a/js/component_scripts.min.js +++ b/js/component_scripts.min.js @@ -1,3 +1,25 @@ +(function ($, Drupal) { + Drupal.behaviors.dropbutton = { + attach: function (context, settings) { + $(document).ready(function(){ + /* When the user clicks on the button, + toggle between hiding and showing the dropdown content */ + + // // Get the id + $('.uw-dropdown').each(function() { + var id = $(this).data('id'); + alert(id); + + var dropBtn = $(this).children(); + alert(dropBtn); + }); + + + }); + } + }; +})(jQuery, Drupal); + (function ($, Drupal) { Drupal.behaviors.expandcollapse = { attach: function (context, settings) { @@ -243,8 +265,10 @@ // const toggle = document.querySelector(".toggle"); const menu = document.querySelector(".menu--horizontal"); const items = document.querySelectorAll(".menu--item"); -// -// /* Toggle mobile menu */ + + /* Toggle mobile menu */ + + // // function toggleMenu() { // // if (menu.classList.contains("active")) { // // menu.classList.remove("active"); @@ -255,6 +279,8 @@ // // } // // } // + + /* Activate Submenu */ function toggleItem() { @@ -263,11 +289,13 @@ } else if (menu.querySelector(".submenu-active")) { menu.querySelector(".submenu-active").classList.remove("submenu-active"); this.classList.add("submenu-active"); + alert('foundone'); } else { this.classList.add("submenu-active"); } } -// + + /* Close Submenu From Anywhere */ function closeSubmenu(e) { @@ -280,6 +308,8 @@ } /* Event Listeners */ + + // toggle.addEventListener("click", toggleMenu, false); for (let item of items) { diff --git a/source/_patterns/03-layouts/header/_header.scss b/source/_patterns/03-layouts/header/_header.scss index bd970bc6..b6babb8d 100644 --- a/source/_patterns/03-layouts/header/_header.scss +++ b/source/_patterns/03-layouts/header/_header.scss @@ -13,13 +13,12 @@ padding:gesso-spacing(sm); position: relative; @include medium { - grid-template-columns: 12.5rem auto; + grid-template-columns: auto 10rem; } .uw-site-logo { grid-column: 1 / 3; grid-row: 1 / 2; - text-align:center; @include medium { grid-column: 1 / 2; grid-row: 1 / 2; diff --git a/source/_patterns/03-layouts/header/header.twig b/source/_patterns/03-layouts/header/header.twig index 4af005ad..b20d8984 100644 --- a/source/_patterns/03-layouts/header/header.twig +++ b/source/_patterns/03-layouts/header/header.twig @@ -7,21 +7,22 @@ {% include '@components/site-logo/site-logo.twig' %} {% block content %} - {% include "@components/menu/menu--header/menu--header.twig" with { - 'menu_name': 'uw-header', - 'items': items - } %} + {% endblock %} + {% include "@components/menu/menu--header/menu--header.twig" with { + 'modifier_classes': header_modifier_classes, + 'items': header_items + } %} </div> {% include '@components/color-bar/color-bar.twig' with { 'faculty': faculty }%} {% include "@components/menu/menu--horizontal/menu--horizontal.twig" with { - 'modifier_classes': 'main', + 'modifier_classes': main_modifier_classes, 'items': nav_items }%} {% include "@components/menu/menu--secondary/menu--secondary.twig" with { - 'items': secondary_items, - 'modifier_classes': secondary_modifier_classes + 'modifier_classes': secondary_modifier_classes, + 'items': secondary_items }%} </header> diff --git a/source/_patterns/03-layouts/header/header.yml b/source/_patterns/03-layouts/header/header.yml index a5031720..b487ae55 100644 --- a/source/_patterns/03-layouts/header/header.yml +++ b/source/_patterns/03-layouts/header/header.yml @@ -1,42 +1,52 @@ --- is_demo: true +header_modifier_classes: 'header' menu_name: 'horizontal' -items: - - title: 'Admissions' - url: 'https://uwaterloo.ca/admissions/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'About Waterloo' - url: 'https://uwaterloo.ca/about/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Faculties & Academics' - url: 'https://uwaterloo.ca/faculties-academics/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Offices & Services' - url: 'https://uwaterloo.ca/offices-services/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Support Waterloo' - url: 'https://uwaterloo.ca/support/' +header_items: + - title: 'Jump To' + url: '#' original_link: options: attributes: class: '' in_active_trail: false + submenu: + - title: 'Admissions' + url: 'https://uwaterloo.ca/admissions/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'About Waterloo' + url: 'https://uwaterloo.ca/about/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Faculties & Academics' + url: 'https://uwaterloo.ca/faculties-academics/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Offices & Services' + url: 'https://uwaterloo.ca/offices-services/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Support Waterloo' + url: 'https://uwaterloo.ca/support/' + original_link: + options: + attributes: + class: '' + in_active_trail: false +main_modifier_classes: 'main' nav_items: - text: 'About Psychology' url: '#' diff --git a/source/_patterns/03-layouts/site-container/site-container.yml b/source/_patterns/03-layouts/site-container/site-container.yml index d63845cb..ce17f1bb 100644 --- a/source/_patterns/03-layouts/site-container/site-container.yml +++ b/source/_patterns/03-layouts/site-container/site-container.yml @@ -1,43 +1,51 @@ --- is_demo: true -modifier_classes: 'header' +header_modifier_classes: 'header' menu_name: 'horizontal' header_items: - - title: 'Admissions' - url: 'https://uwaterloo.ca/admissions/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'About Waterloo' - url: 'https://uwaterloo.ca/about/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Faculties & Academics' - url: 'https://uwaterloo.ca/faculties-academics/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Offices & Services' - url: 'https://uwaterloo.ca/offices-services/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Support Waterloo' - url: 'https://uwaterloo.ca/support/' + - title: 'Jump To' + url: '#' original_link: options: attributes: class: '' in_active_trail: false + submenu: + - title: 'Admissions' + url: 'https://uwaterloo.ca/admissions/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'About Waterloo' + url: 'https://uwaterloo.ca/about/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Faculties & Academics' + url: 'https://uwaterloo.ca/faculties-academics/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Offices & Services' + url: 'https://uwaterloo.ca/offices-services/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Support Waterloo' + url: 'https://uwaterloo.ca/support/' + original_link: + options: + attributes: + class: '' + in_active_trail: false classes: - 'uw-header' - 'default' diff --git a/source/_patterns/04-components/menu/menu--header/_menu--header.scss b/source/_patterns/04-components/menu/menu--header/_menu--header.scss index f4cc3e0a..800891b5 100644 --- a/source/_patterns/04-components/menu/menu--header/_menu--header.scss +++ b/source/_patterns/04-components/menu/menu--header/_menu--header.scss @@ -1,26 +1,98 @@ -.uw-header-menu { - background-color: #000; +$menu-horizontal-bg: gesso-brand(org-default,uw-black,lvl4); + +.uw-horizontal-nav.uw-horizontal-nav--header { + background:$menu-horizontal-bg; + max-width:inherit; + width:inherit; + + .uw-horizontal-nav--wrapper{ + background: $menu-horizontal-bg; + display:block; + max-width:inherit; + padding:0; + position:relative; + - ul { - display: block; - text-align: center; } + .uw-horizontal-nav--home{ + display:none; + grid-column: none; + padding:0; - li { - display: inline-block; - padding: 0 0.5rem; } + .uw-horizontal-nav--menu { + width:inherit; + .menu { + border:1px solid #fff; + height:auto; + width:6rem; + a{ + color: gesso-brand(org-default,uw-white,lvl1); + outline:none; + outline-offset: unset; + width:100%; + &:hover{ + color: gesso-brand(org-default,uw-black,lvl4); + } + } + &.menu--subnav{ + a{ + color: gesso-brand(org-default,uw-black,lvl4); + outline:none; + outline-offset: unset; + width:100%; + } + } + &--horizontal { + > .menu--item{ + background: $menu-horizontal-bg; + width:100%; + + &.has-submenu { + + > a{ + + padding-right:gesso-spacing(md); + position:relative; + + &::after { + content:'\e906'; + display:block; + font-family: gesso-font-family(iconfont); + position:absolute; + right:0.5rem; + text-align: center; + top:0.5rem; + transform: scale(0.75, 0.75); + @include medium{ + transform: scale(0.75, 0.75) rotate(90deg); + } + } + } + } + } + } + &--subnav { + display: none; + } + .submenu-active .menu--subnav{ + border-width:0; + height:auto; + left:0; + min-height:auto; + min-width:13rem; + padding:1rem; + width:auto; + li{ - a { - color: #fff; - font-family: gesso-font-family(condensedbook); - font-size: rem(gesso-font-size(-1)); - letter-spacing: .045rem; - text-decoration: none; - text-transform: uppercase; + } + .menu--subnav{ + border:0 solid #fff; + } + > li{ + } + } - &:hover { - text-decoration: underline; } } -} \ No newline at end of file +} diff --git a/source/_patterns/04-components/menu/menu--header/menu--header.twig b/source/_patterns/04-components/menu/menu--header/menu--header.twig index 56940e89..b6243635 100644 --- a/source/_patterns/04-components/menu/menu--header/menu--header.twig +++ b/source/_patterns/04-components/menu/menu--header/menu--header.twig @@ -1,6 +1,6 @@ -<nav class="uw-header-menu" aria-label="University"> - {% include '@components/menu/menu.twig' with { - 'menu_name': menu_name, - 'items': items - } %} -</nav> +<div class="uw-header-menu" aria-label=""> + {% include "@components/menu/menu--horizontal/menu--horizontal.twig" with { + 'items': items, + 'is_demo': true + }%} +</div> diff --git a/source/_patterns/04-components/menu/menu--header/menu--header.yml b/source/_patterns/04-components/menu/menu--header/menu--header.yml index bfc00c9f..9e4059bc 100644 --- a/source/_patterns/04-components/menu/menu--header/menu--header.yml +++ b/source/_patterns/04-components/menu/menu--header/menu--header.yml @@ -1,38 +1,50 @@ --- +modifier_classes: 'header' menu_name: 'horizontal' items: - - title: 'Admissions' - url: 'https://uwaterloo.ca/admissions/' + - title: 'Jump To' + url: '#' original_link: options: attributes: class: '' in_active_trail: false - - title: 'About Waterloo' - url: 'https://uwaterloo.ca/about/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Faculties & Academics' - url: 'https://uwaterloo.ca/faculties-academics/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Offices & Services' - url: 'https://uwaterloo.ca/offices-services/' - original_link: - options: - attributes: - class: '' - in_active_trail: false - - title: 'Support Waterloo' - url: 'https://uwaterloo.ca/support/' - original_link: - options: - attributes: - class: '' - in_active_trail: false \ No newline at end of file + submenu: + - title: 'Admissions' + url: 'https://uwaterloo.ca/admissions/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'About Waterloo' + url: 'https://uwaterloo.ca/about/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Faculties & Academics' + url: 'https://uwaterloo.ca/faculties-academics/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Offices & Services' + url: 'https://uwaterloo.ca/offices-services/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + - title: 'Support Waterloo' + url: 'https://uwaterloo.ca/support/' + original_link: + options: + attributes: + class: '' + in_active_trail: false + + + diff --git a/source/_patterns/04-components/menu/menu--horizontal/menu--horizontal.js b/source/_patterns/04-components/menu/menu--horizontal/menu--horizontal.js index 6531ee09..96347c0b 100644 --- a/source/_patterns/04-components/menu/menu--horizontal/menu--horizontal.js +++ b/source/_patterns/04-components/menu/menu--horizontal/menu--horizontal.js @@ -7,8 +7,10 @@ // const toggle = document.querySelector(".toggle"); const menu = document.querySelector(".menu--horizontal"); const items = document.querySelectorAll(".menu--item"); -// -// /* Toggle mobile menu */ + + /* Toggle mobile menu */ + + // // function toggleMenu() { // // if (menu.classList.contains("active")) { // // menu.classList.remove("active"); @@ -19,6 +21,8 @@ // // } // // } // + + /* Activate Submenu */ function toggleItem() { @@ -27,11 +31,13 @@ } else if (menu.querySelector(".submenu-active")) { menu.querySelector(".submenu-active").classList.remove("submenu-active"); this.classList.add("submenu-active"); + alert('foundone'); } else { this.classList.add("submenu-active"); } } -// + + /* Close Submenu From Anywhere */ function closeSubmenu(e) { @@ -44,6 +50,8 @@ } /* Event Listeners */ + + // toggle.addEventListener("click", toggleMenu, false); for (let item of items) { diff --git a/source/_patterns/04-components/menu/menu--secondary/_menu--secondary.scss b/source/_patterns/04-components/menu/menu--secondary/_menu--secondary.scss index 976249e1..e3165f22 100644 --- a/source/_patterns/04-components/menu/menu--secondary/_menu--secondary.scss +++ b/source/_patterns/04-components/menu/menu--secondary/_menu--secondary.scss @@ -49,9 +49,6 @@ $menu-horizontal-sub-font-size: rem(gesso-font-size(-2)); width: 100%; > .menu--item{ - //flex: auto; - white-space:nowrap; - width:100%; @include medium{ width:auto; } diff --git a/source/_patterns/04-components/menu/menu--secondary/menu--secondary.yml b/source/_patterns/04-components/menu/menu--secondary/menu--secondary.yml index 00631369..6b747021 100644 --- a/source/_patterns/04-components/menu/menu--secondary/menu--secondary.yml +++ b/source/_patterns/04-components/menu/menu--secondary/menu--secondary.yml @@ -1,5 +1,5 @@ --- -modifier_classes: 'secondary' +secondary_modifier_classes: 'secondary' menu_name: 'horizontal' is_demo: true items: diff --git a/source/_patterns/04-components/site-logo/_site-logo.scss b/source/_patterns/04-components/site-logo/_site-logo.scss index 44964129..519e6409 100644 --- a/source/_patterns/04-components/site-logo/_site-logo.scss +++ b/source/_patterns/04-components/site-logo/_site-logo.scss @@ -2,7 +2,6 @@ // Styles for Site logo. .uw-site-logo { - margin:0 auto; width:12.5rem; .uw-site-logo__link{ background: url('../source/images/logos/uwaterloo-logo.svg') 0 50% no-repeat; -- GitLab