Skip to content

Commit 18924ee

Browse files
committed
Update toolbar panel styles
1 parent 7c0b02b commit 18924ee

File tree

9 files changed

+183
-141
lines changed

9 files changed

+183
-141
lines changed

debug_toolbar/panels/sql/utils.py

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from functools import cache, lru_cache
22
from html import escape
3+
from itertools import cycle
34

45
import sqlparse
56
from django.dispatch import receiver
@@ -136,27 +137,13 @@ def contrasting_color_generator():
136137
and then vary subsequent bits systematically.
137138
"""
138139

139-
def rgb_to_hex(rgb):
140-
return "#{:02x}{:02x}{:02x}".format(*tuple(rgb))
141-
142-
triples = [
143-
(1, 0, 0),
144-
(0, 1, 0),
145-
(0, 0, 1),
146-
(1, 1, 0),
147-
(0, 1, 1),
148-
(1, 0, 1),
149-
(1, 1, 1),
150-
]
151-
n = 1 << 7
152-
so_far = [[0, 0, 0]]
153-
while True:
154-
if n == 0: # This happens after 2**24 colours; presumably, never
155-
yield "#000000" # black
156-
copy_so_far = list(so_far)
157-
for triple in triples:
158-
for previous in copy_so_far:
159-
rgb = [n * triple[i] + previous[i] for i in range(3)]
160-
so_far.append(rgb)
161-
yield rgb_to_hex(rgb)
162-
n >>= 1
140+
return cycle([
141+
"#0C375A",
142+
"#21A0A0",
143+
"#FFC300",
144+
"#FF5733",
145+
"#C70039",
146+
"#900C3F",
147+
"#581845",
148+
"#F1C40F"
149+
])

debug_toolbar/static/debug_toolbar/css/toolbar.css

Lines changed: 94 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,47 @@
1919
--djdt-background-color: white;
2020
--djdt-panel-content-background-color: #eee;
2121
--djdt-panel-content-table-background-color: var(--djdt-background-color);
22+
--djdt-panel-content-table-alternate-background-color: #fafafa;
2223
--djdt-panel-title-background-color: #ffc;
2324
--djdt-djdt-panel-content-table-strip-background-color: #f5f5f5;
24-
--djdt--highlighted-background-color: lightgrey;
25+
--djdt-highlighted-background-color: #ffc;
2526
--djdt-toggle-template-background-color: #bbb;
2627

2728
--djdt-sql-font-color: #333;
2829
--djdt-pre-text-color: #555;
29-
--djdt-path-and-locals: #777;
30+
--djdt-path-and-locals: black;
3031
--djdt-stack-span-color: black;
3132
--djdt-template-highlight-color: #333;
3233

33-
--djdt-table-border-color: #ccc;
34-
--djdt-button-border-color: var(--djdt-table-border-color);
34+
--djdt-table-header-color: #666;
35+
--djdt-table-header-background-color: #f8f8f8;
36+
--djdt-table-border-color: #e8e8e8;
37+
--djdt-button-border-color: #ccc;
38+
--djdt-button-hover-border-color: #666;
3539
--djdt-pre-border-color: var(--djdt-table-border-color);
3640
--djdt-raw-border-color: var(--djdt-table-border-color);
3741
}
3842

3943
#djDebug[data-theme="dark"] {
4044
--djdt-font-color: #f8f8f2;
41-
--djdt-background-color: #1e293bff;
42-
--djdt-panel-content-background-color: #0f1729ff;
45+
--djdt-background-color: #121212;
46+
--djdt-panel-content-background-color: #121212;
4347
--djdt-panel-content-table-background-color: var(--djdt-background-color);
44-
--djdt-panel-title-background-color: #242432;
48+
--djdt-panel-content-table-alternate-background-color: #171717;
49+
--djdt-panel-title-background-color: #417690;
4550
--djdt-djdt-panel-content-table-strip-background-color: #324154ff;
46-
--djdt--highlighted-background-color: #2c2a7dff;
51+
--djdt-highlighted-background-color: #00363a;
4752
--djdt-toggle-template-background-color: #282755;
4853

4954
--djdt-sql-font-color: var(--djdt-font-color);
5055
--djdt-pre-text-color: var(--djdt-font-color);
5156
--djdt-path-and-locals: #65758cff;
52-
--djdt-stack-span-color: #7c8fa4;
57+
--djdt-stack-span-color: #ccc;
5358
--djdt-template-highlight-color: var(--djdt-stack-span-color);
5459

55-
--djdt-table-border-color: #324154ff;
60+
--djdt-table-header-color: #f8f8f8;
61+
--djdt-table-header-background-color: #212121;
62+
--djdt-table-border-color: #353535;
5663
--djdt-button-border-color: var(--djdt-table-border-color);
5764
--djdt-pre-border-color: var(--djdt-table-border-color);
5865
--djdt-raw-border-color: var(--djdt-table-border-color);
@@ -146,34 +153,28 @@
146153
transition: none;
147154
}
148155

149-
#djDebug button {
150-
background-color: #eee;
151-
background-image: linear-gradient(to bottom, #eee, #cccccc);
156+
#djDebug button, #djDebug .djButton {
157+
background-color: var(--djdt-background-color);
152158
border: 1px solid var(--djdt-button-border-color);
153-
border-bottom: 1px solid #bbb;
154-
border-radius: 3px;
155-
color: #333;
159+
border-radius: 4px;
160+
color: var(--djdt-font-color);
156161
line-height: 1;
157-
padding: 0 8px;
162+
padding: 4px 8px;
158163
text-align: center;
159-
text-shadow: 0 1px 0 #eee;
164+
text-decoration: none;
165+
}
166+
167+
#djDebug[data-theme="light"] button, #djDebug[data-theme="light"] .djButton {
168+
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
160169
}
161170

162-
#djDebug button:hover {
163-
background-color: #ddd;
164-
background-image: linear-gradient(to bottom, #ddd, #bbb);
165-
border-color: #bbb;
166-
border-bottom-color: #999;
171+
#djDebug button:hover, #djDebug .djButton:hover {
172+
border-color: var(--djdt-button-hover-border-color);
167173
cursor: pointer;
168-
text-shadow: 0 1px 0 #ddd;
169174
}
170175

171-
#djDebug button:active {
176+
#djDebug button:active, #djDebug .djButton:active {
172177
border: 1px solid #aaa;
173-
border-bottom: 1px solid #888;
174-
box-shadow:
175-
inset 0 0 5px 2px #aaa,
176-
0 1px 0 0 #eee;
177178
}
178179

179180
#djDebug #djDebugToolbar {
@@ -318,11 +319,10 @@
318319
#djDebug pre {
319320
white-space: pre-wrap;
320321
color: var(--djdt-pre-text-color);
321-
border: 1px solid var(--djdt-pre-border-color);
322-
border-collapse: collapse;
323-
background-color: var(--djdt-background-color);
324-
padding: 2px 3px;
325-
margin-bottom: 3px;
322+
}
323+
324+
#djDebug pre span {
325+
font-family: var(--djdt-font-family-monospace);
326326
}
327327

328328
#djDebug .djdt-panelContent {
@@ -337,14 +337,11 @@
337337
z-index: 100000000;
338338
}
339339

340-
#djDebug .djdt-panelContent > div {
341-
border-bottom: 1px solid #ddd;
342-
}
343-
344340
#djDebug .djDebugPanelTitle {
345341
position: absolute;
346342
background-color: var(--djdt-panel-title-background-color);
347-
color: #666;
343+
border-bottom: 1px solid var(--djdt-table-border-color);
344+
color: #f5dd5d;
348345
padding-left: 20px;
349346
top: 0;
350347
right: 0;
@@ -364,7 +361,7 @@
364361
bottom: 0;
365362
left: 0;
366363
height: auto;
367-
padding: 5px 0 0 20px;
364+
padding: 5px 0 40px 20px;
368365
}
369366

370367
#djDebug .djDebugPanelContent .djdt-loader {
@@ -390,7 +387,7 @@
390387
height: 100%;
391388
overflow: auto;
392389
display: block;
393-
padding: 0 10px 0 0;
390+
padding: 10px 10px 10px 0;
394391
}
395392

396393
#djDebug h3 {
@@ -401,7 +398,7 @@
401398

402399
#djDebug h4 {
403400
font-size: 20px;
404-
font-weight: bold;
401+
font-weight: 400;
405402
margin-top: 0.8em;
406403
}
407404

@@ -417,33 +414,59 @@
417414
#djDebug .djdt-panelContent tbody > tr:nth-child(odd):not(.djdt-highlighted) {
418415
background-color: var(--djdt-panel-content-table-strip-background-color);
419416
}
420-
#djDebug .djdt-panelContent tbody td,
421-
#djDebug .djdt-panelContent tbody th {
417+
#djDebug .djdt-panelContent th {
418+
border-top: 1px solid var(--djdt-table-border-color);
419+
}
420+
#djDebug .djdt-panelContent td,
421+
#djDebug .djdt-panelContent th {
422422
vertical-align: top;
423-
padding: 2px 3px;
423+
padding: 8px 10px;
424+
border-bottom: 1px solid var(--djdt-table-border-color);
424425
}
425426
#djDebug .djdt-panelContent tbody td.djdt-time {
426427
text-align: center;
427428
}
428429

429430
#djDebug .djdt-panelContent thead th {
430-
padding: 1px 6px 1px 3px;
431+
color: var(--djdt-table-header-color);
432+
background-color: var(--djdt-table-header-background-color);
431433
text-align: left;
434+
text-transform: uppercase;
432435
font-weight: bold;
433-
font-size: 14px;
436+
font-size: 11px;
434437
white-space: nowrap;
438+
padding: 8px 10px;
435439
}
436440
#djDebug .djdt-panelContent tbody th {
437441
width: 12em;
438442
text-align: right;
439-
color: #666;
440-
padding-right: 0.5em;
443+
color: #d0d0d0;
444+
padding: 8px 10px;
441445
}
442446

443447
#djDebug .djTemplateContext {
444448
background-color: var(--djdt-background-color);
445449
}
446450

451+
#djDebug .djdt-badge {
452+
padding: 2px 4px;
453+
border-radius: 3px;
454+
font-size: 12px;
455+
text-transform: uppercase;
456+
color: var(--djdt-font-color);
457+
background-color: var(--djdt-background-color);
458+
}
459+
460+
#djDebug .djdt-badge.djdt-badge-error {
461+
color: #fff;
462+
background-color: #e7000b;
463+
}
464+
465+
#djDebug .djdt-badge.djdt-badge-success {
466+
color: #fff;
467+
background-color: #05A53F;
468+
}
469+
447470
#djDebug .djdt-panelContent .djDebugClose {
448471
position: absolute;
449472
top: 4px;
@@ -480,19 +503,6 @@
480503
margin-left: 10px;
481504
}
482505

483-
#djDebug a.toggleTemplate {
484-
padding: 4px;
485-
background-color: var(--djdt-toggle-template-background-color);
486-
border-radius: 3px;
487-
}
488-
489-
#djDebug a.toggleTemplate:hover {
490-
padding: 4px;
491-
background-color: #444;
492-
color: #ffe761;
493-
border-radius: 3px;
494-
}
495-
496506
#djDebug .djDebugCollapsed {
497507
color: var(--djdt-sql-font-color);
498508
}
@@ -1073,6 +1083,10 @@ To regenerate:
10731083
stroke: #94b24d;
10741084
}
10751085

1086+
#djDebug .djDetailsRow {
1087+
background-color: var(--djdt-panel-content-table-alternate-background-color);
1088+
}
1089+
10761090
#djDebug .djDebugRowWarning .djdt-time {
10771091
color: red;
10781092
}
@@ -1081,20 +1095,21 @@ To regenerate:
10811095
padding-top: 3px;
10821096
}
10831097
#djDebug .djdt-panelContent table .djdt-actions {
1084-
min-width: 70px;
1098+
min-width: 82px;
10851099
white-space: nowrap;
10861100
}
10871101
#djDebug .djdt-color:after {
10881102
content: "\00a0";
10891103
}
1104+
#djDebug .djToggleRow {
1105+
cursor: pointer;
1106+
}
10901107
#djDebug .djToggleSwitch {
10911108
box-sizing: content-box;
1092-
padding: 0;
1093-
border: 1px solid #999;
1094-
border-radius: 0;
1109+
padding: 3px;
10951110
width: 12px;
1096-
color: #777;
1097-
background: linear-gradient(to bottom, #fff, #dcdcdc);
1111+
color: var(--djdt-font-color);
1112+
background: var(--djdt-background-color);
10981113
}
10991114
#djDebug .djNoToggleSwitch {
11001115
height: 14px;
@@ -1106,18 +1121,26 @@ To regenerate:
11061121
margin-top: 0.8em;
11071122
}
11081123

1124+
#djDebug .djdt-stack {
1125+
color: var(--djdt-stack-span-color);
1126+
}
1127+
11091128
#djDebug .djdt-stack span {
11101129
color: var(--djdt-stack-span-color);
11111130
font-weight: bold;
11121131
}
1113-
#djDebug .djdt-stack span.djdt-path,
11141132
#djDebug .djdt-stack pre.djdt-locals,
11151133
#djDebug .djdt-stack pre.djdt-locals span {
11161134
color: var(--djdt-path-and-locals);
11171135
font-weight: normal;
11181136
}
1119-
#djDebug .djdt-stack span.djdt-code {
1137+
#djDebug .djdt-stack .djdt-code {
11201138
font-weight: normal;
1139+
margin: 5px 0 10px;
1140+
border: 1px solid var(--djdt-pre-border-color);
1141+
border-collapse: collapse;
1142+
background-color: var(--djdt-background-color);
1143+
padding: 5px;
11211144
}
11221145
#djDebug .djdt-stack pre.djdt-locals {
11231146
margin: 0 27px 27px 27px;
@@ -1143,7 +1166,7 @@ To regenerate:
11431166
max-height: 100%;
11441167
}
11451168
#djDebug .djdt-highlighted {
1146-
background-color: var(--djdt--highlighted-background-color);
1169+
background-color: var(--djdt-highlighted-background-color);
11471170
}
11481171
#djDebug tr.djdt-highlighted.djdt-profile-row {
11491172
background-color: #ffc;

debug_toolbar/static/debug_toolbar/js/toolbar.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ const djdt = {
109109
});
110110
});
111111

112+
$$.on(djDebug, "click", ".djToggleRow", function () {
113+
const id = this.dataset.toggleId;
114+
const name = this.dataset.toggleName;
115+
const container = document.getElementById(`${name}_${id}`);
116+
const isSelected = container.classList.contains("djSelected");
117+
container.classList.toggle("djSelected", !isSelected);
118+
container.classList.toggle("djUnselected", isSelected);
119+
});
120+
112121
// Used by the cache, profiling and SQL panels
113122
$$.on(djDebug, "click", ".djToggleSwitch", function () {
114123
const id = this.dataset.toggleId;

0 commit comments

Comments
 (0)