diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-01-10 18:17:40 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-01-11 02:24:44 +0100 |
| commit | 6315efacd6212a347877102a68f430fffa4ca4ac (patch) | |
| tree | b067fb4a1855f881b15e4e11ee161dda778150f9 /src/components | |
| parent | cd1078e3a6ddb1b1598723beec4905c123ee85a6 (diff) | |
refactor(sidebar): use a component to avoid styles repetition
I also fix some overflow/sticky issues.
I have to set overflow auto only when there is no button-like
links otherwise, with translate, the button is cropped on hover.
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/PostsList/PostsList.tsx | 2 | ||||
| -rw-r--r-- | src/components/Sidebar/Sidebar.module.scss | 36 | ||||
| -rw-r--r-- | src/components/Sidebar/Sidebar.tsx | 12 | ||||
| -rw-r--r-- | src/components/ToC/ToC.module.scss | 24 | ||||
| -rw-r--r-- | src/components/Widget/Sharing/Sharing.module.scss | 11 |
5 files changed, 75 insertions, 10 deletions
diff --git a/src/components/PostsList/PostsList.tsx b/src/components/PostsList/PostsList.tsx index 3354dd5..f401d83 100644 --- a/src/components/PostsList/PostsList.tsx +++ b/src/components/PostsList/PostsList.tsx @@ -63,7 +63,7 @@ const PostsList = ({ }); }; - return <>{showYears ? getPostsListByYear() : getPostsList()}</>; + return <div>{showYears ? getPostsListByYear() : getPostsList()}</div>; }; export default PostsList; diff --git a/src/components/Sidebar/Sidebar.module.scss b/src/components/Sidebar/Sidebar.module.scss new file mode 100644 index 0000000..544a733 --- /dev/null +++ b/src/components/Sidebar/Sidebar.module.scss @@ -0,0 +1,36 @@ +@use "@styles/abstracts/mixins" as mix; + +.wrapper { + grid-column: 2; + + @include mix.media("screen") { + @include mix.dimensions("md") { + grid-column: 3; + grid-row: 2; + align-self: stretch; + display: flex; + flex-flow: column nowrap; + position: relative; + visibility: hidden; + + &:hover { + visibility: visible; + } + + > * { + visibility: visible; + } + } + } +} + +.body { + @include mix.media("screen") { + @include mix.dimensions("md") { + align-self: flex-start; + width: 100%; + position: sticky; + top: 0; + } + } +} diff --git a/src/components/Sidebar/Sidebar.tsx b/src/components/Sidebar/Sidebar.tsx new file mode 100644 index 0000000..8c9fa1d --- /dev/null +++ b/src/components/Sidebar/Sidebar.tsx @@ -0,0 +1,12 @@ +import { FunctionComponent } from 'react'; +import styles from './Sidebar.module.scss'; + +const Sidebar: FunctionComponent = ({ children }) => { + return ( + <aside className={styles.wrapper}> + <div className={styles.body}>{children}</div> + </aside> + ); +}; + +export default Sidebar; diff --git a/src/components/ToC/ToC.module.scss b/src/components/ToC/ToC.module.scss index 27e79ad..0f08b87 100644 --- a/src/components/ToC/ToC.module.scss +++ b/src/components/ToC/ToC.module.scss @@ -1,9 +1,25 @@ +@use "@styles/abstracts/mixins" as mix; + .wrapper { - max-height: 100vh; padding-bottom: var(--spacing-sm); - position: sticky; - top: 0; - overflow-y: auto; + + @include mix.media("screen") { + @include mix.dimensions("lg") { + max-height: 100vh; + position: sticky; + top: 0; + overflow: auto; + visibility: hidden; + + > * { + visibility: visible; + } + + &:hover { + visibility: visible; + } + } + } } .list { diff --git a/src/components/Widget/Sharing/Sharing.module.scss b/src/components/Widget/Sharing/Sharing.module.scss index a1ba094..7ecb5ff 100644 --- a/src/components/Widget/Sharing/Sharing.module.scss +++ b/src/components/Widget/Sharing/Sharing.module.scss @@ -3,12 +3,13 @@ @use "@styles/abstracts/placeholders"; .wrapper { - width: min-content; - max-height: 100vh; padding-bottom: var(--spacing-sm); - position: sticky; - top: 0; - overflow-y: auto; + + @include mix.media("screen") { + @include mix.dimensions("md") { + width: min-content; + } + } } .list { |
