diff --git a/src/frontend/apps/impress/.env b/src/frontend/apps/impress/.env
new file mode 100644
index 00000000..6c2936d2
--- /dev/null
+++ b/src/frontend/apps/impress/.env
@@ -0,0 +1 @@
+NEXT_PUBLIC_THEME=dsfr
diff --git a/src/frontend/apps/impress/.env.test b/src/frontend/apps/impress/.env.test
index 9a4d5142..6d5094f8 100644
--- a/src/frontend/apps/impress/.env.test
+++ b/src/frontend/apps/impress/.env.test
@@ -1 +1,2 @@
NEXT_PUBLIC_API_ORIGIN=http://test.jest
+NEXT_PUBLIC_THEME=test-theme
diff --git a/src/frontend/apps/impress/src/cunningham/__tests__/useCunninghamTheme.spec.tsx b/src/frontend/apps/impress/src/cunningham/__tests__/useCunninghamTheme.spec.tsx
new file mode 100644
index 00000000..1d8fc26e
--- /dev/null
+++ b/src/frontend/apps/impress/src/cunningham/__tests__/useCunninghamTheme.spec.tsx
@@ -0,0 +1,9 @@
+import useCunninghamTheme from '../useCunninghamTheme';
+
+describe('', () => {
+ it('has the theme from NEXT_PUBLIC_THEME', () => {
+ const { theme } = useCunninghamTheme.getState();
+
+ expect(theme).toBe('test-theme');
+ });
+});
diff --git a/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx b/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx
index e858286f..26feaf8c 100644
--- a/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx
+++ b/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx
@@ -20,7 +20,7 @@ const useCunninghamTheme = create((set, get) => {
merge(tokens.themes['default'], tokens.themes[get().theme]) as Tokens;
return {
- theme: 'dsfr',
+ theme: (process.env.NEXT_PUBLIC_THEME as Theme) || 'dsfr',
colorsTokens: () => currentTheme().theme.colors,
componentTokens: () => currentTheme().components,
setTheme: (theme: Theme) => {
diff --git a/src/frontend/apps/impress/src/custom-next.d.ts b/src/frontend/apps/impress/src/custom-next.d.ts
index 4f84b79c..b8bbf9bf 100644
--- a/src/frontend/apps/impress/src/custom-next.d.ts
+++ b/src/frontend/apps/impress/src/custom-next.d.ts
@@ -22,5 +22,6 @@ namespace NodeJS {
NEXT_PUBLIC_API_ORIGIN?: string;
NEXT_PUBLIC_SIGNALING_URL?: string;
NEXT_PUBLIC_SW_DEACTIVATED?: string;
+ NEXT_PUBLIC_THEME?: string;
}
}