feat(wallet-android): brand icon from bns://deviant.x + splash regen
Replaces the generic Capacitor placeholder launcher icon with the
official Deviant mark fetched from bns://deviant.x/brand/icon/icon-512.svg
(the same mark the site uses). Adaptive-icon layers split cleanly for
Android 8+ masks:
- icon-foreground = orbital ring + crescent-D glyph + acid-yellow
orbital dot (scaled x2.5 from the 512 BNS source so the D reads
bigger on-launcher without clipping on circular masks)
- icon-background = dark sky radial gradient + faint starfield specks
- icon.svg = full composition for the legacy ic_launcher.png
Sources live at shells/app/assets/{icon,icon-foreground,icon-background}.svg
— a future icon re-roll is one `./node_modules/.bin/capacitor-assets
generate --android` away.
@capacitor/assets regenerated the five mipmap densities (ldpi through
xxxhdpi) + the splash screens (portrait/landscape, light/dark).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 7 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 9 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 42 KiB |
BIN
shells/app/android/app/src/main/res/drawable-night/splash.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 5.2 KiB |
|
|
@ -1,5 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
<background>
|
||||
<inset android:drawable="@mipmap/ic_launcher_background" android:inset="16.7%" />
|
||||
</background>
|
||||
<foreground>
|
||||
<inset android:drawable="@mipmap/ic_launcher_foreground" android:inset="16.7%" />
|
||||
</foreground>
|
||||
</adaptive-icon>
|
||||
|
|
@ -1,5 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
<background>
|
||||
<inset android:drawable="@mipmap/ic_launcher_background" android:inset="16.7%" />
|
||||
</background>
|
||||
<foreground>
|
||||
<inset android:drawable="@mipmap/ic_launcher_foreground" android:inset="16.7%" />
|
||||
</foreground>
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
shells/app/android/app/src/main/res/mipmap-ldpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 735 B |
|
After Width: | Height: | Size: 916 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2 KiB |
|
After Width: | Height: | Size: 935 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 4 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
20
shells/app/assets/icon-background.svg
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" role="img" aria-label="Deviant background">
|
||||
<defs>
|
||||
<radialGradient id="sky" cx="32%" cy="28%" r="90%">
|
||||
<stop offset="0%" stop-color="#0c1220"/>
|
||||
<stop offset="55%" stop-color="#070d1a"/>
|
||||
<stop offset="100%" stop-color="#02040a"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<!-- Faithful 2× scale of the official icon-512.svg background: dark sky
|
||||
gradient + starfield specks. -->
|
||||
<rect width="1024" height="1024" fill="url(#sky)"/>
|
||||
<g fill="#b8c2d4" opacity="0.5">
|
||||
<circle cx="192" cy="240" r="4"/>
|
||||
<circle cx="300" cy="172" r="3"/>
|
||||
<circle cx="824" cy="300" r="4"/>
|
||||
<circle cx="760" cy="192" r="3"/>
|
||||
<circle cx="860" cy="784" r="3.6"/>
|
||||
<circle cx="240" cy="816" r="3.2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 827 B |
16
shells/app/assets/icon-foreground.svg
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" role="img" aria-label="Deviant mark (foreground)">
|
||||
<defs>
|
||||
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
|
||||
<feGaussianBlur stdDeviation="25" result="b"/>
|
||||
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<!-- Official bns://deviant.x/brand/icon/icon-512.svg mark, scaled ×2.5
|
||||
(vs the earlier ×2) so the composition reads larger on-launcher. The
|
||||
ring continues to frame the D, dot stays in the upper-right. -->
|
||||
<ellipse cx="512" cy="512" rx="375" ry="230" fill="none" stroke="#2a3650" stroke-width="20" transform="rotate(-22 512 512)"/>
|
||||
<path d="M356 262 h110 a250 250 0 0 1 0 500 h-110 z
|
||||
M464 362 v300 a150 150 0 0 0 0 -300 z"
|
||||
fill="#d6dde9"/>
|
||||
<circle cx="802" cy="347" r="55" fill="#d6ff3d" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 936 B |
30
shells/app/assets/icon.svg
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" role="img" aria-label="Deviant">
|
||||
<defs>
|
||||
<radialGradient id="sky" cx="32%" cy="28%" r="90%">
|
||||
<stop offset="0%" stop-color="#0c1220"/>
|
||||
<stop offset="55%" stop-color="#070d1a"/>
|
||||
<stop offset="100%" stop-color="#02040a"/>
|
||||
</radialGradient>
|
||||
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
|
||||
<feGaussianBlur stdDeviation="25" result="b"/>
|
||||
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<rect width="1024" height="1024" rx="228" fill="url(#sky)"/>
|
||||
<g fill="#b8c2d4" opacity="0.5">
|
||||
<circle cx="192" cy="240" r="4"/>
|
||||
<circle cx="300" cy="172" r="3"/>
|
||||
<circle cx="824" cy="300" r="4"/>
|
||||
<circle cx="760" cy="192" r="3"/>
|
||||
<circle cx="860" cy="784" r="3.6"/>
|
||||
<circle cx="240" cy="816" r="3.2"/>
|
||||
</g>
|
||||
<!-- Mark scaled ×2.5 from the official 512 baseline (×1.25 larger than
|
||||
the previous version) so the D reads bigger on the launcher. Ring +
|
||||
dot scaled together to preserve the composition. -->
|
||||
<ellipse cx="512" cy="512" rx="375" ry="230" fill="none" stroke="#2a3650" stroke-width="20" transform="rotate(-22 512 512)"/>
|
||||
<path d="M356 262 h110 a250 250 0 0 1 0 500 h-110 z
|
||||
M464 362 v300 a150 150 0 0 0 0 -300 z"
|
||||
fill="#d6dde9"/>
|
||||
<circle cx="802" cy="347" r="55" fill="#d6ff3d" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |