Add the trailing period to "einfach produktiv." wherever it was missing

The period is part of the brand name (see Footer.tsx's own comment on
the two-tone logo treatment) — fixed every place it was cleanly
appendable (string/heading endings, or before a dash, matching the
existing precedent in VertragspartnerBlock.tsx). Left the handful of
genuinely awkward mid-sentence spots alone (separable-verb endings,
"einfach produktiv-Konto" hyphenated compounds) rather than force a
period that breaks the sentence — flagging those separately.

Also: Über-mich's checklist now uses the same brand checkmark as
/lebensuhr and /7-tage-klarheits-check instead of plain bullets.
This commit is contained in:
Marco
2026-08-26 19:25:27 +00:00
parent a1c9a2127b
commit e2d81fabc7
8 changed files with 24 additions and 11 deletions
+1 -1
View File
@@ -524,7 +524,7 @@ export function Navbar({
is what gives on the very smallest phones instead. */}
<Image
src="/logo.png"
alt="einfach produktiv"
alt="einfach produktiv."
width={181}
height={61}
className="w-full h-auto"
+1 -1
View File
@@ -32,7 +32,7 @@ export function DieSiebenHero() {
Die Sieben<span className="text-brand">.</span>
</p>
<p className="font-semibold text-h4 text-text-muted" style={{ fontFamily: "var(--font-lora)" }}>
Das Monatsritual von einfach produktiv
Das Monatsritual von einfach produktiv.
</p>
</div>
+1 -1
View File
@@ -5,7 +5,7 @@ import { SoFunktionierts } from "./components/SoFunktionierts";
import { Footer } from "../components/Footer";
import { Newsletter } from "../components/Newsletter";
const title = "Die Sieben Das Monatsritual von einfach produktiv";
const title = "Die Sieben Das Monatsritual von einfach produktiv.";
const description =
"Sieben kleine Dinge, die den Monat ein bisschen reicher machen. Kein Programm, keine Pflicht nur eine Einladung, bewusster wahrzunehmen, was ohnehin schon da ist.";
+2 -2
View File
@@ -23,7 +23,7 @@ export function buildOrganizationSchema(seller: CompanySettings | null): Record<
"@context": "https://schema.org",
"@type": "Organization",
"@id": `${SITE_URL}/#organization`,
name: "einfach produktiv",
name: "einfach produktiv.",
url: SITE_URL,
};
}
@@ -91,7 +91,7 @@ export function buildArticleSchema(
// "Björn" is already hardcoded in the page's own author-bio block,
// matched here rather than left out entirely.
author: { "@type": "Person", name: "Björn" },
publisher: seller ? { "@id": `${SITE_URL}/#organization` } : { "@type": "Organization", name: "einfach produktiv" },
publisher: seller ? { "@id": `${SITE_URL}/#organization` } : { "@type": "Organization", name: "einfach produktiv." },
};
}
+1 -1
View File
@@ -10,7 +10,7 @@ export const metadata: Metadata = {
"Alles, was du für mehr Klarheit im Alltag brauchst — ToDo-Karten, Wochenplaner, Notizbücher und Zielkarten von einfach produktiv.",
alternates: { canonical: "/shop" },
openGraph: {
title: "Shop | einfach produktiv",
title: "Shop | einfach produktiv.",
description:
"Alles, was du für mehr Klarheit im Alltag brauchst — ToDo-Karten, Wochenplaner, Notizbücher und Zielkarten von einfach produktiv.",
url: "/shop",
+1 -1
View File
@@ -10,7 +10,7 @@ import { buildProductSchema } from "../lib/structuredData";
// tagline, unlike every other bespoke page here — see Hero.tsx's comment.
export async function generateMetadata(): Promise<Metadata> {
const product = await getProductBySlug("tasse-die-pause");
const title = product ? `${product.name} einfach produktiv` : "Tasse einfach produktiv";
const title = product ? `${product.name} einfach produktiv.` : "Tasse einfach produktiv.";
const description = product?.description ?? undefined;
return {
title,
+16 -3
View File
@@ -58,6 +58,16 @@ function Quote({ children }: { children: React.ReactNode }) {
);
}
// Same checkmark used by /lebensuhr's and /7-tage-klarheits-check's own
// checklists — swapped in for plain bullets for consistency.
function Check() {
return (
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" className="shrink-0 mt-1">
<path d="M3 9.5l4 4L15 4" stroke="#f6a701" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round" />
</svg>
);
}
const highlights = [
"Impulse, die im echten Leben funktionieren",
"Orientierung statt Überforderung",
@@ -99,7 +109,7 @@ export default function UeberMichPage() {
Genau dort ist einfach produktiv entstanden.
</P>
<H2>Warum einfach produktiv</H2>
<H2>Warum einfach produktiv.</H2>
<P>
Irgendwann habe ich gemerkt, dass ich ständig versuchte, meinen Alltag besser zu organisieren
neue Apps, neue Methoden, neue Routinen. Vieles wurde effizienter. Trotzdem blieb das
@@ -125,9 +135,12 @@ export default function UeberMichPage() {
Keine Patentrezepte. Sondern Gedanken, Erfahrungen und Werkzeuge, die sich in meinem eigenen
Alltag bewährt haben:
</P>
<ul className="flex flex-col gap-2 text-body text-text-body list-disc pl-5">
<ul className="flex flex-col gap-3">
{highlights.map((h) => (
<li key={h}>{h}</li>
<li key={h} className="flex items-start gap-3">
<Check />
<p className="text-body text-text-body">{h}</p>
</li>
))}
</ul>
+1 -1
View File
@@ -111,7 +111,7 @@ export function VersandSections({
<Section id="transportrisiko" title="Transportrisiko" withAnchor={withAnchors}>
<p>
Bestellst du als Verbraucher:in, trägt das Transportrisiko bei Beschädigung oder Verlust
während des Versands grundsätzlich einfach produktiv nicht du.
während des Versands grundsätzlich einfach produktiv. nicht du.
</p>
</Section>