feat: redesign app icon + splash to match glass-lens orb

Foreground: opaque plastic orb → translucent glass-lens with subtle
amber tint, lighter speculars, thinner rims. 10 layers → 8 layers.

Backgrounds: warm cream → neutral off-white (light), cleaner obsidian
(dark). Matches app's actual background colors.

Monochrome: cleaner gradient, thinner rim.

Splash screen uses the same foreground via windowSplashScreenAnimatedIcon.
This commit is contained in:
Bruno Deanoz 2026-06-23 13:48:25 +02:00
parent 1c9491e3dc
commit ad98b9f499
4 changed files with 77 additions and 113 deletions

View file

@ -5,7 +5,7 @@
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<!-- Dark mode: deep obsidian with subtle warm center glow -->
<!-- Dark mode: app obsidian background -->
<path android:pathData="M0,0h108v108h-108z">
<aapt:attr name="android:fillColor">
<gradient
@ -13,8 +13,8 @@
android:centerX="54"
android:centerY="50"
android:gradientRadius="72">
<item android:color="#FF141C28" android:offset="0.0" />
<item android:color="#FF0E1420" android:offset="0.5" />
<item android:color="#FF0F1520" android:offset="0.0" />
<item android:color="#FF0C1018" android:offset="0.6" />
<item android:color="#FF080C14" android:offset="1.0" />
</gradient>
</aapt:attr>

View file

@ -5,7 +5,7 @@
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<!-- Light mode: warm cream with subtle vignette -->
<!-- Light mode: neutral off-white matching app background -->
<path android:pathData="M0,0h108v108h-108z">
<aapt:attr name="android:fillColor">
<gradient
@ -13,9 +13,9 @@
android:centerX="54"
android:centerY="50"
android:gradientRadius="72">
<item android:color="#FFF9F3EB" android:offset="0.0" />
<item android:color="#FFF4ECE0" android:offset="0.5" />
<item android:color="#FFEAE0D0" android:offset="1.0" />
<item android:color="#FFF6F7F9" android:offset="0.0" />
<item android:color="#FFF1F2F5" android:offset="0.6" />
<item android:color="#FFEAECF0" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>

View file

