feat: add self-hosted Alegreya, Plantin, and Redaction font families and move Google Fonts links

This commit is contained in:
Jaron
2026-05-01 09:54:25 -05:00
parent 0d492560d2
commit 5e85800156
94 changed files with 273 additions and 37 deletions
+17 -1
View File
@@ -2,7 +2,23 @@
import '~/assets/css/main.css'; import '~/assets/css/main.css';
useHead({ useHead({
link: [{ rel: 'icon', type: 'image/png', href: '/favicon.png' }], link: [
{ rel: 'icon', type: 'image/png', href: '/favicon.png' },
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
{
rel: 'preconnect',
href: 'https://fonts.gstatic.com',
crossorigin: '',
},
{
rel: 'stylesheet',
href: 'https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&display=swap',
},
{
rel: 'stylesheet',
href: 'https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap',
},
],
}); });
</script> </script>
+239
View File
@@ -0,0 +1,239 @@
@font-face {
font-family: 'SohneBuch';
src:
url('~/assets/fonts/Sohne/Sohne-Buch.woff') format('woff'),
url('~/assets/fonts/Sohne/Sohne-Buch.ttf') format('truetype');
font-display: swap;
}
/* Plantin MT Pro */
@font-face {
font-family: 'Plantin MT Pro';
src: url('~/assets/fonts/Plantin MT Pro/PlantinMTProRg.TTF')
format('truetype');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Plantin MT Pro';
src: url('~/assets/fonts/Plantin MT Pro/PlantinMTProRgIt.TTF')
format('truetype');
font-weight: 400;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'Plantin MT Pro';
src: url('~/assets/fonts/Plantin MT Pro/PlantinMTProBold.TTF')
format('truetype');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Plantin MT Pro';
src: url('~/assets/fonts/Plantin MT Pro/PlantinMTProBoldIt.TTF')
format('truetype');
font-weight: 700;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: 'Plantin MT Pro';
src: url('~/assets/fonts/Plantin MT Pro/PlantinMTProLight.TTF')
format('truetype');
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Plantin MT Pro';
src: url('~/assets/fonts/Plantin MT Pro/PlantinMTProLightIt.TTF')
format('truetype');
font-weight: 300;
font-style: italic;
font-display: swap;
}
/* Redaction */
@font-face {
font-family: 'Redaction';
src: url('~/assets/fonts/Redaction/Redaction-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction';
src: url('~/assets/fonts/Redaction/Redaction-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction';
src: url('~/assets/fonts/Redaction/Redaction-Italic.woff2') format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
/* Redaction 10 */
@font-face {
font-family: 'Redaction 10';
src: url('~/assets/fonts/Redaction/Redaction_10-Regular.woff2')
format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 10';
src: url('~/assets/fonts/Redaction/Redaction_10-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 10';
src: url('~/assets/fonts/Redaction/Redaction_10-Italic.woff2')
format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
/* Redaction 20 */
@font-face {
font-family: 'Redaction 20';
src: url('~/assets/fonts/Redaction/Redaction_20-Regular.woff2')
format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 20';
src: url('~/assets/fonts/Redaction/Redaction_20-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 20';
src: url('~/assets/fonts/Redaction/Redaction_20-Italic.woff2')
format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
/* Redaction 35 */
@font-face {
font-family: 'Redaction 35';
src: url('~/assets/fonts/Redaction/Redaction_35-Regular.woff2')
format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 35';
src: url('~/assets/fonts/Redaction/Redaction_35-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 35';
src: url('~/assets/fonts/Redaction/Redaction_35-Italic.woff2')
format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
/* Redaction 50 */
@font-face {
font-family: 'Redaction 50';
src: url('~/assets/fonts/Redaction/Redaction_50-Regular.woff2')
format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 50';
src: url('~/assets/fonts/Redaction/Redaction_50-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 50';
src: url('~/assets/fonts/Redaction/Redaction_50-Italic.woff2')
format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
/* Redaction 70 */
@font-face {
font-family: 'Redaction 70';
src: url('~/assets/fonts/Redaction/Redaction_70-Regular.woff2')
format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 70';
src: url('~/assets/fonts/Redaction/Redaction_70-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 70';
src: url('~/assets/fonts/Redaction/Redaction_70-Italic.woff2')
format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
/* Redaction 100 */
@font-face {
font-family: 'Redaction 100';
src: url('~/assets/fonts/Redaction/Redaction_100-Regular.woff2')
format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 100';
src: url('~/assets/fonts/Redaction/Redaction_100-Bold.woff2')
format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Redaction 100';
src: url('~/assets/fonts/Redaction/Redaction_100-Italic.woff2')
format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
}
@import url('https://fonts.googleapis.com/css2?family=Young+Serif&display=swap');
+8 -10
View File
@@ -1,15 +1,14 @@
@import './fonts.css';
@font-face {
font-family: 'SohneBuch';
src:
url('~/assets/fonts/Sohne/Sohne-Buch.woff') format('woff'),
url('~/assets/fonts/Sohne/Sohne-Buch.ttf') format('truetype');
}
:root { :root {
/* --font: 'Baskervville', serif; */ /* --font: 'Baskervville', serif; */
--font: 'EB Garamond', serif; /* --font: 'EB Garamond', serif; */
/* --font: 'Plantin MT Pro', serif; */
--font: 'Redaction', serif;
/* --font: 'Young Serif', serif; */
/* --font: "SohneBuch", sans-serif; */ /* --font: "SohneBuch", sans-serif; */
--font-hover: 'Redaction 70', serif;
/* --font-hover: var(--font); */
--text: #333; --text: #333;
--muted: #666; --muted: #666;
--bg: #fbfbf7; --bg: #fbfbf7;
@@ -73,7 +72,6 @@ body {
mix-blend-mode: screen; mix-blend-mode: screen;
} }
.punch-link:hover { .punch-link:hover {
background-size: 100% 100%; background-size: 100% 100%;
background-image: linear-gradient(#fff, #fff); background-image: linear-gradient(#fff, #fff);
@@ -96,4 +94,4 @@ body {
.back-link:hover .arrow { .back-link:hover .arrow {
transform: translateX(-4px); transform: translateX(-4px);
} }
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9 -26
View File
@@ -23,22 +23,6 @@ rotateTitle();
useHead({ useHead({
title: pageTitle, title: pageTitle,
link: [
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
{
rel: 'preconnect',
href: 'https://fonts.gstatic.com',
crossorigin: '',
},
{
rel: 'stylesheet',
href: 'https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&display=swap',
},
{
rel: 'stylesheet',
href: 'https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap',
},
],
}); });
definePageMeta({ definePageMeta({
@@ -69,8 +53,7 @@ definePageMeta({
> >
<h3 class="project__title">Unicord</h3> <h3 class="project__title">Unicord</h3>
<p class="project__description"> <p class="project__description">
Discord bot SDK inspired by webserver Discord bot SDK inspired by webserver architecture.
architecture.
</p> </p>
</a> </a>
<a <a
@@ -80,8 +63,8 @@ definePageMeta({
> >
<h3 class="project__title">Rune Buddy</h3> <h3 class="project__title">Rune Buddy</h3>
<p class="project__description"> <p class="project__description">
League of Legends runepage manager. Save & League of Legends runepage manager. Save & organise your
organise your pages for free. pages for free.
</p> </p>
</a> </a>
</div> </div>
@@ -90,12 +73,11 @@ definePageMeta({
<h5>About</h5> <h5>About</h5>
<div class="section__content"> <div class="section__content">
<p> <p>
I work across the full stack; backend, frontend, and I work across the full stack; backend, frontend, and the
the product decisions in between. My favorite side product decisions in between. My favorite side projects are
projects are ones that bring me new skills. Even ones that bring me new skills. Even better are ones where I
better are ones where I solve a problem or build a solve a problem or build a tool I can use. I'm always open
tool I can use. I'm always open to interesting work to interesting work and conversations.
and conversations.
</p> </p>
</div> </div>
</section> </section>
@@ -164,6 +146,7 @@ section:last-of-type {
text-decoration: underline; text-decoration: underline;
text-underline-offset: 4px; text-underline-offset: 4px;
font-style: italic; font-style: italic;
font-family: var(--font-hover);
} }
.project__title { .project__title {