From 76e34149e98bce481ab1717de4bdc35799538b8d Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 6 May 2024 15:58:51 -0700 Subject: [PATCH 1/6] Add label component, add colors to theme --- Client/src/Components/Label/index.css | 3 ++ Client/src/Components/Label/index.jsx | 58 +++++++++++++++++++++++++++ Client/src/Pages/Home/index.jsx | 9 ++++- Client/src/Utils/Theme.js | 37 +++++++++++++++++ 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 Client/src/Components/Label/index.css create mode 100644 Client/src/Components/Label/index.jsx diff --git a/Client/src/Components/Label/index.css b/Client/src/Components/Label/index.css new file mode 100644 index 000000000..945ab62d1 --- /dev/null +++ b/Client/src/Components/Label/index.css @@ -0,0 +1,3 @@ +.label { + border: 1px solid #000; +} diff --git a/Client/src/Components/Label/index.jsx b/Client/src/Components/Label/index.jsx new file mode 100644 index 000000000..0d9a75c39 --- /dev/null +++ b/Client/src/Components/Label/index.jsx @@ -0,0 +1,58 @@ +import PropTypes from "prop-types"; +import "./index.css"; +import { useTheme } from "@mui/material"; + +/** + * @typedef {Object} Props + * @property {string} label - The label of the button + */ + +const Label = ({ label, color }) => { + const theme = useTheme(); + + const config = { + orange: { + borderColor: theme.palette.labelOrange.borderColor, + bgColor: theme.palette.labelOrange.bgColor, + textColor: theme.palette.labelOrange.textColor, + }, + gray: { + borderColor: theme.palette.labelGray.borderColor, + bgColor: theme.palette.labelGray.bgColor, + textColor: theme.palette.labelGray.textColor, + }, + purple: { + borderColor: theme.palette.labelPurple.borderColor, + bgColor: theme.palette.labelPurple.bgColor, + textColor: theme.palette.labelPurple.textColor, + }, + green: { + borderColor: theme.palette.labelGreen.borderColor, + bgColor: theme.palette.labelGreen.bgColor, + textColor: theme.palette.labelGreen.textColor, + }, + }; + + const { borderColor, bgColor, textColor } = config[color]; + const { borderRadius } = theme.shape; + return ( +
+ {label} +
+ ); +}; + +Label.propTypes = { + label: PropTypes.string.isRequired, + color: PropTypes.string.isRequired, +}; + +export default Label; diff --git a/Client/src/Pages/Home/index.jsx b/Client/src/Pages/Home/index.jsx index 849489ff8..81cec067a 100644 --- a/Client/src/Pages/Home/index.jsx +++ b/Client/src/Pages/Home/index.jsx @@ -1,7 +1,7 @@ -import React from "react"; import DropdownTeamMember from "../../Components/DropdownTeamMember"; import "./index.css"; import Button from "../../Components/Button"; +import Label from "../../Components/Label"; const Home = () => { return ( @@ -25,6 +25,13 @@ const Home = () => {