diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-10-25 18:33:22 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-11-11 18:15:27 +0100 |
| commit | 9aeb82269d7c74c4566b7ca254782a4dfbd69a6e (patch) | |
| tree | e2ab930204cbcf20cebaa6125ea022f050d973af /src/components/templates/layout/layout.module.scss | |
| parent | c21a137e1991af1331fe5768fc6bac15ea9230b1 (diff) | |
refactor(components): remove SiteHeader and SiteFooter components
They do not help to make the layout more readable (on the contrary I
think...) so the props drilling is useless.
Diffstat (limited to 'src/components/templates/layout/layout.module.scss')
| -rw-r--r-- | src/components/templates/layout/layout.module.scss | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/components/templates/layout/layout.module.scss b/src/components/templates/layout/layout.module.scss index 4f00742..4695948 100644 --- a/src/components/templates/layout/layout.module.scss +++ b/src/components/templates/layout/layout.module.scss @@ -33,7 +33,22 @@ } .header { + display: grid; + grid-template-columns: + minmax(0, 1fr) min(calc(100vw - calc(var(--spacing-md) * 2)), 100ch) + minmax(0, 1fr); + align-items: center; + padding: var(--spacing-md) 0 var(--spacing-lg); border-bottom: fun.convert-px(3) solid var(--color-border-light); + + &__body { + grid-column: 2; + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: space-between; + gap: var(--spacing-md); + } } .brand { @@ -62,6 +77,36 @@ } } +.toolbar { + justify-content: space-around; + position: fixed; + bottom: 0; + left: 0; + z-index: 5; + background: var(--color-bg); + border-top: fun.convert-px(4) solid; + border-image: radial-gradient( + ellipse at top, + var(--color-primary-lighter) 20%, + var(--color-primary) 100% + ) + 1; + box-shadow: 0 fun.convert-px(-2) fun.convert-px(3) fun.convert-px(-1) + var(--color-shadow-dark); + + @include mix.media("screen") { + @include mix.dimensions("sm") { + justify-content: flex-end; + width: auto; + position: relative; + left: unset; + background: inherit; + border: none; + box-shadow: none; + } + } +} + .main { flex: 1; } @@ -80,10 +125,30 @@ } .footer { + display: flex; + flex-flow: column wrap; + gap: var(--spacing-xs); + place-items: center; + place-content: center; + padding: var(--spacing-md) 0 calc(var(--toolbar-size) + var(--spacing-md)); border-top: fun.convert-px(3) solid var(--color-border-light); + + @include mix.media("screen") { + @include mix.dimensions("sm") { + --toolbar-size: 0px; + + flex-flow: row wrap; + font-size: var(--font-size-sm); + } + } } .back-to-top { + position: fixed; + bottom: calc(var(--toolbar-size, 0px) + var(--spacing-md)); + right: var(--spacing-md); + transition: all 0.4s ease-in 0s; + &--hidden { opacity: 0; transform: translateY(calc(var(--button-height) + var(--spacing-md))); |
