diff --git a/src/ui/common/assets/three-dots.svg b/src/ui/common/assets/three-dots-black.svg
similarity index 95%
rename from src/ui/common/assets/three-dots.svg
rename to src/ui/common/assets/three-dots-black.svg
index 16dabb8c6..297bed51d 100644
--- a/src/ui/common/assets/three-dots.svg
+++ b/src/ui/common/assets/three-dots-black.svg
@@ -1,5 +1,5 @@
\ No newline at end of file
+ fill="#000000" />
+
diff --git a/src/ui/common/components/Icons/common/ThreeDotsMenuIcon.tsx b/src/ui/common/components/Icons/common/ThreeDotsMenuIcon.tsx
new file mode 100644
index 000000000..482535683
--- /dev/null
+++ b/src/ui/common/components/Icons/common/ThreeDotsMenuIcon.tsx
@@ -0,0 +1,39 @@
+import { iconColorVariants } from "@babylonlabs-io/core-ui";
+import { twJoin } from "tailwind-merge";
+
+interface ThreeDotsMenuIconProps {
+ className?: string;
+ size?: number;
+ /** Same variants supported by other icons */
+ variant?: keyof typeof iconColorVariants;
+ /** Tailwind className to force a color */
+ color?: string;
+}
+
+export const ThreeDotsMenuIcon = ({
+ className = "",
+ size = 20,
+ variant = "default",
+ color,
+}: ThreeDotsMenuIconProps) => {
+ const colorClass = color || iconColorVariants[variant];
+
+ return (
+
+ );
+};
diff --git a/src/ui/common/components/ThreeDotsMenu/ThreeDotsMenu.tsx b/src/ui/common/components/ThreeDotsMenu/ThreeDotsMenu.tsx
index 490ef2d3a..e105a622f 100644
--- a/src/ui/common/components/ThreeDotsMenu/ThreeDotsMenu.tsx
+++ b/src/ui/common/components/ThreeDotsMenu/ThreeDotsMenu.tsx
@@ -1,7 +1,7 @@
import { Popover, Text } from "@babylonlabs-io/core-ui";
import { useState } from "react";
-import threeDots from "@/ui/common/assets/three-dots.svg";
+import { ThreeDotsMenuIcon } from "@/ui/common/components/Icons/common/ThreeDotsMenuIcon";
interface ThreeDotsMenuProps {
onChange: () => void;
@@ -25,7 +25,10 @@ export const ThreeDotsMenu = ({
className={className}
aria-label="Open options"
>
-
+