diff --git a/Client/src/Components/Button/index.css b/Client/src/Components/Button/index.css
new file mode 100644
index 000000000..e69de29bb
diff --git a/Client/src/Components/Button/index.jsx b/Client/src/Components/Button/index.jsx
new file mode 100644
index 000000000..f357e1dd2
--- /dev/null
+++ b/Client/src/Components/Button/index.jsx
@@ -0,0 +1,45 @@
+import { Button as MuiButton } from "@mui/material";
+import PropTypes from "prop-types";
+
+const levelConfig = {
+ primary: {
+ variant: "contained",
+ color: "primary",
+ },
+ secondary: {
+ variant: "outlined",
+ color: "secondary",
+ },
+ tertiary: {
+ variant: "text",
+ color: "tertiary",
+ },
+ error: {
+ variant: "contained",
+ color: "error",
+ },
+};
+
+/**
+ * @typedef {Object} Props
+ * @property {'primary' | 'secondary' | 'tertiary' | 'error'} level - The level of the button
+ * @property {string} label - The label of the button
+ * @property {boolean} [disabled] - Whether the button is disabled
+ */
+
+const Button = ({ level, label, disabled }) => {
+ const { variant, color } = levelConfig[level];
+ return (
+