From dbeb98bbe427c5e5d3aab114d9dbdaacdd928d97 Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Mon, 27 Apr 2026 00:11:10 +0000 Subject: [PATCH] =?UTF-8?q?refactor(logo):=20vetorizar=20e=20separar=20Log?= =?UTF-8?q?oIcon/LogoText=20em=20arquivos=20pr=C3=B3prios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Substitui as PNGs raster do componente Logo por SVGs inline e quebra em dois subcomponentes reutilizáveis: - LogoIcon (src/shared/components/logo-icon.tsx): SVG do ícone laranja (viewBox 0 0 200 200), aceita SVGProps via spread - LogoText (src/shared/components/logo-text.tsx): SVG do wordmark (viewBox 0 0 574.201 89.6), fill #000 + dark:invert para alternar preto/branco conforme o tema - Logo (orquestrador): mantém a API atual (variants full/compact/small, invertTextOnDark, colorIcon, iconClassName, textClassName) e agora renderiza os SVGs em vez de next/image Co-Authored-By: Claude Opus 4.7 --- src/shared/components/logo-icon.tsx | 18 ++++++ src/shared/components/logo-text.tsx | 18 ++++++ src/shared/components/logo.tsx | 87 +++++++++-------------------- 3 files changed, 62 insertions(+), 61 deletions(-) create mode 100644 src/shared/components/logo-icon.tsx create mode 100644 src/shared/components/logo-text.tsx diff --git a/src/shared/components/logo-icon.tsx b/src/shared/components/logo-icon.tsx new file mode 100644 index 0000000..d57c0db --- /dev/null +++ b/src/shared/components/logo-icon.tsx @@ -0,0 +1,18 @@ +import type { SVGProps } from "react"; + +export function LogoIcon(props: SVGProps) { + return ( + + + + ); +} diff --git a/src/shared/components/logo-text.tsx b/src/shared/components/logo-text.tsx new file mode 100644 index 0000000..77c6cbf --- /dev/null +++ b/src/shared/components/logo-text.tsx @@ -0,0 +1,18 @@ +import type { SVGProps } from "react"; + +export function LogoText(props: SVGProps) { + return ( + + + + ); +} diff --git a/src/shared/components/logo.tsx b/src/shared/components/logo.tsx index 4e53a18..d807d2f 100644 --- a/src/shared/components/logo.tsx +++ b/src/shared/components/logo.tsx @@ -1,4 +1,5 @@ -import Image from "next/image"; +import { LogoIcon } from "@/shared/components/logo-icon"; +import { LogoText } from "@/shared/components/logo-text"; import { cn } from "@/shared/utils/ui"; interface LogoProps { @@ -27,75 +28,39 @@ export function Logo({ if (variant === "compact") { return (
-
- OpenMonetis -
-
- OpenMonetis -
+ +
); } if (variant === "small") { - return ( -
- OpenMonetis -
- ); + return ; } return (
-
- OpenMonetis -
-
- OpenMonetis -
+ +
); }