diff --git a/client/src/Components/design-elements/BasePage.tsx b/client/src/Components/design-elements/BasePage.tsx
index 845d20a4c..c955fb6b7 100644
--- a/client/src/Components/design-elements/BasePage.tsx
+++ b/client/src/Components/design-elements/BasePage.tsx
@@ -38,9 +38,9 @@ export const PageSpeedKeyPriorityFallback = () => {
diff --git a/client/src/Components/design-elements/MonitorStatus.tsx b/client/src/Components/design-elements/MonitorStatus.tsx
index dbeb5fa84..14f33d934 100644
--- a/client/src/Components/design-elements/MonitorStatus.tsx
+++ b/client/src/Components/design-elements/MonitorStatus.tsx
@@ -17,7 +17,7 @@ export const MonitorStatus = ({ monitor }: { monitor: Monitor }) => {
return (
= {
info: "ⓘ",
@@ -25,29 +27,26 @@ export const NoticeBanner = ({ severity = "info", children }: NoticeBannerProps)
direction="row"
alignItems="flex-start"
gap={theme.spacing(LAYOUT.SM)}
- sx={{
- width: "100%",
- p: theme.spacing(LAYOUT.MD),
- borderRadius: 1,
- border: `1px solid ${alpha(tone, 0.45)}`,
- backgroundColor: alpha(tone, 0.08),
- textAlign: "left",
- }}
+ width={"100%"}
+ p={theme.spacing(LAYOUT.MD)}
+ borderRadius={theme.shape.borderRadius}
+ border={`1px solid ${alpha(tone, 0.45)}`}
+ bgcolor={alpha(tone, 0.08)}
+ textAlign={"left"}
>
{SEVERITY_GLYPH[severity]}
{children}
diff --git a/client/src/Components/inputs/Button.tsx b/client/src/Components/inputs/Button.tsx
index 54f776075..4eae654b2 100644
--- a/client/src/Components/inputs/Button.tsx
+++ b/client/src/Components/inputs/Button.tsx
@@ -1,19 +1,43 @@
import Button from "@mui/material/Button";
import type { ButtonProps } from "@mui/material/Button";
-import { useTheme } from "@mui/material/styles";
+import { useTheme, darken } from "@mui/material/styles";
+import { HOVER } from "@/Utils/Theme/constants";
+
+const PALETTE_COLORS = [
+ "primary",
+ "secondary",
+ "error",
+ "warning",
+ "info",
+ "success",
+] as const;
+type PaletteColor = (typeof PALETTE_COLORS)[number];
export const ButtonInput = ({ sx, ...props }: ButtonProps) => {
const theme = useTheme();
- const outlinedSx =
+
+ const hoverOverrides: Record = { boxShadow: "none" };
+
+ if (props.variant === "outlined") {
+ hoverOverrides.borderColor = theme.palette.text.secondary;
+ }
+
+ if (props.variant === "contained") {
+ const colorKey = (props.color ?? "primary") as PaletteColor;
+ const palette = theme.palette[colorKey];
+ if (palette && typeof palette === "object" && "main" in palette) {
+ hoverOverrides.backgroundColor = darken(palette.main, HOVER.DARKEN);
+ }
+ }
+
+ const variantSx =
props.variant === "outlined"
? {
color: theme.palette.text.primary,
borderColor: theme.palette.divider,
- "&:hover": {
- borderColor: theme.palette.text.secondary,
- },
}
: {};
+
return (
}
>
-
+
fontFamilyMonospace,
fontSize: typographyLevels.base,
h1: {
- fontSize: typographyLevels.xl,
+ fontSize: typographyLevels.xxl,
fontWeight: 500,
},
h2: {
diff --git a/client/src/Utils/Theme/constants.ts b/client/src/Utils/Theme/constants.ts
index 8b045f9f6..d718d61dc 100644
--- a/client/src/Utils/Theme/constants.ts
+++ b/client/src/Utils/Theme/constants.ts
@@ -8,6 +8,7 @@ export const SPACING = {
} as const;
export const LAYOUT = {
+ XXS: 2,
XS: 4,
SM: 6,
MD: 8,
@@ -15,3 +16,7 @@ export const LAYOUT = {
XL: 12,
XXL: 16,
} as const;
+
+export const HOVER = {
+ DARKEN: 0.06, // This is a coefficient for darkening function
+} as const;