Skip to content

Commit c3b450e

Browse files
authored
fix: Fixed settings UI in dark mode (#282)
When running the native app with dark mode, the settings dialog was not properly showing some of the text.
1 parent 51d8f23 commit c3b450e

File tree

4 files changed

+35
-19
lines changed

4 files changed

+35
-19
lines changed

src/stonks_overwatch/templates/components/brokers/ibkr_settings.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ <h6 class="fw-bold mt-4 mb-2">OAuth Credentials:</h6>
8282
{% endif %}
8383
</span>
8484
</div>
85-
<hr class="my-2">
8685

8786
<div class="settings-form-group">
8887
<label for="ibkr-encryption-key">Private Key (PEM format)</label>
@@ -155,7 +154,6 @@ <h6 class="fw-bold mt-4 mb-2">OAuth Credentials:</h6>
155154
{% endif %}
156155
</span>
157156
</div>
158-
<hr class="my-2">
159157

160158
<div class="settings-form-group">
161159
<label for="ibkr-signature-key">Private Key (PEM format)</label>

src/stonks_overwatch/templates/components/settings_content.html

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@
1717
<style>
1818
/* Set CSS custom properties for theme colors */
1919
:root {
20-
--settings-bg-color: {{ bg_color|default:"#f8f9fa" }};
21-
--settings-text-color: {{ text_color|default:"#000000" }};
22-
--settings-border-color: {% if is_dark_mode %}#555{% else %}#dee2e6{% endif %};
23-
--settings-hover-bg: {% if is_dark_mode %}#4a4a4a{% else %}#f8f9fa{% endif %};
24-
--settings-active-bg: {% if is_dark_mode %}#4a5568{% else %}#D0E0FF{% endif %};
25-
--settings-form-bg: {% if is_dark_mode %}#4a4a4a{% else %}#fff{% endif %};
26-
--settings-form-border: {% if is_dark_mode %}#555{% else %}#dee2e6{% endif %};
20+
--settings-bg-color: {{ bg_color }};
21+
--settings-text-color: {{ text_color }};
22+
--settings-border-color: {{ border_color }};
23+
--settings-hover-bg: {{ hover_bg }};
24+
--settings-active-bg: {{ active_bg }};
25+
--settings-form-bg: {{ form_bg }};
26+
--settings-form-border: {{ form_border }};
27+
--bs-secondary-color: {{ secondary_color }};
2728
}
2829
html, body {
2930
margin: 0;
@@ -37,13 +38,14 @@
3738
<style>
3839
/* Set CSS custom properties for theme colors (fragment mode) - scoped to settings content */
3940
.settings-content {
40-
--settings-bg-color: {{ bg_color|default:"#f8f9fa" }};
41-
--settings-text-color: {{ text_color|default:"#000000" }};
42-
--settings-border-color: {% if is_dark_mode %}#555{% else %}#dee2e6{% endif %};
43-
--settings-hover-bg: {% if is_dark_mode %}#4a4a4a{% else %}#f8f9fa{% endif %};
44-
--settings-active-bg: {% if is_dark_mode %}#4a5568{% else %}#D0E0FF{% endif %};
45-
--settings-form-bg: {% if is_dark_mode %}#4a4a4a{% else %}#fff{% endif %};
46-
--settings-form-border: {% if is_dark_mode %}#555{% else %}#dee2e6{% endif %};
41+
--settings-bg-color: {{ bg_color }};
42+
--settings-text-color: {{ text_color }};
43+
--settings-border-color: {{ border_color }};
44+
--settings-hover-bg: {{ hover_bg }};
45+
--settings-active-bg: {{ active_bg }};
46+
--settings-form-bg: {{ form_bg }};
47+
--settings-form-border: {{ form_border }};
48+
--bs-secondary-color: {{ secondary_color }};
4749
}
4850
</style>
4951
{% endif %}

src/stonks_overwatch/utils/core/theme.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,34 @@ def get_theme_colors(is_dark_mode: bool) -> Dict[str, str]:
1313
is_dark_mode (bool): Whether dark mode is enabled.
1414
1515
Returns:
16-
Dict[str, str]: Dictionary with keys 'bg_color', 'text_color', 'code_bg', 'blockquote_bg'.
16+
Dict[str, str]: Dictionary with theme colors for all UI components.
1717
"""
1818
if is_dark_mode:
1919
return {
20+
# Base colors
2021
"bg_color": "#3B3B3B",
2122
"text_color": "#FFFFFF",
2223
"code_bg": "#696969",
2324
"blockquote_bg": "#101010",
25+
# Settings-specific colors
26+
"secondary_color": "#B0B0B0",
27+
"border_color": "#555555",
28+
"hover_bg": "#4a4a4a",
29+
"active_bg": "#4a5568",
30+
"form_bg": "#4a4a4a",
31+
"form_border": "#555555",
2432
}
2533
return {
34+
# Base colors
2635
"bg_color": "#FFFFFF",
2736
"text_color": "#000000",
2837
"code_bg": "#F5F5F5",
2938
"blockquote_bg": "#F0F0F0",
39+
# Settings-specific colors
40+
"secondary_color": "#6c757d",
41+
"border_color": "#dee2e6",
42+
"hover_bg": "#f8f9fa",
43+
"active_bg": "#D0E0FF",
44+
"form_bg": "#FFFFFF",
45+
"form_border": "#dee2e6",
3046
}

src/stonks_overwatch/views/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ def get(self, request) -> HttpResponse:
5656
"ibkr_config": ibkr_config,
5757
"is_dark_mode": is_dark_mode,
5858
"is_standalone": not is_ajax_request, # Wrap in HTML structure for non-AJAX requests
59-
"bg_color": theme_colors["bg_color"],
60-
"text_color": theme_colors["text_color"],
59+
# Pass all theme colors from theme.py
60+
**theme_colors,
6161
}
6262

6363
# Always return the content component (it handles standalone vs fragment internally)

0 commit comments

Comments
 (0)