-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgui_theme.py
More file actions
280 lines (266 loc) · 7.25 KB
/
Copy pathgui_theme.py
File metadata and controls
280 lines (266 loc) · 7.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
"""DropGain GUI theme: colors, typography, layout, and table definitions."""
from __future__ import annotations
# DropGain color palette (muted graphite instrument surfaces)
BG_MAIN = "#181a1d"
BG_CARD = "#23272b"
BG_PANEL = "#1f2327"
FG_MAIN = "#f1f5f6"
FG_MUTED = "#929ba3"
ACCENT = "#b0dce8"
ACCENT_HOVER = "#8ec8d6"
ACCENT_SOFT = "#8ec8d6"
ACCENT_DIM = "#243338"
BG_FIELD = "#111315"
BORDER_COLOR = "#3b4249"
SELECTION_BG = "#243338"
TABLE_SELECTION_BG = "#304f58"
HEADER_BG = "#111315"
METRIC_BG = "#252a2f"
LOG_BG = BG_PANEL
ICE = "#b0dce8"
ICE_SOFT = "#8ec8d6"
ICE_FILL = "#6aadb8"
ICE_DIM = "#243338"
ERROR_FG = "#ff6b6b"
WARN_FG = "#d4b878"
SUCCESS_FG = "#87d6a3"
WAVEFORM_FILL = ICE_FILL
WAVEFORM_PEAK_FILL = "#3d6670"
WAVEFORM_RMS_FILL = ICE_FILL
WAVEFORM_BG = BG_FIELD
WAVEFORM_TARGET_BAND = "#1f363b"
WAVEFORM_DROP_BG = "#243338"
WAVEFORM_GRID = "#343434"
WAVEFORM_CURVE = "#ffffff"
WAVEFORM_MARKER = WARN_FG
WAVEFORM_LIMITER_ZONE = "#2a3236"
WAVEFORM_SUPERSAMPLE = 2
WAVEFORM_MIN_WIDTH = 240
WAVEFORM_MIN_HEIGHT = 80
WAVEFORM_FONT_MESSAGE_BASE = 13
WAVEFORM_FONT_LABEL_BASE = 11
WAVEFORM_FONT_VALUE_BASE = 12
WAVEFORM_FONT_PILL_BASE = 10
WAVEFORM_TEXT_BADGE_ALPHA = 140
TABLE_ROW_ODD = "#15181b"
TABLE_ROW_EVEN = "#1c2024"
BUTTON_TEXT_DARK = "#141414"
BUTTON_HEIGHT = 36
BUTTON_CORNER_RADIUS = 0
ACTION_BUTTON_CORNER_RADIUS = 0
FIELD_CORNER_RADIUS = 4
TAB_CORNER_RADIUS = 0
ENTRY_HEIGHT = 34
METRIC_CHIP_HEIGHT = 24
METRIC_CHIP_CORNER_RADIUS = 4
METRIC_CHIP_PADX = 6
FOLDER_ENTRY_WIDTH = 280
PROCESS_ACTION_COLUMN_WIDTH = 208
# Spacing (4px base unit)
SPACE_1 = 4
SPACE_2 = 8
SPACE_3 = 12
SPACE_4 = 16
SPACE_6 = 24
PAGE_PADX = SPACE_4
PAGE_PADY_TOP = SPACE_3
SECTION_GAP = SPACE_2
CARD_PAD = 10
DASHBOARD_SECTION_GAP = SPACE_6
DASHBOARD_METRICS_TOP_PAD = SPACE_6
DASHBOARD_LAYOUT_COMPACT_WIDTH = 1120
DASHBOARD_LAYOUT_STACKED_WIDTH = 880
PREFERENCES_SINGLE_COLUMN_WIDTH = 900
PREFERENCES_TWO_COLUMN_WIDTH = 960
PREFERENCES_LAYOUT_DEBOUNCE_MS = 80
WINDOW_DESIGN_MIN_WIDTH = 1180
WINDOW_DESIGN_MIN_HEIGHT = 760
WINDOW_DESIGN_DEFAULT_WIDTH = 1240
WINDOW_DESIGN_DEFAULT_HEIGHT = 1500
WINDOW_DESIGN_MIN_WIDTH_FLOOR = 900
WINDOW_DESIGN_MIN_HEIGHT_FLOOR = 600
WINDOW_SCREEN_MARGIN_X = 40
WINDOW_SCREEN_MARGIN_Y = 80
BUTTON_DISABLED_FG = "#1a1a1a"
BUTTON_DISABLED_BORDER = "#2a2a2a"
BUTTON_DISABLED_TEXT = "#505050"
BUTTON_SECONDARY_BG = "#252a2f"
BUTTON_SECONDARY_HOVER = "#2f353b"
BUTTON_SECONDARY_ACTIVE = "#1c2024"
BUTTON_SECONDARY_BORDER = BORDER_COLOR
ACCENT_ACTIVE = "#7ab8c8"
TAB_ACTIVE_PRESS = "#1a282c"
TAB_INACTIVE_HOVER_BG = "#383838"
TAB_INACTIVE_HOVER_TEXT = "#f0f0f0"
ISSUE_BUTTON_BG = "#3d2828"
ISSUE_BUTTON_HOVER = "#4d3333"
HOVER_TWEEN_MS = 30
HOVER_TWEEN_STEPS = 6
TAB_HOVER_TWEEN_MS = HOVER_TWEEN_MS
TAB_HOVER_TWEEN_STEPS = HOVER_TWEEN_STEPS
CURSOR_POINTER = "hand2"
CARD_CORNER_RADIUS = 6
# Signal-console surface treatment (muted cyber; used in PIL-rendered surfaces)
SIGNAL_GRID_SPACING = 12
SIGNAL_GRID_ALPHA = 22
SIGNAL_SCANLINE_SPACING = 3
SIGNAL_SCANLINE_ALPHA = 12
SIGNAL_FRAME_HIGHLIGHT = "#4a5560"
SIGNAL_FRAME_SHADOW = "#0a0c0e"
SIGNAL_BRACKET_ALPHA = 130
SIGNAL_PANEL_CORNER_RADIUS = 4
HEADER_SIGNAL_BAR_WIDTH = 3
METRIC_TILE_ACCENT_HEIGHT = 2
# Brand display type (hero wordmark; loaded from fonts/ or system)
BRAND_DISPLAY_FONT_CANDIDATES = (
"Karnivore Blue",
"Orbitron",
)
BRAND_WORDMARK_COLOR = FG_MAIN
BRAND_WORDMARK_ACCENT_COLOR = ACCENT
BRAND_WORDMARK_SIZE = 40
# Hero numerals on process-page metric tiles (readable at large sizes)
METRIC_TILE_VALUE_FONT_CANDIDATES = (
"Orbitron",
"Consolas",
)
# Instrument chrome: table headings, nav tabs, metric tile captions
UI_ACCENT_FONT_CANDIDATES = (
"Orbitron",
"Consolas",
)
# Type scale (body UI + instrument mono for numeric readouts)
TYPE_H1 = 15
TYPE_BODY = 13
TYPE_LABEL = 12
TYPE_CAPTION = 11
TYPE_MICRO = 10
UI_BODY_FONT_CANDIDATES = (
"Segoe UI",
"SF Pro Text",
"Helvetica Neue",
"Helvetica",
)
TABLE_CELL_FONT_FAMILY = "Cascadia Mono"
TABLE_CELL_FONT_FALLBACKS = ("Consolas", "Menlo", "Monaco", "Courier New", "Segoe UI")
TABLE_HEADING_SIZE = TYPE_CAPTION
TABLE_CELL_SIZE = TYPE_CAPTION
METRIC_TILE_WIDTH = 150
METRIC_TILE_HEIGHT = 88
METRIC_TILE_GAP = 10
METRIC_TILE_CORNER_RADIUS = 6
METRIC_TILE_VALUE_SIZE = 34
METRIC_TILE_LABEL_SIZE = 10
PROCESS_SETTINGS_WRAP_WIDTH = 700
PROCESS_SETTINGS_ROW_PADY = 15
PROCESS_SETTINGS_VALUE_SEP = " · "
PROCESS_DASHBOARD_PROGRESS_GAP = SPACE_1
PROGRESS_BAR_HEIGHT = 8
PROGRESS_BAR_CORNER_RADIUS = 2
TOOLTIP_PADX = 10
TOOLTIP_PADY = 8
TOOLTIP_OFFSET_X = 18
TOOLTIP_OFFSET_Y = 16
TOOLTIP_SCREEN_MARGIN = 12
TREEVIEW_ROW_HEIGHT = 30
TREEVIEW_HEADING_PAD = 22
TREEVIEW_CELL_PAD = 16
TREEVIEW_ROW_EXTRA_PAD = 5
# 2-tone waveform colors (warm bass, cool treble; aligned with accent palette)
WAVEFORM_BAND_LOW = "#a67d85"
WAVEFORM_BAND_OTHER = ICE_FILL
WAVEFORM_PREVIEW_SAMPLE_RATE = 8_000
WAVEFORM_PREVIEW_MAX_POINTS = 1_800
OUTPUT_LOG_LINES = 7
OUTPUT_LOG_LINE_PIXELS = 14
OUTPUT_LOG_PADDING = 16
WAVEFORM_CONTENT_HEIGHT = 128
OUTPUT_CONTENT_HEIGHT = max(
(OUTPUT_LOG_LINES * OUTPUT_LOG_LINE_PIXELS) + OUTPUT_LOG_PADDING,
WAVEFORM_CONTENT_HEIGHT,
)
WAVEFORM_LOUDNESS_SMOOTH_SECONDS = 5.0
RESULTS_TABLE_FILENAME_MIN = 500
RESULTS_TABLE_FILENAME_ABSOLUTE_MAX = 1140
RESULTS_TABLE_COLUMNS = (
# column_id, heading, anchor, widest typical cell text, hover tooltip
(
"filename",
"Name",
"w",
"",
"Filename within the source folder.",
),
(
"gain",
"Gain",
"e",
"+12.34 dB",
"Suggested gain to bring the loudest section into your target loudness window.",
),
(
"current_lufs",
"Current LUFS",
"e",
"-12.34 LUFS",
"Measured LUFS of the loudest detected section in the source file, usually the drop or chorus.",
),
(
"projected_lufs",
"Projected LUFS",
"e",
"-12.34 LUFS",
"Estimated loudest-section LUFS after applying the suggested gain, before render or limiter.",
),
(
"true_peak",
"TP",
"e",
"-12.34 dBTP",
"Source true peak (dBTP) before any gain change.",
),
(
"projected_true_peak",
"Projected TP",
"e",
"-12.34 dBTP",
"Estimated true peak after the suggested gain, before any limiter.",
),
(
"limiting",
"Peak control",
"e",
"1.47 dB",
"Peak reduction FabFilter Pro-L would apply to stay under your ceiling. "
"(clean) means no limiter is needed.",
),
(
"bass_strength",
"Bass",
"e",
"+12.34 dB",
"45-115 Hz strength relative to the 115-1000 Hz reference band. Higher values can trigger bass-aware gain trim.",
),
(
"sub_strength",
"Sub",
"e",
"+12.34 dB",
"20-45 Hz strength relative to the 115-1000 Hz reference band. Higher values can trigger bass-aware gain trim.",
),
(
"status",
"Status",
"center",
"● Zero-gain skip",
"Whether the track is ready to render, already in range, below the minimum "
"change threshold, or needs manual review.",
),
(
"warnings",
"Notes",
"w",
"",
"Analysis notes, processing decisions, verification issues, and errors for this track.",
),
)