Files
sass-mohfarawati/components/home/types.ts
T
MohFarawati 4892f27006 feat(home): image-led featured projects section
Bring imagery to the homepage projects block (Phase 3), matching the portfolio
gallery.

- Thread coverImagePath through ProjectCardCopy and the home mapping.
- Rewrite ProjectsSection as image-first cards (reusing PortfolioCover with the
  branded placeholder fallback): whole-card link, featured project spans two
  columns with a larger cover, type-scale title, meta + stack badges, hover
  lift. Replaces the previous text-only cards.

Verified: eslint clean; no new type errors (pre-existing Prisma-gen anys only).
2026-07-14 22:19:05 +02:00

122 lines
2.1 KiB
TypeScript

export type HeroCopy = {
availability: string;
name: string;
headline: string;
description: string;
primaryCta: string;
secondaryCta: string;
locationLabel: string;
locationValue: string;
roleLabel: string;
roleValue: string;
focusLabel: string;
focusValue: string;
highlights: string[];
};
export type BentoSectionCopy = {
eyebrow: string;
title: string;
description: string;
about: {
eyebrow: string;
title: string;
description: string;
points: string[];
};
coreStack: {
eyebrow: string;
title: string;
items: string[];
};
availability: {
eyebrow: string;
title: string;
description: string;
status: string;
};
currentFocus: {
eyebrow: string;
title: string;
items: string[];
};
contact: {
eyebrow: string;
title: string;
description: string;
emailLabel: string;
emailValue: string;
};
highlights: {
eyebrow: string;
title: string;
items: Array<{
value: string;
label: string;
}>;
};
};
export type MarqueeSectionCopy = {
eyebrow: string;
title: string;
description: string;
};
export type ProjectCardCopy = {
title: string;
summary: string;
stack: string[];
href: string;
cta: string;
meta: string[];
featured?: boolean;
coverImagePath?: string | null;
};
export type ProjectsSectionCopy = {
eyebrow: string;
title: string;
description: string;
stackLabel: string;
fallbackItems: Array<{
title: string;
summary: string;
stack: string[];
href: string;
}>;
};
export type CapabilitiesSectionCopy = {
eyebrow: string;
title: string;
description: string;
items: Array<{
title: string;
description: string;
}>;
};
export type ProcessSectionCopy = {
eyebrow: string;
title: string;
description: string;
steps: Array<{
title: string;
description: string;
}>;
};
export type ContactCtaSectionCopy = {
eyebrow: string;
title: string;
description: string;
contactCta: string;
githubCta: string;
emailLabel: string;
emailValue: string;
availabilityLabel: string;
availabilityValue: string;
githubHref: string;
};