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