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 (
<>
+