diff --git a/site/src/components/Avatar/AvatarDataSkeleton.tsx b/site/src/components/Avatar/AvatarDataSkeleton.tsx
index 1c12749888..f7ba038a9d 100644
--- a/site/src/components/Avatar/AvatarDataSkeleton.tsx
+++ b/site/src/components/Avatar/AvatarDataSkeleton.tsx
@@ -1,9 +1,10 @@
-import Skeleton from "@mui/material/Skeleton";
import type { FC } from "react";
+import { Skeleton } from "#/components/Skeleton/Skeleton";
+
export const AvatarDataSkeleton: FC = () => {
return (
-
+
diff --git a/site/src/components/Latency/Latency.tsx b/site/src/components/Latency/Latency.tsx
index 0e26a08f23..6d839c613c 100644
--- a/site/src/components/Latency/Latency.tsx
+++ b/site/src/components/Latency/Latency.tsx
@@ -1,7 +1,7 @@
-import CircularProgress from "@mui/material/CircularProgress";
import { CircleHelpIcon } from "lucide-react";
import type { FC } from "react";
import { Abbr } from "#/components/Abbr/Abbr";
+import { Spinner } from "#/components/Spinner/Spinner";
import {
Tooltip,
TooltipContent,
@@ -38,7 +38,7 @@ export const Latency: FC = ({
className,
)}
>
-
+
Loading latency...
diff --git a/site/src/components/Skeleton/Skeleton.tsx b/site/src/components/Skeleton/Skeleton.tsx
index e4c983ff5e..729a45a835 100644
--- a/site/src/components/Skeleton/Skeleton.tsx
+++ b/site/src/components/Skeleton/Skeleton.tsx
@@ -1,17 +1,45 @@
/**
- * Copied from shadc/ui on 06/20/2025
+ * Copied from shadcn/ui on 06/20/2025.
* @see {@link https://ui.shadcn.com/docs/components/skeleton}
*/
+import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "#/utils/cn";
-function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
+const skeletonVariants = cva("bg-surface-tertiary animate-pulse", {
+ variants: {
+ variant: {
+ default: "rounded-md",
+ text: "rounded-full h-2 my-1",
+ circular: "rounded-full",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+});
+
+type SkeletonProps = React.ComponentProps<"div"> &
+ VariantProps
& {
+ /** Width in pixels (number) or any CSS value (string). */
+ width?: number | string;
+ /** Height in pixels (number) or any CSS value (string). */
+ height?: number | string;
+ };
+
+export const Skeleton: React.FC = ({
+ className,
+ variant,
+ width,
+ height,
+ style,
+ ...props
+}) => {
return (
);
-}
-
-export { Skeleton };
+};
diff --git a/site/src/components/StackLabel/StackLabel.tsx b/site/src/components/StackLabel/StackLabel.tsx
index 239a506011..ad33fecb57 100644
--- a/site/src/components/StackLabel/StackLabel.tsx
+++ b/site/src/components/StackLabel/StackLabel.tsx
@@ -1,6 +1,3 @@
-import FormHelperText, {
- type FormHelperTextProps,
-} from "@mui/material/FormHelperText";
import type { ComponentProps, FC } from "react";
import { Stack } from "#/components/Stack/Stack";
import { cn } from "#/utils/cn";
@@ -23,13 +20,16 @@ export const StackLabel: FC> = ({
);
};
-export const StackLabelHelperText: FC = ({
+export const StackLabelHelperText: FC> = ({
className,
...props
}) => {
return (
-
);
diff --git a/site/src/components/TableToolbar/TableToolbar.tsx b/site/src/components/TableToolbar/TableToolbar.tsx
index 95b2945e05..dc966bda35 100644
--- a/site/src/components/TableToolbar/TableToolbar.tsx
+++ b/site/src/components/TableToolbar/TableToolbar.tsx
@@ -1,5 +1,5 @@
-import Skeleton from "@mui/material/Skeleton";
import type { FC, PropsWithChildren } from "react";
+import { Skeleton } from "#/components/Skeleton/Skeleton";
export const TableToolbar: FC = ({ children }) => {
return (
diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx
index 3785f4dcc1..4408a79311 100644
--- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx
+++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx
@@ -1,5 +1,4 @@
import type { Interpolation, Theme } from "@emotion/react";
-import Skeleton from "@mui/material/Skeleton";
import { ArrowRightIcon, PlusIcon } from "lucide-react";
import type { FC } from "react";
import { Link as RouterLink, useNavigate } from "react-router";
@@ -26,6 +25,7 @@ import {
PageHeaderSubtitle,
PageHeaderTitle,
} from "#/components/PageHeader/PageHeader";
+import { Skeleton } from "#/components/Skeleton/Skeleton";
import { Stack } from "#/components/Stack/Stack";
import {
Table,
@@ -290,9 +290,7 @@ const TableLoader: FC = () => {
-
+