1
0
Fork 0
mirror of https://github.com/TheTaz25/denis.ergin.git synced 2025-07-06 13:18:49 +00:00

feat(layout): add footer with impressum section

This commit is contained in:
Denis Ergin 2025-01-06 10:12:16 +01:00
parent 9512c81903
commit fbc60211c6
6 changed files with 112 additions and 43 deletions

View file

@ -12,46 +12,10 @@ const currentPath = new URL(Astro.url).pathname.split('/')[1];
</a> </a>
<style lang="scss"> <style lang="scss">
a { a {
text-decoration: none; text-decoration: none;
color: white; color: white;
font-size: large; font-size: large;
position: relative; position: relative;
}
&::after {
font-family: monospace;
content: ".clickable";
transition-property: transform, opacity;
transition-duration: 150ms;
transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
&:not(.current) {
&::after {
opacity: 0;
}
&:hover,
&:focus-within {
&::after {
opacity: 1;
}
}
}
&.current {
&::after {
content: '.current';
transform: translateX(2rem);
transition: transform 100ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
&:hover::after,
&:focus-visible::after {
transform: translateX(1rem);
}
}
}
</style> </style>

View file

@ -0,0 +1,57 @@
---
interface Props {
to: string
}
const { to } = Astro.props;
const currentPath = new URL(Astro.url).pathname.split('/')[1];
---
<a href={to} class={`/${currentPath}` === to ? 'current' : undefined}>
<slot />
</a>
<style lang="scss">
a {
text-decoration: none;
color: white;
font-size: large;
position: relative;
&::after {
font-family: monospace;
content: ".clickable";
transition-property: transform, opacity;
transition-duration: 150ms;
transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
&:not(.current) {
&::after {
opacity: 0;
}
&:hover,
&:focus-within {
&::after {
opacity: 1;
}
}
}
&.current {
&::after {
content: '.current';
transform: translateX(2rem);
transition: transform 100ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
&:hover::after,
&:focus-visible::after {
transform: translateX(1rem);
}
}
}
</style>

View file

@ -0,0 +1,19 @@
---
import Link from "./atoms/Link.astro"
---
<footer>
<div class="col">
<Link to="/impressum">Impressum</Link>
</div>
</footer>
<style lang="scss">
footer {
min-height: 50px;
display: grid;
grid-template-columns: 1fr;
margin: 2rem;
}
</style>

View file

@ -1,7 +1,7 @@
--- ---
import { Icon } from 'astro-icon/components'; import { Icon } from 'astro-icon/components';
import Button from './atoms/Button.astro'; import Button from './atoms/Button.astro';
import Link from './atoms/Link.astro'; import Link from './atoms/MenuLink.astro';
--- ---
<div class="nav-wrapper"> <div class="nav-wrapper">

View file

@ -1,5 +1,6 @@
--- ---
import Navigation from '../components/nav.astro' import Navigation from '../components/nav.astro'
import Footer from '../components/footer.astro'
import { getLangFromUrl } from '../i18n/utils'; import { getLangFromUrl } from '../i18n/utils';
import '../styles/global.css' import '../styles/global.css'
@ -29,6 +30,7 @@ const lang = getLangFromUrl(Astro.url);
<main> <main>
<slot /> <slot />
</main> </main>
<Footer />
</body> </body>
</html> </html>
<style is:global lang="scss"> <style is:global lang="scss">
@ -40,6 +42,9 @@ const lang = getLangFromUrl(Astro.url);
body { body {
max-width: 1200px; max-width: 1200px;
margin: 0 auto; margin: 0 auto;
display: grid;
grid-template-rows: auto 1fr auto;
min-height: 100vh;
} }
code { code {
font-family: font-family:

24
src/pages/impressum.astro Normal file
View file

@ -0,0 +1,24 @@
---
import Layout from "../layouts/Layout.astro";
---
<Layout title="Impressum">
<h1>Impressum</h1>
<p style="margin-bottom: 3rem;">
Angaben gemäß § 5 TMG:
<br><br>
Denis Ergin <br>
Albgaustraße 3a <br>
76337 Waldbronn
<br><br>
Kontakt: <br>
E-Mail: kontakt@denis-ergin.de
</p>
<p>
Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:
<br>
Denis Ergin <br>
Albgaustraße 3a <br>
76337 Waldbronn
</p>
</Layout>