diff --git a/echo/frontend/src/components/form/MarkdownWYSIWYG/styles.css b/echo/frontend/src/components/form/MarkdownWYSIWYG/styles.css
index 1bc0511d..4aaf3c56 100644
--- a/echo/frontend/src/components/form/MarkdownWYSIWYG/styles.css
+++ b/echo/frontend/src/components/form/MarkdownWYSIWYG/styles.css
@@ -384,7 +384,7 @@
--basePageBg: var(--app-background, #F6F4F1);
--baseBase: var(--slate-1);
--baseBgSubtle: var(--slate-2);
- --baseBg: var(--slate-3);
+ --baseBg: var(--mantine-color-primary-2);
--baseBgHover: var(--slate-4);
--baseBgActive: var(--slate-5);
--baseLine: var(--slate-6);
diff --git a/echo/frontend/src/components/participant/refine/RefineSelection.tsx b/echo/frontend/src/components/participant/refine/RefineSelection.tsx
index 7f583299..c76bfa5d 100644
--- a/echo/frontend/src/components/participant/refine/RefineSelection.tsx
+++ b/echo/frontend/src/components/participant/refine/RefineSelection.tsx
@@ -69,13 +69,13 @@ export const RefineSelection = () => {
>
-
+
Make it concrete
-
+
Take some time to create an outcome that makes your contribution
concrete.
@@ -123,11 +123,11 @@ export const RefineSelection = () => {
>
-
+
Go deeper
-
+
Get an immediate reply from Dembrane to help you deepen the
conversation.
diff --git a/echo/frontend/src/components/participant/verify/VerifySelection.tsx b/echo/frontend/src/components/participant/verify/VerifySelection.tsx
index 535147d3..893f7665 100644
--- a/echo/frontend/src/components/participant/verify/VerifySelection.tsx
+++ b/echo/frontend/src/components/participant/verify/VerifySelection.tsx
@@ -197,7 +197,7 @@ export const VerifySelection = () => {
>
{/* Main content */}
-
+
What do you want to make concrete?
diff --git a/echo/frontend/src/fonts/DMSans-Light.woff2 b/echo/frontend/src/fonts/DMSans-Light.woff2
new file mode 100644
index 00000000..10f42487
Binary files /dev/null and b/echo/frontend/src/fonts/DMSans-Light.woff2 differ
diff --git a/echo/frontend/src/fonts/DMSans-Regular.woff2 b/echo/frontend/src/fonts/DMSans-Regular.woff2
deleted file mode 100644
index 38a1e4dd..00000000
Binary files a/echo/frontend/src/fonts/DMSans-Regular.woff2 and /dev/null differ
diff --git a/echo/frontend/src/fonts/dm-sans.css b/echo/frontend/src/fonts/dm-sans.css
index 69a4ff76..f59d92ec 100644
--- a/echo/frontend/src/fonts/dm-sans.css
+++ b/echo/frontend/src/fonts/dm-sans.css
@@ -1,6 +1,6 @@
@font-face {
font-family: 'DM Sans Variable';
- src: url('./DMSans-Regular.woff2') format('woff2');
+ src: url('./DMSans-Light.woff2') format('woff2');
font-weight: 100 1000;
font-style: normal;
font-display: swap;
diff --git a/echo/frontend/src/hooks/useAppPreferences.tsx b/echo/frontend/src/hooks/useAppPreferences.tsx
index 49e0541a..94524c2d 100644
--- a/echo/frontend/src/hooks/useAppPreferences.tsx
+++ b/echo/frontend/src/hooks/useAppPreferences.tsx
@@ -91,6 +91,7 @@ export const AppPreferencesProvider = ({
// Apply font and linked color scheme to document
useEffect(() => {
const isDmSans = preferences.fontFamily === "dm-sans";
+ const root = document.documentElement;
// Font
const fontValue = isDmSans
@@ -108,32 +109,141 @@ export const AppPreferencesProvider = ({
const backgroundColor = isDmSans ? "#F6F4F1" : "#FFFFFF";
const textColor = isDmSans ? "#2D2D2C" : "#000000";
- // Set our custom CSS variables
- document.documentElement.style.setProperty("--app-font-family", fontValue);
- document.documentElement.style.setProperty(
- "--app-background",
- backgroundColor,
- );
- document.documentElement.style.setProperty("--app-text", textColor);
+ const baseFontSize = isDmSans ? "18px" : "16px";
- // Override Mantine's CSS variables so components using them update dynamically
- document.documentElement.style.setProperty(
- "--mantine-color-white",
- backgroundColor,
+ // Space Grotesk: Original Mantine-based sizes with medium weight
+ const typography = isDmSans
+ ? {
+ fontSizeLg: "1.125rem",
+ fontSizeMd: "1rem",
+ fontSizeSm: "0.875rem",
+ fontSizeXl: "1.333rem",
+ // Font sizes
+ fontSizeXs: "0.75rem",
+ h1LineHeight: "1.2",
+ // Heading sizes
+ h1Size: "2.778rem",
+ h2LineHeight: "1.25",
+ h2Size: "2.369rem",
+ h3LineHeight: "1.3",
+ h3Size: "1.777rem",
+ h4LineHeight: "1.4",
+ h4Size: "1.333rem",
+ h5LineHeight: "1.5",
+ h5Size: "1rem",
+ h6LineHeight: "1.5",
+ h6Size: "0.875rem",
+ // Heading font weight
+ headingFontWeight: "300",
+ lineHeightLg: "1.6",
+ lineHeightMd: "1.55",
+ lineHeightSm: "1.45",
+ lineHeightXl: "1.65",
+ // Line heights
+ lineHeightXs: "1.4",
+ }
+ : {
+ fontSizeLg: "1.125rem",
+ fontSizeMd: "1rem",
+ fontSizeSm: "0.875rem",
+ fontSizeXl: "1.25rem",
+ // Font sizes (original Mantine defaults)
+ fontSizeXs: "0.75rem",
+ h1LineHeight: "1.3",
+ // Heading sizes (original Mantine defaults with --mantine-scale)
+ h1Size: "2.125rem",
+ h2LineHeight: "1.35",
+ h2Size: "1.875rem",
+ h3LineHeight: "1.4",
+ h3Size: "1.5rem",
+ h4LineHeight: "1.45",
+ h4Size: "1.25rem",
+ h5LineHeight: "1.5",
+ h5Size: "1rem",
+ h6LineHeight: "1.5",
+ h6Size: "0.875rem",
+ // Heading font weight
+ headingFontWeight: "500",
+ lineHeightLg: "1.6",
+ lineHeightMd: "1.55",
+ lineHeightSm: "1.45",
+ lineHeightXl: "1.65",
+ // Line heights
+ lineHeightXs: "1.4",
+ };
+
+ // Icon sizes: DM Sans uses larger icons to match the bolder typography
+ const homeIconSize = isDmSans ? "40px" : "30px";
+
+ // Set base font size
+ root.style.setProperty("--app-base-font-size", baseFontSize);
+
+ // Set font family
+ root.style.setProperty("--app-font-family", fontValue);
+
+ // Set colors
+ root.style.setProperty("--app-background", backgroundColor);
+ root.style.setProperty("--app-text", textColor);
+
+ // Set icon sizes
+ root.style.setProperty("--app-home-icon-size", homeIconSize);
+
+ // Set typography - font sizes
+ root.style.setProperty("--app-font-size-xs", typography.fontSizeXs);
+ root.style.setProperty("--app-font-size-sm", typography.fontSizeSm);
+ root.style.setProperty("--app-font-size-md", typography.fontSizeMd);
+ root.style.setProperty("--app-font-size-lg", typography.fontSizeLg);
+ root.style.setProperty("--app-font-size-xl", typography.fontSizeXl);
+
+ // Set typography - line heights
+ root.style.setProperty("--app-line-height-xs", typography.lineHeightXs);
+ root.style.setProperty("--app-line-height-sm", typography.lineHeightSm);
+ root.style.setProperty("--app-line-height-md", typography.lineHeightMd);
+ root.style.setProperty("--app-line-height-lg", typography.lineHeightLg);
+ root.style.setProperty("--app-line-height-xl", typography.lineHeightXl);
+
+ // Set typography - heading sizes
+ root.style.setProperty(
+ "--app-heading-font-weight",
+ typography.headingFontWeight,
+ );
+ root.style.setProperty("--app-heading-h1-size", typography.h1Size);
+ root.style.setProperty(
+ "--app-heading-h1-line-height",
+ typography.h1LineHeight,
+ );
+ root.style.setProperty("--app-heading-h2-size", typography.h2Size);
+ root.style.setProperty(
+ "--app-heading-h2-line-height",
+ typography.h2LineHeight,
+ );
+ root.style.setProperty("--app-heading-h3-size", typography.h3Size);
+ root.style.setProperty(
+ "--app-heading-h3-line-height",
+ typography.h3LineHeight,
);
- document.documentElement.style.setProperty(
- "--mantine-color-black",
- textColor,
+ root.style.setProperty("--app-heading-h4-size", typography.h4Size);
+ root.style.setProperty(
+ "--app-heading-h4-line-height",
+ typography.h4LineHeight,
);
- document.documentElement.style.setProperty(
- "--mantine-color-text",
- textColor,
+ root.style.setProperty("--app-heading-h5-size", typography.h5Size);
+ root.style.setProperty(
+ "--app-heading-h5-line-height",
+ typography.h5LineHeight,
);
- document.documentElement.style.setProperty(
- "--mantine-color-body",
- backgroundColor,
+ root.style.setProperty("--app-heading-h6-size", typography.h6Size);
+ root.style.setProperty(
+ "--app-heading-h6-line-height",
+ typography.h6LineHeight,
);
+ // Override Mantine's CSS variables so components using them update dynamically
+ root.style.setProperty("--mantine-color-white", backgroundColor);
+ root.style.setProperty("--mantine-color-black", textColor);
+ root.style.setProperty("--mantine-color-text", textColor);
+ root.style.setProperty("--mantine-color-body", backgroundColor);
+
// Apply to body
document.body.style.fontFamily = fontValue;
document.body.style.backgroundColor = backgroundColor;
@@ -141,16 +251,10 @@ export const AppPreferencesProvider = ({
document.body.style.fontFeatureSettings = fontFeatureSettings;
// Set CSS variable for font feature settings
- document.documentElement.style.setProperty(
- "--app-font-feature-settings",
- fontFeatureSettings,
- );
+ root.style.setProperty("--app-font-feature-settings", fontFeatureSettings);
// Set data attribute for potential CSS selectors
- document.documentElement.setAttribute(
- "data-theme",
- isDmSans ? "parchment" : "clean",
- );
+ root.setAttribute("data-theme", isDmSans ? "parchment" : "clean");
}, [preferences.fontFamily]);
return (
diff --git a/echo/frontend/src/icons/index.tsx b/echo/frontend/src/icons/index.tsx
index a84b4844..3138473c 100644
--- a/echo/frontend/src/icons/index.tsx
+++ b/echo/frontend/src/icons/index.tsx
@@ -49,6 +49,7 @@ const Plus: React.FC> = (props) => (
);
+import { HouseIcon } from "@phosphor-icons/react";
import type { SVGProps } from "react";
import refresh from "../assets/refresh.png";
@@ -99,21 +100,20 @@ const Diamond = ({
);
};
-const Home = (props: SVGProps) => (
-
-);
+ );
+};
const Calendar = (props: SVGProps) => (