diff --git a/clients/android/app/src/main/kotlin/io/unom/punktfunk/GamepadPalette.kt b/clients/android/app/src/main/kotlin/io/unom/punktfunk/GamepadPalette.kt index aca24aeb..92cb0a41 100644 --- a/clients/android/app/src/main/kotlin/io/unom/punktfunk/GamepadPalette.kt +++ b/clients/android/app/src/main/kotlin/io/unom/punktfunk/GamepadPalette.kt @@ -84,7 +84,11 @@ class GamepadPalette( // pure black too: the calm mix on the form screens lifts toward nothing. What is // left is a faint indigo→violet ember in the bright corner. The accent stays the // brand violet — focus has to be findable on black. - "oled", "OLED", + // Named for the look, not the panel technology — black with a thin violet corona + // belongs beside Nebula and Abyss. ⚠ The ID stays "oled": it is the stored + // `ui_palette` value and the cross-client key, so renaming it would orphan saved + // choices and desync the clients. + "oled", "Eclipse", listOf( Triple(0.000, 0.000, 0.000), Triple(0.000, 0.000, 0.000), Triple(0.010, 0.020, 0.100), Triple(0.045, 0.016, 0.115), diff --git a/clients/apple/Sources/PunktfunkShared/GamepadPalette.swift b/clients/apple/Sources/PunktfunkShared/GamepadPalette.swift index e9da97a6..1404c373 100644 --- a/clients/apple/Sources/PunktfunkShared/GamepadPalette.swift +++ b/clients/apple/Sources/PunktfunkShared/GamepadPalette.swift @@ -79,7 +79,13 @@ public struct GamepadPalette: Identifiable, Equatable, Sendable { // too: the calm mix on the form screens lifts toward nothing. What is left is a // faint indigo→violet ember in the bright corner. The accent stays the brand violet // — focus has to be findable on black. - id: "oled", name: "OLED", + // + // Named for the look, not the panel technology: black with a thin violet corona is an + // eclipse, and it belongs beside Nebula and Abyss rather than reading as a spec sheet. + // ⚠ The ID stays "oled" — it is the stored `ui_palette` value AND the cross-client key + // (pf-console-ui's library.rs, the Android GamepadPalette.kt), so renaming it would + // orphan every saved choice and desync the three clients. Only the label moved. + id: "oled", name: "Eclipse", stops: [SIMD3(0.000, 0.000, 0.000), SIMD3(0.000, 0.000, 0.000), SIMD3(0.010, 0.020, 0.100), SIMD3(0.045, 0.016, 0.115), SIMD3(0.120, 0.024, 0.130)], diff --git a/crates/pf-console-ui/src/library.rs b/crates/pf-console-ui/src/library.rs index b52555a5..5f4b5cd3 100644 --- a/crates/pf-console-ui/src/library.rs +++ b/crates/pf-console-ui/src/library.rs @@ -267,7 +267,10 @@ pub const PALETTES: [Palette; 13] = [ // luminance while keeping the backdrop a field with somewhere to go rather than a // dead rectangle. The accent stays the brand violet — focus has to be findable on // black. - id: "oled", name: "OLED", + // Named for the look, not the panel technology — black with a thin violet corona belongs + // beside Nebula and Abyss. ⚠ The ID stays "oled": it is the stored `ui_palette` value and + // the cross-client key, so renaming it would orphan saved choices and desync the clients. + id: "oled", name: "Eclipse", stops: Some(&[ (0.000, 0.000, 0.000), (0.000, 0.000, 0.000), (0.010, 0.020, 0.100), (0.045, 0.016, 0.115), (0.120, 0.024, 0.130),