Rename landing component
This commit is contained in:
@@ -22,12 +22,12 @@
|
|||||||
### Task 2: Canva-Inspired Landing Page
|
### Task 2: Canva-Inspired Landing Page
|
||||||
|
|
||||||
**Files:**
|
**Files:**
|
||||||
- Create: `src/components/canva-landing.tsx`
|
- Create: `src/components/landing.tsx`
|
||||||
- Modify: `src/pages/index.astro`
|
- Modify: `src/pages/index.astro`
|
||||||
- Modify: `src/styles/global.css`
|
- Modify: `src/styles/global.css`
|
||||||
|
|
||||||
- [ ] Build a single-page layout with a dark editorial shell, red accent panels, large German headline, numbered sections, pricing/service strips, and a contact brief section.
|
- [ ] Build a single-page layout with a dark editorial shell, red accent panels, large German headline, numbered sections, pricing/service strips, and a contact brief section.
|
||||||
- [ ] Replace the existing homepage component stack with the new `CanvaLanding` component.
|
- [ ] Replace the existing homepage component stack with the new `Landing` component.
|
||||||
- [ ] Update global tokens for the dark, high-contrast Canva reference style.
|
- [ ] Update global tokens for the dark, high-contrast Canva reference style.
|
||||||
|
|
||||||
### Task 3: Verification
|
### Task 3: Verification
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ const packages = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const CanvaLanding = () => {
|
const Landing = () => {
|
||||||
return (
|
return (
|
||||||
<main className="min-h-screen overflow-hidden bg-background text-foreground">
|
<main className="min-h-screen overflow-hidden bg-background text-foreground">
|
||||||
<section className="relative grid min-h-screen grid-cols-1 border-b border-border lg:grid-cols-[1.08fr_0.92fr]">
|
<section className="relative grid min-h-screen grid-cols-1 border-b border-border lg:grid-cols-[1.08fr_0.92fr]">
|
||||||
@@ -246,4 +246,4 @@ const CanvaLanding = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export { CanvaLanding };
|
export { Landing };
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
import { CanvaLanding } from "@/components/canva-landing";
|
import { Landing } from "@/components/landing";
|
||||||
import "@/styles/global.css";
|
import "@/styles/global.css";
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -17,6 +17,6 @@ import "@/styles/global.css";
|
|||||||
defer></script>
|
defer></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<CanvaLanding />
|
<Landing />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import { readFile } from "node:fs/promises";
|
|||||||
import test from "node:test";
|
import test from "node:test";
|
||||||
import assert from "node:assert/strict";
|
import assert from "node:assert/strict";
|
||||||
|
|
||||||
const componentPath = new URL("../src/components/canva-landing.tsx", import.meta.url);
|
const componentPath = new URL("../src/components/landing.tsx", import.meta.url);
|
||||||
|
|
||||||
test("Canva landing component contains the core brief anchors", async () => {
|
test("Landing component contains the core brief anchors", async () => {
|
||||||
const source = await readFile(componentPath, "utf8");
|
const source = await readFile(componentPath, "utf8");
|
||||||
|
|
||||||
for (const phrase of ["Projektbrief", "01", "Website", "Kontakt", "für", "müssen", "Änderungen"]) {
|
for (const phrase of ["Projektbrief", "01", "Website", "Kontakt", "für", "müssen", "Änderungen"]) {
|
||||||
@@ -12,7 +12,7 @@ test("Canva landing component contains the core brief anchors", async () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test("Canva landing component uses real German umlauts in visible copy", async () => {
|
test("Landing component uses real German umlauts in visible copy", async () => {
|
||||||
const source = await readFile(componentPath, "utf8");
|
const source = await readFile(componentPath, "utf8");
|
||||||
|
|
||||||
for (const asciiFallback of [
|
for (const asciiFallback of [
|
||||||
|
|||||||
Reference in New Issue
Block a user