feat(frontend): branding "B2BCall by Handix" — logos novos em todo o app
Usuário forneceu 3 logos novos (B2BCall horizontal, B2BCall quadrado, Handix — empresa mãe). Processados com sharp (trim de whitespace + resize) e salvos em apps/frontend/public/branding/, substituindo o antigo b2blogo.png (mesmo desenho, só com mais espaço em branco ao redor). Achado ao processar: Logo_Handix.png original era RGB sem canal alpha (fundo branco opaco) — aplicar o mesmo filtro brightness-0 invert já usado no logo B2BCall pro painel escuro do login virava um retângulo branco sólido. Corrigido recolorindo pixels próximos de branco como transparentes via sharp antes de salvar. Sidebar (tenant e platform) ganha o ícone do B2BCall ao lado do nome do tenant/ "PLATFORM" no cabeçalho (canto superior esquerdo); topbar ganha o logo da Handix com link pra www.handix.com.br (canto superior direito, escondido no mobile). Login ganha "BY HANDIX" abaixo do logo principal e um rodapé com o logo da Handix + link. Testado ponta a ponta via Puppeteer: login, dashboard tenant/platform (claro e escuro), sidebar recolhida, drawer mobile. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
@@ -34,7 +34,7 @@ export function MobileNavDrawer({ items }: { items: NavSection[] }) {
|
||||
>
|
||||
<Dialog.Title className="sr-only">Navegação</Dialog.Title>
|
||||
<div className="flex h-16 items-center justify-between border-b border-border px-4">
|
||||
<Image src="/branding/b2blogo.png" alt="B2BCall" width={110} height={27} />
|
||||
<Image src="/branding/b2bcall-horizontal.png" alt="B2BCall" width={110} height={36} />
|
||||
<Dialog.Close asChild>
|
||||
<button
|
||||
type="button"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
"use client";
|
||||
|
||||
import { useState } from "react";
|
||||
import Image from "next/image";
|
||||
import { ChevronLeft, ChevronRight } from "lucide-react";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { NavList } from "./nav-list";
|
||||
@@ -21,7 +22,12 @@ export function Sidebar({ items, railLabel }: { items: NavSection[]; railLabel:
|
||||
)}
|
||||
>
|
||||
<div className="flex h-16 items-center justify-between border-b border-border px-4">
|
||||
{!collapsed && <span className="text-sm font-semibold tracking-wide text-foreground">{railLabel}</span>}
|
||||
{!collapsed && (
|
||||
<div className="flex min-w-0 items-center gap-2.5">
|
||||
<Image src="/branding/b2bcall-quadrado.png" alt="" width={28} height={23} className="shrink-0" />
|
||||
<span className="truncate text-sm font-semibold tracking-wide text-foreground">{railLabel}</span>
|
||||
</div>
|
||||
)}
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setCollapsed((c) => !c)}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import Image from "next/image";
|
||||
import { useRouter, usePathname } from "next/navigation";
|
||||
import { LogOut } from "lucide-react";
|
||||
import { ThemeToggle } from "../platform-shell/theme-toggle";
|
||||
@@ -27,6 +28,16 @@ export function Topbar({ items, fallbackTitle, userLabel }: { items: NavSection[
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex shrink-0 items-center gap-2 sm:gap-4">
|
||||
<a
|
||||
href="https://www.handix.com.br"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
title="Handix — empresa desenvolvedora do B2BCall"
|
||||
className="hidden shrink-0 opacity-70 transition-opacity hover:opacity-100 sm:block"
|
||||
>
|
||||
<Image src="/branding/handix-logo.png" alt="Handix" width={38} height={31} />
|
||||
</a>
|
||||
<div className="hidden h-6 w-px bg-border sm:block" aria-hidden />
|
||||
<ThemeToggle />
|
||||
<div className="hidden h-6 w-px bg-border sm:block" aria-hidden />
|
||||
<span className="hidden max-w-[220px] truncate text-sm text-muted-foreground sm:inline">{userLabel}</span>
|
||||
|
||||
Reference in New Issue
Block a user