diff --git a/frontend/app/components/SocialIcon.vue b/frontend/app/components/SocialIcon.vue
new file mode 100644
index 0000000..a876087
--- /dev/null
+++ b/frontend/app/components/SocialIcon.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
diff --git a/frontend/app/layouts/default.vue b/frontend/app/layouts/default.vue
index 95926f9..1d7d1ee 100644
--- a/frontend/app/layouts/default.vue
+++ b/frontend/app/layouts/default.vue
@@ -77,7 +77,10 @@ const { data: categories } = await useFetch('/api/categories', {
{{ $t('site.follow') }}
@@ -224,6 +227,22 @@ const { data: categories } = await useFetch('/api/categories', {
text-underline-offset: 0.2em;
}
+.social {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.55rem;
+}
+
+/* Keep the underline on the label, not stretched across the icon. */
+.social:hover {
+ text-decoration: none;
+}
+
+.social:hover span {
+ text-decoration: underline;
+ text-underline-offset: 0.2em;
+}
+
.copyright {
padding-top: 1.75rem;
text-align: center;
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index c308e5f..c23c53a 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -10,6 +10,7 @@
"@nuxtjs/i18n": "^10.6.0",
"marked": "^18.0.11",
"nuxt": "^4.5.2",
+ "simple-icons": "^16.28.0",
"vue": "^3.5.41",
"vue-router": "^5.2.0"
},
@@ -10241,6 +10242,25 @@
"url": "https://github.com/steveukx/git-js?sponsor=1"
}
},
+ "node_modules/simple-icons": {
+ "version": "16.28.0",
+ "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-16.28.0.tgz",
+ "integrity": "sha512-sQPR5AtK/ijRjou7zw7mlLp08oB6FH7i0lOy5XJ2zp9mJs/yejgiOn7KvQoe2q4YJIx6VmgUSW5AOefebPt5kg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/simple-icons"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/simple-icons"
+ }
+ ],
+ "license": "CC0-1.0",
+ "engines": {
+ "node": ">=0.12.18"
+ }
+ },
"node_modules/sirv": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 7a029be..69cb7f5 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -14,6 +14,7 @@
"@nuxtjs/i18n": "^10.6.0",
"marked": "^18.0.11",
"nuxt": "^4.5.2",
+ "simple-icons": "^16.28.0",
"vue": "^3.5.41",
"vue-router": "^5.2.0"
},