diff --git a/frontend/public/next.svg b/frontend/public/next.svg
deleted file mode 100644
index 136c6145505c9c9b1457e0bb61a2406fe32f99f7_ZnJvbnRlbmQvcHVibGljL25leHQuc3Zn..0000000000000000000000000000000000000000
--- a/frontend/public/next.svg
+++ /dev/null
@@ -1,1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
\ No newline at end of file
diff --git a/frontend/public/rodolf.jpg b/frontend/public/rodolf.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9b52cc88f76e999cf3e5e1848930b62bf78eabd0
GIT binary patch
literal 3000
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
F{~bE7jAj4;

diff --git a/frontend/public/vercel.svg b/frontend/public/vercel.svg
deleted file mode 100644
index 136c6145505c9c9b1457e0bb61a2406fe32f99f7_ZnJvbnRlbmQvcHVibGljL3ZlcmNlbC5zdmc=..0000000000000000000000000000000000000000
--- a/frontend/public/vercel.svg
+++ /dev/null
@@ -1,1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg>
\ No newline at end of file
diff --git a/frontend/src/app/favicon.ico b/frontend/src/app/favicon.ico
index 718d6fea4835ec2d246af9800eddb7ffb276240c..363dd74afa299b5625f37d0bf4330e3057da04f9
GIT binary patch
literal 28862
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
T|6{QKYya2&ul-;92e<zZGC>$n

diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx
index 136c6145505c9c9b1457e0bb61a2406fe32f99f7_ZnJvbnRlbmQvc3JjL2FwcC9sYXlvdXQudHN4..8abef47db9b1ec6fc12d6353f640573ac12af93d_ZnJvbnRlbmQvc3JjL2FwcC9sYXlvdXQudHN4 100644
--- a/frontend/src/app/layout.tsx
+++ b/frontend/src/app/layout.tsx
@@ -1,3 +1,4 @@
+import BaseLayout from "@/components/BaseLayout";
 import type { Metadata } from "next";
 
 export const metadata: Metadata = {
@@ -12,7 +13,9 @@
 }) {
   return (
     <html lang="en">
-      <body style={{ margin: 0 }}>{children}</body>
+      <body style={{ margin: 0 }}>
+        <BaseLayout>{children}</BaseLayout>
+      </body>
     </html>
   );
 }
diff --git a/frontend/src/components/BaseLayout.tsx b/frontend/src/components/BaseLayout.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..8abef47db9b1ec6fc12d6353f640573ac12af93d_ZnJvbnRlbmQvc3JjL2NvbXBvbmVudHMvQmFzZUxheW91dC50c3g=
--- /dev/null
+++ b/frontend/src/components/BaseLayout.tsx
@@ -0,0 +1,19 @@
+"use client";
+
+import { PropsWithChildren } from "react";
+import { Header } from "./Header";
+import { CustomThemeProvider } from "@/context/DarkModeContext";
+import { Box, Paper } from "@mui/material";
+
+export default function BaseLayout({ children }: PropsWithChildren) {
+  return (
+    <CustomThemeProvider>
+      <Paper elevation={0} square sx={{ minHeight: "100vh" }}>
+        <Header />
+        <Box paddingTop={1} paddingBottom={1}>
+          {children}
+        </Box>
+      </Paper>
+    </CustomThemeProvider>
+  );
+}
diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..8abef47db9b1ec6fc12d6353f640573ac12af93d_ZnJvbnRlbmQvc3JjL2NvbXBvbmVudHMvSGVhZGVyLnRzeA==
--- /dev/null
+++ b/frontend/src/components/Header.tsx
@@ -0,0 +1,71 @@
+import {
+  AppBar,
+  Button,
+  IconButton,
+  Stack,
+  Toolbar,
+  Typography,
+  useTheme,
+} from "@mui/material";
+import DarkMode from "@mui/icons-material/DarkMode";
+import LightMode from "@mui/icons-material/LightMode";
+import { useToggleDarkMode } from "@/context/DarkModeContext";
+import Link from "next/link";
+import Image from "next/image";
+
+export function Header() {
+  const toggleDarkMode = useToggleDarkMode();
+  const theme = useTheme();
+
+  const loggedIn = false;
+
+  return (
+    <AppBar position="static">
+      <Toolbar>
+        <Link
+          href={"/"}
+          prefetch={false}
+          style={{
+            textDecoration: "none",
+            color: "inherit",
+            flex: 1,
+          }}
+        >
+          <Stack
+            direction={"row"}
+            spacing={2}
+            flexGrow={1}
+            alignItems={"center"}
+          >
+            <Image
+              src={"/rodolf.jpg"}
+              alt={"Rodolf logo"}
+              width={50}
+              height={50}
+            />
+            <Typography
+              variant="h6"
+              sx={{
+                display: { xs: "none", sm: "none", md: "block" },
+              }}
+            >
+              Rodolf
+            </Typography>
+          </Stack>
+        </Link>
+        <IconButton onClick={toggleDarkMode}>
+          {theme.palette.mode === "light" ? <LightMode /> : <DarkMode />}
+        </IconButton>
+        <Button
+          onClick={() => {
+            console.log("login");
+          }}
+          variant={loggedIn ? "contained" : "text"}
+          color={loggedIn ? "error" : "primary"}
+        >
+          {loggedIn ? "Déconnexion" : "Connexion"}
+        </Button>
+      </Toolbar>
+    </AppBar>
+  );
+}
diff --git a/frontend/src/context/DarkModeContext.tsx b/frontend/src/context/DarkModeContext.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..8abef47db9b1ec6fc12d6353f640573ac12af93d_ZnJvbnRlbmQvc3JjL2NvbnRleHQvRGFya01vZGVDb250ZXh0LnRzeA==
--- /dev/null
+++ b/frontend/src/context/DarkModeContext.tsx
@@ -0,0 +1,65 @@
+import { ThemeProvider, createTheme, useMediaQuery } from "@mui/material";
+import React, { PropsWithChildren, useContext, useState } from "react";
+
+export interface CustomThemeType {
+  toggleDarkMode?: () => void;
+}
+
+const CustomThemeContext = React.createContext<CustomThemeType>({
+  toggleDarkMode: () => undefined,
+});
+
+const DARK_MODE_KEY = "rodolf.theme.dark";
+
+export function CustomThemeProvider({ children }: PropsWithChildren) {
+  const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)");
+  const savedDarkMode = localStorage.getItem(DARK_MODE_KEY) === "1";
+  const hasSavedDarkMode = localStorage.getItem(DARK_MODE_KEY) !== null;
+
+  const initialDarkMode = hasSavedDarkMode ? savedDarkMode : prefersDarkMode;
+
+  const [darkMode, setDarkMode] = useState(initialDarkMode);
+
+  function toggleDarkMode() {
+    localStorage.setItem(DARK_MODE_KEY, darkMode ? "0" : "1");
+    setDarkMode(!darkMode);
+  }
+
+  const defaultTheme = React.useMemo(
+    () =>
+      createTheme({
+        palette: {
+          mode: darkMode ? "dark" : "light",
+        },
+      }),
+    [darkMode],
+  );
+
+  const theme = React.useMemo(
+    () =>
+      createTheme(defaultTheme, {
+        components: {
+          MuiAppBar: {
+            styleOverrides: {
+              colorPrimary: {
+                backgroundColor: defaultTheme.palette.background.paper,
+                color: defaultTheme.palette.text.primary,
+              },
+            },
+          },
+        },
+      }),
+    [defaultTheme],
+  );
+
+  return (
+    <CustomThemeContext.Provider value={{ toggleDarkMode }}>
+      <ThemeProvider theme={theme}>{children}</ThemeProvider>
+    </CustomThemeContext.Provider>
+  );
+}
+
+export function useToggleDarkMode() {
+  const { toggleDarkMode } = useContext(CustomThemeContext);
+  return toggleDarkMode;
+}