feat(brand): add original brand artwork - #458
Merged
Merged
Conversation
Add the Route mark and the brand set built from it in public/brand/: a full-color and a one-color mark, dark and light lockups, a full-bleed app icon master, and the Open Graph and GitHub social preview masters with their PNG exports. The mark has no text, so a rename touches only the lockups and the social masters.
Merged
This was referenced Sep 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This adds the project's first brand artwork. The installable desktop app (#446) needs an icon and the link previews (#451) need a social card, so both are blocked on it.
The mark is Route: a grid of mesh nodes and the path one message takes across it, from the sender to the lit destination. It was chosen from two rounds of three concepts on a review page that showed each one at 16 to 512 px, on dark and light backgrounds, in one color, and in a browser tab, the Windows taskbar and the macOS Dock. The rejected concepts were Range, Tetra, Summit, Cells and Chirp. The mark is original, has no text, and doesn't imitate the MeshCore logo or any other third-party mark.
New files in
public/brand/.README.mdlists each file and its use.mark.svg: the full-color mark. An embeddedprefers-color-schemestyle switches between the dark (#4f8ef7) and light (#1d4ed8) accent palettes fromapp/globals.css. It follows the viewer's OS setting, not the page behind it, so it's meant for favicons. The README says to use a lockup or the app icon where the background is fixed.mark-mono.svg: the one-color mark, incurrentColor. The idle nodes are smaller instead of fainter, so it works where tints don't.lockup-dark.svgandlockup-light.svg: the mark with the name as live text, with "Core" in the accent color to matchWordmark. They're separate files because the adaptive single file I tried washed out on a white page when the OS was in dark mode.app-icon.svg: a 512 px full-bleed master with its own dark background. Every shape stays inside the maskable safe zone (a centered circle 80% of the icon's width). It's the source for feat(pwa): make the app installable as a desktop app #446's PNG, maskable and favicon exports.social-card.svg/.png(1200×630, 86 KB) andrepo-social.svg/.png(1280×640, 90 KB): the mark, the name, a one-line tagline and a faint mesh motif that fades out behind the text. The repo card also showskn0.app.The PNGs are exported with sharp, which is already installed through Next.js. The README has the one-line command, and re-running it reproduces both files byte for byte. The text is live, so an export uses the local system font. These were exported on Windows with Segoe UI, the app's own font stack.
Renaming the app changes only the
<text>in the two lockups and the two social masters, plus a re-export of the two PNGs. The mark and the app icon don't change.Verification
mark.svgswitches palettes as intended, and both lockups read on their own backgrounds.npm run buildcopies everything toout/brand/. Spell-check, lint, type-check and build pass.format:checkpasses with line endings ignored; locally it only trips on the Windows CRLF checkout.Follow-ups (not in this PR)
app-icon.svg.app/opengraph-image.pngfromsocial-card.png.repo-social.pngunder Settings → General → Social preview. There's no API for it.Issues
Type of Change
!-- Breaking change (fix or feature that would cause existingfunctionality to change)
feat-- New feature (non-breaking change which adds functionality)fix-- Bug fix (non-breaking change which fixes an issue)docs-- Additional or updated documentationstyle-- Code style changes (formatting, missing semi colons, etc)refactor-- Code refactorperf-- Performance improvementtest-- Tests (adding or updating tests)build-- Build system or external dependencies changesci-- Build configuration changechore-- Grunt tasksrevert-- Revert previous changes