@ -6,23 +6,22 @@
android:viewportWidth="108"
android:viewportHeight="108">
<!-- L0: Soft outer halo — large, diffuse amber glow -->
<path android:pathData="M54,54m-34,0a34,34 0,1 1,68 0a34,34 0,1 1,-68 0">
<!-- L0: Soft outer halo — subtle, not overwhelming -->
<path android:pathData="M54,54m-32,0a32,32 0,1 1,64 0a32,32 0,1 1,-64 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="52"
android:centerY="50"
android:gradientRadius="34">
<item android:color="#40D4942A" android:offset="0.0" />
<item android:color="#20D4942A" android:offset="0.4" />
<item android:color="#08D4942A" android:offset="0.7" />
android:gradientRadius="32">
<item android:color="#28D4942A" android:offset="0.0" />
<item android:color="#10D4942A" android:offset="0.5" />
<item android:color="#00000000" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L1: Orb body — warm amber core, light source offset top-left -->
<!-- L1: Orb body — glass-tinted, not opaque paint -->
<path android:pathData="M54,54m-21,0a21,21 0,1 1,42 0a21,21 0,1 1,-42 0">
<aapt:attr name="android:fillColor">
<gradient
@ -30,48 +29,46 @@
android:centerX="48"
android:centerY="46"
android:gradientRadius="26">
<item android:color="#FFFCE8C0" android:offset="0.0" />
<item android:color="#FFEAB86A" android:offset="0.28" />
<item android:color="#FFD49430" android:offset="0.52" />
<item android:color="#FFBE7A20" android:offset="0.72" />
<item android:color="#FF9A5A12" android:offset="0.88" />
<item android:color="#FF7A4410" android:offset="1.0" />
<item android:color="#50E0A840" android:offset="0.0" />
<item android:color="#40D49430" android:offset="0.45" />
<item android:color="#55BE7A20" android:offset="0.75" />
<item android:color="#60A06018" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L2: Glass overlay — cool-tinted top half for lens refraction feel -->
<!-- L2: Top-left light source — white glow for glass refraction -->
<path android:pathData="M54,54m-21,0a21,21 0,1 1,42 0a21,21 0,1 1,-42 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="50"
android:centerY="40"
android:gradientRadius="24">
<item android:color="#18FFFFFF" android:offset="0.0" />
<item android:color="#0CFFFFFF" android:offset="0.35" />
<item android:color="#00FFFFFF" android:offset="0.65" />
android:centerX="46"
android:centerY="42"
android:gradientRadius="22">
<item android:color="#50FFFFFF" android:offset="0.0" />
<item android:color="#20FFFFFF" android:offset="0.3" />
<item android:color="#08FFFFFF" android:offset="0.55" />
<item android:color="#00FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L3: Bottom-right warm accent -->
<path android:pathData="M54,54m-21,0a21,21 0,1 1,42 0a21,21 0,1 1,-42 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="63"
android:centerY="64"
android:gradientRadius="14">
<item android:color="#35E0A040" android:offset="0.0" />
<item android:color="#15E0A040" android:offset="0.5" />
<item android:color="#00000000" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L3: Bottom-right accent warmth (bounce light from environment) -->
<path android:pathData="M54,54m-21,0a21,21 0,1 1,42 0a21,21 0,1 1,-42 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="64"
android:centerY="66"
android:gradientRadius="14">
<item android:color="#50FFBE50" android:offset="0.0" />
<item android:color="#20FFBE50" android:offset="0.4" />
<item android:color="#00FFBE50" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L4: Bottom shadow — dark crescent for volume/sphere feeling -->
<!-- L4: Bottom shadow — subtle volume -->
<path android:pathData="M54,54m-21,0a21,21 0,1 1,42 0a21,21 0,1 1,-42 0">
<aapt:attr name="android:fillColor">
<gradient
@ -80,108 +77,75 @@
android:centerY="44"
android:gradientRadius="23">
<item android:color="#00000000" android:offset="0.0" />
<item android:color="#00000000" android:offset="0.55" />
<item android:color="#30301800" android:offset="0.78" />
<item android:color="#70301800" android:offset="0.92" />
<item android:color="#90201000" android:offset="1.0" />
<item android:color="#00000000" android:offset="0.6" />
<item android:color="#18201000" android:offset="0.82" />
<item android:color="#35201000" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L5: Internal caustic structure — off-center radial for depth -->
<path android:pathData="M54,54m-18,0a18,18 0,1 1,36 0a18,18 0,1 1,-36 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="58"
android:centerY="50"
android:gradientRadius="20">
<item android:color="#00FFFFFF" android:offset="0.0" />
<item android:color="#0AFFD890" android:offset="0.3" />
<item android:color="#14E8A030" android:offset="0.6" />
<item android:color="#00000000" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L6: Primary specular — tight elliptical highlight top-left -->
<path android:pathData="M45,42.5a8,6.5 -15,1 1,16 0a8,6.5 -15,1 1,-16 0">
<!-- L5: Primary specular — tight, clean -->
<path android:pathData="M46,42a7,5.5 -12,1 1,14 0a7,5.5 -12,1 1,-14 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="46"
android:centerY="42"
android:gradientRadius="8">
<item android:color="#D0FFFFFF" android:offset="0.0" />
<item android:color="#60FFFFFF" android:offset="0.3" />
<item android:color="#18FFFFFF" android:offset="0.6" />
android:gradientRadius="7">
<item android:color="#90FFFFFF" android:offset="0.0" />
<item android:color="#40FFFFFF" android:offset="0.35" />
<item android:color="#00FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L7: Micro specular — sharp pinpoint glint -->
<path android:pathData="M44,40m-2.5,0a2.5,2.5 0,1 1,5 0a2.5,2.5 0,1 1,-5 0">
<!-- L6: Micro pinpoint glint -->
<path android:pathData="M44.5,40m-1.8,0a1.8,1.8 0,1 1,3.6 0a1.8,1.8 0,1 1,-3.6 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="44"
android:centerX="44.5"
android:centerY="40"
android:gradientRadius="2.5">
<item android:color="#F0FFFFFF" android:offset="0.0" />
<item android:color="#60FFFFFF" android:offset="0.5" />
android:gradientRadius="1.8">
<item android:color="#E0FFFFFF" android:offset="0.0" />
<item android:color="#40FFFFFF" android:offset="0.5" />
<item android:color="#00FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L8: Secondary specular — bottom-right warm bounce -->
<path android:pathData="M63.5,64m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="63.5"
android:centerY="64"
android:gradientRadius="4">
<item android:color="#50FFD890" android:offset="0.0" />
<item android:color="#20FFD890" android:offset="0.5" />
<item android:color="#00FFD890" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L9: Outer rim — crisp glass edge -->
<!-- L7: Outer rim — crisp glass edge -->
<path
android:pathData="M54,54m-20.5,0a20.5,20.5 0,1 1,41 0a20.5,20.5 0,1 1,-41 0"
android:strokeWidth="0.7"
android:strokeWidth="0.5"
android:fillColor="#00000000">
<aapt:attr name="android:strokeColor">
<gradient
android:type="radial"
android:centerX="46"
android:centerY="42"
android:gradientRadius="30">
<item android:color="#40FFFFFF" android:offset="0.0" />
<item android:color="#18FFFFFF" android:offset="0.5" />
<item android:color="#08FFFFFF" android:offset="1.0" />
android:gradientRadius="28">
<item android:color="#30FFFFFF" android:offset="0.0" />
<item android:color="#12FFFFFF" android:offset="0.5" />
<item android:color="#06FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- L10: Inner rim — subtle inset edge for glass depth -->
<!-- L8: Inner rim -->
<path
android:pathData="M54,54m-19.5,0a19.5,19.5 0,1 1,39 0a19.5,19.5 0,1 1,-39 0"
android:strokeWidth="0.4"
android:strokeWidth="0.3"
android:fillColor="#00000000">
<aapt:attr name="android:strokeColor">
<gradient
android:type="radial"
android:centerX="48"
android:centerY="44"
android:gradientRadius="26">
<item android:color="#20FFFFFF" android:offset="0.0" />
<item android:color="#08FFFFFF" android:offset="0.6" />
<item android:color="#04FFFFFF" android:offset="1.0" />
android:gradientRadius="24">
<item android:color="#15FFFFFF" android:offset="0.0" />
<item android:color="#06FFFFFF" android:offset="0.6" />
<item android:color="#00FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>

