diff --git a/airbyte-webapp/src/components/StatusIcon/CircleLoader.module.scss b/airbyte-webapp/src/components/StatusIcon/CircleLoader.module.scss
new file mode 100644
index 000000000000..bb8f014fb00d
--- /dev/null
+++ b/airbyte-webapp/src/components/StatusIcon/CircleLoader.module.scss
@@ -0,0 +1,25 @@
+@use "../../scss/colors";
+
+@keyframes spinning {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+.spinner {
+ animation: spinning 1000ms linear infinite normal forwards;
+}
+
+.centerDot {
+ fill: colors.$blue;
+}
+
+:export {
+ // Export colors to be used in SVG gradients
+ gradientStart: colors.$blue;
+ gradientStop: colors.$blue-transparent;
+}
diff --git a/airbyte-webapp/src/components/StatusIcon/CircleLoader.tsx b/airbyte-webapp/src/components/StatusIcon/CircleLoader.tsx
index 49de2a314da7..f774995084d6 100644
--- a/airbyte-webapp/src/components/StatusIcon/CircleLoader.tsx
+++ b/airbyte-webapp/src/components/StatusIcon/CircleLoader.tsx
@@ -1,65 +1,34 @@
-import styled, { keyframes } from "styled-components";
+import styles from "./CircleLoader.module.scss";
-const spinAnimation = keyframes`
- 0% {
- transform: rotate(0deg);
- }
- 100% {
- transform: rotate(360deg);
- }
-`;
-
-const SpinnerSVG = styled.svg`
- animation: ${spinAnimation} 1000ms linear infinite normal forwards;
-`;
-
-interface Props {
+interface CircleLoaderProps {
title?: string;
}
-const CircleLoader = ({ title }: Props): JSX.Element => (
-
+export const CircleLoader = ({ title }: CircleLoaderProps): JSX.Element => (
+
+
);
-
-export default CircleLoader;
diff --git a/airbyte-webapp/src/components/StatusIcon/StatusIcon.tsx b/airbyte-webapp/src/components/StatusIcon/StatusIcon.tsx
index 2da76601b8bd..80910eb63c09 100644
--- a/airbyte-webapp/src/components/StatusIcon/StatusIcon.tsx
+++ b/airbyte-webapp/src/components/StatusIcon/StatusIcon.tsx
@@ -6,7 +6,7 @@ import styled from "styled-components";
import { MoonIcon } from "components/icons/MoonIcon";
import PauseIcon from "../icons/PauseIcon";
-import CircleLoader from "./CircleLoader";
+import { CircleLoader } from "./CircleLoader";
export type StatusIconStatus = "sleep" | "inactive" | "success" | "warning" | "loading" | "error";
diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/FrequentlyUsedDestinations/__snapshots__/FrequentlyUsedDestinations.test.tsx.snap b/airbyte-webapp/src/views/Connector/ServiceForm/components/FrequentlyUsedDestinations/__snapshots__/FrequentlyUsedDestinations.test.tsx.snap
index a83d88e7e217..45ccd7d81603 100644
--- a/airbyte-webapp/src/views/Connector/ServiceForm/components/FrequentlyUsedDestinations/__snapshots__/FrequentlyUsedDestinations.test.tsx.snap
+++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/FrequentlyUsedDestinations/__snapshots__/FrequentlyUsedDestinations.test.tsx.snap
@@ -74,7 +74,7 @@ exports[` should renders with mock data without cr
>
@@ -93,7 +93,7 @@ exports[` should renders with mock data without cr
class="container"
>
Alpha
@@ -125,7 +125,7 @@ exports[` should renders with mock data without cr
>
@@ -188,7 +188,7 @@ exports[` should renders with mock data without cr
>
@@ -230,7 +230,7 @@ exports[` should renders with mock data without cr
>
@@ -272,7 +272,7 @@ exports[` should renders with mock data without cr
>
@@ -291,7 +291,7 @@ exports[` should renders with mock data without cr
class="container"
>
Alpha
diff --git a/airbyte-webapp/src/views/Connector/ServiceForm/components/StartWithDestination/__snapshots__/StartWithDestination.test.tsx.snap b/airbyte-webapp/src/views/Connector/ServiceForm/components/StartWithDestination/__snapshots__/StartWithDestination.test.tsx.snap
index 6555679b3e5a..c6e68f28119c 100644
--- a/airbyte-webapp/src/views/Connector/ServiceForm/components/StartWithDestination/__snapshots__/StartWithDestination.test.tsx.snap
+++ b/airbyte-webapp/src/views/Connector/ServiceForm/components/StartWithDestination/__snapshots__/StartWithDestination.test.tsx.snap
@@ -22,7 +22,7 @@ exports[` should renders without crash with provided pr
>