diff --git a/src/components/customerCases/customerCase/sections/CustomerCaseSection.tsx b/src/components/customerCases/customerCase/sections/CustomerCaseSection.tsx
index 9e0b7c84a..8b9be42bd 100644
--- a/src/components/customerCases/customerCase/sections/CustomerCaseSection.tsx
+++ b/src/components/customerCases/customerCase/sections/CustomerCaseSection.tsx
@@ -1,6 +1,7 @@
import { CustomerCaseSection as CustomerCaseSectionObject } from "studioShared/lib/interfaces/customerCases";
import ImageSection from "./image/ImageSection";
+import ListBlock from "./list/ListBlock";
import QuoteBlock from "./quote/QuoteBlock";
import ResultsBlock from "./results/ResultsBlock";
import RichTextSection from "./richText/RichTextSection";
@@ -22,5 +23,7 @@ export function CustomerCaseSection({
return ;
case "resultsBlock":
return ;
+ case "listBlock":
+ return ;
}
}
diff --git a/src/components/customerCases/customerCase/sections/list/ListBlock.tsx b/src/components/customerCases/customerCase/sections/list/ListBlock.tsx
new file mode 100644
index 000000000..cdec16678
--- /dev/null
+++ b/src/components/customerCases/customerCase/sections/list/ListBlock.tsx
@@ -0,0 +1,31 @@
+import Text from "src/components/text/Text";
+import { ListBlock as ListBlockObject } from "studioShared/lib/interfaces/listBlock";
+
+import styles from "./listBlock.module.css";
+
+export interface ListBlockProps {
+ section: ListBlockObject;
+}
+
+export default function ListBlock({ section }: ListBlockProps) {
+ return (
+ section.description && (
+
+
+
{section.description}
+
+ {section.list?.map((listItem) => (
+
+ {listItem.text}
+
+ ))}
+
+
+
+ )
+ );
+}
diff --git a/src/components/customerCases/customerCase/sections/list/listBlock.module.css b/src/components/customerCases/customerCase/sections/list/listBlock.module.css
new file mode 100644
index 000000000..4083b12c2
--- /dev/null
+++ b/src/components/customerCases/customerCase/sections/list/listBlock.module.css
@@ -0,0 +1,34 @@
+.wrapper {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 1rem;
+}
+
+.listwrapper {
+ display: flex;
+ width: 100%;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 1rem;
+ max-width: 960px;
+}
+
+.tagwrapper {
+ display: flex;
+ align-items: flex-start;
+ align-content: flex-start;
+ gap: 0.5rem 0.5rem;
+ align-self: stretch;
+ flex-wrap: wrap;
+}
+
+.tag {
+ display: flex;
+ height: 2.4375rem;
+ padding: 0.375rem 0.75rem;
+ align-items: center;
+ gap: 0.5rem;
+ border-radius: 0.25rem;
+ border: 1px solid #0e0f0f;
+}
diff --git a/src/components/text/text.module.css b/src/components/text/text.module.css
index 81437fdcd..9be875174 100644
--- a/src/components/text/text.module.css
+++ b/src/components/text/text.module.css
@@ -38,8 +38,14 @@
font-weight: 600;
}
+.h4 {
+ font-size: 1.5rem;
+ font-style: normal;
+ font-weight: 500;
+ line-height: 120%; /* 1.8rem */
+}
+
/* TODO: add font variables */
-/* .h4 */
/* .h5 */
/* .h6 */
diff --git a/studioShared/lib/interfaces/customerCases.ts b/studioShared/lib/interfaces/customerCases.ts
index 15300b857..3471b7c44 100644
--- a/studioShared/lib/interfaces/customerCases.ts
+++ b/studioShared/lib/interfaces/customerCases.ts
@@ -1,6 +1,7 @@
import { IImage } from "studio/lib/interfaces/media";
import { ImageBlock } from "./imageBlock";
+import { ListBlock } from "./listBlock";
import { QuoteBlock } from "./quoteBlock";
import { ResultsBlock } from "./resultsBlock";
import { RichTextBlock } from "./richTextBlock";
@@ -34,7 +35,8 @@ export type BaseCustomerCaseSection = RichTextBlock | ImageBlock | QuoteBlock;
export type CustomerCaseSection =
| BaseCustomerCaseSection
| SplitSection
- | ResultsBlock;
+ | ResultsBlock
+ | ListBlock;
export interface CustomerCase extends CustomerCaseBase {
projectInfo: CustomerCaseProjectInfo;
diff --git a/studioShared/lib/interfaces/listBlock.ts b/studioShared/lib/interfaces/listBlock.ts
new file mode 100644
index 000000000..7ef1c81c6
--- /dev/null
+++ b/studioShared/lib/interfaces/listBlock.ts
@@ -0,0 +1,11 @@
+interface ListItem {
+ _key: string;
+ text: string;
+}
+
+export interface ListBlock {
+ _key: string;
+ _type: "listBlock";
+ description?: string;
+ list: ListItem[];
+}
diff --git a/studioShared/lib/queries/customerCases.ts b/studioShared/lib/queries/customerCases.ts
index 0793b8c7d..fd9347e43 100644
--- a/studioShared/lib/queries/customerCases.ts
+++ b/studioShared/lib/queries/customerCases.ts
@@ -39,12 +39,6 @@ export const BASE_SECTIONS_FRAGMENT = groq`
},
fullWidth
},
- _type == "listBlock" => {
- "description": ${translatedFieldFragment("description")},
- "list": list[] {
- "text": ${translatedFieldFragment("text")},
- },
- },
_type == "quoteBlock" => {
"quote": ${translatedFieldFragment("quote")},
"author": ${translatedFieldFragment("author")},
@@ -83,6 +77,13 @@ export const CUSTOMER_CASE_QUERY = groq`
"description": ${translatedFieldFragment("description")},
}
},
+ _type == "listBlock" => {
+ "description": ${translatedFieldFragment("description")},
+ "list": list[] {
+ _key,
+ "text": ${translatedFieldFragment("text")},
+ },
+ },
${BASE_SECTIONS_FRAGMENT}
},
"featuredCases": featuredCases[] -> {
diff --git a/studioShared/schemas/documents/customerCase.ts b/studioShared/schemas/documents/customerCase.ts
index a566e21e4..2a70d7780 100644
--- a/studioShared/schemas/documents/customerCase.ts
+++ b/studioShared/schemas/documents/customerCase.ts
@@ -8,6 +8,7 @@ import { titleSlug } from "studio/schemas/schemaTypes/slug";
import { buildDraftId, buildPublishedId } from "studio/utils/documentUtils";
import { firstTranslation } from "studio/utils/i18n";
import { customerCaseProjectInfo } from "studioShared/schemas/fields/customerCaseProjectInfo";
+import listBlock from "studioShared/schemas/objects/listBlock";
import resultsBlock from "studioShared/schemas/objects/resultsBlock";
import { baseCustomerCaseSections } from "studioShared/schemas/objects/sections";
import splitSection from "studioShared/schemas/objects/splitSection";
@@ -18,6 +19,7 @@ export const customerCaseSections = [
...baseCustomerCaseSections,
splitSection,
resultsBlock,
+ listBlock,
];
const customerCase = defineType({
diff --git a/studioShared/schemas/objects/sections.ts b/studioShared/schemas/objects/sections.ts
index 3158f7214..603f26f50 100644
--- a/studioShared/schemas/objects/sections.ts
+++ b/studioShared/schemas/objects/sections.ts
@@ -1,11 +1,5 @@
import imageBlock from "./imageBlock";
-import listBlock from "./listBlock";
import quoteBlock from "./quoteBlock";
import richTextBlock from "./richTextBlock";
-export const baseCustomerCaseSections = [
- richTextBlock,
- imageBlock,
- listBlock,
- quoteBlock,
-];
+export const baseCustomerCaseSections = [richTextBlock, imageBlock, quoteBlock];