+ {/* `min-w-0` + Silbentrennung: „Persönlichkeitscoach“ ist auf dem Handy
+ breiter als der Platz neben „Schließen“ und schöbe den Knopf sonst
+ aus dem Bild. */}
+
{content.eyebrow}
{/* Playfair hat hier den Platz für seine 28-px-Untergrenze – im Abzeichen selbst nicht. */}
{content.title}
diff --git a/src/content/en/home.ts b/src/content/en/home.ts
index 8b2b4db..ee5fb51 100644
--- a/src/content/en/home.ts
+++ b/src/content/en/home.ts
@@ -138,17 +138,31 @@ export const homeEn: HomeContent = {
{ value: "LinkedIn", href: site.linkedin, external: true },
{ value: "German · English" },
],
- certificate: {
- title: "Greator Speaker",
- description: "Certified graduate of the Greator Speaker programme",
- date: "May 2026",
- cta: "View certificate",
- eyebrow: "Certificate",
- dialogMeta: "Greator TheKey · issued 16 May 2026",
- imageAlt:
- "Certificate: Anelia Wolf has successfully completed the certified Greator Speaker programme.",
- pdfLabel: "Open PDF",
- close: "Close",
+ certificates: {
+ persoenlichkeitscoach: {
+ title: "Greator Personality Coach",
+ description: "Certified graduate of the Greator Personality Coach programme",
+ date: "October 2026",
+ cta: "View certificate",
+ eyebrow: "Certificate",
+ dialogMeta: "Greator · issued 9 October 2026",
+ imageAlt:
+ "Certificate: Anelia Wolf has successfully completed the theoretical and practical parts of the three-month Greator Personality Coach programme.",
+ pdfLabel: "Open PDF",
+ close: "Close",
+ },
+ speaker: {
+ title: "Greator Speaker",
+ description: "Certified graduate of the Greator Speaker programme",
+ date: "May 2026",
+ cta: "View certificate",
+ eyebrow: "Certificate",
+ dialogMeta: "Greator TheKey · issued 16 May 2026",
+ imageAlt:
+ "Certificate: Anelia Wolf has successfully completed the certified Greator Speaker programme.",
+ pdfLabel: "Open PDF",
+ close: "Close",
+ },
},
folio: { current: "05", total: "06" },
},
diff --git a/src/content/home.ts b/src/content/home.ts
index 5bd5362..55fb398 100644
--- a/src/content/home.ts
+++ b/src/content/home.ts
@@ -262,20 +262,36 @@ export const about = {
{ value: "LinkedIn", href: site.linkedin, external: true },
{ value: "Deutsch · Englisch" },
] satisfies readonly MarginaliaItem[],
- /* Das Abzeichen in der rechten Gutter – Gegenstück zur klebenden „04“ links.
- `seal` steht IM Lorbeerkranz, alles darunter ist die Bildunterschrift. */
- certificate: {
- title: "Greator Speaker",
- description: "Zertifizierte Absolventin der Greator Speaker Ausbildung",
- date: "Mai 2026",
- cta: "Zertifikat ansehen",
- /* Overlay */
- eyebrow: "Zertifikat",
- dialogMeta: "Greator TheKey · Ausstellungsdatum 16. Mai 2026",
- imageAlt:
- "Zertifikat: Anelia Wolf hat die Ausbildung zum zertifizierten Greator Speaker erfolgreich abgeschlossen.",
- pdfLabel: "PDF öffnen",
- close: "Schließen",
+ /* Die Abzeichen in der rechten Gutter – Gegenstück zur klebenden „04“ links.
+ `seal` steht IM Lorbeerkranz, alles darunter ist die Bildunterschrift.
+ Schlüssel wie in `getCertificates()` (src/lib/assets.ts), dort auch die Reihenfolge. */
+ certificates: {
+ persoenlichkeitscoach: {
+ title: "Greator Persönlichkeitscoach",
+ description: "Zertifizierte Absolventin der Ausbildung zum Greator Persönlichkeitscoach",
+ date: "Oktober 2026",
+ cta: "Zertifikat ansehen",
+ /* Overlay */
+ eyebrow: "Zertifikat",
+ dialogMeta: "Greator · Ausstellungsdatum 9. Oktober 2026",
+ imageAlt:
+ "Zertifikat: Anelia Wolf hat den theoretischen und praktischen Teil der dreimonatigen Ausbildung zum Greator Persönlichkeitscoach erfolgreich abgeschlossen.",
+ pdfLabel: "PDF öffnen",
+ close: "Schließen",
+ },
+ speaker: {
+ title: "Greator Speaker",
+ description: "Zertifizierte Absolventin der Greator Speaker Ausbildung",
+ date: "Mai 2026",
+ cta: "Zertifikat ansehen",
+ /* Overlay */
+ eyebrow: "Zertifikat",
+ dialogMeta: "Greator TheKey · Ausstellungsdatum 16. Mai 2026",
+ imageAlt:
+ "Zertifikat: Anelia Wolf hat die Ausbildung zum zertifizierten Greator Speaker erfolgreich abgeschlossen.",
+ pdfLabel: "PDF öffnen",
+ close: "Schließen",
+ },
},
folio: { current: "05", total: "06" },
} as const;
@@ -389,4 +405,4 @@ assertNoPlaceholders("src/content/home.ts", collectStrings(home));
/** Struktur, nicht Wortlaut – die englische Fassung erfüllt denselben Typ. */
export type HomeContent = Widen
;
/** Texte des Zertifikat-Abzeichens – Abzeichen und Overlay teilen sie sich. */
-export type CertificateCopy = HomeContent["about"]["certificate"];
+export type CertificateCopy = HomeContent["about"]["certificates"]["speaker"];
diff --git a/src/lib/assets.ts b/src/lib/assets.ts
index 57f9e79..ccb6256 100644
--- a/src/lib/assets.ts
+++ b/src/lib/assets.ts
@@ -57,26 +57,39 @@ export function getSpeakerPdf(): string | null {
return publicUrl("speaker-profil.pdf");
}
+/** Schlüssel in `about.certificates` (Texte) – Reihenfolge siehe `CERTIFICATES`. */
+export type CertificateKey = "persoenlichkeitscoach" | "speaker";
+
export interface CertificateAsset {
- /** `/zertifikate/greator-speaker.pdf` – das Original zum Öffnen/Herunterladen. */
+ key: CertificateKey;
+ /** z. B. `/zertifikate/greator-speaker.pdf` – das Original zum Öffnen/Herunterladen. */
pdf: string;
/** Seite 1 als Bild für die Vorschau (kein eingebettetes PDF, kein iframe). */
image: string;
width: number;
height: number;
- /** Das runde Greator-TheKey-Siegel, freigestellt – es steht im Lorbeerkranz. */
+ /** Das runde Greator-Siegel, freigestellt – es steht im Lorbeerkranz. */
seal: string;
sealSize: number;
}
+/** Oben steht das neueste Zertifikat. */
+const CERTIFICATES = [
+ { key: "persoenlichkeitscoach", file: "greator-persoenlichkeitscoach", seal: "greator-siegel-coach.webp", width: 989, height: 1398 },
+ { key: "speaker", file: "greator-speaker", seal: "greator-siegel.webp", width: 989, height: 1400 },
+] as const satisfies readonly { key: CertificateKey; file: string; seal: string; width: number; height: number }[];
+
/**
- * Greator-Speaker-Zertifikat für die Sektion „Über Anelia“. Alle drei Dateien müssen
- * liegen – fehlt eine, rendert die Sektion wie vorher (Variante B, wie bei den Fotos).
+ * Greator-Zertifikate für die Sektion „Über Anelia“. Ein Zertifikat erscheint nur,
+ * wenn alle drei Dateien liegen – fehlen alle, rendert die Sektion wie vorher
+ * (Variante B, wie bei den Fotos).
*/
-export function getCertificate(): CertificateAsset | null {
- const pdf = publicUrl("zertifikate/greator-speaker.pdf");
- const image = publicUrl("zertifikate/greator-speaker.jpg");
- const seal = publicUrl("zertifikate/greator-siegel.webp");
- if (!pdf || !image || !seal) return null;
- return { pdf, image, width: 989, height: 1400, seal, sealSize: 372 };
+export function getCertificates(): CertificateAsset[] {
+ return CERTIFICATES.flatMap(({ key, file, seal: sealFile, width, height }) => {
+ const pdf = publicUrl(`zertifikate/${file}.pdf`);
+ const image = publicUrl(`zertifikate/${file}.jpg`);
+ const seal = publicUrl(`zertifikate/${sealFile}`);
+ if (!pdf || !image || !seal) return [];
+ return [{ key, pdf, image, width, height, seal, sealSize: 372 }];
+ });
}