Qt: Add 'Dark Ocean' theme

And corresponding FullscreenUI theme.
This commit is contained in:
Stenzek
2026-03-10 21:32:37 +10:00
parent 1c643d704e
commit d83dc3f332
7 changed files with 111 additions and 6 deletions
+1
View File
@@ -226,6 +226,7 @@ TRANSLATE_NOOP("FullscreenUI", "Custom");
TRANSLATE_NOOP("FullscreenUI", "Custom Indicator Scale");
TRANSLATE_NOOP("FullscreenUI", "Custom Notification Scale");
TRANSLATE_NOOP("FullscreenUI", "Dark");
TRANSLATE_NOOP("FullscreenUI", "Dark Ocean");
TRANSLATE_NOOP("FullscreenUI", "Dark Ruby");
TRANSLATE_NOOP("FullscreenUI", "Deadzone");
TRANSLATE_NOOP("FullscreenUI", "Debugging Settings");
+30 -4
View File
@@ -109,11 +109,12 @@ static ImGuiID GetBackgroundProgressID(std::string_view str_id);
static constexpr std::array s_theme_display_names = {
FSUI_NSTR("Automatic"), FSUI_NSTR("Dark"), FSUI_NSTR("Light"), FSUI_NSTR("AMOLED"),
FSUI_NSTR("Cobalt Sky"), FSUI_NSTR("Grey Matter"), FSUI_NSTR("Green Giant"), FSUI_NSTR("Pinky Pals"),
FSUI_NSTR("Dark Ruby"), FSUI_NSTR("Purple Rain"),
FSUI_NSTR("Dark Ocean"), FSUI_NSTR("Dark Ruby"), FSUI_NSTR("Purple Rain"),
};
static constexpr std::array s_theme_names = {
"", "Dark", "Light", "AMOLED", "CobaltSky", "GreyMatter", "GreenGiant", "PinkyPals", "DarkRuby", "PurpleRain",
"", "Dark", "Light", "AMOLED", "CobaltSky", "GreyMatter",
"GreenGiant", "PinkyPals", "DarkOcean", "DarkRuby", "PurpleRain",
};
// [0] = Mapping from Xbox button icons to PlayStation button icons.
@@ -6267,6 +6268,31 @@ void FullscreenUI::UpdateTheme()
UIStyle.BlurBackgroundWeight = 0.25f;
UIStyle.IsDarkTheme = false;
}
else if (theme == "DarkOcean")
{
UIStyle.BackgroundColor = HEX_TO_IMVEC4(0x1b1b1b, 0xff);
UIStyle.BackgroundTextColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.BackgroundLineColor = HEX_TO_IMVEC4(0xf0f0f0, 0xff);
UIStyle.BackgroundHighlight = HEX_TO_IMVEC4(0x2a4e8f, 0xff);
UIStyle.PopupFrameBackgroundColor = HEX_TO_IMVEC4(0x313131, 0xf2);
UIStyle.PopupBackgroundColor = HEX_TO_IMVEC4(0x212121, 0xf2);
UIStyle.PrimaryColor = HEX_TO_IMVEC4(0x121212, 0xff);
UIStyle.PrimaryLightColor = HEX_TO_IMVEC4(0x315ba6, 0xff);
UIStyle.PrimaryDarkColor = HEX_TO_IMVEC4(0x121212, 0xff);
UIStyle.PrimaryTextColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.DisabledColor = HEX_TO_IMVEC4(0x8d8d8d, 0xff);
UIStyle.TextHighlightColor = HEX_TO_IMVEC4(0x676767, 0xff);
UIStyle.PrimaryLineColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.SecondaryColor = HEX_TO_IMVEC4(0x3462b3, 0xff);
UIStyle.SecondaryStrongColor = HEX_TO_IMVEC4(0x447de6, 0xff);
UIStyle.SecondaryWeakColor = HEX_TO_IMVEC4(0x2a2e36, 0xff);
UIStyle.SecondaryTextColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.ToastBackgroundColor = HEX_TO_IMVEC4(0x282828, 0xff);
UIStyle.ToastTextColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.ShadowColor = IM_COL32(0, 0, 0, 100);
UIStyle.BlurBackgroundWeight = 0.25f;
UIStyle.IsDarkTheme = true;
}
else if (theme == "DarkRuby")
{
UIStyle.BackgroundColor = HEX_TO_IMVEC4(0x1b1b1b, 0xff);
@@ -6276,13 +6302,13 @@ void FullscreenUI::UpdateTheme()
UIStyle.PopupFrameBackgroundColor = HEX_TO_IMVEC4(0x313131, 0xf2);
UIStyle.PopupBackgroundColor = HEX_TO_IMVEC4(0x212121, 0xf2);
UIStyle.PrimaryColor = HEX_TO_IMVEC4(0x121212, 0xff);
UIStyle.PrimaryLightColor = HEX_TO_IMVEC4(0xb5b5b5, 0xff);
UIStyle.PrimaryLightColor = HEX_TO_IMVEC4(0xb52922, 0xff);
UIStyle.PrimaryDarkColor = HEX_TO_IMVEC4(0x000000, 0xff);
UIStyle.PrimaryTextColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.DisabledColor = HEX_TO_IMVEC4(0x8d8d8d, 0xff);
UIStyle.TextHighlightColor = HEX_TO_IMVEC4(0x676767, 0xff);
UIStyle.PrimaryLineColor = HEX_TO_IMVEC4(0xffffff, 0xff);
UIStyle.SecondaryColor = HEX_TO_IMVEC4(0x969696, 0xff);
UIStyle.SecondaryColor = HEX_TO_IMVEC4(0xcf2f27, 0xff);
UIStyle.SecondaryStrongColor = HEX_TO_IMVEC4(0xdc143c, 0xff);
UIStyle.SecondaryWeakColor = HEX_TO_IMVEC4(0x2a2e36, 0xff);
UIStyle.SecondaryTextColor = HEX_TO_IMVEC4(0xffffff, 0xff);
@@ -32,6 +32,7 @@ static constexpr const std::pair<const char*, const char*> BUILTIN_THEMES[] = {
{"greymatter", QT_TRANSLATE_NOOP("MainWindow", "Grey Matter")},
{"greengiant", QT_TRANSLATE_NOOP("MainWindow", "Green Giant")},
{"pinkypals", QT_TRANSLATE_NOOP("MainWindow", "Pinky Pals")},
{"darkocean", QT_TRANSLATE_NOOP("MainWindow", "Dark Ocean")},
{"darkruby", QT_TRANSLATE_NOOP("MainWindow", "Dark Ruby")},
{"purplerain", QT_TRANSLATE_NOOP("MainWindow", "Purple Rain")},
{"qdarkstyle", QT_TRANSLATE_NOOP("MainWindow", "QDarkStyle")},
+2 -2
View File
@@ -367,8 +367,8 @@ const char* Host::GetDefaultFullscreenUITheme()
static constexpr const std::pair<const char*, const char*> theme_mapping[] = {
{"cobaltsky", "CobaltSky"}, {"greymatter", "GreyMatter"}, {"greengiant", "GreenGiant"},
{"pinkypals", "PinkyPals"}, {"purplerain", "PurpleRain"}, {"darkruby", "DarkRuby"},
{"AMOLED", "AMOLED"},
{"pinkypals", "PinkyPals"}, {"purplerain", "PurpleRain"}, {"darkocean", "DarkOcean"},
{"darkruby", "DarkRuby"}, {"AMOLED", "AMOLED"},
};
const TinyString theme = Core::GetBaseTinyStringSettingValue("UI", "Theme", GetDefaultThemeName());
@@ -541,6 +541,7 @@
<file>themes/darkerfusion.qss</file>
<file>themes/darkfusion.qss</file>
<file>themes/darkfusionblue.qss</file>
<file>themes/darkocean.qss</file>
<file>themes/darkruby.qss</file>
<file>themes/greengiant.qss</file>
<file>themes/greymatter.qss</file>
File diff suppressed because one or more lines are too long
+55
View File
@@ -0,0 +1,55 @@
/*! SPDX-FileCopyrightText: 2019-2026 Connor McLaughlin <stenzek@gmail.com> and contributors. */
/*! SPDX-License-Identifier: CC-BY-NC-ND-4.0 */
//
// darkruby.scss - Deep dark theme with ruby accent
//
@use 'template' with (
// --------------------------------------------------------------------------
// QPalette colors
// --------------------------------------------------------------------------
$palette-window: #121212,
$palette-base: #1b1b1b,
$palette-button: #121212,
$palette-text: #ffffff,
$palette-highlight: #25447d,
$palette-highlight-text: #ffffff,
$palette-disabled-text: #808080,
$palette-placeholder-text: #808080,
$palette-link: #ffffff,
$palette-alternate-base: #242424,
$palette-disabled-light: #1b1b1b,
// --------------------------------------------------------------------------
// Stylesheet colors
// --------------------------------------------------------------------------
// Background hierarchy
$bg-disabled: #0a0a0a,
$bg-menu: #0e0e0e,
$bg-control: #1a1a1a,
$bg-surface: #1e1e1e,
$bg-hover: #2d5399,
$bg-active: #2a4e8f,
$bg-button-hover: #1a3a62,
$bg-pressed: #004ab0,
// Borders
$border-color: #2e2e2e,
$border-subtle: #222222,
// Text
$text-color: #ffffff,
$text-disabled: #555555,
// Accent
$accent-color: #25447d,
// Slider handle
$slider-handle: #25447d,
$slider-handle-hover: #1a6ae0,
$slider-handle-pressed: #3080f0,
// Checkbox icons
$checkbox-icon-style: "white",
);