diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-20 19:06:49 +0100 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-20 19:06:49 +0100 | 
| commit | 43cdb7607d9423109758334155acfe844eab6ea5 (patch) | |
| tree | 0798fbb6f00bfbdbc3bd64759ffdb305dee43f0c /src/components/Toolbar | |
| parent | f9df5cbce7db38ce83cc8b40346c9cabde5debc4 (diff) | |
chore: define search form visibility
Diffstat (limited to 'src/components/Toolbar')
| -rw-r--r-- | src/components/Toolbar/Toolbar.module.scss | 53 | ||||
| -rw-r--r-- | src/components/Toolbar/Toolbar.tsx | 8 | 
2 files changed, 59 insertions, 2 deletions
| diff --git a/src/components/Toolbar/Toolbar.module.scss b/src/components/Toolbar/Toolbar.module.scss index df1ad7e..18212a2 100644 --- a/src/components/Toolbar/Toolbar.module.scss +++ b/src/components/Toolbar/Toolbar.module.scss @@ -16,11 +16,12 @@    left: 0;    z-index: 5;    background: var(--color-bg); -  box-shadow: 0 fun.convert-px(-1) fun.convert-px(3) 0 var(--color-shadow); +  box-shadow: 0 fun.convert-px(-2) fun.convert-px(3) fun.convert-px(-1) +    var(--color-shadow);    @include mix.media("screen") {      @include mix.dimensions(null, "2xs", "height") { -      --toolbar-size: #{fun.convert-px(50)}; +      --toolbar-size: #{fun.convert-px(52)};        --btn-size: #{fun.convert-px(42)};      } @@ -37,3 +38,51 @@      }    }  } + +.search { +  padding: var(--spacing-md); +  position: absolute; +  bottom: 100%; +  left: 0; +  right: 0; +  background: var(--color-bg); +  box-shadow: fun.convert-px(2) fun.convert-px(-2) fun.convert-px(3) +    fun.convert-px(-1) var(--color-shadow); +  transition: all 0.7s ease-in-out 0s; + +  &--closed { +    transform: translateX(-100%); +    visibility: hidden; +  } + +  &--opened { +    transform: translateX(0); +    visibility: visible; +  } + +  @include mix.media("screen") { +    @include mix.dimensions("sm") { +      width: fun.convert-px(500); +      left: unset; +      right: unset; +      top: 200%; +      bottom: unset; +      background: var(--color-bg-opacity); +      box-shadow: fun.convert-px(2) fun.convert-px(2) fun.convert-px(3) +        fun.convert-px(1) var(--color-shadow); +      transform-origin: 100% -200%; +      transition: all 0.8s ease-in-out 0s; + +      &--closed { +        opacity: 0; +        transform: perspective(20rem) translate3d(0, 100%, -20rem); +        visibility: hidden; +      } + +      &--opened { +        opacity: 1; +        transform: none; +      } +    } +  } +} diff --git a/src/components/Toolbar/Toolbar.tsx b/src/components/Toolbar/Toolbar.tsx index 6be2029..fdab76a 100644 --- a/src/components/Toolbar/Toolbar.tsx +++ b/src/components/Toolbar/Toolbar.tsx @@ -1,5 +1,6 @@  import { ButtonSearch } from '@components/Buttons';  import MainNav from '@components/MainNav/MainNav'; +import SearchForm from '@components/SearchForm/SearchForm';  import { useEffect, useState } from 'react';  import styles from './Toolbar.module.scss'; @@ -15,6 +16,10 @@ const Toolbar = () => {      if (isSearchOpened) setIsNavOpened(false);    }, [isSearchOpened]); +  const searchClasses = `${styles.search} ${ +    isSearchOpened ? styles['search--opened'] : styles['search--closed'] +  }`; +    return (      <div className={styles.wrapper}>        <MainNav isOpened={isNavOpened} setIsOpened={setIsNavOpened} /> @@ -22,6 +27,9 @@ const Toolbar = () => {          isActivated={isSearchOpened}          setIsActivated={setIsSearchOpened}        /> +      <div className={searchClasses}> +        <SearchForm isOpened={isSearchOpened} /> +      </div>      </div>    );  }; | 
