diff --git a/client/src/components/inputs.js b/client/src/components/inputs.js
index 0a5ce9e..6610d37 100644
--- a/client/src/components/inputs.js
+++ b/client/src/components/inputs.js
@@ -14,7 +14,7 @@
 
 export const UsernameInput = ({infoButtonProps, ...props}) => {
     const [isSelected, setIsSelected] = React.useState(false);
-    const [input, setInput] = React.useState();
+    const [input, setInput] = React.useState(props.defaultValue);
     const [startAdornment, setStartAdornment] = React.useState()
 
     const onChange = React.useCallback((event) => {
@@ -58,7 +58,7 @@
 export const PasswordInput = ({infoButtonProps, ...props}) => {
     const [showPassword, setShowPassword] = React.useState(false);
     const [isSelected, setIsSelected] = React.useState(false);
-    const [input, setInput] = React.useState();
+    const [input, setInput] = React.useState(props.defaultValue);
     const [startAdornment, setStartAdornment] = React.useState()
 
     const toggleShowPassword = () => {
@@ -113,7 +113,7 @@
 
 export const NickNameInput = (props) => {
     const [isSelected, setIsSelected] = React.useState(false);
-    const [input, setInput] = React.useState();
+    const [input, setInput] = React.useState(props.defaultValue);
     const [startAdornmentVisibility, setStartAdornmentVisibility] = React.useState()
 
     const onChange = React.useCallback((event) => {
@@ -143,7 +143,7 @@
 
 export const RegularInput = (props) => {
     const [isSelected, setIsSelected] = React.useState(false);
-    const [input, setInput] = React.useState();
+    const [input, setInput] = React.useState(props.defaultValue);
     const [startAdornmentVisibility, setStartAdornmentVisibility] = React.useState()
     const [endAdornmentVisibility, setEndAdornmentVisibility] = React.useState()
 
diff --git a/client/src/themes/ThemeDemonstrator.js b/client/src/themes/ThemeDemonstrator.js
new file mode 100644
index 0000000..7f4e0f3
--- /dev/null
+++ b/client/src/themes/ThemeDemonstrator.js
@@ -0,0 +1,60 @@
+import { Button, Stack, Switch, ThemeProvider, Typography } from "@mui/material"
+import { CancelButton, EditButton, UploadButton, TakePictureButton, InfoButton, TipButton, BackButton, CloseButton } from "../components/buttons"
+import { NickNameInput, PasswordInput, RegularInput, UsernameInput } from "../components/inputs"
+import defaultTheme from './default'
+
+export const ThemeDemonstrator = () => {
+    return (
+        <ThemeProvider theme={defaultTheme}>
+            <Stack spacing="5px">
+                <Stack>
+                    <Typography variant="h1">Exemple de titre H1</Typography>
+                    <Typography variant="h2">Exemple de titre H2</Typography>
+                    <Typography variant="h3">Exemple de titre H3</Typography>
+                    <Typography variant="h4">Exemple de titre H4</Typography>
+                    <Typography variant="h5">Exemple de titre H5</Typography>
+                    <Typography variant="body1">Texte courant principal</Typography>
+                    <Typography variant="body2">Texte courant secondaire</Typography>
+                    <Typography variant="caption">Légendes et annotations</Typography>
+                </Stack>
+                <Stack spacing="5px" padding="5px" width="300px" >
+                    <Button variant="contained">Bouton primaire</Button>
+                    <Button variant="outlined">Bouton secondaire</Button>
+                    <Button variant="text">Bouton tertiaire</Button>
+                    <Button variant="contained" size="small">Bouton liste préférences</Button>
+                </Stack>
+                <Stack direction="row" spacing="5px">
+                    <CancelButton/>
+                    <EditButton/>
+                    <UploadButton/>
+                    <TakePictureButton/>
+                </Stack>
+                <Stack direction="row" spacing="5px">
+                    <InfoButton/>
+                    <TipButton/>
+                </Stack>
+                <Stack direction="row" spacing="5px">
+                    <BackButton/>
+                    <CloseButton/>
+                </Stack>
+                <Stack>
+                    <Switch/>
+                </Stack>
+                <Stack padding="5px" width="300px" >
+                    <UsernameInput/>
+                    <UsernameInput
+                        error
+                        defaultValue="Cyrille"
+                    />
+                    <PasswordInput/>
+                    <PasswordInput
+                        error
+                        defaultValue="SavoirFaireLinux"
+                    />
+                    <NickNameInput/>
+                    <RegularInput/>
+                </Stack>
+            </Stack>
+        </ThemeProvider>
+    )
+}
\ No newline at end of file
diff --git a/client/src/themes/default.js b/client/src/themes/default.js
index 6764097..db10bde 100644
--- a/client/src/themes/default.js
+++ b/client/src/themes/default.js
@@ -16,6 +16,9 @@
   },
   typography: {
     fontFamily: "Ubuntu",
+    allVariants: {
+      color: "black"
+    },
     h1: {
       fontWeight: 400,
       fontSize: "26px",
