feat: remove backlink

This commit is contained in:
Stefan Imhoff
2026-01-27 17:14:31 +01:00
committed by Stefan Imhoff
parent 30d02803c6
commit 4fd145f387
22 changed files with 26 additions and 91 deletions

View File

@@ -1,35 +0,0 @@
---
import { ArrowLeft } from './icons';
import Link from './Link.astro';
interface Props {
class?: string;
backLink?: string;
}
const { backLink, class: className, ...props } = Astro.props;
---
{
backLink && (
<Link
aria-label="Back to overview"
class:list={[
'col-span-2 col-start-1 h-clickarea w-clickarea items-center justify-center self-center justify-self-center transition-transform duration-500 ease-in-out hover:-translate-x-1 focus:-translate-x-1 md:col-span-1 print:hidden',
className,
]}
data-umami-event="Back to overview"
href={backLink}
{...props}
>
<button
aria-hidden="true"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center border-none text-[0]"
type="button"
tabindex={-1}
>
<ArrowLeft aria-hidden="true" className="icon h-icon w-icon" />
</button>
</Link>
)
}

View File

@@ -1,15 +1,13 @@
--- ---
import Backlink from '../components/Backlink.astro';
import MainNavigation from '../components/MainNavigation.astro'; import MainNavigation from '../components/MainNavigation.astro';
import ThemeToggle from '../components/ThemeToggle.astro'; import ThemeToggle from '../components/ThemeToggle.astro';
export interface Props { export interface Props {
backLink?: string;
class?: string; class?: string;
navigation?: boolean; navigation?: boolean;
} }
const { backLink, class: className, navigation = true } = Astro.props; const { class: className, navigation = true } = Astro.props;
--- ---
<header <header
@@ -19,7 +17,6 @@ const { backLink, class: className, navigation = true } = Astro.props;
]} ]}
role="banner" role="banner"
> >
<Backlink backLink={backLink} />
{navigation && <MainNavigation />} {navigation && <MainNavigation />}
<ThemeToggle /> <ThemeToggle />
</header> </header>

View File

@@ -28,7 +28,7 @@ const schema = JSON.stringify({
}); });
--- ---
<GridLayout title={frontmatter.title} grid="narrow" backLink="/" {...frontmatter}> <GridLayout title={frontmatter.title} grid="narrow" {...frontmatter}>
<PageTitle grid="narrow" slot="title" {...frontmatter}> <PageTitle grid="narrow" slot="title" {...frontmatter}>
{frontmatter.title} {frontmatter.title}
</PageTitle> </PageTitle>

View File

