diff --git a/index.html b/index.html index 9cb9f36..f6cdfeb 100644 --- a/index.html +++ b/index.html @@ -25,18 +25,18 @@ -
- WEBklar ist die Webagentur für Unternehmen, die wachsen wollen – ohne - dass Geschäftsführung und Team unter Tool-Chaos und manuellen Abläufen leiden. + Wir sind ein kleines Team aus Winnweiler in der Pfalz. Sie sprechen bei uns direkt mit den Leuten, die Ihre + Website bauen.
-- Wir verbinden Website, Prozesse und Automatisierung zu einem System. Kein - isoliertes Redesign, kein weiteres Plugin – sondern eine Lösung, die Anfragen, Daten und Abläufe - zusammenführt. + Wir bauen Websites, Online-Shops, Web-Apps und Automatisierungen für kleine Betriebe. Was + wir gerade tun, sehen Sie jederzeit in Ihrem Kundenportal.
Unser Anspruch: weniger Reibung.
-Mehr planbares Wachstum.
-- Starten Sie mit einem kostenlosen Gespräch – wir zeigen Ihnen die nächsten Schritte. -
- -
{punkt.nr}
diff --git a/src/pages/unterseiten.css b/src/pages/unterseiten.css
index f354281..aef327a 100644
--- a/src/pages/unterseiten.css
+++ b/src/pages/unterseiten.css
@@ -400,7 +400,7 @@
}
}
-/* ── Über uns (Phase 2 schreibt die Seite neu) ─────────────────────────── */
+/* ── Über uns ─────────────────────────────────────────────────────────── */
.wk-ueber__text {
max-width: var(--measure-text);
@@ -416,31 +416,6 @@
color: var(--fg);
}
-.wk-ueber__aussage {
- margin-top: clamp(40px, 6vw, 72px);
- max-width: 24ch;
- font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.75rem);
- line-height: 1.12;
- font-weight: 600;
- letter-spacing: -0.015em;
- text-wrap: balance;
-}
-.wk-ueber__aussage p:first-child {
- color: var(--fg);
-}
-.wk-ueber__aussage p:last-child {
- color: var(--fg-muted);
-}
-
-.wk-ueber__schluss {
- max-width: var(--measure-text);
- margin-top: clamp(32px, 5vw, 56px);
- font-size: var(--fs-lead);
- line-height: 1.38;
- font-weight: 600;
- text-wrap: pretty;
-}
-
/* Nummerierte Textzeilen statt Karten */
.wk-unterschied {
margin-top: clamp(32px, 5vw, 56px);
diff --git a/src/test/relaunch-kundenportal.test.tsx b/src/test/relaunch-kundenportal.test.tsx
index 138690c..c93957a 100644
--- a/src/test/relaunch-kundenportal.test.tsx
+++ b/src/test/relaunch-kundenportal.test.tsx
@@ -130,7 +130,7 @@ describe("Kundenportal: Bilder (Spezifikation 9.5)", () => {
expect(bild.getAttribute("height")).toBe("1688");
}
expect(bilder[5].getAttribute("src")).toContain("phone-2-projekte-lang");
- expect(bilder[5].getAttribute("height")).toBe("5428");
+ expect(bilder[5].getAttribute("height")).toBe("5219");
});
it("Desktop: zu Beginn hängen nur die ersten beiden Schritte ihre Bilder ein (spart Daten)", () => {
@@ -180,7 +180,7 @@ describe("Kundenportal: Bilder (Spezifikation 9.5)", () => {
describe("Kundenportal: Schrittzeile", () => {
it("Desktop: eine nummerierte Liste mit vier Schritten", () => {
zeigeDesktop();
- const liste = screen.getByRole("list", { name: /So arbeiten wir/ });
+ const liste = screen.getByRole("list", { name: /Ablauf in vier Schritten/ });
const punkte = within(liste).getAllByRole("listitem");
expect(punkte).toHaveLength(4);
punkte.forEach((punkt, i) => {
@@ -190,7 +190,7 @@ describe("Kundenportal: Schrittzeile", () => {
it("Handy: vier kleine Karten in einer Wisch-Reihe", () => {
zeigeHandy();
- const reihe = screen.getByRole("list", { name: /So arbeiten wir/ });
+ const reihe = screen.getByRole("list", { name: /Ablauf in vier Schritten/ });
const karten = within(reihe).getAllByRole("listitem");
expect(karten).toHaveLength(4);
karten.forEach((karte, i) => {
diff --git a/src/test/relaunch-layout.test.tsx b/src/test/relaunch-layout.test.tsx
index ba88be3..25009a7 100644
--- a/src/test/relaunch-layout.test.tsx
+++ b/src/test/relaunch-layout.test.tsx
@@ -4,7 +4,7 @@ import { MemoryRouter } from "react-router-dom";
import { readFileSync } from "node:fs";
import { join } from "node:path";
import { AppRoutes } from "@/routes";
-import { NAVIGATION } from "@/components/site/SiteHeader";
+import { NAVIGATION } from "@/components/site/navigation";
import { projekte } from "@/data/projekte";
// Netzwerk gibt es in jsdom nicht: das Kontaktformular-Backend wird durch eine Attrappe ersetzt.
diff --git a/src/test/relaunch-leistungen-preise.test.tsx b/src/test/relaunch-leistungen-preise.test.tsx
index 5485a11..f830741 100644
--- a/src/test/relaunch-leistungen-preise.test.tsx
+++ b/src/test/relaunch-leistungen-preise.test.tsx
@@ -74,7 +74,7 @@ describe("Leistungen (Spezifikation 7.3)", () => {
expect(h2).toHaveTextContent("Was wir für Sie bauen.");
expect(abschnitt).toHaveAttribute("aria-labelledby", h2.id);
// die Kopfleiste verlinkt genau diesen Anker
- expect(lies("src/components/site/SiteHeader.tsx")).toContain("/#leistungen");
+ expect(lies("src/components/site/navigation.ts")).toContain("/#leistungen");
});
it("zeigt die vier Einträge in der richtigen Reihenfolge, auf dem Handy als Wisch-Reihe", () => {
@@ -163,7 +163,7 @@ describe("Preise (Spezifikation 7.5)", () => {
const h2 = within(abschnitt).getByRole("heading", { level: 2 });
expect(h2).toHaveTextContent("Was es kostet. Vorher.");
expect(abschnitt).toHaveAttribute("aria-labelledby", h2.id);
- expect(lies("src/components/site/SiteHeader.tsx")).toContain("/#preise");
+ expect(lies("src/components/site/navigation.ts")).toContain("/#preise");
expect(norm(abschnitt.querySelector(".wk-lead")?.textContent)).toBe(
"Für Ihr Projekt bekommen Sie vorher ein Angebot mit Preis. Für den Betrieb danach gibt es zwei Abos. " +
"Alle Preise sind Endpreise; als Kleinunternehmer (§ 19 UStG) berechnen wir keine Umsatzsteuer.",
diff --git a/src/test/sofort-paket.test.tsx b/src/test/sofort-paket.test.tsx
index 3c5854c..fd8fc88 100644
--- a/src/test/sofort-paket.test.tsx
+++ b/src/test/sofort-paket.test.tsx
@@ -281,13 +281,13 @@ describe("B5 Erfolgsversprechen entschärft", () => {
).toBeInTheDocument();
});
- it("Über uns: Karte »Betreuung im Abo« statt »Langfristige Partnerschaft«", () => {
- zeige(