diff --git a/apps/web/modules/ui/components/formbricks-logo/index.tsx b/apps/web/modules/ui/components/formbricks-logo/index.tsx
deleted file mode 100644
index 7b2d66e54c..0000000000
--- a/apps/web/modules/ui/components/formbricks-logo/index.tsx
+++ /dev/null
@@ -1,197 +0,0 @@
-interface FormbricksLogoProps {
- className?: string;
-}
-
-export const FormbricksLogo = ({ className }: FormbricksLogoProps) => {
- return (
-
- );
-};
diff --git a/apps/web/modules/ui/components/logo/index.test.tsx b/apps/web/modules/ui/components/logo/index.test.tsx
index cae4bb4dc2..4adea7f2e8 100644
--- a/apps/web/modules/ui/components/logo/index.test.tsx
+++ b/apps/web/modules/ui/components/logo/index.test.tsx
@@ -8,33 +8,59 @@ describe("Logo", () => {
cleanup();
});
- test("renders correctly", () => {
- const { container } = render(
);
- const svg = container.querySelector("svg");
+ describe("default variant", () => {
+ test("renders default logo correctly", () => {
+ const { container } = render(
);
+ const svg = container.querySelector("svg");
- expect(svg).toBeInTheDocument();
- expect(svg).toHaveAttribute("viewBox", "0 0 697 150");
- expect(svg).toHaveAttribute("fill", "none");
- expect(svg).toHaveAttribute("xmlns", "http://www.w3.org/2000/svg");
+ expect(svg).toBeInTheDocument();
+ });
});
- test("accepts and passes through props", () => {
- const testClassName = "test-class";
- const { container } = render(
);
- const svg = container.querySelector("svg");
+ describe("image variant", () => {
+ test("renders image logo correctly", () => {
+ const { container } = render(
);
+ const svg = container.querySelector("svg");
- expect(svg).toBeInTheDocument();
- expect(svg).toHaveAttribute("class", testClassName);
+ expect(svg).toBeInTheDocument();
+ });
+
+ test("renders image logo with className correctly", () => {
+ const testClassName = "test-class";
+ const { container } = render(
);
+ const svg = container.querySelector("svg");
+
+ expect(svg).toBeInTheDocument();
+ expect(svg).toHaveAttribute("class", testClassName);
+ });
});
- test("contains expected svg elements", () => {
- const { container } = render(
);
- const svg = container.querySelector("svg");
+ describe("wordmark variant", () => {
+ test("renders wordmark logo correctly", () => {
+ const { container } = render(
);
+ const svg = container.querySelector("svg");
- expect(svg?.querySelectorAll("path").length).toBeGreaterThan(0);
- expect(svg?.querySelector("line")).toBeInTheDocument();
- expect(svg?.querySelectorAll("mask").length).toBe(2);
- expect(svg?.querySelectorAll("filter").length).toBe(3);
- expect(svg?.querySelectorAll("linearGradient").length).toBe(6);
+ expect(svg).toBeInTheDocument();
+ });
+
+ test("renders wordmark logo with className correctly", () => {
+ const testClassName = "test-class";
+ const { container } = render(
);
+ const svg = container.querySelector("svg");
+
+ expect(svg).toBeInTheDocument();
+ expect(svg).toHaveAttribute("class", testClassName);
+ });
+
+ test("contains expected svg elements", () => {
+ const { container } = render(
);
+ const svg = container.querySelector("svg");
+
+ expect(svg?.querySelectorAll("path").length).toBeGreaterThan(0);
+ expect(svg?.querySelector("line")).toBeInTheDocument();
+ expect(svg?.querySelectorAll("mask").length).toBe(2);
+ expect(svg?.querySelectorAll("filter").length).toBe(3);
+ expect(svg?.querySelectorAll("linearGradient").length).toBe(6);
+ });
});
});
diff --git a/apps/web/modules/ui/components/logo/index.tsx b/apps/web/modules/ui/components/logo/index.tsx
index 1993736f91..03d2767b78 100644
--- a/apps/web/modules/ui/components/logo/index.tsx
+++ b/apps/web/modules/ui/components/logo/index.tsx
@@ -1,4 +1,208 @@
-export const Logo = (props: any) => {
+interface LogoProps extends React.SVGProps
{
+ variant?: "image" | "wordmark";
+}
+
+export const Logo = ({ variant = "wordmark", ...props }: LogoProps) => {
+ if (variant === "image") return ;
+
+ return ;
+};
+
+const ImageLogo = (props: React.SVGProps) => {
+ return (
+
+ );
+};
+
+const WordmarkLogo = (props: React.SVGProps) => {
return (