make network panel look decent even in current nightlies
[themes.git] / LCARStrek / devtools / performance.css
... / ...
CommitLineData
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 --cell-border-color-light: #A09090;
11 --focus-cell-border-color: #9C9CFF;
12 --row-alt-background-color: #403400;
13 --row-hover-background-color: #544400;
14}
15
16/**
17 * A generic class to hide elements, replacing the `element.hidden` attribute
18 * that we use to hide elements that can later be active
19 */
20.hidden {
21 display: none;
22 width: 0px;
23 height: 0px;
24}
25
26/* Toolbar */
27
28#performance-toolbar-control-other {
29 padding-inline-end: 5px;
30}
31
32#performance-toolbar-controls-detail-views .toolbarbutton-text {
33 padding-inline-start: 4px;
34 padding-inline-end: 8px;
35}
36
37#filter-button {
38 list-style-image: url(images/filter.svg);
39}
40
41#performance-filter-menupopup > menuitem .menu-iconic-left::after {
42 content: "";
43 display: block;
44 width: 8px;
45 height: 8px;
46 margin: 0 8px;
47 border-radius: 1px;
48}
49
50/* Details panel buttons */
51
52#select-waterfall-view {
53 list-style-image: url(images/performance-icons.svg#details-waterfall);
54}
55
56#select-js-calltree-view,
57#select-memory-calltree-view {
58 list-style-image: url(images/performance-icons.svg#details-call-tree);
59}
60
61#select-js-flamegraph-view,
62#select-memory-flamegraph-view {
63 list-style-image: url(images/performance-icons.svg#details-flamegraph);
64}
65
66#select-optimizations-view {
67 list-style-image: url(images/profiler-stopwatch.svg);
68}
69
70/* Recording buttons */
71
72#recordings-controls {
73/* background-color: #9C9CFF;*/
74 display: flex;
75}
76
77#recording-controls-mount,
78#recording-controls-mount > div,
79#recording-controls-mount > div > .devtools-toolbar {
80 display: flex;
81 flex: 1 1 auto;
82}
83
84#clear-button::before {
85 background-image: var(--clear-icon-url);
86}
87
88#main-record-button > image,
89#main-record-button::before {
90 background-image: url(images/profiler-stopwatch-tbutton.svg);
91}
92
93#import-button > image,
94#import-button::before {
95 background-image: url(images/import.svg);
96}
97
98#main-record-button .button-icon, #import-button .button-icon {
99 margin: 0;
100}
101
102#main-record-button .button-text, #import-button .button-text {
103 display: none;
104}
105
106#main-record-button .button-icon {
107 margin: 0;
108}
109
110#main-record-button .button-text {
111 display: none;
112}
113
114.notice-container .record-button {
115 padding: 5px !important;
116}
117
118.notice-container .record-button[checked],
119.notice-container .record-button[checked] {
120 color: var(--theme-selection-color) !important;
121 background: var(--theme-selection-background) !important;
122}
123
124.record-button[locked] {
125 pointer-events: none;
126 opacity: 0.5;
127}
128
129/* Sidebar & recording items */
130
131#recordings-pane {
132 border-inline-end: 1px solid var(--theme-splitter-color);
133}
134
135#recordings-list {
136 max-width: 300px;
137}
138
139.recording-item {
140 padding: 4px;
141}
142
143.recording-item-title {
144 font-size: 110%;
145}
146
147.recording-item-footer {
148 padding-top: 4px;
149 font-size: 90%;
150}
151
152.recording-item-save {
153 text-decoration: underline;
154 cursor: pointer;
155}
156
157.recording-item-duration,
158.recording-item-save {
159 color: var(--theme-body-color-alt);
160}
161
162#recordings-list .selected label {
163 /* Text inside a selected item should not be custom colored. */
164 color: inherit !important;
165}
166
167/* Recording notices */
168
169.notice-container {
170 font-size: 120%;
171 background-color: var(--theme-body-background);
172 color: var(--theme-body-color);
173 padding-bottom: 20vh;
174}
175
176.tool-disabled-message {
177 text-align: center;
178}
179
180.console-profile-recording-notice,
181.console-profile-stop-notice {
182 overflow: hidden;
183}
184
185.console-profile-command {
186 font-family: monospace;
187 margin: 3px 2px;
188}
189
190.realtime-disabled-message,
191.realtime-disabled-on-e10s-message {
192 display: none;
193}
194
195#performance-view[e10s="disabled"] .realtime-disabled-on-e10s-message,
196#performance-view[e10s="unsupported"] .realtime-disabled-message {
197 display: initial;
198 opacity: 0.5;
199}
200
201.buffer-status-message,
202.buffer-status-message-full {
203 display: none;
204}
205
206#details-pane-container[buffer-status="in-progress"] .buffer-status-message {
207 display: initial;
208 opacity: 0.5;
209}
210
211#details-pane-container[buffer-status="full"] .buffer-status-message {
212 display: initial;
213 color: var(--theme-highlight-red);
214 font-weight: bold;
215 opacity: 1;
216}
217
218#details-pane-container[buffer-status="full"] .buffer-status-message-full {
219 display: initial;
220}
221
222/* Profile call tree */
223
224.call-tree-cells-container {
225 overflow: auto;
226}
227
228.call-tree-cells-container[categories-hidden] .call-tree-category {
229 display: none;
230}
231
232.call-tree-header {
233 font-size: 90%;
234 padding-top: 2px !important;
235 padding-bottom: 2px !important;
236}
237
238.call-tree-header[type="duration"],
239.call-tree-cell[type="duration"],
240.call-tree-header[type="self-duration"],
241.call-tree-cell[type="self-duration"] {
242 min-width: 6vw;
243 width: 6vw;
244}
245
246.call-tree-header[type="percentage"],
247.call-tree-cell[type="percentage"],
248.call-tree-header[type="self-percentage"],
249.call-tree-cell[type="self-percentage"] {
250 min-width: 5vw;
251 width: 5vw;
252}
253
254.call-tree-header[type="samples"],
255.call-tree-cell[type="samples"] {
256 min-width: 4.5vw;
257 width: 4.5vw;
258}
259
260.call-tree-header[type="count"],
261.call-tree-cell[type="count"],
262.call-tree-header[type="self-count"],
263.call-tree-cell[type="self-count"],
264.call-tree-header[type="size"],
265.call-tree-cell[type="size"],
266.call-tree-header[type="self-size"],
267.call-tree-cell[type="self-size"],
268.call-tree-header[type="count-percentage"],
269.call-tree-cell[type="count-percentage"],
270.call-tree-header[type="self-count-percentage"],
271.call-tree-cell[type="self-count-percentage"],
272.call-tree-header[type="size-percentage"],
273.call-tree-cell[type="size-percentage"],
274.call-tree-header[type="self-size-percentage"],
275.call-tree-cell[type="self-size-percentage"] {
276 min-width: 6vw;
277 width: 6vw;
278}
279
280.call-tree-header,
281.call-tree-cell {
282 -moz-box-align: center;
283 overflow: hidden;
284 text-overflow: ellipsis;
285 padding: 1px 4px;
286 color: var(--theme-body-color);
287 border-inline-end-color: var(--cell-border-color);
288}
289
290.call-tree-header:not(:last-child),
291.call-tree-cell:not(:last-child) {
292 border-inline-end-width: 1px;
293 border-inline-end-style: solid;
294}
295
296.call-tree-header:not(:last-child) {
297 text-align: center;
298}
299
300.call-tree-cell:not(:last-child) {
301 text-align: end;
302}
303
304.call-tree-header {
305 background-color: var(--theme-tab-toolbar-background);
306}
307
308.call-tree-item .call-tree-cell,
309.call-tree-item .call-tree-cell[type=function] description {
310 -moz-user-select: text;
311 /* so that optimizations view doesn't break the lines in call tree */
312 white-space: nowrap;
313}
314
315.call-tree-item .call-tree-cell::-moz-selection,
316.call-tree-item .call-tree-cell[type=function] description::-moz-selection {
317 background-color: var(--theme-highlight-orange);
318}
319
320.call-tree-item:last-child {
321 border-bottom: 1px solid var(--cell-border-color);
322}
323
324.call-tree-item:nth-child(2n) {
325 background-color: var(--row-alt-background-color);
326}
327
328.call-tree-item:hover {
329 background-color: var(--row-hover-background-color);
330}
331
332.call-tree-item:focus {
333 background-color: var(--theme-selection-background);
334}
335
336.call-tree-item:focus description {
337 color: var(--theme-selection-color) !important;
338}
339
340.call-tree-item:focus .call-tree-cell {
341 border-inline-end-color: var(--focus-cell-border-color);
342}
343
344.call-tree-item:not([origin="content"]) .call-tree-name,
345.call-tree-item:not([origin="content"]) .call-tree-url,
346.call-tree-item:not([origin="content"]) .call-tree-line,
347.call-tree-item:not([origin="content"]) .call-tree-column {
348 /* Style chrome and non-JS nodes differently. */
349 opacity: 0.6;
350}
351
352.call-tree-name {
353 margin-inline-end: 4px !important;
354}
355
356.call-tree-url {
357 cursor: pointer;
358}
359
360.call-tree-url:hover {
361 text-decoration: underline;
362}
363
364.call-tree-url, .tree-widget-item:not(.theme-selected) .opt-url {
365 color: var(--theme-highlight-blue);
366}
367
368.call-tree-line, .tree-widget-item:not(.theme-selected) .opt-line {
369 color: var(--theme-highlight-orange);
370}
371
372.call-tree-column {
373 color: var(--theme-highlight-orange);
374 opacity: 0.6;
375}
376
377.call-tree-host {
378 margin-inline-start: 8px !important;
379 font-size: 90%;
380 color: var(--theme-content-color2);
381}
382
383.call-tree-category {
384 transform: scale(0.75);
385 transform-origin: center right;
386}
387
388/**
389 * Waterfall ticks header
390 */
391
392.waterfall-header-ticks {
393 overflow: hidden;
394}
395
396.waterfall-header-name {
397 padding: 2px 4px;
398 font-size: 90%;
399}
400
401.waterfall-header-tick {
402 width: 100px;
403 font-size: 9px;
404 transform-origin: left center;
405 color: var(--theme-body-color);
406}
407
408.waterfall-header-tick:not(:first-child) {
409 margin-inline-start: -100px !important; /* Don't affect layout. */
410}
411
412.waterfall-background-ticks {
413 /* Background created on a <canvas> in js. */
414 /* @see devtools/client/timeline/widgets/waterfall.js */
415 background-image: -moz-element(#waterfall-background);
416 background-repeat: repeat-y;
417 background-position: -1px center;
418}
419
420/**
421 * Markers waterfall breakdown
422 */
423
424#waterfall-breakdown {
425 overflow-x: hidden;
426 overflow-y: auto;
427}
428
429.waterfall-tree-item:not([level="0"]) {
430 background-image: repeating-linear-gradient(
431 -45deg,
432 transparent 0px,
433 transparent 2px,
434 rgba(255,255,255,0.05) 2px,
435 rgba(255,255,255,0.05) 4px
436 );
437}
438
439.waterfall-tree-item[expandable] .waterfall-marker-bullet,
440.waterfall-tree-item[expandable] .waterfall-marker-bar {
441 background-image: repeating-linear-gradient(
442 -45deg,
443 transparent 0px,
444 transparent 5px,
445 rgba(0,0,0,0.35) 5px,
446 rgba(0,0,0,0.35) 10px
447 );
448}
449
450.waterfall-tree-item[expanded],
451.waterfall-tree-item:not([level="0"]) + .waterfall-tree-item[level="0"] {
452 box-shadow: 0 -1px var(--cell-border-color-light);
453}
454
455.waterfall-tree-item:nth-child(2n) > .waterfall-marker {
456 background-color: var(--row-alt-background-color);
457}
458
459.waterfall-tree-item:hover {
460 background-color: var(--row-hover-background-color);
461}
462
463.waterfall-tree-item:last-child {
464 border-bottom: 1px solid var(--cell-border-color);
465}
466
467.waterfall-tree-item:focus {
468 background-color: var(--theme-selection-background);
469}
470
471.waterfall-tree-item:focus description {
472 color: var(--theme-selection-color) !important;
473}
474
475/**
476 * Marker left sidebar
477 */
478
479.waterfall-sidebar {
480 border-inline-end: 1px solid var(--cell-border-color);
481}
482
483.waterfall-tree-item > .waterfall-sidebar:hover,
484.waterfall-tree-item:hover > .waterfall-sidebar,
485.waterfall-tree-item:focus > .waterfall-sidebar {
486 background: transparent;
487}
488
489.waterfall-marker-bullet {
490 width: 8px;
491 height: 8px;
492 margin-inline-start: 8px;
493 margin-inline-end: 6px;
494 border-radius: 1px;
495}
496
497.waterfall-marker-name {
498 font-size: 95%;
499 padding-bottom: 1px !important;
500}
501
502/**
503 * Marker timebar
504 */
505
506.waterfall-marker {
507 overflow: hidden;
508}
509
510.waterfall-marker-bar {
511 height: 9px;
512 transform-origin: left center;
513 border-radius: 1px;
514}
515
516.waterfall-marker > .theme-twisty {
517 /* Don't affect layout. */
518 width: 14px;
519 margin-inline-end: -14px;
520}
521
522/**
523 * OTMT markers
524 */
525
526.waterfall-tree-item[otmt=true] .waterfall-marker-bullet,
527.waterfall-tree-item[otmt=true] .waterfall-marker-bar {
528 background-color: transparent;
529 border-width: 1px;
530 border-style: solid;
531}
532
533/**
534 * Marker details view
535 */
536
537#waterfall-details {
538 padding-inline-start: 8px;
539 padding-inline-end: 8px;
540 padding-top: 2vh;
541 overflow: auto;
542 min-width: 50px;
543}
544
545#waterfall-details > * {
546 padding-top: 3px;
547}
548
549.marker-details-bullet {
550 width: 8px;
551 height: 8px;
552 border-radius: 1px;
553}
554
555.marker-details-name-label {
556 padding-inline-end: 4px;
557}
558
559.marker-details-type {
560 font-size: 1.2em;
561 font-weight: bold;
562}
563
564.marker-details-duration {
565 font-weight: bold;
566}
567
568.marker-details-customcontainer .custom-button {
569 padding: 2px 5px;
570 border-width: 1px;
571}
572
573/**
574 * Marker colors
575 */
576
577menuitem.marker-color-graphs-full-red .menu-iconic-left::after,
578.marker-color-graphs-full-red {
579 background-color: var(--theme-graphs-full-red);
580 border-color: var(--theme-graphs-full-red);
581}
582menuitem.marker-color-graphs-full-blue .menu-iconic-left::after,
583.marker-color-graphs-full-blue {
584 background-color: var(--theme-graphs-full-blue);
585 border-color: var(--theme-graphs-full-blue);
586}
587menuitem.marker-color-graphs-green .menu-iconic-left::after,
588.marker-color-graphs-green {
589 background-color: var(--theme-graphs-green);
590 border-color: var(--theme-graphs-green);
591}
592menuitem.marker-color-graphs-blue .menu-iconic-left::after,
593.marker-color-graphs-blue {
594 background-color: var(--theme-graphs-blue);
595 border-color: var(--theme-graphs-blue);
596}
597menuitem.marker-color-graphs-bluegrey .menu-iconic-left::after,
598.marker-color-graphs-bluegrey {
599 background-color: var(--theme-graphs-bluegrey);
600 border-color: var(--theme-graphs-bluegrey);
601}
602menuitem.marker-color-graphs-purple .menu-iconic-left::after,
603.marker-color-graphs-purple {
604 background-color: var(--theme-graphs-purple);
605 border-color: var(--theme-graphs-purple);
606}
607menuitem.marker-color-graphs-yellow .menu-iconic-left::after,
608.marker-color-graphs-yellow {
609 background-color: var(--theme-graphs-yellow);
610 border-color: var(--theme-graphs-yellow);
611}
612menuitem.marker-color-graphs-orange .menu-iconic-left::after,
613.marker-color-graphs-orange {
614 background-color: var(--theme-graphs-orange);
615 border-color: var(--theme-graphs-orange);
616}
617menuitem.marker-color-graphs-red .menu-iconic-left::after,
618.marker-color-graphs-red {
619 background-color: var(--theme-graphs-red);
620 border-color: var(--theme-graphs-red);
621}
622menuitem.marker-color-graphs-grey .menu-iconic-left::after,
623.marker-color-graphs-grey{
624 background-color: var(--theme-graphs-grey);
625 border-color: var(--theme-graphs-grey);
626}
627
628/**
629 * Configurable Options
630 *
631 * Elements can be tagged with a class and visibility is controlled via a
632 * preference being applied or removed.
633 */
634
635/**
636 * devtools.performance.ui.experimental
637 */
638menuitem.experimental-option::before {
639 content: "";
640 background-image: url(chrome://devtools/skin/images/webconsole.svg);
641 background-repeat: no-repeat;
642 background-size: 72px 60px;
643 width: 12px;
644 height: 12px;
645 display: inline-block;
646
647 background-position: -24px -24px;
648 margin: 2px 5px 0 0;
649 max-height: 12px;
650}
651
652#performance-options-menupopup:not(.experimental-enabled) .experimental-option,
653#performance-options-menupopup:not(.experimental-enabled) .experimental-option::before {
654 display: none;
655}
656
657/* for call tree */
658description.opt-icon {
659 margin: 0px 0px 0px 0px;
660}
661description.opt-icon::before {
662 margin: 1px 4px 0px 0px;
663}