fix: scroll behaviour

finxol.io 6f7a7ced 787a1ee3

verified
Changed files
+75 -69
src
layouts
+75 -69
src/layouts/Layout.astro
···
<title>Colin Ozanne</title>
</head>
<body>
-
<header>
-
<picture class="container">
-
<source srcset={colinWebp.src} type="image/webp" />
-
<img src={colinPng.src} alt="Colin Ozanne" />
-
</picture>
-
<h1 class="container">Colin <br class="desktop-only" /> Ozanne</h1>
-
<p class="container">{subtitle}</p>
-
</header>
-
<main class="">
-
<slot />
-
</main>
-
<footer>
-
<div class="container lang-switcher">
+
<aside>
+
<header>
+
<picture class="container">
+
<source srcset={colinWebp.src} type="image/webp" />
+
<img src={colinPng.src} alt="Colin Ozanne" />
+
</picture>
+
<h1 class="container">
+
Colin <br class="desktop-only" /> Ozanne
+
</h1>
+
<p class="container">{subtitle}</p>
+
</header>
+
<footer>
+
<div class="container lang-switcher">
+
<a
+
class={locale === "en" ? "active" : ""}
+
href={`${config.domains.en}${path}`}
+
target="_self"
+
>
+
EN
+
</a>
+
<Icon name="pixel:globe" />
+
<a
+
class={locale === "fr" ? "active" : ""}
+
href={`${config.domains.fr}${path}`}
+
target="_self"
+
>
+
FR
+
</a>
+
</div>
+
<a
-
class={locale === "en" ? "active" : ""}
-
href={`${config.domains.en}${path}`}
-
target="_self"
+
href="mailto:contact@colinozanne.fr"
+
target="_blank"
+
rel="noopener noreferrer"
+
class="container"
>
-
EN
+
<Icon name="pixel:envelope" />
+
<span> Email </span>
+
<Icon name="pixel:external-link" class="external-link" />
</a>
-
<Icon name="pixel:globe" />
<a
-
class={locale === "fr" ? "active" : ""}
-
href={`${config.domains.fr}${path}`}
-
target="_self"
+
href="https://www.linkedin.com/in/colin-ozanne/"
+
target="_blank"
+
rel="noopener noreferrer"
+
class="container"
>
-
FR
+
<Icon name="pixel:linkedin" />
+
<span> Linkedin </span>
+
<Icon name="pixel:external-link" class="external-link" />
</a>
-
</div>
-
-
<a
-
href="mailto:contact@colinozanne.fr"
-
target="_blank"
-
rel="noopener noreferrer"
-
class="container"
-
>
-
<Icon name="pixel:envelope" />
-
<span> Email </span>
-
<Icon name="pixel:external-link" class="external-link" />
-
</a>
-
<a
-
href="https://www.linkedin.com/in/colin-ozanne/"
-
target="_blank"
-
rel="noopener noreferrer"
-
class="container"
-
>
-
<Icon name="pixel:linkedin" />
-
<span> Linkedin </span>
-
<Icon name="pixel:external-link" class="external-link" />
-
</a>
-
<a
-
href="https://finxol.io"
-
target="_blank"
-
rel="noopener noreferrer"
-
class="container"
-
>
-
<Icon name="pixel:pen-nib" />
-
<span> Blog </span>
-
<Icon name="pixel:external-link" class="external-link" />
-
</a>
-
<p class="container">
-
&copy; {new Date().getFullYear()} Colin Ozanne
-
</p>
-
</footer>
+
<a
+
href="https://finxol.io"
+
target="_blank"
+
rel="noopener noreferrer"
+
class="container"
+
>
+
<Icon name="pixel:pen-nib" />
+
<span> Blog </span>
+
<Icon name="pixel:external-link" class="external-link" />
+
</a>
+
<p class="container">
+
&copy; {new Date().getFullYear()} Colin Ozanne
+
</p>
+
</footer>
+
</aside>
+
<main class="">
+
<slot />
+
</main>
</body>
</html>
···
body {
width: 100%;
display: grid;
-
height: 100svh;
grid-template-columns: clamp(15rem, 20vw, 30rem) auto;
grid-template-rows: 1fr auto;
grid-auto-flow: row;
-
grid-template-areas:
-
"header main"
-
"footer main";
+
grid-template-areas: "aside main";
gap: 0;
font-family: "Scorekard", sans-serif;
-
header {
-
grid-area: header;
-
}
-
-
footer {
-
grid-area: footer;
+
& > aside {
+
position: sticky;
+
top: 0;
+
bottom: 0;
+
grid-area: aside;
+
display: flex;
+
flex-direction: column;
+
align-items: center;
+
justify-content: space-between;
+
height: max-content;
+
min-height: 100svh;
}
-
main {
+
& > main {
grid-area: main;
}