Skip to content

feat: add dark mode logos for selected chains and tokens#1394

Merged
paulbalaji merged 7 commits intomainfrom
pb/darklogos
Feb 19, 2026
Merged

feat: add dark mode logos for selected chains and tokens#1394
paulbalaji merged 7 commits intomainfrom
pb/darklogos

Conversation

@paulbalaji
Copy link
Copy Markdown
Collaborator

@paulbalaji paulbalaji commented Feb 18, 2026

Summary

  • Add darkmode-logo.svg (white/inverted) variants for 21 chains: abstract, aleo, aleotestnet, berachain, eclipsemainnet, edgenchain, incentiv, krown, litchain, mantle, megaeth, milkyway, neutron, soneium, sonic, sophon, subtensor, vana, viction, worldchain, xlayer
  • Add darkmode-logo.svg for 6 token warp routes: ALEO, CENT, EDGEN, KROWN, LITKEY, MILK
  • Update CHAIN_FILE_REGEX to support hyphenated filenames
  • Add darkmode-logo field to ChainFiles interface
  • Copy darkmode-logo.svg in build script

Test plan

  • Verify SVGs render correctly as white logos on dark backgrounds
  • Verify build includes darkmode logos in dist output

🤖 Generated with Claude Code

paulbalaji and others added 3 commits February 18, 2026 22:33
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@paulbalaji paulbalaji changed the title Add dark mode logos for chains and tokens feat: add dark mode logos for selected chains and tokens Feb 18, 2026
@paulbalaji paulbalaji marked this pull request as ready for review February 18, 2026 22:39
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 18, 2026

📝 Walkthrough

Walkthrough

Adds dark mode logos support: a changelog entry, build script copying of darkmode-logo.svg when present, regex updated to accept hyphenated chain names, and an optional darkmode-logo field on ChainFiles in the registry interface.

Changes

Cohort / File(s) Summary
Changelog
\.changeset/dark-logos-added.md
New changeset entry documenting a patch release for @hyperlane-xyz/registry that records adding dark mode logos for chains and tokens.
Build script
scripts/build.ts
Adds conditional copy: if darkmode-logo.svg exists in input, copy it to output as darkmode-logo.svg. Review file-copy behavior and error handling.
Registry & constants
src/consts.ts, src/registry/IRegistry.ts
CHAIN_FILE_REGEX updated to allow hyphenated chain identifiers (([a-z]+(?:-[a-z]+)*)). ChainFiles interface gains optional darkmode-logo field. Check serialization/consumption sites for the new property and regex scope.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

Ay, little logos in the night, snug an' sleek,
Darkmode shines where daylight used to peek.
Scripts tuck 'em in, patterns stretched to fit,
Types nod, optional as a swamp-side wit. 🐸✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding dark mode logos for chains and tokens, which aligns with all file modifications.
Description check ✅ Passed The PR description covers the main changes and includes a test plan, but omits the backward compatibility section required by the template.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pb/darklogos

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 and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.changeset/dark-logos-added.md (1)

1-5: Changeset is well-formed — consider whether minor fits better than patch.

The format and description look good. One thing worth a wee think: adding 24 brand-new logo-dark.svg assets is net-new functionality that consumers can now start referencing. That's the kind of addition that typically sits in minor territory under semver, since it's backwards-compatible new capability rather than a fix to something already broken.

That said, if the project convention is to treat pure asset drops as patch, this is perfectly fine as-is.

♻️ Optional bump level adjustment
-'@hyperlane-xyz/registry': patch
+'@hyperlane-xyz/registry': minor
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.changeset/dark-logos-added.md around lines 1 - 5, The changeset header
currently marks '@hyperlane-xyz/registry' as "patch" while adding 24 new
dark-mode logo assets; update the changeset release level from patch to minor by
changing the version tag string in the changeset frontmatter (the line
"'@hyperlane-xyz/registry': patch") to "'@hyperlane-xyz/registry': minor" so the
new consumer-facing assets are treated as a minor, backwards-compatible
addition.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.changeset/dark-logos-added.md:
- Around line 1-5: The changeset header currently marks
'@hyperlane-xyz/registry' as "patch" while adding 24 new dark-mode logo assets;
update the changeset release level from patch to minor by changing the version
tag string in the changeset frontmatter (the line "'@hyperlane-xyz/registry':
patch") to "'@hyperlane-xyz/registry': minor" so the new consumer-facing assets
are treated as a minor, backwards-compatible addition.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0fc03a1159

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

paulbalaji and others added 2 commits February 18, 2026 22:59
- Fix neutron/sophon/sonic/soneium darkmode logos placed in wrong dirs
- Update CHAIN_FILE_REGEX to allow hyphens in filenames
- Add darkmode-logo field to ChainFiles interface
- Copy darkmode-logo.svg in build script

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
src/registry/IRegistry.ts (1)

34-34: LGTM on the new field — consider adding a getChainDarkLogoUri counterpart.

The 'darkmode-logo'?: string field is correctly optional and the quoted key syntax is valid TypeScript. That said, the interface already exposes getChainLogoUri as a named accessor for the regular logo. Without a parallel getChainDarkLogoUri(chainName: ChainName): Promise<string | null>, consumers wanting the dark variant must dig through listRegistryContent() to find it — a bit of a farther walk through the swamp when the shortcut already exists for the light logo.

♻️ Suggested addition to IRegistry
   getChainLogoUri(chainName: ChainName): Promise<string | null>;
+  getChainDarkLogoUri(chainName: ChainName): Promise<string | null>;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/registry/IRegistry.ts` at line 34, Add a parallel accessor to IRegistry
so consumers can fetch the dark-mode logo without scanning listRegistryContent:
declare a new async method getChainDarkLogoUri(chainName: ChainName):
Promise<string | null> on the IRegistry interface, implement it alongside the
existing getChainLogoUri, and have implementations return the `'darkmode-logo'`
value (or null if absent); update any implementing classes that currently only
support getChainLogoUri and listRegistryContent to provide this new method.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/registry/IRegistry.ts`:
- Line 34: Add a parallel accessor to IRegistry so consumers can fetch the
dark-mode logo without scanning listRegistryContent: declare a new async method
getChainDarkLogoUri(chainName: ChainName): Promise<string | null> on the
IRegistry interface, implement it alongside the existing getChainLogoUri, and
have implementations return the `'darkmode-logo'` value (or null if absent);
update any implementing classes that currently only support getChainLogoUri and
listRegistryContent to provide this new method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@paulbalaji paulbalaji added this pull request to the merge queue Feb 19, 2026
Merged via the queue into main with commit 1e75175 Feb 19, 2026
13 checks passed
@paulbalaji paulbalaji deleted the pb/darklogos branch February 19, 2026 18:13
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.

2 participants