diff --git a/web/src/components/general/Icon.tsx b/web/src/components/general/Icon.tsx index 5a1838b..d2e2d9e 100644 --- a/web/src/components/general/Icon.tsx +++ b/web/src/components/general/Icon.tsx @@ -318,6 +318,12 @@ export function DecorativeIcon ({ )} + + {type === "email" && ( + + + + )} ); } diff --git a/web/src/components/general/Newsletter.tsx b/web/src/components/general/Newsletter.tsx new file mode 100644 index 0000000..b7411b9 --- /dev/null +++ b/web/src/components/general/Newsletter.tsx @@ -0,0 +1,23 @@ +import { DecorativeIcon, Icon } from "./Icon"; +import styles from "./newsletter.module.scss"; + +export const Newsletter = ({ url }: { url?: string }) => { + const link = url ?? "https://pub.dialogapi.no/s/MjQ0NTc6MmQyZjNjY2MtOGMzYy00NWQ0LThkY2MtZmUxYWQyODNhN2Vi"; + return ( +
+
+
+
+ +
+

Nyhetsbrev

+

Meld deg på vårt nyhetsbrev og hold deg oppdatert på program og nyheter!

+
+ + Meld deg på + + +
+
+ ); +}; diff --git a/web/src/components/general/newsletter.module.scss b/web/src/components/general/newsletter.module.scss new file mode 100644 index 0000000..692c6c9 --- /dev/null +++ b/web/src/components/general/newsletter.module.scss @@ -0,0 +1,64 @@ +.newsletterWrapper { + padding: var(--spacing-sitepadding-block) var(--spacing-sitepadding-inline); +} + +.newsletter { + width: 100%; + background: var(--color-background-secondary); + display: flex; + justify-content: space-between; + align-items: center; + gap: 4rem; + padding: var(--spacing-l); + + a { + white-space: nowrap; + } +} + +.textWrapper { + display: grid; + grid-template-columns: auto 1fr; + column-gap: calc(var(--spacing-l)*0.9); + align-items: center; + + h2 { + margin-bottom: .5rem; + } +} + +.icon { + grid-column: 1; + grid-row: span 2; + flex: none; + width: var(--size-icon-large); + height: var(--size-icon-large); + background: var(--color-goldenBeige); + border-radius: 100%; + display: flex; + align-items: center; + justify-content: center; + + img, svg { + width: 100%; + } +} + +@media (max-width: 800px) { + .newsletter { + padding: var(--spacing-m); + flex-wrap: wrap; + gap: 1rem; + justify-content: flex-end; + } + .icon { + grid-row: span 1; + } + .textWrapper { + column-gap: 1rem; + row-gap: 1rem; + p { + grid-column: span 2; + } + } +} \ No newline at end of file diff --git a/web/src/components/layout/Footer.tsx b/web/src/components/layout/Footer.tsx index a76581c..255f3ae 100644 --- a/web/src/components/layout/Footer.tsx +++ b/web/src/components/layout/Footer.tsx @@ -7,6 +7,7 @@ import { getOpeningHours, getTodaysOpeningHoursForFunction, } from "@/lib/openinghours"; +import { Newsletter } from "../general/Newsletter"; async function OpeningHoursTable() { const allOpeningHours = await getOpeningHours(); @@ -37,6 +38,7 @@ async function OpeningHoursTable() { export const Footer = () => { return ( <> +