feat(icons): nouvelles icônes adaptatives orbe (patient + admin)

Identité visuelle = l'orbe Kazeia (la « face » de l'app, cf. AudioVisualizerView).
100% vectoriel (net toutes densités, aucun PNG), monochrome (icônes thématisées 13+).

- Patient : orbe lavande lumineux (halo + reflet) sur dégradé violet profond.
  Remplace l'ancien adaptive-icon vide (fond uni, sans logo) mal placé en
  mipmap-hdpi (supprimé) → mipmap-anydpi-v26 + roundIcon.
- Admin : même orbe cerné d'un anneau d'engrenage 8 dents (signal console/contrôle)
  sur dégradé ardoise-violet sombre ; fond passé de couleur plate à dégradé.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kazeia Team 2026-06-21 08:52:25 +02:00
parent 4d73a77ebd
commit 7fffd3d9df
13 changed files with 245 additions and 20 deletions

View File

@ -14,7 +14,7 @@
<application <application
android:label="Kazeia Admin" android:label="Kazeia Admin"
android:icon="@mipmap/ic_launcher_admin" android:icon="@mipmap/ic_launcher_admin"
android:roundIcon="@mipmap/ic_launcher_admin" android:roundIcon="@mipmap/ic_launcher_admin_round"
android:theme="@style/Theme.KazeiaAdmin" android:theme="@style/Theme.KazeiaAdmin"
android:supportsRtl="true" android:supportsRtl="true"
android:allowBackup="false"> android:allowBackup="false">

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Fond adaptatif Kazeia Admin : dégradé radial violet-ardoise sombre — distingue
l'outil de gestion de l'app patiente (fond plus clair), même famille. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M0,0 L108,0 L108,108 L0,108 Z">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="54"
android:centerY="46"
android:gradientRadius="82">
<item android:offset="0" android:color="#FF2A2740" />
<item android:offset="0.6" android:color="#FF1C1B2B" />
<item android:offset="1" android:color="#FF100F19" />
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -1,18 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Avant-plan adaptatif Kazeia Admin : l'orbe Kazeia cerné d'un anneau d'engrenage
(8 dents) — même identité que l'app patiente, signal « console / contrôle ».
Tout reste dans la zone sûre (dents jusqu'au rayon 36 du centre). -->
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp" android:width="108dp"
android:height="108dp" android:height="108dp"
android:viewportWidth="108" android:viewportWidth="108"
android:viewportHeight="108"> android:viewportHeight="108">
<!-- Simple "K" + gear-like halo for admin -->
<!-- Dents de l'engrenage (8, par rotation autour du centre 54,54) -->
<group android:rotation="0" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="45" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="90" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="135" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="180" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="225" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="270" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="315" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FF9C8FC9" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<!-- Anneau de l'engrenage -->
<path <path
android:fillColor="#BCA4E8" android:strokeColor="#FF9C8FC9"
android:pathData="M54 28 m-3 0 a3 3 0 1 0 6 0 a3 3 0 1 0 -6 0" /> android:strokeWidth="4.5"
<path
android:fillColor="#BCA4E8"
android:pathData="M40 42 L40 80 L48 80 L48 64 L60 80 L70 80 L56 62 L70 42 L60 42 L48 58 L48 42 Z" />
<path
android:strokeColor="#7A6BAA"
android:strokeWidth="1.5"
android:fillColor="#00000000" android:fillColor="#00000000"
android:pathData="M54 16 a38 38 0 1 0 0 76 a38 38 0 1 0 0 -76" /> android:pathData="M24,54 a30,30 0 1,0 60,0 a30,30 0 1,0 -60,0" />
<!-- Orbe central (rayon 22) -->
<path android:pathData="M32,54 a22,22 0 1,0 44,0 a22,22 0 1,0 -44,0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="46"
android:centerY="44"
android:gradientRadius="34">
<item android:offset="0" android:color="#FFF6F1FF" />
<item android:offset="0.34" android:color="#FFC9B6F0" />
<item android:offset="0.7" android:color="#FF9879D8" />
<item android:offset="1" android:color="#FF6243A0" />
</gradient>
</aapt:attr>
</path>
<!-- Reflet spéculaire -->
<path android:pathData="M42,45 a5,5 0 1,0 10,0 a5,5 0 1,0 -10,0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="47"
android:centerY="45"
android:gradientRadius="5">
<item android:offset="0" android:color="#E6FFFFFF" />
<item android:offset="1" android:color="#00FFFFFF" />
</gradient>
</aapt:attr>
</path>
</vector> </vector>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Icône thématisée (Android 13+) : silhouette orbe + engrenage, teintée système. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group android:rotation="0" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="45" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="90" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="135" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="180" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="225" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="270" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<group android:rotation="315" android:pivotX="54" android:pivotY="54">
<path android:fillColor="#FFFFFFFF" android:pathData="M50.5,18 L57.5,18 L57.5,24 L50.5,24 Z" />
</group>
<!-- Anneau (annulus, evenOdd) -->
<path
android:fillColor="#FFFFFFFF"
android:fillType="evenOdd"
android:pathData="M23,54 a31,31 0 1,0 62,0 a31,31 0 1,0 -62,0 Z M28,54 a26,26 0 1,0 52,0 a26,26 0 1,0 -52,0 Z" />
<!-- Orbe -->
<path
android:fillColor="#FFFFFFFF"
android:pathData="M32,54 a22,22 0 1,0 44,0 a22,22 0 1,0 -44,0 Z" />
</vector>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_admin_background"/> <background android:drawable="@drawable/ic_launcher_admin_background"/>
<foreground android:drawable="@drawable/ic_launcher_admin_foreground"/> <foreground android:drawable="@drawable/ic_launcher_admin_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_admin_foreground"/> <monochrome android:drawable="@drawable/ic_launcher_admin_monochrome"/>
</adaptive-icon> </adaptive-icon>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_admin_background"/> <background android:drawable="@drawable/ic_launcher_admin_background"/>
<foreground android:drawable="@drawable/ic_launcher_admin_foreground"/> <foreground android:drawable="@drawable/ic_launcher_admin_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_admin_foreground"/> <monochrome android:drawable="@drawable/ic_launcher_admin_monochrome"/>
</adaptive-icon> </adaptive-icon>

View File

@ -19,6 +19,7 @@
android:extractNativeLibs="true" android:extractNativeLibs="true"
android:label="Kazeia" android:label="Kazeia"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.Kazeia"> android:theme="@style/Theme.Kazeia">
<uses-native-library android:name="libcdsprpc.so" android:required="false" /> <uses-native-library android:name="libcdsprpc.so" android:required="false" />

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Fond adaptatif Kazeia : dégradé radial violet profond (donne de la
profondeur derrière l'orbe). -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M0,0 L108,0 L108,108 L0,108 Z">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="54"
android:centerY="46"
android:gradientRadius="82">
<item android:offset="0" android:color="#FF50398A" />
<item android:offset="0.55" android:color="#FF3A2B6B" />
<item android:offset="1" android:color="#FF221A3D" />
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Avant-plan adaptatif Kazeia : l'orbe (la « face » de Kazeia, cf.
AudioVisualizerView). Halo lumineux + sphère lavande éclairée en haut-gauche
+ reflet spéculaire. Tout reste dans la zone sûre 72dp (rayon ≤ 36 du centre,
hors halo qui s'estompe). -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<!-- Halo diffus -->
<path android:pathData="M12,54 a42,42 0 1,0 84,0 a42,42 0 1,0 -84,0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="54"
android:centerY="54"
android:gradientRadius="42">
<item android:offset="0" android:color="#00BCA4E8" />
<item android:offset="0.78" android:color="#00BCA4E8" />
<item android:offset="0.9" android:color="#5CCBB6F0" />
<item android:offset="1" android:color="#00BCA4E8" />
</gradient>
</aapt:attr>
</path>
<!-- Sphère de l'orbe (rayon 33) -->
<path android:pathData="M21,54 a33,33 0 1,0 66,0 a33,33 0 1,0 -66,0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="42"
android:centerY="40"
android:gradientRadius="50">
<item android:offset="0" android:color="#FFF6F1FF" />
<item android:offset="0.32" android:color="#FFC9B6F0" />
<item android:offset="0.66" android:color="#FF9879D8" />
<item android:offset="1" android:color="#FF6243A0" />
</gradient>
</aapt:attr>
</path>
<!-- Reflet spéculaire (point lumineux haut-gauche) -->
<path android:pathData="M35,39 a7,7 0 1,0 14,0 a7,7 0 1,0 -14,0">
<aapt:attr name="android:fillColor">
<gradient
android:type="radial"
android:centerX="42"
android:centerY="39"
android:gradientRadius="7">
<item android:offset="0" android:color="#E6FFFFFF" />
<item android:offset="1" android:color="#00FFFFFF" />
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Icône thématisée (Android 13+) : silhouette de l'orbe, teintée par le système.
Sphère pleine + petit reflet évidé pour garder la lecture « orbe ». -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#FFFFFFFF"
android:fillType="evenOdd"
android:pathData="M21,54 a33,33 0 1,0 66,0 a33,33 0 1,0 -66,0 Z M36,40 a6,6 0 1,0 12,0 a6,6 0 1,0 -12,0 Z" />
</vector>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/kazeia_primary" />
<foreground android:drawable="@color/kazeia_accent" />
</adaptive-icon>