feat(FN-1212): update header with circular Fusion logo

- Replace the header SVG mark with a circular outline and filled path-based glyph using currentColor
- Keep logo semantics and ordering intact while modernizing the visual treatment
- Update Header tests to assert currentColor-based geometry and verify the stroked outer circle
This commit is contained in:
gsxdsm
2026-04-08 06:16:18 -07:00
parent b6fbadec4d
commit b949fd01ff
2 changed files with 21 additions and 7 deletions

View File

@@ -272,10 +272,17 @@ export function Header({
aria-label="Fusion logo"
role="img"
>
<circle cx="44" cy="44" r="20" fill="currentColor" />
<circle cx="84" cy="44" r="20" fill="currentColor" />
<circle cx="44" cy="84" r="20" fill="currentColor" />
<circle cx="84" cy="84" r="20" fill="currentColor" />
<circle
cx="64"
cy="64"
r="52"
stroke="currentColor"
strokeWidth="8"
/>
<path
d="M26 101C44 82 62 64 82 45C90 37 98 30 104 24C96 35 89 47 81 60C70 79 57 95 43 108C38 112 32 108 26 101Z"
fill="currentColor"
/>
</svg>
<h1 className="logo">Fusion</h1>
</div>

View File

@@ -49,9 +49,16 @@ describe("Header", () => {
const logo = screen.getByLabelText("Fusion logo");
expect(logo).toBeDefined();
expect(logo.tagName.toLowerCase()).toBe("svg");
// The SVG should have the currentColor" fill
const circles = logo.querySelectorAll("circle");
expect(circles).toHaveLength(4);
// The SVG should expose currentColor-driven geometry for theme-aware coloring
const currentColorShapes = logo.querySelectorAll(
'[fill="currentColor"], [stroke="currentColor"]'
);
expect(currentColorShapes.length).toBeGreaterThan(0);
// The new logo keeps a single outer circle boundary
const outerCircle = logo.querySelector("circle[stroke='currentColor']");
expect(outerCircle).not.toBeNull();
});
it("renders the logo before the h1 element", () => {