diyaa.de/content/types.ts
2026-03-13 03:56:40 +01:00

94 lines
1.8 KiB
TypeScript

export type ModeVariants<T> = {
comingSoon: T;
full: T;
};
export type CommonVariantContent = {
siteTagline: string;
footerBuiltWith: string;
};
export type CommonContent = {
siteTitle: string;
navLabel: string;
languageSwitcherLabel: string;
themeToggleLabel: string;
themeLight: string;
themeDark: string;
nav: {
home: string;
about: string;
contact: string;
};
footerRights: string;
variants: ModeVariants<CommonVariantContent>;
};
export type HomeVariantContent = {
badge: string;
kicker: string;
title: string;
description: string;
primaryCta: string;
secondaryCta: string;
highlights: Array<{
value: string;
label: string;
}>;
};
export type HomeContent = ModeVariants<HomeVariantContent>;
export type AboutContent = {
kicker: string;
title: string;
story: string;
skillsTitle: string;
skills: string[];
experienceTitle: string;
experience: string[];
principlesTitle: string;
principles: string[];
};
export type ContactChannelContent = {
key: "email" | "linkedin" | "github";
name: string;
hint: string;
};
export type ContactContent = {
kicker: string;
title: string;
description: string;
availabilityTitle: string;
availabilityDescription: string;
channelsTitle: string;
channelCta: string;
channelFallback: string;
channels: ContactChannelContent[];
};
export type MetadataVariantContent = {
title: string;
description: string;
};
export type MetadataContent = {
home: ModeVariants<MetadataVariantContent>;
aboutTitle: string;
aboutDescription: string;
contactTitle: string;
contactDescription: string;
notFoundTitle: string;
notFoundDescription: string;
};
export type Dictionary = {
common: CommonContent;
home: HomeContent;
about: AboutContent;
contact: ContactContent;
metadata: MetadataContent;
};