Replace the turquoise with MG red tones

ev_cyan becomes a light red (#FF9A9E, for values and secondary
highlights, readable on black) and ev_cyan_deep a deep red (#3A1215,
version badge). Turquoise hardcoded in the battery card, switch track,
input panel, car outline, background glow and charging-graph grid is
replaced with matching red tones, as are two gold leftovers (tab
outline, second background glow). The mint "OK" status colour and the
amber charging curve are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
2026-10-17 15:45:18 +02:00
co-authored by Claude Opus 5.5
parent 5473ab1c2b
commit e874578e54
9 changed files with 14 additions and 13 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ workspace `DESIGN.md` apply; this file contains only telemetry-specific addition
## App-specific visual direction (2.2.6)
The user explicitly requested a permanent OLED-black theme, charcoal glass-like cards,
MG red (#E0424C, replacing the earlier muted gold) and cyan accents. These app resources intentionally override the shared
MG red accents (#E0424C, with a light #FF9A9E and a deep #3A1215 variant; they replaced the earlier muted gold and cyan). These app resources intentionally override the shared
DESIGN.md palette, DayNight preference and flat-surface rules. Do not overwrite them
with the shared token generator. Use static gradients rather than continuous effects;
keep large touch targets, readable text and null telemetry shown as a dash.
@@ -14,7 +14,7 @@ public final class ChargingGraphView extends View {
private final Paint grid = new Paint(1), line = new Paint(1), text = new Paint(1);
private final List<float[]> points = new ArrayList<>();
private final float[] socPower = new float[101];
public ChargingGraphView(Context c, AttributeSet a) { super(c,a); java.util.Arrays.fill(socPower, Float.NaN); grid.setColor(0x5548C7D9); line.setColor(0xFFFFC857); line.setStrokeWidth(4); text.setColor(0xFFBDC4C6); text.setTextSize(20); }
public ChargingGraphView(Context c, AttributeSet a) { super(c,a); java.util.Arrays.fill(socPower, Float.NaN); grid.setColor(0x55E0858A); line.setColor(0xFFFFC857); line.setStrokeWidth(4); text.setColor(0xFFBDC4C6); text.setTextSize(20); }
synchronized void add(Float soc, Float power) {
if (soc == null || power == null || power >= 0) return;
float p = Math.abs(power);
@@ -21,9 +21,9 @@ public final class PremiumBackdropView extends View {
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh) {
float radius = Math.max(1, Math.max(w, h) * 0.65f);
cyan.setShader(new RadialGradient(w * 0.70f, 0, radius,
new int[]{0x2419565B, 0x00000000}, null, Shader.TileMode.CLAMP));
new int[]{0x245B191D, 0x00000000}, null, Shader.TileMode.CLAMP));
gold.setShader(new RadialGradient(w, h, radius * 0.65f,
new int[]{0x1C8B693A, 0x00000000}, null, Shader.TileMode.CLAMP));
new int[]{0x1C8B3A3F, 0x00000000}, null, Shader.TileMode.CLAMP));
}
@Override protected void onDraw(Canvas canvas) {
+1 -1
View File
@@ -1 +1 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_selected="true" android:color="#806F6045"/><item android:color="@color/ev_transparent"/></selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_selected="true" android:color="#80703A3D"/><item android:color="@color/ev_transparent"/></selector>
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@color/ev_surface_raised" />
<item android:state_checked="true" android:color="#345E60" />
<item android:state_checked="true" android:color="#5E3436" />
<item android:color="@color/ev_outline" />
</selector>
@@ -1 +1 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"><gradient android:angle="315" android:startColor="#E5183032" android:centerColor="#F012191A" android:endColor="#FA121212"/><corners android:radius="24dp"/><stroke android:width="1dp" android:color="#40528C8C"/></shape>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><gradient android:angle="315" android:startColor="#E5301A1B" android:centerColor="#F012191A" android:endColor="#FA121212"/><corners android:radius="24dp"/><stroke android:width="1dp" android:color="#408C5255"/></shape>
+1 -1
View File
@@ -1 +1 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="#101213"/><corners android:radius="16dp"/><stroke android:width="1dp" android:color="#263233"/></shape>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="#101213"/><corners android:radius="16dp"/><stroke android:width="1dp" android:color="#322627"/></shape>
@@ -1,5 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="92dp" android:height="180dp" android:viewportWidth="92" android:viewportHeight="180">
<path android:pathData="M27,12 Q46,5 65,12 Q74,18 74,38 L78,130 Q79,157 64,164 L28,164 Q13,157 14,130 L18,38 Q18,18 27,12Z" android:fillColor="#151D1E" android:strokeColor="#85BDBF" android:strokeWidth="1.4"/>
<path android:pathData="M24,45 Q46,37 68,45 L63,65 Q46,61 29,65Z M28,129 Q46,135 64,129 L66,148 Q46,155 26,148Z M28,72 L28,122 M64,72 L64,122 M23,28 L35,25 M57,25 L69,28 M23,157 L35,159 M57,159 L69,157" android:fillColor="#102D30" android:strokeColor="#527B7C" android:strokeWidth="1.3"/>
<path android:pathData="M27,12 Q46,5 65,12 Q74,18 74,38 L78,130 Q79,157 64,164 L28,164 Q13,157 14,130 L18,38 Q18,18 27,12Z" android:fillColor="#1E1516" android:strokeColor="#E0858A" android:strokeWidth="1.4"/>
<path android:pathData="M24,45 Q46,37 68,45 L63,65 Q46,61 29,65Z M28,129 Q46,135 64,129 L66,148 Q46,155 26,148Z M28,72 L28,122 M64,72 L64,122 M23,28 L35,25 M57,25 L69,28 M23,157 L35,159 M57,159 L69,157" android:fillColor="#301012" android:strokeColor="#7C5254" android:strokeWidth="1.3"/>
<path android:pathData="M10,43 L10,67 M82,43 L82,67 M10,120 L10,144 M82,120 L82,144" android:fillColor="#00000000" android:strokeColor="#E0424C" android:strokeWidth="5" android:strokeLineCap="round"/>
</vector>
+4 -3
View File
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- User-requested app-specific OLED palette. The accent is MG red (#E0424C, the red of the
launcher icon); it replaced upstream's muted gold on 2026-10-17. ev_gold_surface keeps its
name but is now the dark red tint that goes with it. -->
name but is now the dark red tint that goes with it. ev_cyan / ev_cyan_deep likewise keep
their names but are the light and the deep red of the same palette (no turquoise left). -->
<resources>
<color name="ev_background">#000000</color>
<color name="ev_surface">#121212</color>
@@ -11,8 +12,8 @@
<color name="ev_text_secondary">#BDC4C6</color>
<color name="ev_accent">#E0424C</color>
<color name="ev_on_accent">#1A0B0C</color>
<color name="ev_cyan">#A0E2E0</color>
<color name="ev_cyan_deep">#103436</color>
<color name="ev_cyan">#FF9A9E</color>
<color name="ev_cyan_deep">#3A1215</color>
<color name="ev_gold_surface">#2A1416</color>
<color name="ev_ok">#A4DCC1</color>
<color name="ev_warn">#E9CA96</color>