diff --git a/src/app/components/jsx-helpers/raw-html.tsx b/src/app/components/jsx-helpers/raw-html.tsx
index 585c67d14..26a767c9b 100644
--- a/src/app/components/jsx-helpers/raw-html.tsx
+++ b/src/app/components/jsx-helpers/raw-html.tsx
@@ -42,7 +42,7 @@ type RawHTMLArgs = {
export default function RawHTML({
Tag = 'div',
- html,
+ html = '',
embed = false,
...otherProps
}: RawHTMLArgs) {
diff --git a/src/app/pages/assignable/assignable.tsx b/src/app/pages/assignable/assignable.tsx
index dad7438b3..5d61f7ea9 100644
--- a/src/app/pages/assignable/assignable.tsx
+++ b/src/app/pages/assignable/assignable.tsx
@@ -6,17 +6,11 @@ import {
About,
Courses,
FAQ,
- OverlappingQuote,
CTA
} from './lazy-imports';
+import type {BannerData} from './sections/banner/banner';
import './assignable.scss';
-type ImageMeta = {
- meta: {
- downloadUrl: string;
- };
-};
-
type CarouselImage = {
image: {
file: string;
@@ -37,11 +31,7 @@ type FAQItem = {
answer: string;
};
-type AssignablePageData = {
- headingTitleImageUrl: string;
- subheading: string;
- headingDescription: string;
- headingImage: ImageMeta;
+type AssignablePageData = BannerData & {
section2Heading: string;
section2Description: string;
imageCarousel: [CarouselImage[]];
@@ -51,10 +41,6 @@ type AssignablePageData = {
comingSoonBooks: BookData[];
faqHeader: string;
faqs: FAQItem[];
- addAssignableCtaHeader: string;
- addAssignableCtaDescription: string;
- addAssignableCtaLink: string;
- addAssignableCtaButtonText: string;
assignableCtaText: string;
assignableCtaLink: string;
assignableCtaButtonText: string;
@@ -76,9 +62,6 @@ function AssignablePage({data}: {data: AssignablePageData}) {
-
-
-
diff --git a/src/app/pages/assignable/sections/banner/banner.scss b/src/app/pages/assignable/sections/banner/banner.scss
index 8812fac50..10cd67623 100644
--- a/src/app/pages/assignable/sections/banner/banner.scss
+++ b/src/app/pages/assignable/sections/banner/banner.scss
@@ -15,8 +15,18 @@
padding-bottom: 6rem;
}
+ .content-block {
+ justify-items: center;
+ text-align: center;
+
+ h1 {
+ @include scale-set-font(h1, hero-h1);
+ }
+ }
+
.title-image {
max-width: 100%;
+ max-height: 12rem;
}
.background-image {
@@ -33,10 +43,48 @@
}
.text-content {
+ @include body-font(2.2rem);
padding: 0;
+
+ @include width-up-to($tablet-max) {
+ @include set-font(body-large);
+ }
}
.btn {
justify-self: left;
}
+
+ .button-row {
+ display: flex;
+ flex-direction: row;
+ gap: $normal-margin;
+
+ @include width-up-to($phone-max) {
+ flex-direction: column;
+ }
+
+ .button-shaped {
+ background-color: ui-color(white);
+ border: thin solid os-color(orange);
+ border-radius: 1.2rem;
+ color: text-color(normal);
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ justify-items: center;
+ justify-content: space-between;
+ padding: 1rem 2rem;
+
+ p {
+ @include body-font(2rem);
+ margin: 0;
+ }
+
+ a {
+ @include set-font(body-regular);
+ line-height: normal;
+ }
+ }
+ }
}
diff --git a/src/app/pages/assignable/sections/banner/banner.tsx b/src/app/pages/assignable/sections/banner/banner.tsx
index 3d1407219..aa3d1ce31 100644
--- a/src/app/pages/assignable/sections/banner/banner.tsx
+++ b/src/app/pages/assignable/sections/banner/banner.tsx
@@ -5,30 +5,33 @@ import useOptimizedImage, {
} from '~/helpers/use-optimized-image';
import './banner.scss';
-type BannerProps = {
- data: {
- headingTitleImageUrl: string;
- subheading: string;
- headingDescription: string;
- headingImage: {
- meta: {
- downloadUrl: string;
- };
+export type BannerData = {
+ headingTitleImageUrl: string;
+ subheading: string;
+ headingDescription: string;
+ headingImage: {
+ meta: {
+ downloadUrl: string;
};
};
+ addAssignableCtaHeader: string;
+ addAssignableCtaDescription: string;
+ addAssignableCtaLink: string;
+ addAssignableCtaButtonText: string;
+ instructorInterestCtaHeader: string;
+ instructorInterestCtaDescription: string;
+ instructorInterestCtaLink: string;
+ instructorInterestCtaButtonText: string;
+ instructorHelpCtaHeader: string;
+ instructorHelpCtaDescription: string;
+ instructorHelpCtaLink: string;
+ instructorHelpCtaButtonText: string;
+ ctaSectionFooter: string;
};
-export default function Banner({
- data: {
- headingTitleImageUrl,
- subheading,
- headingDescription: description,
- headingImage: {
- meta: {downloadUrl: image}
- }
- }
-}: BannerProps) {
+export default function Banner({data}: {data: BannerData}) {
const maxDim = maxDimIfNarrowerThan(1920);
+ const image = data.headingImage.meta.downloadUrl;
const optimizedImage = useOptimizedImage(image, maxDim);
return (
@@ -40,16 +43,43 @@ export default function Banner({

-
- {subheading}
-
+
{data.subheading}
-
+
+
+
+
+
+
+
);
}
+
+function CTAButton({header, href, linkText}: {
+ header: string;
+ href: string;
+ linkText: string;
+}) {
+ return ;
+}