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> ); }; |
