94 lines
1.8 KiB
TypeScript
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;
|
|
};
|