make HTML-based video controls work while keeping the XUL-based ones intact - this...
[themes.git] / LCARStrek / devtools / widgets.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
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6.theme-dark,
7.theme-light {
8 --table-splitter-color: #A09090;
9 --table-zebra-background: rgba(255,159,0,0.1);
10 --sidemenu-separator-color: rgba(160,144,144,0.15);
11 --sidemenu-selected-arrow: url(images/itemArrow-dark-ltr.svg);
12 --sidemenu-selected-arrow-rtl: url(images/itemArrow-dark-rtl.svg);
13 --delete-icon: url(chrome://devtools/skin/images/vview-delete.png);
14 --delete-icon-2x: url(chrome://devtools/skin/images/vview-delete@2x.png);
15}
16
17/* Generic pane helpers */
18
19.generic-toggled-pane {
20 margin-inline-start: 0 !important;
21 /* Unfortunately, transitions don't work properly with locale-aware properties,
22 so both the left and right margins are set via js, while the start margin
23 is always overridden here. */
24}
25
26.generic-toggled-pane[animated] {
27 transition: margin 0.25s ease-in-out;
28}
29
30/* Responsive container */
31
32.devtools-responsive-container {
33 -moz-box-orient: horizontal;
34}
35
36.devtools-main-content {
37 min-width: 50px;
38}
39
40.devtools-main-content,
41.devtools-sidebar-tabs {
42 /* Prevent some children that should be hidden from remaining visible as this is shrunk (Bug 971959) */
43 position: relative;
44}
45
46@media (min-width: 701px) {
47 .devtools-responsive-container .generic-toggled-pane {
48 /* To hide generic-toggled-pane, negative margins are applied dynamically.
49 * In the default horizontal layout, the pane is on the side and should be
50 * hidden using negative margin-inline-end only.
51 */
52 margin-top: 0 !important;
53 margin-bottom: 0 !important;
54 }
55}
56@media (max-width: 700px) {
57 .devtools-responsive-container {
58 -moz-box-orient: vertical;
59 }
60
61 .devtools-responsive-container > .devtools-side-splitter {
62 /* This is a normally vertical splitter, but we have turned it horizontal
63 due to the smaller resolution */
64 min-height: calc(var(--devtools-splitter-top-width) +
65 var(--devtools-splitter-bottom-width) + 1px);
66 border-top-width: var(--devtools-splitter-top-width);
67 border-bottom-width: var(--devtools-splitter-bottom-width);
68 margin-top: calc(-1 * var(--devtools-splitter-top-width) - 1px);
69 margin-bottom: calc(-1 * var(--devtools-splitter-bottom-width));
70
71 /* Reset the vertical splitter styles */
72 width: auto;
73 min-width: 0;
74 border-inline-end-width: 0;
75 border-inline-start-width: 0;
76 margin-inline-end: 0;
77 margin-inline-start: 0;
78
79 /* In some edge case the cursor is not changed to n-resize */
80 cursor: n-resize;
81 }
82
83 .devtools-responsive-container > .devtools-sidebar-tabs:not(.pane-collapsed) {
84 /* When the panel is collapsed min/max height should not be applied because
85 collapsing relies on negative margins, which implies constant height. */
86 min-height: 35vh;
87 max-height: 75vh;
88 }
89
90 .devtools-responsive-container .generic-toggled-pane {
91 /* To hide generic-toggled-pane, negative margins are applied dynamically.
92 * If a vertical layout, the pane is on the bottom and should be hidden
93 * using negative bottom margin only.
94 */
95 margin-inline-end: 0 !important;
96 }
97}
98
99/* BreacrumbsWidget */
100
101.breadcrumbs-widget-container {
102 margin-inline-start: 2px;
103 max-height: 24px; /* Set max-height for proper sizing on linux */
104 height: 24px; /* Set height to prevent starting small waiting for content */
105}
106
107.scrollbutton-up,
108.scrollbutton-down {
109 background: transparent;
110 box-shadow: none;
111 border: none;
112 margin: 0;
113 padding: 0;
114}
115
116.scrollbutton-up {
117 margin-inline-end: 1px;
118}
119
120.scrollbutton-down {
121 margin-inline-end: 0;
122}
123
124.scrollbutton-up > .toolbarbutton-icon,
125.scrollbutton-down > .toolbarbutton-icon {
126 /* margin: 0 8px; */
127}
128
129.scrollbutton-up:not([disabled]):active:hover > .toolbarbutton-icon,
130.scrollbutton-down:not([disabled]):active:hover > .toolbarbutton-icon {
131}
132
133.scrollbutton-up[disabled] > .toolbarbutton-icon,
134.scrollbutton-down[disabled] > .toolbarbutton-icon {
135}
136
137.scrollbutton-up:-moz-locale-dir(ltr) {
138 border-top-right-radius: 0;
139 border-bottom-right-radius: 0;
140}
141
142.scrollbutton-down:-moz-locale-dir(ltr) {
143 border-top-left-radius: 0;
144 border-bottom-left-radius: 0;
145}
146
147.scrollbutton-up:-moz-locale-dir(rtl) {
148 border-top-left-radius: 0;
149 border-bottom-left-radius: 0;
150}
151
152.scrollbutton-down:-moz-locale-dir(rtl) {
153 border-top-right-radius: 0;
154 border-bottom-right-radius: 0;
155}
156
157/* Draw shadows to indicate there is more content 'behind' scrollbuttons. */
158/*
159.scrollbutton-up:-moz-locale-dir(ltr),
160.scrollbutton-down:-moz-locale-dir(rtl) {
161 border-right: solid 1px rgba(255, 255, 255, .1);
162 border-left: solid 1px transparent;
163 box-shadow: 3px 0px 3px -3px var(--theme-sidebar-background);
164}
165
166.scrollbutton-down:-moz-locale-dir(ltr),
167.scrollbutton-up:-moz-locale-dir(rtl) {
168 border-right: solid 1px transparent;
169 border-left: solid 1px rgba(255, 255, 255, .1);
170 box-shadow: -3px 0px 3px -3px var(--theme-sidebar-background);
171}
172
173.scrollbutton-up[disabled],
174.scrollbutton-down[disabled] {
175 box-shadow: none;
176 border-color: transparent;
177}
178*/
179
180.scrollbutton-up > .toolbarbutton-icon:-moz-locale-dir(rtl),
181.scrollbutton-down > .toolbarbutton-icon:-moz-locale-dir(ltr) {
182/* transform: scaleX(-1); */
183}
184
185/* The breadcrumb separator elements are used as background images with
186 * -moz-element, so we position them offscreen since we don't care about
187 * seeing the original elements.
188 */
189.breadcrumb-separator-container {
190 position: fixed;
191 top: -1000px;
192 left: -1000px;
193}
194
195#breadcrumb-separator-before,
196#breadcrumb-separator-after,
197#breadcrumb-separator-normal {
198 width: 12px;
199 height: 24px;
200 overflow: hidden;
201}
202
203#breadcrumb-separator-before,
204#breadcrumb-separator-after:after {
205 background: var(--theme-selection-background);
206}
207
208#breadcrumb-separator-after,
209#breadcrumb-separator-before:after {
210 background: var(--theme-toolbar-background);
211}
212
213/* This chevron arrow cannot be replicated easily in CSS, so we are using
214 * a background image for it (still keeping it in a separate element so
215 * we can handle RTL support with a CSS transform).
216 */
217#breadcrumb-separator-normal {
218 background: url("images/breadcrumbs-divider@2x.png") no-repeat center right;
219 background-size: 12px 24px;
220}
221
222/* Fake a triangle by rotating a rectangle inside the elements */
223#breadcrumb-separator-before:after,
224#breadcrumb-separator-after:after {
225 content: "";
226 display: block;
227 width: 25px;
228 height: 24px;
229 transform: translateX(-18px) rotate(45deg);
230 box-sizing: border-box;
231}
232
233.breadcrumbs-widget-item {
234 background-color: var(--theme-capped-toolbar-background);
235 min-height: 24px;
236 min-width: 65px;
237 margin: 0;
238 padding: 0 8px 0 20px;
239 border: none;
240 border-radius: 0;
241 outline: none;
242 color: var(--theme-content-color1);
243}
244
245.breadcrumbs-widget-item:hover {
246 background-color: var(--theme-hover-background);
247 color: var(--theme-hover-color);
248}
249
250.breadcrumbs-widget-item[checked]:not(:hover) {
251 background-color: var(--theme-selection-background);
252 color: var(--theme-selection-color);
253}
254
255.breadcrumbs-widget-item[siblings-menu-open],
256.breadcrumbs-widget-item:active {
257 background-color: var(--theme-active-background);
258 color: var(--theme-active-color);
259}
260
261.breadcrumbs-widget-item:-moz-focusring {
262 outline: none;
263}
264
265.breadcrumbs-widget-item[checked]:-moz-focusring > .button-box {
266 outline: var(--theme-focus-outline);
267 outline-offset: -1px;
268}
269
270.breadcrumbs-widget-item > .button-box {
271 border: none;
272 padding-top: 0;
273 padding-bottom: 0;
274}
275
276:root[platform="win"] .breadcrumbs-widget-item:-moz-focusring > .button-box {
277 border-width: 0;
278}
279
280.breadcrumbs-widget-item:not([checked]) {
281 background-image: -moz-element(#breadcrumb-separator-normal);
282 background-repeat: no-repeat;
283 background-position: center left;
284}
285
286.breadcrumbs-widget-item[checked] + .breadcrumbs-widget-item {
287 background-image: -moz-element(#breadcrumb-separator-after);
288 background-repeat: no-repeat;
289 background-position: 0 0;
290}
291
292.breadcrumbs-widget-item[checked] {
293 background-image: -moz-element(#breadcrumb-separator-before);
294 background-repeat: no-repeat;
295 background-position: 0 0;
296 background-color: var(--theme-selection-background); /* Select Highlight Blue */
297}
298
299.breadcrumbs-widget-item:first-child {
300 background-image: none;
301}
302
303/* RTL support: move the images that were on the left to the right,
304 * and move images that were on the right to the left.
305 */
306.breadcrumbs-widget-item:-moz-locale-dir(rtl) {
307 padding: 0 20px 0 8px;
308}
309
310.breadcrumbs-widget-item:-moz-locale-dir(rtl),
311.breadcrumbs-widget-item[checked] + .breadcrumbs-widget-item:-moz-locale-dir(rtl) {
312 background-position: center right;
313}
314
315#breadcrumb-separator-before:-moz-locale-dir(rtl),
316#breadcrumb-separator-after:-moz-locale-dir(rtl),
317#breadcrumb-separator-normal:-moz-locale-dir(rtl) {
318 transform: scaleX(-1);
319}
320
321#breadcrumb-separator-before:-moz-locale-dir(rtl):after,
322#breadcrumb-separator-after:-moz-locale-dir(rtl):after {
323 transform: translateX(-5px) rotate(45deg);
324}
325
326.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-id,
327.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-tag,
328.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-pseudo-classes,
329.breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-classes {
330 color: var(--theme-button-color); /* --theme-highlight-lightorange */
331}
332
333.breadcrumbs-widget-item {
334 color: var(--theme-button-color); /* tag name, --theme-highlight-lightorange */
335}
336
337.breadcrumbs-widget-item:not([checked]):hover span,
338.breadcrumbs-widget-item:not([checked]):hover label {
339 color: var(--theme-hover-color) !important;
340}
341
342.breadcrumbs-widget-item-id {
343 color: var(--theme-highlight-red); /* --theme-body-color-alt */
344}
345
346.breadcrumbs-widget-item-classes {
347 color: #402800; /* --theme-content-color1 */
348}
349
350.breadcrumbs-widget-item-pseudo-classes {
351 color: var(--theme-button-color); /* --theme-highlight-lightorange */
352}
353
354/* SimpleListWidget */
355
356.simple-list-widget-container {
357 /* Hack: force hardware acceleration */
358 transform: translateZ(1px);
359}
360
361.simple-list-widget-item.selected {
362 background-color: var(--theme-selection-background);
363 color: var(--theme-selection-color);
364}
365
366.simple-list-widget-item:not(.selected):hover {
367 background-color: var(--theme-hover-background);
368 color: var(--theme-hover-color);
369}
370
371.simple-list-widget-perma-text,
372.simple-list-widget-empty-text {
373 padding: 4px 8px;
374}
375
376.simple-list-widget-perma-text,
377.simple-list-widget-empty-text {
378 color: var(--theme-body-color-alt);
379}
380
381/* FastListWidget */
382
383.fast-list-widget-container {
384 /* Hack: force hardware acceleration */
385 transform: translateZ(1px);
386}
387
388.fast-list-widget-empty-text {
389 padding: 4px 8px;
390}
391
392.fast-list-widget-empty-text {
393 color: var(--theme-body-color-alt);
394}
395
396/* SideMenuWidget */
397
398.side-menu-widget-container {
399 /* Hack: force hardware acceleration */
400 transform: translateZ(1px);
401}
402
403/* SideMenuWidget container */
404
405.side-menu-widget-container[with-arrows=true] .side-menu-widget-item {
406 /* To compensate for the arrow image's dark margin. */
407/* margin-inline-end: -1px;*/
408}
409
410/* SideMenuWidget groups */
411
412.side-menu-widget-group-title {
413 padding: 4px;
414 font-weight: 600;
415 border-bottom: 1px solid var(--sidemenu-separator-color);
416}
417
418.side-menu-widget-group-title + .side-menu-widget-group-list .side-menu-widget-item-contents {
419 padding-inline-start: 20px;
420}
421
422/* SideMenuWidget items */
423
424.side-menu-widget-item {
425 border-bottom: 1px solid var(--sidemenu-separator-color);
426 background-clip: padding-box;
427}
428
429.side-menu-widget-item.selected {
430 background-color: var(--theme-selection-background);
431 color: var(--theme-selection-color);
432}
433
434.side-menu-widget-item-arrow {
435 margin-inline-start: -7px;
436 width: 7px; /* The image's width is 7 pixels */
437}
438
439.side-menu-widget-item.selected > .side-menu-widget-item-arrow {
440 background-image: var(--sidemenu-selected-arrow);
441 background-size: auto;
442 background-repeat: no-repeat;
443 background-position: center right;
444}
445
446.side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(rtl) {
447 background-image: var(--sidemenu-selected-arrow-rtl);
448 background-position: center left;
449}
450
451/* SideMenuWidget items contents */
452
453.side-menu-widget-item-contents {
454 padding: 4px;
455 /* To avoid having content overlapping the arrow image. */
456 padding-inline-end: 8px;
457}
458
459.side-menu-widget-item-other {
460 /* To avoid having content overlapping the arrow image. */
461 padding-inline-end: 8px;
462 /* To compensate for the .side-menu-widget-item-contents padding. */
463 margin-inline-start: -4px;
464 margin-inline-end: -8px;
465 color: var(--theme-selection-color);
466}
467
468.side-menu-widget-group-title + .side-menu-widget-group-list .side-menu-widget-item-other {
469 /* To compensate for the .side-menu-widget-item-contents padding. */
470 margin-inline-start: -20px;
471}
472
473.side-menu-widget-item.selected .side-menu-widget-item-other:not(.selected) {
474 background-color: var(--theme-sidebar-background);
475 box-shadow: inset 2px 0 0 var(--theme-selection-background);
476 color: var(--theme-body-color);
477}
478
479.side-menu-widget-item.selected .side-menu-widget-item-other.selected {
480 background-color: var(--theme-selection-background);
481 color: var(--theme-selection-color);
482}
483
484.side-menu-widget-item-other:first-of-type {
485 margin-top: 4px;
486/* border-top-left-radius: 4px; */
487}
488
489.side-menu-widget-item-other:last-of-type {
490 margin-bottom: -4px;
491}
492
493.side-menu-widget-item-other:not(.selected) > label {
494 color: #9C9CFF;
495}
496
497/* SideMenuWidget checkboxes */
498
499.side-menu-widget-group-checkbox {
500 margin: 0;
501 margin-inline-end: 4px;
502}
503
504.side-menu-widget-item-checkbox {
505 margin: 0;
506 margin-inline-start: 4px;
507 margin-inline-end: -4px;
508}
509
510/* SideMenuWidget misc */
511
512.side-menu-widget-empty-text {
513 padding: 4px 8px;
514 background-color: var(--theme-sidebar-background);
515}
516
517/* VariablesView */
518
519.variables-view-container {
520 /* Hack: force hardware acceleration */
521 transform: translateZ(1px);
522}
523
524.variables-view-empty-notice {
525 padding: 2px;
526}
527
528.variables-view-empty-notice {
529 color: var(--theme-body-color-alt);
530}
531
532.variables-view-scope:focus > .title,
533.theme-dark .variable-or-property:focus > .title {
534 background-color: var(--theme-selection-background);
535 color: var(--theme-selection-color);
536}
537
538.variables-view-scope > .title {
539 background-color: #A09090;
540 color: #000000;
541}
542
543/* Custom scope stylings */
544
545.variables-view-watch-expressions .title > .name {
546 max-width: 14em;
547}
548
549/* Generic variables traits */
550
551.variables-view-variable:not(:last-child) {
552 border-bottom: 1px solid #A09090;
553}
554
555.variables-view-variable > .title > .name {
556 font-weight: 600;
557}
558
559/* Generic variables *and* properties traits */
560
561.variable-or-property:focus > .title > label {
562 color: inherit !important;
563}
564
565.variables-view-container .theme-twisty {
566 margin: 2px;
567}
568
569.variable-or-property > .title > .theme-twisty {
570 margin-inline-start: 5px;
571}
572
573.variable-or-property:not([untitled]) > .variables-view-element-details {
574 margin-inline-start: 7px;
575}
576
577/* Traits applied when variables or properties are changed or overridden */
578
579.variable-or-property:not([overridden]) {
580 transition: background 1s ease-in-out, color 1s ease-in-out;
581}
582
583.variable-or-property:not([overridden])[changed] {
584 color: #000000;
585 transition-duration: .4s;
586}
587
588.variable-or-property[overridden] {
589 background: rgba(160,144,144,0.5);
590}
591
592.variable-or-property[overridden] .title > label {
593 /* Cross out the title for this variable and all child properties. */
594 font-style: italic;
595 text-decoration: line-through;
596 border-bottom: none !important;
597 color: #A09090;
598 opacity: 0.7;
599}
600
601/* Traits applied when variables or properties are editable */
602
603.variable-or-property[editable] > .title > .value {
604 cursor: text;
605}
606
607.variable-or-property[overridden] .title > .value {
608 /* Disallow editing this variable and all child properties. */
609 pointer-events: none;
610}
611
612/* Custom configurable/enumerable/writable or frozen/sealed/extensible
613 * variables and properties */
614
615.variable-or-property[non-enumerable]:not([self]):not([pseudo-item]) > .title > .name {
616 opacity: 0.6;
617}
618
619.variable-or-property-non-writable-icon {
620 background: url("chrome://devtools/skin/images/vview-lock.png") no-repeat;
621 background-size: cover;
622 width: 16px;
623 height: 16px;
624}
625
626@media (min-resolution: 1.1dppx) {
627 .variable-or-property-non-writable-icon {
628 background-image: url("chrome://devtools/skin/images/vview-lock@2x.png");
629 }
630}
631
632.variable-or-property-frozen-label,
633.variable-or-property-sealed-label,
634.variable-or-property-non-extensible-label {
635 height: 16px;
636 padding-inline-end: 4px;
637}
638
639.variable-or-property:not(:focus) > .title > .variable-or-property-frozen-label,
640.variable-or-property:not(:focus) > .title > .variable-or-property-sealed-label,
641.variable-or-property:not(:focus) > .title > .variable-or-property-non-extensible-label {
642 color: #A09090;
643}
644
645/* Aligned values */
646
647.variables-view-container[aligned-values] .title > .separator {
648 -moz-box-flex: 1;
649}
650
651.variables-view-container[aligned-values] .title > .value {
652 -moz-box-flex: 0;
653 width: 70vw;
654}
655
656.variables-view-container[aligned-values] .title > .element-value-input {
657 width: calc(70vw - 10px);
658}
659
660/* Actions first */
661
662.variables-view-open-inspector {
663 -moz-box-ordinal-group: 1;
664}
665
666.variables-view-edit,
667.variables-view-add-property {
668 -moz-box-ordinal-group: 2;
669}
670
671.variable-or-property-frozen-label,
672.variable-or-property-sealed-label,
673.variable-or-property-non-extensible-label,
674.variable-or-property-non-writable-icon {
675 -moz-box-ordinal-group: 3;
676}
677
678.variables-view-delete {
679 -moz-box-ordinal-group: 4;
680}
681
682.variables-view-container[actions-first] .variables-view-delete,
683.variables-view-container[actions-first] .variables-view-add-property,
684.variables-view-container[actions-first] .variables-view-open-inspector {
685 -moz-box-ordinal-group: 0;
686}
687
688.variables-view-container[actions-first] [invisible] {
689 visibility: hidden;
690}
691
692/* Variables and properties tooltips */
693
694.variable-or-property > tooltip > label {
695 margin: 0 2px 0 2px;
696}
697
698.variable-or-property[non-enumerable] > tooltip > label.enumerable,
699.variable-or-property[non-configurable] > tooltip > label.configurable,
700.variable-or-property[non-writable] > tooltip > label.writable,
701.variable-or-property[non-extensible] > tooltip > label.extensible {
702 color: #A09090;
703 text-decoration: line-through;
704}
705
706.variable-or-property[overridden] > tooltip > label.overridden {
707 padding-inline-start: 4px;
708 border-inline-start: 1px dotted #9C9CFF;
709}
710
711.variable-or-property[safe-getter] > tooltip > label.WebIDL {
712 padding-inline-start: 4px;
713 border-inline-start: 1px dotted #9C9CFF;
714 color: #008484;
715}
716
717/* Variables and properties editing */
718.variables-view-delete,
719.variables-view-edit,
720.variables-view-open-inspector {
721 width: 16px;
722 height: 16px;
723 background-size: cover;
724 cursor: pointer;
725}
726
727.variables-view-delete:hover,
728.variables-view-edit:hover,
729.variables-view-open-inspector:hover {
730 filter: url(images/filters.svg#checked-icon-state);
731}
732
733.variables-view-delete:active,
734.variables-view-edit:active,
735.variables-view-open-inspector:active {
736 filter: url(images/filters.svg#checked-icon-state);
737}
738
739.variable-or-property:focus > .title > .variables-view-delete,
740.variable-or-property:focus > .title > .variables-view-edit,
741.variable-or-property:focus > .title > .variables-view-open-inspector {
742 filter: none;
743}
744
745.variables-view-delete {
746 background-image: var(--delete-icon);
747}
748
749@media (min-resolution: 1.1dppx) {
750 .variables-view-delete {
751 background-image: var(--delete-icon-2x);
752 }
753}
754
755.variables-view-edit {
756 background-image: url("chrome://devtools/skin/images/vview-edit.png");
757}
758
759@media (min-resolution: 1.1dppx) {
760 .variables-view-edit {
761 background-image: url("chrome://devtools/skin/images/vview-edit@2x.png");
762 }
763}
764
765.variables-view-open-inspector {
766 background-image: url("chrome://devtools/skin/images/vview-open-inspector.png");
767}
768
769@media (min-resolution: 1.1dppx) {
770 .variables-view-open-inspector {
771 background-image: url("chrome://devtools/skin/images/vview-open-inspector@2x.png");
772 }
773}
774
775/* Variables and properties input boxes */
776
777.variable-or-property > .title > .separator + .element-value-input {
778 margin-inline-start: -2px !important;
779 margin-inline-end: 2px !important;
780}
781
782.variable-or-property > .title > .separator[hidden=true] + .element-value-input {
783 margin-inline-start: 4px !important;
784 margin-inline-end: 2px !important;
785}
786
787.element-name-input {
788 margin-inline-start: -2px !important;
789 margin-inline-end: 2px !important;
790 font-weight: 600;
791}
792
793.element-value-input,
794.element-name-input {
795 border: 1px solid #008484 !important;
796 color: inherit;
797}
798
799/* Variables and properties searching */
800
801.variable-or-property[unmatched] {
802 border: none;
803 margin: 0;
804}
805
806/* Canvas graphs */
807
808.graph-widget-container {
809 position: relative;
810}
811
812.graph-widget-canvas {
813 width: 100%;
814 height: 100%;
815}
816
817.graph-widget-canvas[input=hovering-background] {
818 cursor: text;
819}
820
821.graph-widget-canvas[input=hovering-region] {
822 cursor: pointer;
823}
824
825.graph-widget-canvas[input=hovering-selection-start-boundary],
826.graph-widget-canvas[input=hovering-selection-end-boundary],
827.graph-widget-canvas[input=adjusting-selection-boundary] {
828 cursor: col-resize;
829}
830
831.graph-widget-canvas[input=adjusting-view-area] {
832 cursor: grabbing;
833}
834
835.graph-widget-canvas[input=hovering-selection-contents] {
836 cursor: grab;
837}
838
839.graph-widget-canvas[input=dragging-selection-contents] {
840 cursor: grabbing;
841}
842
843/* Line graph widget */
844
845.line-graph-widget-gutter {
846 position: absolute;
847 width: 10px;
848 height: 100%;
849 top: 0;
850 left: 0;
851 pointer-events: none;
852
853 background: #000000;
854 border-inline-end: 1px solid #9C9CFF;
855}
856
857.line-graph-widget-gutter-line {
858 position: absolute;
859 width: 100%;
860 border-top: 1px solid;
861}
862
863.line-graph-widget-gutter-line[type=maximum] {
864 border-color: #008484;
865}
866
867.line-graph-widget-gutter-line[type=minimum] {
868 border-color: #FF0000;
869}
870
871.line-graph-widget-gutter-line[type=average] {
872 border-color: #FF9F00;
873}
874
875.line-graph-widget-tooltip {
876 position: absolute;
877 border-radius: 2px;
878 line-height: 15px;
879 padding-inline-start: 6px;
880 padding-inline-end: 6px;
881 transform: translateY(-50%);
882 font-size: 0.8rem !important;
883 z-index: 1;
884 pointer-events: none;
885
886 background: #404000;
887}
888
889.line-graph-widget-tooltip[with-arrows=true]::before {
890 content: "";
891 position: absolute;
892 border-top: 3px solid transparent;
893 border-bottom: 3px solid transparent;
894 top: calc(50% - 3px);
895}
896
897.line-graph-widget-tooltip[arrow=start][with-arrows=true]::before {
898 border-inline-end: 3px solid #9C9CFF;
899 left: -3px;
900}
901
902.line-graph-widget-tooltip[arrow=end][with-arrows=true]::before {
903 border-inline-start: 3px solid #9C9CFF;
904 right: -3px;
905}
906
907.line-graph-widget-tooltip[type=maximum] {
908 left: 14px;
909}
910
911.line-graph-widget-tooltip[type=minimum] {
912 left: 14px;
913}
914
915.line-graph-widget-tooltip[type=average] {
916 right: 4px;
917}
918
919.line-graph-widget-tooltip > [text=info] {
920 color: var(--theme-content-color2);
921}
922
923.line-graph-widget-tooltip > [text=value] {
924 margin-inline-start: 3px;
925}
926
927.line-graph-widget-tooltip > [text=metric] {
928 margin-inline-start: 1px;
929 color: var(--theme-content-color4);
930}
931
932.line-graph-widget-tooltip > [text=value],
933.line-graph-widget-tooltip > [text=metric] {
934/* text-shadow: 1px 0px rgba(255,255,255,0.6),
935 -1px 0px rgba(255,255,255,0.6),
936 0px -1px rgba(255,255,255,0.6),
937 0px 1px rgba(255,255,255,0.6);*/
938}
939
940.line-graph-widget-tooltip[type=maximum] > [text=value] {
941 color: var(--theme-highlight-green);
942}
943
944.line-graph-widget-tooltip[type=minimum] > [text=value] {
945 color: var(--theme-highlight-red);
946}
947
948.line-graph-widget-tooltip[type=average] > [text=value] {
949 color: var(--theme-highlight-orange);
950}
951
952/* Bar graph widget */
953
954.bar-graph-widget-legend {
955 position: absolute;
956 top: 4px;
957 left: 8px;
958 color: #A09090;
959 font-size: 0.8rem !important;
960 pointer-events: none;
961}
962
963.bar-graph-widget-legend-item {
964 float: left;
965 margin-inline-end: 8px;
966}
967
968.bar-graph-widget-legend-item > [view="color"],
969.bar-graph-widget-legend-item > [view="label"] {
970 vertical-align: middle;
971}
972
973.bar-graph-widget-legend-item > [view="color"] {
974 display: inline-block;
975 width: 8px;
976 height: 8px;
977 border: 1px solid #9C9CFF;
978 border-radius: 1px;
979 margin-inline-end: 4px;
980 pointer-events: all;
981 cursor: pointer;
982}
983
984.bar-graph-widget-legend-item > [view="label"] {
985/* text-shadow: 1px 0px rgba(255,255,255,0.8),
986 -1px 0px rgba(255,255,255,0.8),
987 0px -1px rgba(255,255,255,0.8),
988 0px 1px rgba(255,255,255,0.8);*/
989}
990
991/* Charts */
992
993.generic-chart-container {
994 /* Hack: force hardware acceleration */
995 transform: translateZ(1px);
996}
997
998.generic-chart-container {
999 color: var(--theme-body-color-alt);
1000}
1001
1002.chart-colored-blob {
1003 fill: var(--theme-highlight-blue);
1004 background: var(--theme-highlight-blue);
1005}
1006
1007/* Charts: Pie */
1008
1009.pie-chart-slice {
1010 stroke-width: 1px;
1011 cursor: pointer;
1012}
1013
1014.pie-chart-slice {
1015 stroke: #A09090;
1016}
1017
1018.pie-chart-slice[largest] {
1019 stroke-width: 2px;
1020 stroke: #9C9CFF;
1021}
1022
1023.pie-chart-label {
1024 text-anchor: middle;
1025 dominant-baseline: middle;
1026 pointer-events: none;
1027}
1028
1029.pie-chart-label {
1030 fill: #000;
1031}
1032
1033.pie-chart-container[slices="1"] > .pie-chart-slice {
1034 stroke-width: 0px;
1035}
1036
1037.pie-chart-slice,
1038.pie-chart-label {
1039 transition: all 0.1s ease-out;
1040}
1041
1042.pie-chart-slice:not(:hover):not([focused]),
1043.pie-chart-slice:not(:hover):not([focused]) + .pie-chart-label {
1044 transform: none !important;
1045}
1046
1047/* Charts: Table */
1048
1049.table-chart-title {
1050 padding-bottom: 10px;
1051 font-size: 120%;
1052 font-weight: 600;
1053}
1054
1055.table-chart-row {
1056 margin-top: 1px;
1057 cursor: pointer;
1058}
1059
1060.table-chart-grid:hover > .table-chart-row {
1061 transition: opacity 0.1s ease-in-out;
1062}
1063
1064.table-chart-grid:not(:hover) > .table-chart-row {
1065 transition: opacity 0.2s ease-in-out;
1066}
1067
1068.generic-chart-container:hover > .table-chart-grid:hover > .table-chart-row:not(:hover),
1069.generic-chart-container:hover ~ .table-chart-container > .table-chart-grid > .table-chart-row:not([focused]) {
1070 opacity: 0.4;
1071}
1072
1073.table-chart-row-box {
1074 width: 8px;
1075 height: 1.5em;
1076 margin-inline-end: 10px;
1077}
1078
1079.table-chart-row-label {
1080 width: 8em;
1081 padding-inline-end: 6px;
1082 cursor: inherit;
1083}
1084
1085.table-chart-totals {
1086 margin-top: 8px;
1087 padding-top: 6px;
1088}
1089
1090.table-chart-totals {
1091 border-top: 1px solid var(--theme-body-color-alt); /* Grey foreground text */
1092}
1093
1094.table-chart-summary-label {
1095 font-weight: 600;
1096 padding: 1px 0px;
1097}
1098
1099.table-chart-summary-label {
1100 color: var(--theme-content-color2);
1101}
1102
1103/* Table Widget */
1104
1105/* Table body */
1106
1107.table-widget-body > .devtools-side-splitter {
1108 border: none;
1109}
1110
1111.table-widget-body {
1112 overflow: auto;
1113}
1114
1115.table-widget-body,
1116.table-widget-empty-text {
1117 background-color: var(--theme-body-background);
1118}
1119
1120/* Column Headers */
1121
1122.table-widget-column-header,
1123.table-widget-cell {
1124 border-inline-end: 1px solid var(--table-splitter-color) !important;
1125}
1126
1127/* Table widget column header colors are taken from netmonitor.inc.css to match
1128 the look of both the tables. */
1129
1130.table-widget-column-header {
1131 position: sticky;
1132 top: 0;
1133 width: 100%;
1134 margin: 0;
1135 padding: 5px 0 0 !important;
1136 color: inherit;
1137 text-align: center;
1138 font-weight: inherit !important;
1139 border-image: linear-gradient(transparent 15%,
1140 var(--theme-splitter-color) 15%,
1141 var(--theme-splitter-color) 85%,
1142 transparent 85%,
1143 transparent calc(100% - 1px),
1144 var(--theme-splitter-color) calc(100% - 1px)) 1 1;
1145 background-repeat: no-repeat;
1146}
1147
1148.table-widget-column-header:not([sorted]):hover {
1149/* background-image: linear-gradient(rgba(0,0,0,0.1),rgba(0,0,0,0.1));*/
1150}
1151
1152.table-widget-column-header[sorted] {
1153 background-color: var(--theme-selection-background);
1154 color: var(--theme-selection-color);
1155 border-image: linear-gradient(var(--theme-splitter-color), var(--theme-splitter-color)) 1 1;
1156/* box-shadow: -0.5px 0 0 0.5px var(--theme-splitter-color);*/
1157 background-position: right 6px center;
1158}
1159
1160.table-widget-column-header[sorted]:-moz-locale-dir(rtl) {
1161 background-position: 6px center;
1162}
1163
1164.table-widget-column-header[sorted=ascending] {
1165 background-image: url("chrome://devtools/skin/images/sort-arrows.svg#ascending");
1166}
1167
1168.table-widget-column-header[sorted=descending] {
1169 background-image: url("chrome://devtools/skin/images/sort-arrows.svg#descending");
1170}
1171
1172.table-widget-column[readonly] {
1173 background-color: #402800;
1174}
1175
1176.table-widget-body .devtools-side-splitter:last-of-type {
1177 display: none;
1178}
1179
1180/* Cells */
1181
1182.table-widget-cell {
1183 width: 100%;
1184 padding: 3px 4px;
1185 min-width: 100px;
1186 -moz-user-focus: normal;
1187 color: var(--theme-body-color);
1188}
1189
1190.table-widget-cell[hidden] {
1191 display: none;
1192}
1193
1194.table-widget-column-header + .table-widget-cell {
1195 border-top: 1px solid var(--theme-splitter-color);
1196}
1197
1198.table-widget-cell:last-child {
1199 border-bottom: 1px solid var(--table-splitter-color);
1200}
1201
1202.table-widget-cell.even:not(.theme-selected) {
1203 background-color: var(--table-zebra-background);
1204}
1205
1206:root:not(.no-animate) .table-widget-cell.flash-out {
1207 animation: flash-out 0.5s ease-in;
1208}
1209
1210@keyframes flash-out {
1211 to {
1212 background: var(--theme-contrast-background2);
1213 }
1214}
1215
1216/* Empty text and initial text */
1217
1218.table-widget-empty-text {
1219 display: none;
1220 text-align: center;
1221 font-size: large;
1222 margin-top: -20px !important;
1223}
1224
1225.table-widget-body:empty + .table-widget-empty-text:not([value=""]),
1226.table-widget-body[empty] + .table-widget-empty-text:not([value=""]) {
1227 display: block;
1228}
1229
1230/* Tree Widget */
1231
1232.tree-widget-container {
1233 padding: 0;
1234 margin: 0;
1235 width: 100%;
1236 height: 100%;
1237 list-style: none;
1238 overflow: hidden;
1239 margin-inline-end: 40px;
1240}
1241
1242.tree-widget-container:-moz-focusring,
1243.tree-widget-container *:-moz-focusring {
1244 outline-style: none;
1245}
1246
1247.tree-widget-empty-text {
1248 padding: 10px 20px;
1249 font-size: medium;
1250 background: transparent;
1251 pointer-events: none;
1252}
1253
1254/* Tree Item */
1255
1256.tree-widget-container .tree-widget-item {
1257 padding: 2px 0px 4px;
1258 /* OSX has line-height 14px by default, which causes weird alignment issues
1259 * because of 20px high icons. thus making line-height consistent with that of
1260 * windows.
1261 */
1262 line-height: 17px !important;
1263 display: inline-block;
1264 width: 100%;
1265 word-break: keep-all; /* To prevent long urls like http://foo.com/bar from
1266 breaking in multiple lines */
1267}
1268
1269.tree-widget-container .tree-widget-children {
1270 margin: 0;
1271 padding: 0;
1272 list-style: none;
1273}
1274
1275.tree-widget-item[level="1"] {
1276 font-weight: 700;
1277}
1278
1279/* Twisties */
1280.tree-widget-item::before {
1281 content: "";
1282 width: 14px;
1283 height: 14px;
1284 float: left;
1285 margin: 3px 2px -3px;
1286 background-repeat: no-repeat;
1287 background-image: url("chrome://devtools/skin/images/controls.png");
1288 background-size: 56px 28px;
1289 cursor: pointer;
1290 background-position: -28px -14px;
1291}
1292
1293.tree-widget-item:-moz-locale-dir(rtl)::before {
1294 float: right;
1295 transform: scaleX(-1);
1296}
1297
1298.tree-widget-item[empty]::before {
1299 background: transparent;
1300}
1301
1302.tree-widget-item[expanded]::before {
1303 background-position: -42px -14px;
1304}
1305
1306.tree-widget-item + ul {
1307 overflow: hidden;
1308 animation: collapse-tree-item 0.2s;
1309 max-height: 0;
1310}
1311
1312.tree-widget-item[expanded] + ul {
1313 animation: expand-tree-item 0.3s;
1314 max-height: unset;
1315}
1316
1317@keyframes collapse-tree-item {
1318 from {
1319 max-height: 300px;
1320 }
1321 to {
1322 max-height: 0;
1323 }
1324}
1325
1326@keyframes expand-tree-item {
1327 from {
1328 max-height: 0;
1329 }
1330 to {
1331 max-height: 500px;
1332 }
1333}
1334
1335@media (min-resolution: 1.1dppx) {
1336 .tree-widget-item:before {
1337 background-image: url("chrome://devtools/skin/images/controls@2x.png");
1338 }
1339}
1340
1341/* Indentation of child items in the tree */
1342
1343/* For level > 6 */
1344.tree-widget-item[level] + ul > li > .tree-widget-item {
1345 padding-inline-start: 98px;
1346}
1347
1348/* First level */
1349.tree-widget-item[level="1"] + ul > li > .tree-widget-item {
1350 padding-inline-start: 14px;
1351}
1352
1353/* Second level */
1354.tree-widget-item[level="2"] + ul > li > .tree-widget-item {
1355 padding-inline-start: 28px;
1356}
1357
1358/* Third level */
1359.tree-widget-item[level="3"] + ul > li > .tree-widget-item {
1360 padding-inline-start: 42px;
1361}
1362
1363/* Fourth level */
1364.tree-widget-item[level="4"] + ul > li > .tree-widget-item {
1365 padding-inline-start: 56px;
1366}
1367
1368/* Fifth level */
1369.tree-widget-item[level="5"] + ul > li > .tree-widget-item {
1370 padding-inline-start: 70px;
1371}
1372
1373/* Sixth level */
1374.tree-widget-item[level="6"] + ul > li > .tree-widget-item {
1375 padding-inline-start: 84px;
1376}
1377
1378/* Custom icons for certain tree items indicating the type of the item */
1379
1380.tree-widget-item[type]::after {
1381 content: "";
1382 float: left;
1383 width: 16px;
1384 height: 17px;
1385 margin-inline-end: 4px;
1386 background-repeat: no-repeat;
1387 background-size: 20px auto;
1388 background-position: 0 0;
1389 background-size: auto 20px;
1390 opacity: 0.75;
1391}
1392
1393.tree-widget-item.theme-selected[type]::after {
1394 opacity: 1;
1395}
1396
1397.tree-widget-item:-moz-locale-dir(rtl)::after {
1398 float: right;
1399}
1400
1401/*.theme-light .tree-widget-item.theme-selected[type]::after,*/
1402.tree-widget-item[type]::after {
1403 filter: invert(1);
1404}
1405
1406.tree-widget-item[type="dir"]::after {
1407 background-image: url("chrome://devtools/skin/images/filetypes/dir-close.svg");
1408 background-position: 2px 0;
1409 background-size: auto 16px;
1410 width: 20px;
1411}
1412
1413.tree-widget-item[type="dir"][expanded]:not([empty])::after {
1414 background-image: url("chrome://devtools/skin/images/filetypes/dir-open.svg");
1415}
1416
1417.tree-widget-item[type="url"]::after {
1418 background-image: url("chrome://devtools/skin/images/filetypes/globe.svg");
1419 background-size: auto 18px;
1420 width: 18px;
1421}