diff --git a/components/ContentType/StartPage/index.tsx b/components/ContentType/StartPage/index.tsx
index c7c817b81..670552c4c 100644
--- a/components/ContentType/StartPage/index.tsx
+++ b/components/ContentType/StartPage/index.tsx
@@ -2,20 +2,54 @@ import { Suspense } from "react"
import { getStartPage } from "@/lib/trpc/memoizedRequests"
+import Image from "@/components/Image"
+import PageContainer from "@/components/PageContainer"
+import Title from "@/components/TempDesignSystem/Text/Title"
import TrackingSDK from "@/components/TrackingSDK"
+import styles from "./startPage.module.css"
+
export default async function StartPage() {
const content = await getStartPage()
if (!content) {
return null
}
+ const { header } = content.startPage
+
return (
-
- {JSON.stringify(content, null, 2)}
+
+
+
+ JSON data
+ {JSON.stringify(content, null, 2)}
+
-
+
)
}
diff --git a/components/ContentType/StartPage/startPage.module.css b/components/ContentType/StartPage/startPage.module.css
new file mode 100644
index 000000000..00caa35d9
--- /dev/null
+++ b/components/ContentType/StartPage/startPage.module.css
@@ -0,0 +1,39 @@
+.header {
+ height: 560px;
+ position: relative;
+ overflow: hidden;
+}
+
+.header:after {
+ content: "";
+ background: linear-gradient(
+ 182deg,
+ rgba(38, 32, 30, 0.08) 13%,
+ rgba(77, 0, 27, 0.4) 100%
+ );
+ position: absolute;
+ inset: 0;
+}
+
+.headerContent {
+ position: absolute;
+ inset: 0;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ grid-gap: var(--Spacing-x2);
+ padding: var(--Spacing-x2) var(--Spacing-x2) var(--Spacing-x4);
+}
+
+@media screen and (min-width: 768px) {
+ .headerContent {
+ grid-gap: var(--Spacing-x4);
+ padding: 320px 160px 80px;
+ }
+}
+
+.topImage {
+ max-width: 100%;
+}
diff --git a/components/PageContainer/index.tsx b/components/PageContainer/index.tsx
new file mode 100644
index 000000000..8502c748c
--- /dev/null
+++ b/components/PageContainer/index.tsx
@@ -0,0 +1,7 @@
+import styles from "./pageContainer.module.css"
+
+import type { PropsWithChildren } from "react"
+
+export default function PageContainer({ children }: PropsWithChildren) {
+ return {children}
+}
diff --git a/components/PageContainer/pageContainer.module.css b/components/PageContainer/pageContainer.module.css
new file mode 100644
index 000000000..67e4abc17
--- /dev/null
+++ b/components/PageContainer/pageContainer.module.css
@@ -0,0 +1,6 @@
+.container {
+ width: 100%;
+ max-width: var(--max-width);
+ margin-left: auto;
+ margin-right: auto;
+}
diff --git a/lib/graphql/Query/StartPage/StartPage.graphql b/lib/graphql/Query/StartPage/StartPage.graphql
index 4a8beb1e8..de058a81f 100644
--- a/lib/graphql/Query/StartPage/StartPage.graphql
+++ b/lib/graphql/Query/StartPage/StartPage.graphql
@@ -4,6 +4,10 @@ query GetStartPage($locale: String!, $uid: String!) {
start_page(uid: $uid, locale: $locale) {
title
url
+ header {
+ heading
+ hero_image
+ }
system {
...System
created_at
diff --git a/server/routers/contentstack/startPage/output.ts b/server/routers/contentstack/startPage/output.ts
index b63a000b1..e9247a5f5 100644
--- a/server/routers/contentstack/startPage/output.ts
+++ b/server/routers/contentstack/startPage/output.ts
@@ -1,10 +1,15 @@
import { z } from "zod"
+import { tempImageVaultAssetSchema } from "../schemas/imageVault"
import { systemSchema } from "../schemas/system"
export const startPageSchema = z.object({
start_page: z.object({
title: z.string(),
+ header: z.object({
+ heading: z.string(),
+ hero_image: tempImageVaultAssetSchema,
+ }),
system: systemSchema.merge(
z.object({
created_at: z.string(),