@@ -12,7 +12,6 @@ import SearchModal from '../components/SearchModal.astro';
import Scripts from '../components/Scripts.astro'; import Scripts from '../components/Scripts.astro';
export interface Props { export interface Props {
backLink?: string;
cover?: string; cover?: string;
description?: string; description?: string;
footer?: boolean; footer?: boolean;
@@ -23,7 +22,6 @@ export interface Props {
} }
const { const {
backLink,
description, description,
footer = true, footer = true,
header = true, header = true,
@@ -165,7 +163,7 @@ const webManifest = isProduction && {
class="flex grow flex-col bg-shibui-100 font-sans font-normal leading-relaxed text-shibui-950 common-ligatures dark:bg-shibui-900 dark:text-shibui-200/[0.87]" class="flex grow flex-col bg-shibui-100 font-sans font-normal leading-relaxed text-shibui-950 common-ligatures dark:bg-shibui-900 dark:text-shibui-200/[0.87]"
> >
<div class="flex h-screen grow flex-col"> <div class="flex h-screen grow flex-col">
{header && <PageHeader backLink={backLink} />} {header && <PageHeader />}
<div class="page-content flex grow"> <div class="page-content flex grow">
<main class="h-full w-full" {...pagefind}> <main class="h-full w-full" {...pagefind}>
<slot /> <slot />

View File

@@ -2,7 +2,6 @@
import BaseLayout from './BaseLayout.astro'; import BaseLayout from './BaseLayout.astro';
export interface Props { export interface Props {
backLink?: string;
class?: string; class?: string;
cover?: string; cover?: string;
description?: string; description?: string;
@@ -18,7 +17,6 @@ export interface Props {
} }
const { const {
backLink,
class: className, class: className,
cover, cover,
description, description,
@@ -35,7 +33,6 @@ const {
--- ---
<BaseLayout <BaseLayout
backLink={backLink}
cover={cover} cover={cover}
description={description} description={description}
footer={footer} footer={footer}

View File

@@ -12,7 +12,6 @@ const description = 'Page not found.';
--- ---
<GridLayout <GridLayout
backLink="/"
class="grid" class="grid"
description={description} description={description}
grid="wide" grid="wide"

View File

@@ -78,7 +78,6 @@ const schema = JSON.stringify({
--- ---
<GridLayout <GridLayout
backLink="/journal/"
cover={entry.data.cover} cover={entry.data.cover}
description={description} description={description}
grid="fullsize" grid="fullsize"

View File

@@ -3,7 +3,6 @@ layout: ../layouts/AboutLayout.astro
title: About title: About
updated: 2025-12-15 updated: 2025-12-15
description: Im Stefan Imhoff, a Web Developer from Hamburg, Germany. description: Im Stefan Imhoff, a Web Developer from Hamburg, Germany.
backLink: /
--- ---
import { mapping } from "../mdx-components.ts"; import { mapping } from "../mdx-components.ts";

View File

@@ -22,7 +22,6 @@ const description = 'The resume of Stefan Imhoff, Senior Software Engineer from
--- ---
<GridLayout <GridLayout
backLink="/"
class="grid" class="grid"
description={description} description={description}
grid="wide" grid="wide"
@@ -93,19 +92,20 @@ const description = 'The resume of Stefan Imhoff, Senior Software Engineer from
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Accelerated XING Design System adoption by 278%</strong> (cumulative growth <strong>Accelerated XING Design System adoption by 278%</strong> (cumulative growth
by Q3 2025), successfully deprecating legacy systems and reducing technical debt through by Q3 2025), successfully deprecating legacy systems and reducing technical debt
aggressive migration strategies acknowledged as <q>technically demanding</q> successes. through aggressive migration strategies acknowledged as <q
>technically demanding</q
> successes.
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Spearheaded WCAG 2.2 AA compliance</strong> for the EU Accessibility Act, <strong>Spearheaded WCAG 2.2 AA compliance</strong> for the EU Accessibility Act,
conducting comprehensive audits on 50+ core components and implementing semantic standards, conducting comprehensive audits on 50+ core components and implementing semantic
focus management, and high-contrast support. standards, focus management, and high-contrast support.
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Recognized as a <q>Role Model for AI Tooling</q></strong> by leadership, integrating <strong>Recognized as a <q>Role Model for AI Tooling</q></strong> by leadership,
generative AI into daily workflows for debugging and documentation, and winning <strong integrating generative AI into daily workflows for debugging and documentation, and
>2nd Place in the 2023 AI Hackweek</strong winning <strong>2nd Place in the 2023 AI Hackweek</strong> for profile image generation.
> for profile image generation.
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Engineered a scalable Dark Mode architecture</strong> by creating a dual-mode <strong>Engineered a scalable Dark Mode architecture</strong> by creating a dual-mode
@@ -119,8 +119,8 @@ const description = 'The resume of Stefan Imhoff, Senior Software Engineer from
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Lead the technical upgrade to Styled Components</strong> and TypeScript modernization, <strong>Lead the technical upgrade to Styled Components</strong> and TypeScript modernization,
refactoring complex types and eliminating “snowflake” implementations to enhance build refactoring complex types and eliminating “snowflake” implementations to enhance
performance and developer experience. build performance and developer experience.
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Mentored junior engineers and working students</strong> through dedicated <strong>Mentored junior engineers and working students</strong> through dedicated
@@ -145,7 +145,8 @@ const description = 'The resume of Stefan Imhoff, Senior Software Engineer from
<Text> <Text>
<em <em
>Key contributor to high-traffic product verticals including Onboarding, SEO, >Key contributor to high-traffic product verticals including Onboarding, SEO,
Mobile, and Jobs. Consistently rated <q>Expectations Clearly Exceeded</q> (2018, 2019).</em Mobile, and Jobs. Consistently rated <q>Expectations Clearly Exceeded</q> (2018,
2019).</em
> >
</Text> </Text>
@@ -177,9 +178,9 @@ const description = 'The resume of Stefan Imhoff, Senior Software Engineer from
Vitals. Vitals.
</ListItem> </ListItem>
<ListItem> <ListItem>
<strong>Pioneered the first production usage of CSS Grid</strong> at XING during the <strong>Pioneered the first production usage of CSS Grid</strong> at XING during
relaunch of Public Search, setting the standard for modern layout implementation across the relaunch of Public Search, setting the standard for modern layout implementation
the company. across the company.
</ListItem> </ListItem>
</UnorderedList> </UnorderedList>

View File

@@ -20,7 +20,7 @@ const description =
'This is an ever-growing collection of Haiku I have written. My Haiku reflect my own unique perspective on the world, and I hope they bring a bit of beauty and insight to the reader.'; 'This is an ever-growing collection of Haiku I have written. My Haiku reflect my own unique perspective on the world, and I hope they bring a bit of beauty and insight to the reader.';
--- ---
<GridLayout title={title} description={description} grid="wide" backLink="/" class="grid" innerGrid> <GridLayout title={title} description={description} grid="wide" class="grid" innerGrid>
<PageTitle grid="wide" innerGrid>Haiku</PageTitle> <PageTitle grid="wide" innerGrid>Haiku</PageTitle>
<article <article

View File

@@ -37,7 +37,6 @@ const description = `Haiku ${entry.slug} in German and English.`;
<PageHeader <PageHeader
class="z-10 col-span-full row-start-1 bg-transparent !mbe-0 dark:bg-transparent" class="z-10 col-span-full row-start-1 bg-transparent !mbe-0 dark:bg-transparent"
navigation={false} navigation={false}
backLink="/haiku/"
/> />
<div <div
class="min-[700px]:grid-cols-[repeat(auto-fit,_minmax(25rem,_1fr)] col-span-full row-start-1 row-end-3 grid w-full grid-cols-[repeat(auto-fit,_minmax(15rem,_1fr))] print:block" class="min-[700px]:grid-cols-[repeat(auto-fit,_minmax(25rem,_1fr)] col-span-full row-start-1 row-end-3 grid w-full grid-cols-[repeat(auto-fit,_minmax(15rem,_1fr))] print:block"

View File

@@ -4,7 +4,6 @@ title: Imprint
description: The imprint of this website. description: The imprint of this website.
noindex: true noindex: true
nofollow: true nofollow: true
backLink: /
--- ---
import { mapping } from "../mdx-components.ts"; import { mapping } from "../mdx-components.ts";

View File

@@ -24,7 +24,7 @@ const title = 'Journal';
const description = 'I am writing essays about various topics in this Journal.'; const description = 'I am writing essays about various topics in this Journal.';
--- ---
<GridLayout title={title} description={description} grid="wide" backLink="/" innerGrid> <GridLayout title={title} description={description} grid="wide" innerGrid>
<PageTitle grid="wide" innerGrid>Journal</PageTitle> <PageTitle grid="wide" innerGrid>Journal</PageTitle>
<article <article

View File

@@ -7,7 +7,6 @@ description: This site serves as an extensive collection of libertarian resource
updated: 2025-06-13 updated: 2025-06-13
intro: Libertarianism is a political philosophy and movement that upholds liberty as a core principle. intro: Libertarianism is a political philosophy and movement that upholds liberty as a core principle.
cover: /assets/images/cover/anarcho-capitalist-city.webp cover: /assets/images/cover/anarcho-capitalist-city.webp
backLink: /
--- ---
import { mapping } from "../mdx-components.ts"; import { mapping } from "../mdx-components.ts";

View File

@@ -4,7 +4,6 @@ title: Life Rules
updated: 2025-06-26 updated: 2025-06-26
description: My personal rules and principles for living a meaningful life. A guide to how I try to navigate life. description: My personal rules and principles for living a meaningful life. A guide to how I try to navigate life.
intro: These are the rules, beliefs, and principles that guide my life. intro: These are the rules, beliefs, and principles that guide my life.
backLink: /
--- ---
import { mapping } from "../mdx-components.ts"; import { mapping } from "../mdx-components.ts";

View File

@@ -4,7 +4,6 @@ title: Now
updated: 2026-01-25 updated: 2026-01-25
description: This is my Now page, listing the things I currently do. description: This is my Now page, listing the things I currently do.
intro: This is my Now page, a website with the content of what I am focused on at this point in my life. intro: This is my Now page, a website with the content of what I am focused on at this point in my life.
backLink: /
--- ---
import { mapping } from "../mdx-components.ts"; import { mapping } from "../mdx-components.ts";

View File

@@ -20,7 +20,7 @@ const description =
'Im a Frontend Developer by profession. I worked in Design, Editing, and 3D Animation. These are projects I created over the last years.'; 'Im a Frontend Developer by profession. I worked in Design, Editing, and 3D Animation. These are projects I created over the last years.';
--- ---
<GridLayout title={title} description={description} grid="wide" class="grid" backLink="/" innerGrid> <GridLayout title={title} description={description} grid="wide" class="grid" innerGrid>
<PageTitle grid="wide" innerGrid class="">Projects</PageTitle> <PageTitle grid="wide" innerGrid class="">Projects</PageTitle>
<article <article

View File

@@ -41,7 +41,7 @@ const title = entry.data.title;
const description = entry.data.intro || `The detail for project "${entry.data.title}"`; const description = entry.data.intro || `The detail for project "${entry.data.title}"`;
--- ---
<GridLayout title={title} description={description} grid="narrow" innerGrid backLink="/projects/"> <GridLayout title={title} description={description} grid="narrow" innerGrid>
<PageTitle slot="title"> <PageTitle slot="title">
{entry.data.title} {entry.data.title}
</PageTitle> </PageTitle>

View File

@@ -15,14 +15,7 @@ const title = 'Tags';
const description = 'This is a list of all the tags used in my journal.'; const description = 'This is a list of all the tags used in my journal.';
--- ---
<GridLayout <GridLayout class="grid" description={description} grid="wide" innerGrid title={title}>
backLink="/journal/"
class="grid"
description={description}
grid="wide"
innerGrid
title={title}
>
<PageTitle grid="wide" innerGrid>Tags</PageTitle> <PageTitle grid="wide" innerGrid>Tags</PageTitle>
<aside class="col-start-1 col-end-18 flex flex-wrap gap-y-3"> <aside class="col-start-1 col-end-18 flex flex-wrap gap-y-3">
{uniqueTags.map((t) => <TagComponent href={`/tag/${t}/`}>{t}</TagComponent>)} {uniqueTags.map((t) => <TagComponent href={`/tag/${t}/`}>{t}</TagComponent>)}

View File

@@ -45,14 +45,7 @@ const description = `These are all the articles categorized with the tag "${titl
)}".`; )}".`;
--- ---
<GridLayout <GridLayout title={title} description={description} grid="wide" class="grid" innerGrid>
title={title}
description={description}
grid="wide"
class="grid"
innerGrid
backLink="/journal/"
>
<PageTitle slot="title" class="capitalize"> <PageTitle slot="title" class="capitalize">
{tag} {tag}
</PageTitle> </PageTitle>

View File

@@ -5,7 +5,6 @@ updated: 2025-12-15
description: I enjoy learning how other people work, what hardware, software, tools, and gadgets they use. On this page, I present my tools. description: I enjoy learning how other people work, what hardware, software, tools, and gadgets they use. On this page, I present my tools.
intro: I enjoy learning how other people work, what hardware, software, tools, and gadgets they use. Here, I present my tools. intro: I enjoy learning how other people work, what hardware, software, tools, and gadgets they use. Here, I present my tools.
cover: /assets/images/cover/home-office.webp cover: /assets/images/cover/home-office.webp
backLink: /
--- ---
import { mapping } from "../mdx-components.ts"; import { mapping } from "../mdx-components.ts";

View File

@@ -16,7 +16,7 @@ const description =
'I took the time and converted all colors in the book “Traditional Colors of Japan” by Nobyoshi Hamada into an ASE file free to download.'; 'I took the time and converted all colors in the book “Traditional Colors of Japan” by Nobyoshi Hamada into an ASE file free to download.';
--- ---
<GridLayout title={title} description={description} grid="wide" backLink="/" class="grid" innerGrid> <GridLayout title={title} description={description} grid="wide" class="grid" innerGrid>
<PageTitle grid="wide" innerGrid>The Traditional Colors of&nbsp;Japan</PageTitle> <PageTitle grid="wide" innerGrid>The Traditional Colors of&nbsp;Japan</PageTitle>
<article class="col-start-1 col-end-17 grid md:col-end-8 xl:content-center"> <article class="col-start-1 col-end-17 grid md:col-end-8 xl:content-center">