From 254bb8ea8f3a7d6fba37af75a588adbc63531849 Mon Sep 17 00:00:00 2001
From: alexisben <alexiben7@gmail.com>
Date: Fri, 29 Jul 2022 12:28:30 +0200
Subject: [PATCH] overlay animation

---
 assets/js/theme/nav/mainMenu.js              | 10 +++++++
 assets/sass/_theme/_configuration.sass       |  5 ++--
 assets/sass/_theme/_utils.sass               |  3 +-
 assets/sass/_theme/blocks/video.sass         | 10 +++----
 assets/sass/_theme/design-system/layout.sass |  6 ++--
 assets/sass/_theme/design-system/nav.sass    | 25 ++++++++++++----
 assets/sass/_theme/sections/diplomas.sass    | 31 ++++++++++++++++++++
 7 files changed, 73 insertions(+), 17 deletions(-)

diff --git a/assets/js/theme/nav/mainMenu.js b/assets/js/theme/nav/mainMenu.js
index 3fa3cace..d4f78d40 100644
--- a/assets/js/theme/nav/mainMenu.js
+++ b/assets/js/theme/nav/mainMenu.js
@@ -2,6 +2,7 @@ import breakpoints from '../utils/breakpoints';
 
 const CLASSES = {
     mainMenuOpened: 'is-opened',
+    isAnimating: 'is-animating',
     scrollingDown: 'is-scrolling-down',
     menusOpened: 'has-menu-opened',
     sticky: 'is-sticky'
@@ -100,6 +101,15 @@ class MainMenu {
     updateOverlay () {
         const classAction = this.state.hasDropdownOpened || this.state.isOpened ? 'add' : 'remove';
         document.documentElement.classList[classAction](CLASSES.menusOpened);
+
+        // Add class for animation transition
+        let transitionDuration = window.getComputedStyle(this.element).transitionDuration;
+        // TODO : regex for getting 'ms' or other units value
+        transitionDuration = parseFloat(transitionDuration.replace('s', ''));
+        document.documentElement.classList.add(CLASSES.isAnimating);
+        setTimeout(() => {
+            document.documentElement.classList.remove(CLASSES.isAnimating);
+        }, transitionDuration * 1000);
     }
 
     closeEverything () {
diff --git a/assets/sass/_theme/_configuration.sass b/assets/sass/_theme/_configuration.sass
index 891fe733..2900af41 100644
--- a/assets/sass/_theme/_configuration.sass
+++ b/assets/sass/_theme/_configuration.sass
@@ -75,8 +75,9 @@ $header-color: $main-color !default
 $header-hover-color: rgba($header-color, 0.7) !default // TODO : Réflechir à plus élégant / générique
 $header-background-color: $main-background-color !default
 $header-sticky-enabled: true !default
-$header-sticky-transition: 0.3s !default
-$header-dropdown-transition: 0.3s !default
+$header-transition: 0.3s !default
+$header-sticky-transition: $header-transition !default
+$header-dropdown-transition: $header-transition !default
 $header-height: 61px !default
 $header-height-md: 74px !default
 
diff --git a/assets/sass/_theme/_utils.sass b/assets/sass/_theme/_utils.sass
index 1ae14507..ff8f7f3d 100644
--- a/assets/sass/_theme/_utils.sass
+++ b/assets/sass/_theme/_utils.sass
@@ -49,11 +49,12 @@
 
 // NEW UTILS
 
-@mixin icon($icon-name: '', $pseudo-element: before)
+@mixin icon($icon-name: '', $pseudo-element: before, $font-size: px2rem(10))
     &::#{$pseudo-element}
         content: map-get($icons, $icon-name)
         display: inline-block
         font-family: 'Icon'
+        font-size: $font-size
         font-style: normal
         font-variant: normal
         font-weight: normal
diff --git a/assets/sass/_theme/blocks/video.sass b/assets/sass/_theme/blocks/video.sass
index 1584b365..3681d9d5 100644
--- a/assets/sass/_theme/blocks/video.sass
+++ b/assets/sass/_theme/blocks/video.sass
@@ -6,8 +6,8 @@
     .transcription
         margin-top: $spacing1
 
-    @include media-breakpoint-up(md)
-        @include in-page-without-aside
-            .block-content
-                margin-left: col(2)
-                width: col(8)
+    // @include media-breakpoint-up(md)
+    //     @include in-page-without-aside
+    //         .block-content
+    //             margin-left: col(2)
+    //             width: col(8)
diff --git a/assets/sass/_theme/design-system/layout.sass b/assets/sass/_theme/design-system/layout.sass
index 4f8dbce3..143a1e25 100644
--- a/assets/sass/_theme/design-system/layout.sass
+++ b/assets/sass/_theme/design-system/layout.sass
@@ -9,9 +9,9 @@ body
     @media (prefers-reduced-motion: reduce)
         *
             transition-duration: 0s !important
-    &:not(.is-loaded)
-        *
-            transition-duration: 0s !important
+    // &:not(.is-loaded)
+    //     *
+    //         transition-duration: 0s !important
 
 
 main
diff --git a/assets/sass/_theme/design-system/nav.sass b/assets/sass/_theme/design-system/nav.sass
index c062254a..3cdd4a4c 100644
--- a/assets/sass/_theme/design-system/nav.sass
+++ b/assets/sass/_theme/design-system/nav.sass
@@ -50,8 +50,10 @@
             @include grid(1)
         > li
             > a, span
-                padding: $spacing1
+                @include icon('caret', 'after')
                 display: block
+                padding: $spacing1
+
             &:last-child a
                 padding-right: 0
         li.has-children
@@ -111,20 +113,31 @@
                         + .dropdown-menu
                             display: block
 
+// TODO : Est-ce au bon endroit ?
 body
     &::after
+        @include inset(0)
         background-color: $body-overlay-color
         content: ""
-        display: none
-        inset: 82px 0 0 0
+        pointer-events: none
         position: fixed
+        opacity: 0
+        visibility: hidden
+        transition: opacity $header-transition
         z-index: $zindex-body-overlay
+
     html.has-menu-opened &
         &::after
             display: block
-            animation-duration: $header-dropdown-transition
-            animation-fill-mode: both
-            animation-name: showIn
+            opacity: 1
+            pointer-events: inherit
+            visibility: inherit
+
+    html.is-animating:not(.has-menu-opened) &
+        &::after
+            display: block
+            visibility: inherit
+            opacity: 0
 
 .share
     display: flex
diff --git a/assets/sass/_theme/sections/diplomas.sass b/assets/sass/_theme/sections/diplomas.sass
index 956e6c7b..6063a041 100644
--- a/assets/sass/_theme/sections/diplomas.sass
+++ b/assets/sass/_theme/sections/diplomas.sass
@@ -15,3 +15,34 @@ ul.diplomas
                         width: col(6)
             .title
                 @extend .h4
+
+.diplomas-select
+    text-align: right
+    position: relative
+    @extend .h3
+    button
+        @include button-reset
+        @include icon('caret', 'after')
+
+    .dropdown-menu
+        @include inset(100%, 0, auto, auto)
+        background-color: black
+        position: absolute
+        @include media-breakpoint-down(md)
+            // padding-left: $container-gutter-width
+            // padding-right: $container-gutter-width
+        &,
+        a
+            color: white
+            display: block
+        a
+            padding: $spacing0
+            white-space: normal
+            &:not(:first-child)
+                border-top: 1px solid $main-border-color
+            @include media-breakpoint-up(md)
+                font-size: px2rem(22)
+            &:hover
+                background-color: lighten(black, 3)
+            &:focus
+                color: black
\ No newline at end of file
-- 
GitLab