View file

@ -6,7 +6,7 @@
android:viewportWidth="108"
android:viewportHeight="108">
<!-- Orb body — solid-to-fade for themed icon legibility -->
<!-- Orb body -->
<path android:pathData="M54,54m-22,0a22,22 0,1 1,44 0a22,22 0,1 1,-44 0">
<aapt:attr name="android:fillColor">
<gradient
@ -14,23 +14,23 @@
android:centerX="48"
android:centerY="44"
android:gradientRadius="26">
<item android:color="#FFFFFFFF" android:offset="0.0" />
<item android:color="#CCFFFFFF" android:offset="0.5" />
<item android:color="#60FFFFFF" android:offset="1.0" />
<item android:color="#E0FFFFFF" android:offset="0.0" />
<item android:color="#90FFFFFF" android:offset="0.5" />
<item android:color="#40FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<!-- Specular dot — makes it read as a sphere, not a flat circle -->
<path android:pathData="M45,43m-5,0a5,4 0,1 1,10 0a5,4 0,1 1,-10 0">
<!-- Specular -->
<path android:pathData="M46,42a5,4 0,1 1,10 0a5,4 0,1 1,-10 0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="45"
android:centerY="43"
android:centerX="46"
android:centerY="42"
android:gradientRadius="5">
<item android:color="#FFFFFFFF" android:offset="0.0" />
<item android:color="#80FFFFFF" android:offset="0.4" />
<item android:color="#60FFFFFF" android:offset="0.4" />
<item android:color="#00FFFFFF" android:offset="1.0" />
</gradient>
</aapt:attr>
@ -39,7 +39,7 @@
<!-- Rim -->
<path
android:pathData="M54,54m-21,0a21,21 0,1 1,42 0a21,21 0,1 1,-42 0"
android:strokeWidth="0.8"
android:strokeColor="#40FFFFFF"
android:strokeWidth="0.6"
android:strokeColor="#30FFFFFF"
android:fillColor="#00000000" />
</vector>