229715235f
- New design tokens: signal red, ink and paper as RGB channels; ink and paper swap roles in dark mode so every component inverts cleanly - Fonts via next/font: Bricolage Grotesque (with wdth/opsz axes), Geist, Geist Mono; drop Inter and Playfair - Poster hero: kicker, giant DK0 wordmark that reacts to pointer distance (weight and width through a damped spring, desktop only, off for reduced motion), claim as h1, intro with thesis countdown, marquee strip - Header in poster style: transparent over the red hero, paper strip with ink rule when scrolled or on subpages; drawer menu restyled - Remove wavy SVG separators, CSS shader gradient, background blobs and unused providers that caused the pink/purple bands between sections - Drop the global p/span/div color override so colors inherit properly - New hero texts in de/en, tests and i18n key check updated Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
97 lines
1.8 KiB
TypeScript
97 lines
1.8 KiB
TypeScript
/**
|
|
* Type Definitions for Directus-based Translations
|
|
* Each section has its own translation props
|
|
*/
|
|
|
|
export interface NavTranslations {
|
|
home: string;
|
|
about: string;
|
|
projects: string;
|
|
contact: string;
|
|
}
|
|
|
|
export interface FooterTranslations {
|
|
role: string;
|
|
madeIn: string;
|
|
legalNotice: string;
|
|
privacyPolicy: string;
|
|
privacySettings: string;
|
|
privacySettingsTitle: string;
|
|
builtWith: string;
|
|
}
|
|
|
|
export interface AboutTranslations {
|
|
title: string;
|
|
p1: string;
|
|
p2: string;
|
|
p3: string;
|
|
funFactTitle: string;
|
|
funFactBody: string;
|
|
techStackTitle: string;
|
|
techStack: {
|
|
categories: {
|
|
frontendMobile: string;
|
|
backendDevops: string;
|
|
toolsAutomation: string;
|
|
securityAdmin: string;
|
|
};
|
|
items: {
|
|
selfHostedServices: string;
|
|
};
|
|
};
|
|
hobbiesTitle: string;
|
|
hobbies: {
|
|
selfHosting: string;
|
|
gaming: string;
|
|
gameServers: string;
|
|
jogging: string;
|
|
};
|
|
}
|
|
|
|
export interface ProjectsTranslations {
|
|
title: string;
|
|
subtitle: string;
|
|
viewAll: string;
|
|
}
|
|
|
|
export interface ContactTranslations {
|
|
title: string;
|
|
subtitle: string;
|
|
getInTouch: string;
|
|
getInTouchBody: string;
|
|
form: {
|
|
title: string;
|
|
sending: string;
|
|
send: string;
|
|
placeholders: {
|
|
name: string;
|
|
email: string;
|
|
subject: string;
|
|
message: string;
|
|
};
|
|
errors: {
|
|
nameRequired: string;
|
|
nameMin: string;
|
|
emailRequired: string;
|
|
emailInvalid: string;
|
|
subjectRequired: string;
|
|
subjectMin: string;
|
|
messageRequired: string;
|
|
messageMin: string;
|
|
};
|
|
characters: string;
|
|
};
|
|
info: {
|
|
email: string;
|
|
location: string;
|
|
locationValue: string;
|
|
};
|
|
}
|
|
|
|
export interface ConsentTranslations {
|
|
title: string;
|
|
description: string;
|
|
accept: string;
|
|
decline: string;
|
|
}
|