From ac8790ecb333106acd70eb466eb96c0fe36d4def Mon Sep 17 00:00:00 2001 From: Janine Luk Date: Sat, 4 May 2019 14:55:18 +0100 Subject: [PATCH 01/11] sticky header for mobile --- app/assets/stylesheets/darkswarm/home_tagline.css.scss | 2 +- app/assets/stylesheets/darkswarm/menu.css.scss | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/darkswarm/home_tagline.css.scss b/app/assets/stylesheets/darkswarm/home_tagline.css.scss index ffe4204869..83142053a7 100644 --- a/app/assets/stylesheets/darkswarm/home_tagline.css.scss +++ b/app/assets/stylesheets/darkswarm/home_tagline.css.scss @@ -24,7 +24,7 @@ } h1 { - margin-top: 2rem; + margin-top: $topbar-height; @media all and (min-width: 768px) { margin-top: 10rem; diff --git a/app/assets/stylesheets/darkswarm/menu.css.scss b/app/assets/stylesheets/darkswarm/menu.css.scss index 87e731133c..0885ed31a6 100644 --- a/app/assets/stylesheets/darkswarm/menu.css.scss +++ b/app/assets/stylesheets/darkswarm/menu.css.scss @@ -140,6 +140,10 @@ nav.top-bar { .tab-bar { background-color: white; + position: fixed; + width: 100%; + height: 2.8em; + z-index: 1; .cart-span { background-color: #f4704c; @@ -173,7 +177,6 @@ nav.top-bar { } } - .off-canvas-list li.language-switcher ul li { list-style-type: none; padding-left: 0.5em; From 5534109122a213aef6feeb860e8e793a38857400 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Wed, 3 Jul 2019 03:26:50 +0800 Subject: [PATCH 02/11] Undo setting of margin for home tagline --- app/assets/stylesheets/darkswarm/home_tagline.css.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/darkswarm/home_tagline.css.scss b/app/assets/stylesheets/darkswarm/home_tagline.css.scss index 83142053a7..ffe4204869 100644 --- a/app/assets/stylesheets/darkswarm/home_tagline.css.scss +++ b/app/assets/stylesheets/darkswarm/home_tagline.css.scss @@ -24,7 +24,7 @@ } h1 { - margin-top: $topbar-height; + margin-top: 2rem; @media all and (min-width: 768px) { margin-top: 10rem; From 356e00bfbbb34db9a0e767b71a13a109e5c04acf Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Wed, 3 Jul 2019 03:35:29 +0800 Subject: [PATCH 03/11] Add space for tab bar in medium and below screens --- app/assets/stylesheets/darkswarm/menu.css.scss | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/assets/stylesheets/darkswarm/menu.css.scss b/app/assets/stylesheets/darkswarm/menu.css.scss index 0885ed31a6..df811aba42 100644 --- a/app/assets/stylesheets/darkswarm/menu.css.scss +++ b/app/assets/stylesheets/darkswarm/menu.css.scss @@ -202,6 +202,15 @@ nav.top-bar { padding: 9px 0 0 9px; } +// Leave space for tab bar, in screens smaller than large. +[role="main"] { + margin-top: 2.8em; + + @media #{$large-up} { + margin-top: 0; + } +} + .top-bar .ofn-logo img { height: auto; width: auto; From e58546a412281c6f076d0a31bbb07f04fa7d2c9b Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Sun, 14 Jul 2019 13:52:47 +0800 Subject: [PATCH 04/11] Move offcanvas menu content to separate partial --- app/views/shared/menu/_mobile_menu.html.haml | 29 +------------------ .../shared/menu/_offcanvas_menu.html.haml | 28 ++++++++++++++++++ 2 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 app/views/shared/menu/_offcanvas_menu.html.haml diff --git a/app/views/shared/menu/_mobile_menu.html.haml b/app/views/shared/menu/_mobile_menu.html.haml index 8bd1e071e6..5b8ca59f99 100644 --- a/app/views/shared/menu/_mobile_menu.html.haml +++ b/app/views/shared/menu/_mobile_menu.html.haml @@ -21,31 +21,4 @@ %a{href: main_app.shop_path} {{ CurrentHub.hub.name }} -%aside.left-off-canvas-menu.show-for-medium-down - %ul.off-canvas-list - %li.ofn-logo - %a{href: root_path} - %img{src: ContentConfig.logo_mobile.url, srcset: ContentConfig.logo_mobile_svg.url, width: "75", height: "26"} - - [*1..7].each do |menu_number| - - menu_name = "menu_#{menu_number}" - - if ContentConfig[menu_name].present? - %li.li-menu - %a{href: t("#{menu_name}_url") } - %span.nav-primary - %i{class: ContentConfig["#{menu_name}_icon_name"]} - = t "#{menu_name}_title" - - if OpenFoodNetwork::I18nConfig.selectable_locales.count > 1 - %li.language-switcher.li-menu - %a - %i.ofn-i_071-globe - = t('language_name') - %ul - - OpenFoodNetwork::I18nConfig.selectable_locales.each do |l| - - if I18n.locale != l - %li - %a{href: "?locale=#{l.to_s}" }= t('language_name', locale: l) - %li - - if spree_current_user.nil? - = render 'shared/menu/signed_out' - - else - = render 'shared/menu/signed_in_offcanvas' += render partial: "shared/menu/offcanvas_menu" unless @hide_menu diff --git a/app/views/shared/menu/_offcanvas_menu.html.haml b/app/views/shared/menu/_offcanvas_menu.html.haml new file mode 100644 index 0000000000..eae59bae9f --- /dev/null +++ b/app/views/shared/menu/_offcanvas_menu.html.haml @@ -0,0 +1,28 @@ +%aside.left-off-canvas-menu.show-for-medium-down + %ul.off-canvas-list + %li.ofn-logo + %a{href: root_path} + %img{src: ContentConfig.logo_mobile.url, srcset: ContentConfig.logo_mobile_svg.url, width: "75", height: "26"} + - [*1..7].each do |menu_number| + - menu_name = "menu_#{menu_number}" + - if ContentConfig[menu_name].present? + %li.li-menu + %a{href: t("#{menu_name}_url") } + %span.nav-primary + %i{class: ContentConfig["#{menu_name}_icon_name"]} + = t "#{menu_name}_title" + - if OpenFoodNetwork::I18nConfig.selectable_locales.count > 1 + %li.language-switcher.li-menu + %a + %i.ofn-i_071-globe + = t('language_name') + %ul + - OpenFoodNetwork::I18nConfig.selectable_locales.each do |l| + - if I18n.locale != l + %li + %a{href: "?locale=#{l.to_s}" }= t('language_name', locale: l) + %li + - if spree_current_user.nil? + = render 'shared/menu/signed_out' + - else + = render 'shared/menu/signed_in_offcanvas' From a93cf46f50d7380ad17de2c776aeda7a5df8f665 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Sun, 14 Jul 2019 18:50:44 +0800 Subject: [PATCH 05/11] Fix syntax of existing animations for offcanvas --- app/assets/stylesheets/darkswarm/page_alert.css.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/darkswarm/page_alert.css.scss b/app/assets/stylesheets/darkswarm/page_alert.css.scss index e7bdcd53a6..5b7664e70a 100644 --- a/app/assets/stylesheets/darkswarm/page_alert.css.scss +++ b/app/assets/stylesheets/darkswarm/page_alert.css.scss @@ -46,12 +46,12 @@ // Show-hide animation \\ .off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, nav.tab-bar { - @include transition(all, 1000ms, ease-in-out); + @include transition(all 1000ms ease-in-out); &.move-down { margin-top: 55px; - @include transition(all, 1000ms, ease-in-out); + @include transition(all 1000ms ease-in-out); } } From ca0f746cf1205d1f541c1986e34f975119e251a0 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Mon, 15 Jul 2019 17:57:36 +0800 Subject: [PATCH 06/11] Fix animation and layout for offcanvas menu Uses strategy from this forum comment: http://foundation.zurb.com/forum/posts/547#comment_8840 --- .../darkswarm/layout/offcanvas.js.coffee | 6 ++++++ app/assets/stylesheets/darkswarm/all.scss | 1 + .../darkswarm/layout/offcanvas.css.scss | 17 +++++++++++++++++ app/assets/stylesheets/darkswarm/menu.css.scss | 6 ++---- app/views/layouts/darkswarm.html.haml | 3 ++- app/views/shared/menu/_menu.html.haml | 8 ++++---- app/views/shared/menu/_mobile_menu.html.haml | 2 -- 7 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee create mode 100644 app/assets/stylesheets/darkswarm/layout/offcanvas.css.scss diff --git a/app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee b/app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee new file mode 100644 index 0000000000..924e6b882a --- /dev/null +++ b/app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee @@ -0,0 +1,6 @@ +$ -> + menu = $(".left-off-canvas-menu") + setOffcanvasMenuHeight = -> + menu.height($(window).height()) + $(window).on("resize", setOffcanvasMenuHeight) + setOffcanvasMenuHeight() diff --git a/app/assets/stylesheets/darkswarm/all.scss b/app/assets/stylesheets/darkswarm/all.scss index 2f73f5e796..ee1c4fc690 100644 --- a/app/assets/stylesheets/darkswarm/all.scss +++ b/app/assets/stylesheets/darkswarm/all.scss @@ -10,6 +10,7 @@ @import 'foundation-icons'; @import 'base/*'; +@import 'layout/*'; @import '*'; @import 'pages/*'; @import '../web/all'; diff --git a/app/assets/stylesheets/darkswarm/layout/offcanvas.css.scss b/app/assets/stylesheets/darkswarm/layout/offcanvas.css.scss new file mode 100644 index 0000000000..de54f0ef54 --- /dev/null +++ b/app/assets/stylesheets/darkswarm/layout/offcanvas.css.scss @@ -0,0 +1,17 @@ +@import "compass/css3/transition"; + +.off-canvas-fixed { + @include transition(transform 1000ms ease-in-out); +} + +.move-right > .off-canvas-fixed { + height: 100%; + -webkit-transform: translate3d(15.625rem, 0, 0); + transform: translate3d(15.625rem, 0, 0); +} + +.left-off-canvas-menu { + -webkit-transform: none; + transform: none; + margin-left: -15.625rem; +} diff --git a/app/assets/stylesheets/darkswarm/menu.css.scss b/app/assets/stylesheets/darkswarm/menu.css.scss index df811aba42..6e6e7644b0 100644 --- a/app/assets/stylesheets/darkswarm/menu.css.scss +++ b/app/assets/stylesheets/darkswarm/menu.css.scss @@ -222,7 +222,7 @@ nav.top-bar { background-color: white; } -.off-canvas-wrap.move-right ul.off-canvas-list { +.off-canvas-wrap ul.off-canvas-list { font-size: 0.875rem; .li-menu { @@ -242,12 +242,10 @@ nav.top-bar { background-color: transparent; color: $brand-colour; } - - @include transition(all 0.3s ease-in-out); } } -.off-canvas-wrap.move-right ul.off-canvas-list i { +.off-canvas-wrap ul.off-canvas-list i { font-size: 1.5rem; margin-right: 0.25rem; } diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index 79d78c67ea..c3462302f4 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -42,9 +42,10 @@ = inject_currency_config .off-canvas-wrap{offcanvas: true} - .inner-wrap + .fixed.off-canvas-fixed = render "shared/menu/menu" unless @hide_menu + .inner-wrap %section{ role: "main" } = yield diff --git a/app/views/shared/menu/_menu.html.haml b/app/views/shared/menu/_menu.html.haml index 616b128d78..050a3f043e 100644 --- a/app/views/shared/menu/_menu.html.haml +++ b/app/views/shared/menu/_menu.html.haml @@ -1,4 +1,4 @@ -.fixed - = render partial: "shared/menu/large_menu" - %ofn-flash -= render partial: "shared/menu/mobile_menu" += render "shared/menu/large_menu" +%ofn-flash += render "shared/menu/mobile_menu" += render "shared/menu/offcanvas_menu" diff --git a/app/views/shared/menu/_mobile_menu.html.haml b/app/views/shared/menu/_mobile_menu.html.haml index 5b8ca59f99..4fec4156d7 100644 --- a/app/views/shared/menu/_mobile_menu.html.haml +++ b/app/views/shared/menu/_mobile_menu.html.haml @@ -20,5 +20,3 @@ %a{href: main_app.shop_path} {{ CurrentHub.hub.name }} - -= render partial: "shared/menu/offcanvas_menu" unless @hide_menu From fca82375e8db6dff2eb1bc407cf91bdb925309d5 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Wed, 24 Jul 2019 10:12:39 +0800 Subject: [PATCH 07/11] Render home page alert as :page_alert outside main content --- app/views/home/index.html.haml | 4 +++- app/views/layouts/darkswarm.html.haml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index 2dcaf58bd5..485fa84cff 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -2,8 +2,10 @@ #tagline:before { background-image: url("#{ContentConfig.home_hero.url}") } -%div{"ng-controller" => "HomeCtrl"} +- content_for :page_alert do = render "shared/menu/alert" + +%div{"ng-controller" => "HomeCtrl"} = render "home/tagline" #panes diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index c3462302f4..575a67ced8 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -44,6 +44,7 @@ .off-canvas-wrap{offcanvas: true} .fixed.off-canvas-fixed = render "shared/menu/menu" unless @hide_menu + = yield :page_alert .inner-wrap %section{ role: "main" } From 6419edcb1ffda35367eb8e02c8d96c47c71047a8 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Wed, 24 Jul 2019 12:29:08 +0800 Subject: [PATCH 08/11] Integrate styles/animations for page alert, top bar, tab bar, off canvas --- .../darkswarm/directives/page_alert.js.coffee | 2 +- .../stylesheets/darkswarm/page_alert.css.scss | 33 ++++++++----------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee b/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee index 659bd227e9..ef3a841d8e 100644 --- a/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee @@ -2,7 +2,7 @@ Darkswarm.directive "ofnPageAlert", ($timeout) -> restrict: 'A' scope: true link: (scope, elem, attrs) -> - container_elems = $(".off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, .page-alert") + container_elems = $(".off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, .off-canvas-fixed .top-bar, .off-canvas-fixed ofn-flash, .off-canvas-fixed nav.tab-bar, .off-canvas-fixed .page-alert") # Wait a moment after page load before showing the alert. Otherwise we often miss the # start of the animation. diff --git a/app/assets/stylesheets/darkswarm/page_alert.css.scss b/app/assets/stylesheets/darkswarm/page_alert.css.scss index 5b7664e70a..59ccf327d0 100644 --- a/app/assets/stylesheets/darkswarm/page_alert.css.scss +++ b/app/assets/stylesheets/darkswarm/page_alert.css.scss @@ -2,10 +2,12 @@ @import "animations"; @import "compass/css3/transition"; +$page-alert-height: 55px; + // Basic style \\ .page-alert { .alert-box { - height: 55px; + height: $page-alert-height; overflow: hidden; border: 1px solid rgba($dark-grey, 0.35); border-left: none; @@ -45,33 +47,26 @@ } // Show-hide animation \\ -.off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, nav.tab-bar { + +.off-canvas-wrap .inner-wrap, +.off-canvas-fixed .top-bar, +.off-canvas-fixed ofn-flash, +.off-canvas-fixed nav.tab-bar, +.off-canvas-fixed .page-alert { @include transition(all 1000ms ease-in-out); &.move-down { - margin-top: 55px; - - @include transition(all 1000ms ease-in-out); + margin-top: $page-alert-height; } } -.off-canvas-wrap .inner-wrap .page-alert.fixed { - top: -55px; - z-index: 1; - - // TODO: Compass to disable transition - -moz-transition: none; - -webkit-transition: none; - -o-transition: color 0 ease-in; - transition: none; +.off-canvas-wrap .page-alert { + top: -1 * $page-alert-height; + z-index: 100; } .off-canvas-wrap.move-right .inner-wrap.move-down { - .page-alert { - top: -55px * 2; - } - .left-off-canvas-menu { - top: -55px; + top: -1 * $page-alert-height; } } From d42da8737e5db266992142e23f076ba3b6fb1072 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Wed, 24 Jul 2019 12:36:33 +0800 Subject: [PATCH 09/11] Improve readability of selectors in page alert JS directive --- .../darkswarm/directives/page_alert.js.coffee | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee b/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee index ef3a841d8e..a3858444ae 100644 --- a/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee @@ -2,7 +2,14 @@ Darkswarm.directive "ofnPageAlert", ($timeout) -> restrict: 'A' scope: true link: (scope, elem, attrs) -> - container_elems = $(".off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, .off-canvas-fixed .top-bar, .off-canvas-fixed ofn-flash, .off-canvas-fixed nav.tab-bar, .off-canvas-fixed .page-alert") + moveSelectors = [".off-canvas-wrap .inner-wrap", + ".off-canvas-wrap .inner-wrap .fixed", + ".off-canvas-fixed .top-bar", + ".off-canvas-fixed ofn-flash", + ".off-canvas-fixed nav.tab-bar", + ".off-canvas-fixed .page-alert"] + + container_elems = $(moveSelectors.join(", ")) # Wait a moment after page load before showing the alert. Otherwise we often miss the # start of the animation. From def2693afc5584eba8639cdb9e76855f998d88c2 Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Thu, 25 Jul 2019 16:59:52 +0800 Subject: [PATCH 10/11] Move offcanvas JS to Angular controller --- .../controllers/offcanvas_controller.js.coffee | 11 +++++++++++ .../javascripts/darkswarm/layout/offcanvas.js.coffee | 6 ------ app/views/shared/menu/_offcanvas_menu.html.haml | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee delete mode 100644 app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee diff --git a/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee new file mode 100644 index 0000000000..5f71a17eed --- /dev/null +++ b/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee @@ -0,0 +1,11 @@ +Darkswarm.controller "OffcanvasCtrl", ($scope, $window) -> + $scope.menu = $(".left-off-canvas-menu") + + $scope.setOffcanvasMenuHeight = -> + $scope.menu.height($(window).height()) + + $scope.bind = -> + $(window).on("resize", $scope.setOffcanvasMenuHeight) + $scope.setOffcanvasMenuHeight() + + $scope.bind() diff --git a/app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee b/app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee deleted file mode 100644 index 924e6b882a..0000000000 --- a/app/assets/javascripts/darkswarm/layout/offcanvas.js.coffee +++ /dev/null @@ -1,6 +0,0 @@ -$ -> - menu = $(".left-off-canvas-menu") - setOffcanvasMenuHeight = -> - menu.height($(window).height()) - $(window).on("resize", setOffcanvasMenuHeight) - setOffcanvasMenuHeight() diff --git a/app/views/shared/menu/_offcanvas_menu.html.haml b/app/views/shared/menu/_offcanvas_menu.html.haml index eae59bae9f..c18d14d0e9 100644 --- a/app/views/shared/menu/_offcanvas_menu.html.haml +++ b/app/views/shared/menu/_offcanvas_menu.html.haml @@ -1,4 +1,4 @@ -%aside.left-off-canvas-menu.show-for-medium-down +%aside.left-off-canvas-menu.show-for-medium-down{ ng: { controller: "OffcanvasCtrl" } } %ul.off-canvas-list %li.ofn-logo %a{href: root_path} From dae23d3c3ba970b47c4ded0d8a3c2a739b051b7f Mon Sep 17 00:00:00 2001 From: Kristina Lim Date: Thu, 25 Jul 2019 20:22:51 +0800 Subject: [PATCH 11/11] Remove unused inclusion of $window in OffcanvasCtrl --- .../darkswarm/controllers/offcanvas_controller.js.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee index 5f71a17eed..4b1558a998 100644 --- a/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/offcanvas_controller.js.coffee @@ -1,4 +1,4 @@ -Darkswarm.controller "OffcanvasCtrl", ($scope, $window) -> +Darkswarm.controller "OffcanvasCtrl", ($scope) -> $scope.menu = $(".left-off-canvas-menu") $scope.setOffcanvasMenuHeight = ->