diff --git a/src/components/Legal.astro b/src/components/Legal.astro
new file mode 100644
index 0000000..6695cec
--- /dev/null
+++ b/src/components/Legal.astro
@@ -0,0 +1,13 @@
+---
+import LegalDate from './LegalDate.svelte';
+import { site } from '../data/site';
+---
+
+
+ ©
+ {site.author}
+ /
+
+
+
+
diff --git a/src/components/LegalDate.svelte b/src/components/LegalDate.svelte
new file mode 100644
index 0000000..bbe460f
--- /dev/null
+++ b/src/components/LegalDate.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/components/PageFooter.astro b/src/components/PageFooter.astro
new file mode 100644
index 0000000..0424987
--- /dev/null
+++ b/src/components/PageFooter.astro
@@ -0,0 +1,16 @@
+---
+import Legal from './Legal.astro';
+import SocialLinks from './SocialLinks.astro';
+import UpLink from './UpLink.astro';
+---
+
+
diff --git a/src/components/SocialLinks.astro b/src/components/SocialLinks.astro
new file mode 100644
index 0000000..4d50a77
--- /dev/null
+++ b/src/components/SocialLinks.astro
@@ -0,0 +1,22 @@
+---
+import { Sprite } from 'astro-icon';
+import data from '../data/social-links.json';
+---
+
+
+ {
+ data.map(({ text, url, icon, props = {} }) => (
+
+
+
+ ))
+ }
+
diff --git a/src/components/ThemeBox.svelte b/src/components/ThemeBox.svelte
index b732927..4dc47c8 100644
--- a/src/components/ThemeBox.svelte
+++ b/src/components/ThemeBox.svelte
@@ -1,5 +1,5 @@
+
diff --git a/src/data/site.ts b/src/data/site.ts
new file mode 100644
index 0000000..cbd50bc
--- /dev/null
+++ b/src/data/site.ts
@@ -0,0 +1,3 @@
+export const site = {
+ author: 'Stefan Imhoff',
+};
diff --git a/src/data/social-links.json b/src/data/social-links.json
new file mode 100644
index 0000000..1f622d9
--- /dev/null
+++ b/src/data/social-links.json
@@ -0,0 +1,23 @@
+[
+ {
+ "text": "Mail",
+ "url": "#protected-email",
+ "icon": "ri:mail-fill",
+ "props": {
+ "data-domain": "stefanimhoff",
+ "data-name": "hey",
+ "data-tld": "de",
+ "onclick": "window.open(`mailto:${this.dataset.name}@${this.dataset.domain}.${this.dataset.tld}`, '_blank')"
+ }
+ },
+ {
+ "text": "Twitter",
+ "url": "https://twitter.com/kogakure",
+ "icon": "ri:twitter-fill"
+ },
+ {
+ "text": "GitHub",
+ "url": "https://github.com/kogakure",
+ "icon": "ri:github-fill"
+ }
+]
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index e5bb49b..9ade1a2 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -4,6 +4,7 @@ import { Sprite } from 'astro-icon';
import ThemeProvider from '../components/ThemeProvider.astro';
import PageHeader from '../components/PageHeader.astro';
+import PageFooter from '../components/PageFooter.astro';
export interface Props {
title: string;
@@ -57,9 +58,7 @@ const { title, backLink } = Astro.props;
-
+