Skip to content

feat(website): use animated logo on all pages and matching favicon - #19

Merged
IamCoder18 merged 2 commits into
mainfrom
IamCoder18/logo-consistency
Sep 13, 2026
Merged

IamCoder18 merged 2 commits into
mainfrom
IamCoder18/logo-consistency

Conversation

@IamCoder18

Copy link
Copy Markdown
Owner

Summary

  • Extracted the animated synapse logo (two signal nodes + oscillating gradient arc) from Nav.astro into a shared src/components/layout/Logo.astro component
  • Homepage now uses the animated logo in its header instead of the static dot-and-ring mark, so every page (home, docs, install, changelog, community, 404) shows the same animated logo from /docs
  • public/favicon.svg updated to mirror the logo exactly: same geometry (nodes at 8/24, r=3.5), same 2.4s SMIL animation, and the signal palette (--signal-a/--signal-b dark-theme equivalents #61EBFA/#6FE4BF) for contrast on the dark tile

Validation

  • npm run build completes; 33 pages generated
  • Verified synapse-g gradient + <animate> present in built HTML for /, /docs, /docs/concepts/nodes, /install, /changelog, /community, /404

Notes

  • Unrelated pre-existing issue spotted: BaseLayout.astro references /og-default.png for og:image, but only public/og-default.svg exists — the social preview image 404s and still uses the old teal/lime palette. Left as-is to keep this PR scoped.

Extract the animated synapse logo from Nav into a shared Logo.astro
component, swap the homepage's static dot mark for it, and align
favicon.svg with the same geometry, animation, and signal palette.
@coderabbitai

coderabbitai Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 40 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 717ea71d-00a4-433b-925f-fa442204da5a

📥 Commits

Reviewing files that changed from the base of the PR and between f079334 and 2b5554c.

⛔ Files ignored due to path filters (1)
  • website/public/favicon.svg is excluded by !**/*.svg
📒 Files selected for processing (3)
  • website/src/components/layout/Logo.astro
  • website/src/components/layout/Nav.astro
  • website/src/pages/index.astro

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

---
<svg viewBox="0 0 32 32" width={size} height={size} aria-hidden="true">
<defs>
<linearGradient id="synapse-g" x1="0" x2="1" y1="0" y2="1">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Hardcoded gradient id synapse-g will produce duplicate DOM ids if <Logo /> is rendered more than once on the same page (e.g., in both a header and a footer). Browsers resolve url(#synapse-g) against the first matching id, so the second instance's <path> would render with whatever the first gradient happens to define — silently breaking visual parity.

Consider generating a unique id per instance (e.g., ${Astro.id}-gradient or crypto.randomUUID()) and referencing it via a template attribute on the path's stroke.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

<svg viewBox="0 0 32 32" width={size} height={size} aria-hidden="true">
<defs>
<linearGradient id="synapse-g" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="var(--signal-a)" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: var(--signal-a) has no fallback. If this component is ever used on a page that does not import redesign.css (or before the stylesheet finishes loading during FOUC), the stop-color falls back to the browser default (typically black/transparent), so the logo silently renders with no fill.

The favicon already hardcodes #61EBFA for this same role — reusing it as the CSS-variable fallback keeps the two sources visually identical:

Suggested change
<stop offset="0" stop-color="var(--signal-a)" />
<stop offset="0" stop-color="var(--signal-a, #61EBFA)" />

(The same fallback applies to --signal-b / #6FE4BF on line 12 and to the two <circle fill="var(--signal-...)"> lines 15–16.)


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

Comment thread website/public/favicon.svg Outdated
<path d="M9 16 Q 16 6 23 16" stroke="url(#g)" stroke-width="2" fill="none" stroke-linecap="round"/>
<circle cx="8" cy="16" r="3.5" fill="#61EBFA"/>
<circle cx="24" cy="16" r="3.5" fill="#6FE4BF"/>
<path d="M8 16 Q 16 6 24 16" stroke="url(#g)" stroke-width="2" fill="none" stroke-linecap="round">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: stroke-width="2" here vs stroke-width="1.6" in website/src/components/layout/Logo.astro:17. The PR description states the favicon was updated to "mirror the logo exactly", but the stroke weights now differ between the two — at 32px display, 1.6 renders as a noticeably thinner arc than 2. Pick one and align the other.

Also note: this path has stroke-linecap="round" while the Logo component's path doesn't — another small "exactly mirror" gap.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

@kilo-code-bot

kilo-code-bot Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

All findings from the previous review have been addressed on the changed lines:

  • WARNING (Logo.astro) — gradient id collision resolved via per-instance crypto.randomUUID() (line 7), referenced consistently on lines 11 and 18.
  • SUGGESTION (Logo.astro) — var(--signal-*) usages on lines 12, 13, 16, 17 now include the #61EBFA / #6FE4BF fallbacks matching the favicon.
  • SUGGESTION (favicon.svg) — line 11 now uses stroke-width="1.6" and stroke-linecap="round", mirroring Logo.astro:18 exactly.

No new issues were identified on the changed code.

Files Reviewed (2 files)
  • website/public/favicon.svg
  • website/src/components/layout/Logo.astro
Previous Review Summary (commit 38cad14)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 38cad14)

Status: 3 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 2
Issue Details (click to expand)

WARNING

File Line Issue
website/src/components/layout/Logo.astro 10 Hardcoded gradient id="synapse-g" will collide in the DOM if <Logo /> is rendered more than once per page (e.g. header + footer), silently breaking visual parity on the second instance.

SUGGESTION

File Line Issue
website/src/components/layout/Logo.astro 11 var(--signal-a) / var(--signal-b) have no fallback. If redesign.css is not loaded (or before paint during FOUC) the stops and circles render with the browser default fill. Reuse the favicon's #61EBFA / #6FE4BF as fallbacks.
website/public/favicon.svg 11 stroke-width="2" here vs stroke-width="1.6" in Logo.astro:17 — the PR description says the favicon was updated to "mirror the logo exactly" but the stroke weights (and stroke-linecap) differ.
Files Reviewed (4 files)
  • website/public/favicon.svg - 1 issue
  • website/src/components/layout/Logo.astro - 2 issues
  • website/src/components/layout/Nav.astro - 0 issues
  • website/src/pages/index.astro - 0 issues

Fix these issues in Kilo Cloud


Reviewed by minimax-m3 · Input: 0 · Output: 0 · Cached: 0

- Generate unique gradient id per Logo instance to avoid duplicate DOM ids
- Add #61EBFA/#6FE4BF fallbacks to CSS variable colors
- Align favicon stroke-width (1.6) and add stroke-linecap="round" to Logo
@IamCoder18
IamCoder18 merged commit ab776a3 into main Sep 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant