From e395068e762342cfc8b69e9f4b00fae03b576ce8 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 2 Oct 2026 07:49:16 +0200 Subject: [PATCH 1/4] Make the default theme a near-neutral one with a frost accent The gold over a warm Minecraft world was too much. The new default keeps the surfaces close to neutral grey so the world showing through the glass doesn't tint them, uses a pale frost for the accent, and keeps Saturn's butterscotch only on the scrollbar. The old colors stay as "Saturn Gold". Co-Authored-By: Claude Opus 5.5 --- .../java/org/saturnclient/config/Theme.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/saturnclient/config/Theme.java b/src/main/java/org/saturnclient/config/Theme.java index a0b0eaf..80f2793 100644 --- a/src/main/java/org/saturnclient/config/Theme.java +++ b/src/main/java/org/saturnclient/config/Theme.java @@ -10,26 +10,27 @@ import org.saturnclient.config.property.SelectProperty; public class Theme { public static ConfigManager config; - // Main UI background (slightly warm dark to match Saturn tone), translucent over the world - public static final ColorProperty BACKGROUND = Property.color(0xD112100D); + // Main UI background (a near-neutral dark, so the warm world showing through + // doesn't muddy it), translucent over the world + public static final ColorProperty BACKGROUND = Property.color(0xD1131417); // Default text color - public static final ColorProperty FOREGROUND = Property.color(0xFFF2E6D2); + public static final ColorProperty FOREGROUND = Property.color(0xFFECEFF3); // Widget default background (normal state), translucent over the world - public static final ColorProperty PRIMARY = Property.color(0xB81C1915); + public static final ColorProperty PRIMARY = Property.color(0xB81E2025); // Widget text color - public static final ColorProperty PRIMARY_FG = Property.color(0xFFEAD9B8); + public static final ColorProperty PRIMARY_FG = Property.color(0xFFD5DAE1); - // Saturn brand color (hovered / enabled / selected) - public static final ColorProperty ACCENT = Property.color(0xFFE2BF7D); + // Saturn brand color, a pale frost (hovered / enabled / selected) + public static final ColorProperty ACCENT = Property.color(0xFFD3DCE6); // Text/icons shown on accent background - public static final ColorProperty ACCENT_FG = Property.color(0xFF1A140A); + public static final ColorProperty ACCENT_FG = Property.color(0xFF15181C); - // Misc colors - public static final ColorProperty SCROLL = Property.color(0xFFE2BF7D); + // Misc colors: the one warm touch, Saturn's butterscotch + public static final ColorProperty SCROLL = Property.color(0xFFD9B98A); // UI metrics public static final IntProperty BG_RADIUS = Property.integer(12).range(0, 24); @@ -62,7 +63,8 @@ public class Theme { } public static final List PRESETS = List.of( - new Preset("Saturn", 0xD112100D, 0xFFF2E6D2, 0xB81C1915, 0xFFEAD9B8, 0xFFE2BF7D, 0xFF1A140A, 0xFFE2BF7D), + new Preset("Saturn", 0xD1131417, 0xFFECEFF3, 0xB81E2025, 0xFFD5DAE1, 0xFFD3DCE6, 0xFF15181C, 0xFFD9B98A), + new Preset("Saturn Gold", 0xD112100D, 0xFFF2E6D2, 0xB81C1915, 0xFFEAD9B8, 0xFFE2BF7D, 0xFF1A140A, 0xFFE2BF7D), new Preset("Midnight", 0xD10E1117, 0xFFE4EAF5, 0xB8171C26, 0xFFC9D4E8, 0xFF8FB3FF, 0xFF0A1224, 0xFF8FB3FF), new Preset("Amethyst", 0xD1120F17, 0xFFEDE4F7, 0xB81C1724, 0xFFD8C9EB, 0xFFC79BFF, 0xFF1A0F2A, 0xFFC79BFF), new Preset("Emerald", 0xD10D1210, 0xFFE2F2EA, 0xB816201B, 0xFFC4E0D2, 0xFF7FD1A8, 0xFF0A1F15, 0xFF7FD1A8)); -- 2.54.0 From 2ef28c9e14c5c0d57fd653001ed0da8b75b87a68 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 2 Oct 2026 07:49:28 +0200 Subject: [PATCH 2/4] Replace the Emerald theme with a black-and-white Mono one Co-Authored-By: Claude Opus 5.5 --- src/main/java/org/saturnclient/config/Theme.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/saturnclient/config/Theme.java b/src/main/java/org/saturnclient/config/Theme.java index 80f2793..bd5cb4c 100644 --- a/src/main/java/org/saturnclient/config/Theme.java +++ b/src/main/java/org/saturnclient/config/Theme.java @@ -65,9 +65,9 @@ public class Theme { public static final List PRESETS = List.of( new Preset("Saturn", 0xD1131417, 0xFFECEFF3, 0xB81E2025, 0xFFD5DAE1, 0xFFD3DCE6, 0xFF15181C, 0xFFD9B98A), new Preset("Saturn Gold", 0xD112100D, 0xFFF2E6D2, 0xB81C1915, 0xFFEAD9B8, 0xFFE2BF7D, 0xFF1A140A, 0xFFE2BF7D), + new Preset("Mono", 0xD1121212, 0xFFF0F0F0, 0xB81C1C1C, 0xFFDADADA, 0xFFF0F0F0, 0xFF121212, 0xFFF0F0F0), new Preset("Midnight", 0xD10E1117, 0xFFE4EAF5, 0xB8171C26, 0xFFC9D4E8, 0xFF8FB3FF, 0xFF0A1224, 0xFF8FB3FF), - new Preset("Amethyst", 0xD1120F17, 0xFFEDE4F7, 0xB81C1724, 0xFFD8C9EB, 0xFFC79BFF, 0xFF1A0F2A, 0xFFC79BFF), - new Preset("Emerald", 0xD10D1210, 0xFFE2F2EA, 0xB816201B, 0xFFC4E0D2, 0xFF7FD1A8, 0xFF0A1F15, 0xFF7FD1A8)); + new Preset("Amethyst", 0xD1120F17, 0xFFEDE4F7, 0xB81C1724, 0xFFD8C9EB, 0xFFC79BFF, 0xFF1A0F2A, 0xFFC79BFF)); public static void init(ConfigManager parent) { config = new ConfigManager(parent, "UI Style"); -- 2.54.0 From 917eba1e178f75bca816cfed966d7d62e6e1abe8 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 2 Oct 2026 07:49:35 +0200 Subject: [PATCH 3/4] Tone down the Midnight and Amethyst themes Their tinted surfaces turned muddy with the warm world showing through, and their bright pastel accents clashed with Minecraft's colors. The surfaces are now close to neutral and the accents less saturated. Co-Authored-By: Claude Opus 5.5 --- src/main/java/org/saturnclient/config/Theme.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/saturnclient/config/Theme.java b/src/main/java/org/saturnclient/config/Theme.java index bd5cb4c..a12e97c 100644 --- a/src/main/java/org/saturnclient/config/Theme.java +++ b/src/main/java/org/saturnclient/config/Theme.java @@ -66,8 +66,8 @@ public class Theme { new Preset("Saturn", 0xD1131417, 0xFFECEFF3, 0xB81E2025, 0xFFD5DAE1, 0xFFD3DCE6, 0xFF15181C, 0xFFD9B98A), new Preset("Saturn Gold", 0xD112100D, 0xFFF2E6D2, 0xB81C1915, 0xFFEAD9B8, 0xFFE2BF7D, 0xFF1A140A, 0xFFE2BF7D), new Preset("Mono", 0xD1121212, 0xFFF0F0F0, 0xB81C1C1C, 0xFFDADADA, 0xFFF0F0F0, 0xFF121212, 0xFFF0F0F0), - new Preset("Midnight", 0xD10E1117, 0xFFE4EAF5, 0xB8171C26, 0xFFC9D4E8, 0xFF8FB3FF, 0xFF0A1224, 0xFF8FB3FF), - new Preset("Amethyst", 0xD1120F17, 0xFFEDE4F7, 0xB81C1724, 0xFFD8C9EB, 0xFFC79BFF, 0xFF1A0F2A, 0xFFC79BFF)); + new Preset("Midnight", 0xD1121418, 0xFFE5E9F0, 0xB81C2027, 0xFFD8DEE9, 0xFF8FAFCF, 0xFF10151D, 0xFF8FAFCF), + new Preset("Amethyst", 0xD1141317, 0xFFECE8F1, 0xB81F1D24, 0xFFDAD3E3, 0xFFB49CCB, 0xFF19131F, 0xFFB49CCB)); public static void init(ConfigManager parent) { config = new ConfigManager(parent, "UI Style"); -- 2.54.0 From fd9ec3222cd96b3dae98a42612f293e11bcea44b Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sat, 3 Oct 2026 06:11:48 +0200 Subject: [PATCH 4/4] Wrap the theme presets onto more rows when the cards get too narrow With five presets, the cards at a larger menu scale were narrower than the widgets in their previews. Co-Authored-By: Claude Opus 5.5 --- .../saturnclient/ui/components/ThemePresetCard.java | 2 ++ .../org/saturnclient/ui/screens/ClientSettings.java | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/saturnclient/ui/components/ThemePresetCard.java b/src/main/java/org/saturnclient/ui/components/ThemePresetCard.java index 0da52e6..f470abd 100644 --- a/src/main/java/org/saturnclient/ui/components/ThemePresetCard.java +++ b/src/main/java/org/saturnclient/ui/components/ThemePresetCard.java @@ -12,6 +12,8 @@ import org.saturnclient.ui.resources.Fonts; */ public class ThemePresetCard extends Element { public static final int HEIGHT = 92; + /** The narrowest card that still fits its preview's widgets */ + public static final int MIN_WIDTH = 100; private static final int PADDING = 10; private static final int PREVIEW_HEIGHT = 44; diff --git a/src/main/java/org/saturnclient/ui/screens/ClientSettings.java b/src/main/java/org/saturnclient/ui/screens/ClientSettings.java index e6cfbb3..bf763f8 100644 --- a/src/main/java/org/saturnclient/ui/screens/ClientSettings.java +++ b/src/main/java/org/saturnclient/ui/screens/ClientSettings.java @@ -102,15 +102,20 @@ public class ClientSettings extends PanelScreen { Map properties = Theme.config.getProperties(); int y = PropertyList.drawSection(scroll, "Presets", 0) + 10; - int cardWidth = (width - PRESET_GAP * (Theme.PRESETS.size() - 1)) / Theme.PRESETS.size(); + // One row when the cards fit, otherwise as many rows as they need + int columns = Math.max(1, Math.min(Theme.PRESETS.size(), + (width + PRESET_GAP) / (ThemePresetCard.MIN_WIDTH + PRESET_GAP))); + int rows = (Theme.PRESETS.size() + columns - 1) / columns; + int cardWidth = (width - PRESET_GAP * (columns - 1)) / columns; for (int i = 0; i < Theme.PRESETS.size(); i++) { // Rebuild so the color inputs show the preset's colors scroll.draw(new ThemePresetCard(Theme.PRESETS.get(i), cardWidth, this::init) - .position(i * (cardWidth + PRESET_GAP), y)); + .position(i % columns * (cardWidth + PRESET_GAP), + y + i / columns * (ThemePresetCard.HEIGHT + PRESET_GAP))); } - y += ThemePresetCard.HEIGHT + SECTION_GAP; + y += rows * ThemePresetCard.HEIGHT + (rows - 1) * PRESET_GAP + SECTION_GAP; y = PropertyList.drawSection(scroll, "Colors", y) + 10; y = ColorGrid.draw(scroll, properties, width, y) + SECTION_GAP; -- 2.54.0