feat(brand): new xNet app icon and favicon - #640
Merged
Conversation
Swap every icon surface to the new geometric mandala mark, generated from one 1024x1024 source: web favicon/apple-touch/PWA icons, the site favicon, Expo icon and adaptive icon, and the Electron png/ico/icns. The mark is far finer than the one it replaces, so the small ICO frames are tone-ramped (gamma 0.50 at 16px up to 0.85 at 128px) — a straight downscale averages the filigree into a grey smudge in the browser tab. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: xNet Test <test@xnet.dev>
Contributor
|
Preview removed for PR #640. |
crs48
added a commit
that referenced
this pull request
Jul 28, 2026
…643) Regenerates every icon surface from the refined mandala, and places the mark before the wordmark in the landing and docs headers as a subtle deboss. ## Icons Same 11 files as [#640](#640), regenerated from the refined source. No config changes — every path and `image/svg+xml` reference is unchanged. **Contrast work, which was the point of this pass:** The refined render peaks at 235 rather than 255, so it reads dimmer everywhere. Normalising to full white is the single largest gain. Below 48px, extra brightness stops helping. Lifting uniformly raises the faint tracery along with the bold strokes until everything converges on one mid-grey — a brighter blob, not more structure. So small frames now get **two** adjustments: a gamma above 1 *before* the downscale to dim the secondary filigree so it stops averaging into the main strokes, and a gamma below 1 *after* to restore what survives. Small frames are consequently a deliberate simplification: the radiating star reads, the fine tracery does not. Measured by reading frames back out of the written `.ico`: | size | p95 before | p95 now | | --- | --- | --- | | 16 | 133 | 156 | | 32 | 142 | 147 (far more structure) | | 48 | 140 | 150 | **Known limitation:** at 256px+ the refined mark is still slightly dimmer than the outgoing one (p95 173 vs 195). That is inherent to the artwork — more mid-grey strokes, fewer pure-white. Large sizes are lifted to 0.85 gamma; pushing further blows the fine strokes into a white mass and loses the delicacy that makes the mark work at that size. Android adaptive icon measured at 0.630 of canvas, inside the 0.66 safe circle. The generator asserts this rather than assuming it. ## Site header `site/public/mark.png` is a 96px white-with-alpha mask, applied via CSS `mask-image` so the mark takes its colour from the deboss layers instead of shipping a fixed-colour image. Two offset copies of that mask make the engraving. The treatment flips by theme, because a deboss cannot work identically on both: - **Light** — a genuine deboss: dark incision over a white lower edge. - **Dark** — a black incision on a near-black header has nowhere to go (the first attempt was effectively invisible), so the lit lower edge carries the shape. Etched rather than pressed. Dark measured at roughly half of light's contrast against its own background and was raised to match: peak deviation 40 → 65, against light's 79. Applied to both `Nav.astro` and the docs `SiteTitle.astro`. ## Layout change this forced The mark costs ~32px of nav width and **the row had no slack at 768px** — it tipped the whole page into horizontal scroll. Verified by toggling the mark and measuring `documentElement.scrollWidth`, not by eye. - Link spacing tightens from `gap-5` to `gap-4` below `lg`. Desktop spacing unchanged. - The mark is hidden below `md`. That second point needs stating plainly: **the nav already overflows by 67px at 640px on main, before any change here.** At the `sm` breakpoint the links unhide and immediately overflow. This PR does not fix that pre-existing bug, but keeps the mark out of that band so it adds nothing to it. Confirmed the mark contributes exactly 0px of overflow at every width tested. ## Not included `apps/expo/assets/splash.png` remains a separate placeholder, untouched. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
Swaps every icon surface to the new geometric mandala mark, generated from a single 1024×1024 source.
Surfaces
apps/web/public/{favicon.ico,favicon.svg,apple-touch-icon.png,icons/icon-192.png,icons/icon-512.png}site/public/favicon.svgapps/expo/assets/{icon.png,adaptive-icon.png}apps/electron/build/{icon.png,icon.ico,icon.icns}No config changes — every path and
image/svg+xmlreference is unchanged, andtheme_color/background_colorstay#000000in both manifests since the new mark is also on black.Two judgement calls worth flagging
Cropped to the mark. In the source the mandala occupies only 46% of the frame. Left as-is it would be about 7px of filigree at 16px. The icons crop to a square centred on the mark at ~86% fill.
Small ICO frames are tone-ramped. This mark is much finer than the one it replaces. Downscaling averages a 1px white line over several pixels, so the lines drop to ~30% grey and the tab icon becomes a dark smudge. The ICO frames get a per-size gamma (0.50 at 16px → 0.85 at 128px); pure black stays pure black. Frames are passed explicitly via
append_images— left to itself Pillow resizes the 256 internally and the ramp never applies.Verified by reading the frames back out of the written
.ico: 32px and up hold the geometry cleanly. At 16px this mark cannot show its structure at any setting — it resolves to a bright dense disc. That is the ceiling for filigree this fine, and it is still a large improvement on the unramped version.The Android adaptive icon keeps the 0.72 inset, which puts the mark's outermost points at 0.62 of the canvas — inside the 0.66 safe circle with margin (measured, not assumed).
Not included
apps/expo/assets/splash.pngis a separate placeholder asset and is untouched.🤖 Generated with Claude Code