a3e77c69b5e4b74dd88e56ec26731df7ab97d628
[themes.git] / LCARStrek / browser / devtools / performance.css
1 /* vim:set ts=2 sw=2 sts=2 et: */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4  * You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 /* CSS Variables specific to this panel that aren't defined by the themes */
7 .theme-dark,
8 .theme-light {
9   --cell-border-color: #A09090;
10   --focus-cell-border-color: #9C9CFF;
11   --row-alt-background-color: #403400;
12   --row-hover-background-color: #544400;
13 }
14
15 /* Toolbar */
16
17 #performance-toolbar > tabs,
18 #performance-toolbar {
19   -moz-border-end-color: var(--theme-splitter-color);
20 }
21
22 #performance-toolbar-controls-detail-views > toolbarbutton {
23   min-width: 0;
24 }
25
26 #performance-toolbar-controls-detail-views .toolbarbutton-text {
27   -moz-padding-start: 4px;
28   -moz-padding-end: 8px;
29 }
30
31 /* Recording Notice */
32
33 #performance-view .notice-container {
34   font-size: 120%;
35   background-color: var(--theme-toolbar-background);
36   color: var(--theme-body-color);
37   padding-bottom: 20vh;
38 }
39
40 #performance-view .notice-container button {
41   min-width: 30px;
42   min-height: 28px;
43   margin: 0;
44 }
45
46 /* Overview Panel */
47
48 .record-button {
49   list-style-image: url(profiler-stopwatch.svg);
50 }
51
52 .record-button[checked] {
53   list-style-image: url(profiler-stopwatch-checked.svg);
54 }
55
56 .record-button[locked] {
57   pointer-events: none;
58 }
59
60 .record-button .button-icon {
61   margin: 0;
62 }
63
64 .record-button .button-text {
65   display: none;
66 }
67
68 /* Details Panel */
69
70 #select-waterfall-view {
71   list-style-image: url(performance-icons.svg#details-waterfall);
72 }
73
74 #select-js-calltree-view,
75 #select-memory-calltree-view {
76   list-style-image: url(performance-icons.svg#details-call-tree);
77 }
78
79 #select-js-flamegraph-view,
80 #select-memory-flamegraph-view {
81   list-style-image: url(performance-icons.svg#details-flamegraph);
82 }
83
84 /* Profile call tree */
85
86 .call-tree-cells-container {
87   /* Hack: force hardware acceleration */
88   transform: translateZ(1px);
89   overflow: auto;
90 }
91
92 .call-tree-cells-container[allocations-hidden] .call-tree-cell[type="allocations"],
93 .call-tree-cells-container[allocations-hidden] .call-tree-cell[type="self-allocations"],
94 .call-tree-cells-container[categories-hidden] .call-tree-category {
95   display: none;
96 }
97
98 .call-tree-header {
99   font-size: 90%;
100   padding-top: 2px !important;
101   padding-bottom: 2px !important;
102 }
103
104 .call-tree-header[type="duration"],
105 .call-tree-cell[type="duration"],
106 .call-tree-header[type="self-duration"],
107 .call-tree-cell[type="self-duration"] {
108   width: 6vw;
109 }
110
111 .call-tree-header[type="percentage"],
112 .call-tree-cell[type="percentage"],
113 .call-tree-header[type="self-percentage"],
114 .call-tree-cell[type="self-percentage"] {
115   width: 5vw;
116 }
117
118 .call-tree-header[type="samples"],
119 .call-tree-cell[type="samples"] {
120   width: 4.5vw;
121 }
122
123 .call-tree-header[type="allocations"],
124 .call-tree-cell[type="allocations"],
125 .call-tree-header[type="self-allocations"],
126 .call-tree-cell[type="self-allocations"] {
127   width: 7vw;
128 }
129
130 .call-tree-header[type="function"],
131 .call-tree-cell[type="function"] {
132   -moz-box-flex: 1;
133 }
134
135 .call-tree-header,
136 .call-tree-cell {
137   -moz-box-align: center;
138   overflow: hidden;
139   padding: 1px 4px;
140   color: var(--theme-body-color);
141   -moz-border-end-color: var(--cell-border-color);
142 }
143
144 .call-tree-header:not(:last-child),
145 .call-tree-cell:not(:last-child) {
146   -moz-border-end-width: 1px;
147   -moz-border-end-style: solid;
148 }
149
150 .call-tree-header:not(:last-child) {
151   text-align: center;
152 }
153
154 .call-tree-cell:not(:last-child) {
155   text-align: end;
156 }
157
158 .call-tree-header {
159   background-color: var(--theme-tab-toolbar-background);
160 }
161
162 .call-tree-item:last-child:not(:focus) {
163   border-bottom: 1px solid var(--cell-border-color);
164 }
165
166 .call-tree-item:nth-child(2n) {
167   background-color: var(--row-alt-background-color);
168 }
169
170 .call-tree-item:hover {
171   background-color: var(--row-hover-background-color);
172 }
173
174 .call-tree-item:focus {
175   background-color: var(--theme-selection-background);
176 }
177
178 .call-tree-item:focus label {
179   color: var(--theme-selection-color) !important;
180 }
181
182 .call-tree-item:focus .call-tree-cell {
183   -moz-border-end-color: var(--focus-cell-border-color);
184 }
185
186 .call-tree-item:not([origin="content"]) .call-tree-name,
187 .call-tree-item:not([origin="content"]) .call-tree-url,
188 .call-tree-item:not([origin="content"]) .call-tree-line,
189 .call-tree-item:not([origin="content"]) .call-tree-column {
190   /* Style chrome and non-JS nodes differently. */
191   opacity: 0.6;
192 }
193
194 .call-tree-url {
195   -moz-margin-start: 4px !important;
196   cursor: pointer;
197 }
198
199 .call-tree-url:hover {
200   text-decoration: underline;
201 }
202
203 .call-tree-url {
204   color: var(--theme-highlight-blue);
205 }
206
207 .call-tree-line {
208   color: var(--theme-highlight-orange);
209 }
210
211 .call-tree-column {
212   color: var(--theme-highlight-orange);
213   opacity: 0.6;
214 }
215
216 .call-tree-host {
217   -moz-margin-start: 8px !important;
218   font-size: 90%;
219   color: var(--theme-content-color2);
220 }
221
222 .call-tree-name[value=""],
223 .call-tree-url[value=""],
224 .call-tree-line[value=""],
225 .call-tree-column[value=""],
226 .call-tree-host[value=""] {
227   display: none;
228 }
229
230 .call-tree-zoom {
231   -moz-appearance: none;
232   background-color: transparent;
233   background-position: center;
234   background-repeat: no-repeat;
235   background-size: 11px;
236   min-width: 11px;
237   -moz-margin-start: 8px !important;
238   cursor: zoom-in;
239   opacity: 0;
240 }
241
242 .theme-dark .call-tree-zoom {
243   background-image: url(magnifying-glass.png);
244 }
245
246 .theme-light .call-tree-zoom {
247   background-image: url(magnifying-glass-light.png);
248 }
249
250 @media (min-resolution: 2dppx) {
251   .theme-dark .call-tree-zoom {
252     background-image: url(magnifying-glass@2x.png);
253   }
254
255   .theme-light .call-tree-zoom {
256     background-image: url(magnifying-glass-light@2x.png);
257   }
258 }
259
260 .call-tree-item:hover .call-tree-zoom {
261   transition: opacity 0.3s ease-in;
262   opacity: 1;
263 }
264
265 .call-tree-item:hover .call-tree-zoom:hover {
266   opacity: 0;
267 }
268
269 .call-tree-category {
270   transform: scale(0.75);
271   transform-origin: center right;
272 }
273
274 /**
275  * Details Waterfall Styles
276  */
277
278 .waterfall-list-contents {
279   /* Hack: force hardware acceleration */
280   transform: translateZ(1px);
281   overflow-x: hidden;
282   overflow-y: auto;
283 }
284
285 .waterfall-header-contents {
286   overflow-x: hidden;
287 }
288
289 .waterfall-background-ticks {
290   /* Background created on a <canvas> in js. */
291   /* @see browser/devtools/timeline/widgets/waterfall.js */
292   background-image: -moz-element(#waterfall-background);
293   background-repeat: repeat-y;
294   background-position: -1px center;
295 }
296
297 .waterfall-marker-container[is-spacer] {
298   pointer-events: none;
299 }
300
301 .waterfall-marker-container:not([is-spacer]):nth-child(2n) {
302   background-color: #403400;
303 }
304
305 .waterfall-marker-container:hover {
306   background-color: #FFCF00 !important;
307 }
308
309 .waterfall-marker-item {
310   overflow: hidden;
311 }
312
313 .waterfall-sidebar {
314   -moz-border-end: 1px solid var(--theme-splitter-color);
315 }
316
317 .waterfall-marker-container:hover > .waterfall-sidebar {
318   background-color: transparent;
319 }
320
321 .waterfall-header-name {
322   padding: 2px 4px;
323   font-size: 90%;
324 }
325
326 .waterfall-header-tick {
327   width: 100px;
328   font-size: 9px;
329   transform-origin: left center;
330   color: var(--theme-body-color);
331 }
332
333 .waterfall-header-tick:not(:first-child) {
334   -moz-margin-start: -100px !important; /* Don't affect layout. */
335 }
336
337 .waterfall-marker-bullet {
338   width: 8px;
339   height: 8px;
340   -moz-margin-start: 8px;
341   -moz-margin-end: 6px;
342   border: 1px solid;
343   border-radius: 1px;
344 }
345
346 .waterfall-marker-name {
347   font-size: 95%;
348   padding-bottom: 1px !important;
349 }
350
351 .waterfall-marker-bar {
352   height: 9px;
353   border: 1px solid;
354   border-radius: 1px;
355   transform-origin: left center;
356 }
357
358 .waterfall-marker-container.selected > .waterfall-sidebar,
359 .waterfall-marker-container.selected > .waterfall-marker-item {
360   background-color: var(--theme-selection-background);
361   color: var(--theme-selection-color);
362 }
363
364 .waterfall-marker-container.selected .waterfall-marker-bullet,
365 .waterfall-marker-container.selected .waterfall-marker-bar {
366   border-color: initial !important;
367 }
368
369 .waterfall-marker-location {
370    color: #3333FF;
371 }
372
373 .waterfall-marker-location:hover,
374 .waterfall-marker-location:focus {
375    text-decoration: underline;
376 }
377
378 #waterfall-details {
379   -moz-padding-start: 8px;
380   -moz-padding-end: 8px;
381   padding-top: 2vh;
382   overflow: auto;
383 }
384
385 .marker-details-bullet {
386   width: 8px;
387   height: 8px;
388   border: 1px solid;
389   border-radius: 1px;
390 }
391
392 #waterfall-details > * {
393   padding-top: 3px;
394 }
395
396 .marker-details-labelname {
397   -moz-padding-end: 4px;
398 }
399
400 .marker-details-type {
401   font-size: 1.2em;
402   font-weight: bold;
403 }
404
405 .marker-details-duration {
406   font-weight: bold;
407 }
408
409 /* Recording items */
410
411 .recording-item {
412   padding: 4px;
413 }
414
415 .recording-item-title {
416   font-size: 110%;
417 }
418
419 .recording-item-footer {
420   padding-top: 4px;
421   font-size: 90%;
422 }
423
424 .recording-item-save {
425   text-decoration: underline;
426   cursor: pointer;
427 }
428
429 .recording-item-duration,
430 .recording-item-save {
431   color: var(--theme-body-color-alt);
432 }
433
434 #recordings-list .selected label {
435   /* Text inside a selected item should not be custom colored. */
436   color: inherit !important;
437 }