diff --git a/packages/ra-ui-materialui/src/theme/ThemeTester.stories.tsx b/packages/ra-ui-materialui/src/theme/ThemeTester.stories.tsx
new file mode 100644
index 0000000000..7036b8ad14
--- /dev/null
+++ b/packages/ra-ui-materialui/src/theme/ThemeTester.stories.tsx
@@ -0,0 +1,142 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { useStore, StoreContextProvider, memoryStore } from 'ra-core';
+import {
+ defaultLightTheme,
+ defaultDarkTheme,
+ nanoDarkTheme,
+ nanoLightTheme,
+ radiantDarkTheme,
+ radiantLightTheme,
+ houseDarkTheme,
+ houseLightTheme,
+ bwLightTheme,
+ bwDarkTheme,
+ ThemeProvider,
+ ThemesContext,
+} from './';
+import { Box, Card, Stack, Typography } from '@mui/material';
+import { Button } from '../button';
+
+export default {
+ title: 'ra-ui-materialui/theme/ThemeTester',
+};
+
+const themes: Theme[] = [
+ { name: 'Default', light: defaultLightTheme, dark: defaultDarkTheme },
+ {
+ name: 'B&W',
+ light: bwLightTheme,
+ dark: bwDarkTheme,
+ },
+ { name: 'Nano', light: nanoLightTheme, dark: nanoDarkTheme },
+ { name: 'Radiant', light: radiantLightTheme, dark: radiantDarkTheme },
+ { name: 'House', light: houseLightTheme, dark: houseDarkTheme },
+];
+
+export const ThemeTester = () => {
+ const [themeName, setThemeName] = useState('themeName', 'default');
+ const [themeType, setThemeType] = useState('themeType', 'light');
+ const lightTheme = themes.find(theme => theme.name === themeName)?.light;
+ const darkTheme = themes.find(theme => theme.name === themeName)?.dark;
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+const ThemeSelector = ({ themeName, setThemeName }) => {
+ const handleChange = (_: React.MouseEvent, index: number) => {
+ const newTheme = themes[index];
+ setThemeName(newTheme.name);
+ };
+ const [theme, setter] = useStore('theme', 'light');
+
+ return (
+
+
+ Theme
+
+
+ {themes.map((theme, index) => (
+
+
+
+
+ Type
+
+
+
+
+
+
+ );
+};
+
+const Separator = () => (
+
+);
+
+interface SectionProps extends Omit {
+ title: React.ReactNode;
+ children: React.ReactNode;
+}
+export const Section = ({ title, children, ...rest }: SectionProps) => (
+ <>
+
+ {title}
+
+ {children}
+
+
+
+ >
+);