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/. */
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);
17 /* Generic pane helpers */
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. */
26 .generic-toggled-pane[animated] {
27 transition: margin 0.25s ease-in-out;
30 /* Responsive container */
32 .devtools-responsive-container {
33 -moz-box-orient: horizontal;
36 .devtools-main-content {
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) */
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.
52 margin-top: 0 !important;
53 margin-bottom: 0 !important;
56 @media (max-width: 700px) {
57 .devtools-responsive-container {
58 -moz-box-orient: vertical;
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));
71 /* Reset the vertical splitter styles */
74 border-inline-end-width: 0;
75 border-inline-start-width: 0;
77 margin-inline-start: 0;
79 /* In some edge case the cursor is not changed to n-resize */
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. */
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.
95 margin-inline-end: 0 !important;
99 /* BreacrumbsWidget */
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 */
109 background: transparent;
117 margin-inline-end: 1px;
121 margin-inline-end: 0;
124 .scrollbutton-up > .toolbarbutton-icon,
125 .scrollbutton-down > .toolbarbutton-icon {
129 .scrollbutton-up:not([disabled]):active:hover > .toolbarbutton-icon,
130 .scrollbutton-down:not([disabled]):active:hover > .toolbarbutton-icon {
133 .scrollbutton-up[disabled] > .toolbarbutton-icon,
134 .scrollbutton-down[disabled] > .toolbarbutton-icon {
137 .scrollbutton-up:-moz-locale-dir(ltr) {
138 border-top-right-radius: 0;
139 border-bottom-right-radius: 0;
142 .scrollbutton-down:-moz-locale-dir(ltr) {
143 border-top-left-radius: 0;
144 border-bottom-left-radius: 0;
147 .scrollbutton-up:-moz-locale-dir(rtl) {
148 border-top-left-radius: 0;
149 border-bottom-left-radius: 0;
152 .scrollbutton-down:-moz-locale-dir(rtl) {
153 border-top-right-radius: 0;
154 border-bottom-right-radius: 0;
157 /* Draw shadows to indicate there is more content 'behind' scrollbuttons. */
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);
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);
173 .scrollbutton-up[disabled],
174 .scrollbutton-down[disabled] {
176 border-color: transparent;
180 .scrollbutton-up > .toolbarbutton-icon:-moz-locale-dir(rtl),
181 .scrollbutton-down > .toolbarbutton-icon:-moz-locale-dir(ltr) {
182 /* transform: scaleX(-1); */
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.
189 .breadcrumb-separator-container {
195 #breadcrumb-separator-before,
196 #breadcrumb-separator-after,
197 #breadcrumb-separator-normal {
203 #breadcrumb-separator-before,
204 #breadcrumb-separator-after:after {
205 background: var(--theme-selection-background);
208 #breadcrumb-separator-after,
209 #breadcrumb-separator-before:after {
210 background: var(--theme-toolbar-background);
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).
217 #breadcrumb-separator-normal {
218 background: url("images/breadcrumbs-divider@2x.png") no-repeat center right;
219 background-size: 12px 24px;
222 /* Fake a triangle by rotating a rectangle inside the elements */
223 #breadcrumb-separator-before:after,
224 #breadcrumb-separator-after:after {
229 transform: translateX(-18px) rotate(45deg);
230 box-sizing: border-box;
233 .breadcrumbs-widget-item {
234 background-color: var(--theme-capped-toolbar-background);
238 padding: 0 8px 0 20px;
242 color: var(--theme-content-color1);
245 .breadcrumbs-widget-item:hover {
246 background-color: var(--theme-hover-background);
247 color: var(--theme-hover-color);
250 .breadcrumbs-widget-item[checked]:not(:hover) {
251 background-color: var(--theme-selection-background);
252 color: var(--theme-selection-color);
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);
261 .breadcrumbs-widget-item:-moz-focusring {
265 .breadcrumbs-widget-item[checked]:-moz-focusring > .button-box {
266 outline: var(--theme-focus-outline);
267 outline-offset: -1px;
270 .breadcrumbs-widget-item > .button-box {
276 :root[platform="win"] .breadcrumbs-widget-item:-moz-focusring > .button-box {
280 .breadcrumbs-widget-item:not([checked]) {
281 background-image: -moz-element(#breadcrumb-separator-normal);
282 background-repeat: no-repeat;
283 background-position: center left;
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;
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 */
299 .breadcrumbs-widget-item:first-child {
300 background-image: none;
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.
306 .breadcrumbs-widget-item:-moz-locale-dir(rtl) {
307 padding: 0 20px 0 8px;
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;
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);
321 #breadcrumb-separator-before:-moz-locale-dir(rtl):after,
322 #breadcrumb-separator-after:-moz-locale-dir(rtl):after {
323 transform: translateX(-5px) rotate(45deg);
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 */
333 .breadcrumbs-widget-item {
334 color: var(--theme-button-color); /* tag name, --theme-highlight-lightorange */
337 .breadcrumbs-widget-item:not([checked]):hover span,
338 .breadcrumbs-widget-item:not([checked]):hover label {
339 color: var(--theme-hover-color) !important;
342 .breadcrumbs-widget-item-id {
343 color: var(--theme-highlight-red); /* --theme-body-color-alt */
346 .breadcrumbs-widget-item-classes {
347 color: var(#402800); /* --theme-content-color1 */
350 .breadcrumbs-widget-item-pseudo-classes {
351 color: var(--theme-button-color); /* --theme-highlight-lightorange */
354 /* SimpleListWidget */
356 .simple-list-widget-container {
357 /* Hack: force hardware acceleration */
358 transform: translateZ(1px);
361 .simple-list-widget-item.selected {
362 background-color: var(--theme-selection-background);
363 color: var(--theme-selection-color);
366 .simple-list-widget-item:not(.selected):hover {
367 background-color: var(--theme-hover-background);
368 color: var(--theme-hover-color);
371 .simple-list-widget-perma-text,
372 .simple-list-widget-empty-text {
376 .simple-list-widget-perma-text,
377 .simple-list-widget-empty-text {
378 color: var(--theme-body-color-alt);
383 .fast-list-widget-container {
384 /* Hack: force hardware acceleration */
385 transform: translateZ(1px);
388 .fast-list-widget-empty-text {
392 .fast-list-widget-empty-text {
393 color: var(--theme-body-color-alt);
398 .side-menu-widget-container {
399 /* Hack: force hardware acceleration */
400 transform: translateZ(1px);
403 /* SideMenuWidget container */
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;*/
410 /* SideMenuWidget groups */
412 .side-menu-widget-group-title {
415 border-bottom: 1px solid var(--sidemenu-separator-color);
418 .side-menu-widget-group-title + .side-menu-widget-group-list .side-menu-widget-item-contents {
419 padding-inline-start: 20px;
422 /* SideMenuWidget items */
424 .side-menu-widget-item {
425 border-bottom: 1px solid var(--sidemenu-separator-color);
426 background-clip: padding-box;
429 .side-menu-widget-item.selected {
430 background-color: var(--theme-selection-background);
431 color: var(--theme-selection-color);
434 .side-menu-widget-item-arrow {
435 margin-inline-start: -7px;
436 width: 7px; /* The image's width is 7 pixels */
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;
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;
451 /* SideMenuWidget items contents */
453 .side-menu-widget-item-contents {
455 /* To avoid having content overlapping the arrow image. */
456 padding-inline-end: 8px;
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);
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;
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);
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);
484 .side-menu-widget-item-other:first-of-type {
486 /* border-top-left-radius: 4px; */
489 .side-menu-widget-item-other:last-of-type {
493 .side-menu-widget-item-other:not(.selected) > label {
497 /* SideMenuWidget checkboxes */
499 .side-menu-widget-group-checkbox {
501 margin-inline-end: 4px;
504 .side-menu-widget-item-checkbox {
506 margin-inline-start: 4px;
507 margin-inline-end: -4px;
510 /* SideMenuWidget misc */
512 .side-menu-widget-empty-text {
514 background-color: var(--theme-sidebar-background);
519 .variables-view-container {
520 /* Hack: force hardware acceleration */
521 transform: translateZ(1px);
524 .variables-view-empty-notice {
528 .variables-view-empty-notice {
529 color: var(--theme-body-color-alt);
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);
538 .variables-view-scope > .title {
539 background-color: #A09090;
543 /* Custom scope stylings */
545 .variables-view-watch-expressions .title > .name {
549 /* Generic variables traits */
551 .variables-view-variable:not(:last-child) {
552 border-bottom: 1px solid #A09090;
555 .variables-view-variable > .title > .name {
559 /* Generic variables *and* properties traits */
561 .variable-or-property:focus > .title > label {
562 color: inherit !important;
565 .variables-view-container .theme-twisty {
569 .variable-or-property > .title > .theme-twisty {
570 margin-inline-start: 5px;
573 .variable-or-property:not([untitled]) > .variables-view-element-details {
574 margin-inline-start: 7px;
577 /* Traits applied when variables or properties are changed or overridden */
579 .variable-or-property:not([overridden]) {
580 transition: background 1s ease-in-out, color 1s ease-in-out;
583 .variable-or-property:not([overridden])[changed] {
585 transition-duration: .4s;
588 .variable-or-property[overridden] {
589 background: rgba(160,144,144,0.5);
592 .variable-or-property[overridden] .title > label {
593 /* Cross out the title for this variable and all child properties. */
595 text-decoration: line-through;
596 border-bottom: none !important;
601 /* Traits applied when variables or properties are editable */
603 .variable-or-property[editable] > .title > .value {
607 .variable-or-property[overridden] .title > .value {
608 /* Disallow editing this variable and all child properties. */
609 pointer-events: none;
612 /* Custom configurable/enumerable/writable or frozen/sealed/extensible
613 * variables and properties */
615 .variable-or-property[non-enumerable]:not([self]):not([pseudo-item]) > .title > .name {
619 .variable-or-property-non-writable-icon {
620 background: url("chrome://devtools/skin/images/vview-lock.png") no-repeat;
621 background-size: cover;
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");
632 .variable-or-property-frozen-label,
633 .variable-or-property-sealed-label,
634 .variable-or-property-non-extensible-label {
636 padding-inline-end: 4px;
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 {
647 .variables-view-container[aligned-values] .title > .separator {
651 .variables-view-container[aligned-values] .title > .value {
656 .variables-view-container[aligned-values] .title > .element-value-input {
657 width: calc(70vw - 10px);
662 .variables-view-open-inspector {
663 -moz-box-ordinal-group: 1;
666 .variables-view-edit,
667 .variables-view-add-property {
668 -moz-box-ordinal-group: 2;
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;
678 .variables-view-delete {
679 -moz-box-ordinal-group: 4;
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;
688 .variables-view-container[actions-first] [invisible] {
692 /* Variables and properties tooltips */
694 .variable-or-property > tooltip > label {
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 {
703 text-decoration: line-through;
706 .variable-or-property[overridden] > tooltip > label.overridden {
707 padding-inline-start: 4px;
708 border-inline-start: 1px dotted #9C9CFF;
711 .variable-or-property[safe-getter] > tooltip > label.WebIDL {
712 padding-inline-start: 4px;
713 border-inline-start: 1px dotted #9C9CFF;
717 /* Variables and properties editing */
718 .variables-view-delete,
719 .variables-view-edit,
720 .variables-view-open-inspector {
723 background-size: cover;
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);
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);
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 {
745 .variables-view-delete {
746 background-image: var(--delete-icon);
749 @media (min-resolution: 1.1dppx) {
750 .variables-view-delete {
751 background-image: var(--delete-icon-2x);
755 .variables-view-edit {
756 background-image: url("chrome://devtools/skin/images/vview-edit.png");
759 @media (min-resolution: 1.1dppx) {
760 .variables-view-edit {
761 background-image: url("chrome://devtools/skin/images/vview-edit@2x.png");
765 .variables-view-open-inspector {
766 background-image: url("chrome://devtools/skin/images/vview-open-inspector.png");
769 @media (min-resolution: 1.1dppx) {
770 .variables-view-open-inspector {
771 background-image: url("chrome://devtools/skin/images/vview-open-inspector@2x.png");
775 /* Variables and properties input boxes */
777 .variable-or-property > .title > .separator + .element-value-input {
778 margin-inline-start: -2px !important;
779 margin-inline-end: 2px !important;
782 .variable-or-property > .title > .separator[hidden=true] + .element-value-input {
783 margin-inline-start: 4px !important;
784 margin-inline-end: 2px !important;
787 .element-name-input {
788 margin-inline-start: -2px !important;
789 margin-inline-end: 2px !important;
793 .element-value-input,
794 .element-name-input {
795 border: 1px solid #008484 !important;
799 /* Variables and properties searching */
801 .variable-or-property[unmatched] {
808 .graph-widget-container {
812 .graph-widget-canvas {
817 .graph-widget-canvas[input=hovering-background] {
821 .graph-widget-canvas[input=hovering-region] {
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] {
831 .graph-widget-canvas[input=adjusting-view-area] {
835 .graph-widget-canvas[input=hovering-selection-contents] {
839 .graph-widget-canvas[input=dragging-selection-contents] {
843 /* Line graph widget */
845 .line-graph-widget-gutter {
851 pointer-events: none;
854 border-inline-end: 1px solid #9C9CFF;
857 .line-graph-widget-gutter-line {
860 border-top: 1px solid;
863 .line-graph-widget-gutter-line[type=maximum] {
864 border-color: #008484;
867 .line-graph-widget-gutter-line[type=minimum] {
868 border-color: #FF0000;
871 .line-graph-widget-gutter-line[type=average] {
872 border-color: #FF9F00;
875 .line-graph-widget-tooltip {
879 padding-inline-start: 6px;
880 padding-inline-end: 6px;
881 transform: translateY(-50%);
882 font-size: 0.8rem !important;
884 pointer-events: none;
889 .line-graph-widget-tooltip[with-arrows=true]::before {
892 border-top: 3px solid transparent;
893 border-bottom: 3px solid transparent;
894 top: calc(50% - 3px);
897 .line-graph-widget-tooltip[arrow=start][with-arrows=true]::before {
898 border-inline-end: 3px solid #9C9CFF;
902 .line-graph-widget-tooltip[arrow=end][with-arrows=true]::before {
903 border-inline-start: 3px solid #9C9CFF;
907 .line-graph-widget-tooltip[type=maximum] {
911 .line-graph-widget-tooltip[type=minimum] {
915 .line-graph-widget-tooltip[type=average] {
919 .line-graph-widget-tooltip > [text=info] {
920 color: var(--theme-content-color2);
923 .line-graph-widget-tooltip > [text=value] {
924 margin-inline-start: 3px;
927 .line-graph-widget-tooltip > [text=metric] {
928 margin-inline-start: 1px;
929 color: var(--theme-content-color4);
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);*/
940 .line-graph-widget-tooltip[type=maximum] > [text=value] {
941 color: var(--theme-highlight-green);
944 .line-graph-widget-tooltip[type=minimum] > [text=value] {
945 color: var(--theme-highlight-red);
948 .line-graph-widget-tooltip[type=average] > [text=value] {
949 color: var(--theme-highlight-orange);
952 /* Bar graph widget */
954 .bar-graph-widget-legend {
959 font-size: 0.8rem !important;
960 pointer-events: none;
963 .bar-graph-widget-legend-item {
965 margin-inline-end: 8px;
968 .bar-graph-widget-legend-item > [view="color"],
969 .bar-graph-widget-legend-item > [view="label"] {
970 vertical-align: middle;
973 .bar-graph-widget-legend-item > [view="color"] {
974 display: inline-block;
977 border: 1px solid #9C9CFF;
979 margin-inline-end: 4px;
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);*/
993 .generic-chart-container {
994 /* Hack: force hardware acceleration */
995 transform: translateZ(1px);
998 .generic-chart-container {
999 color: var(--theme-body-color-alt);
1002 .chart-colored-blob {
1003 fill: var(--theme-highlight-blue);
1004 background: var(--theme-highlight-blue);
1018 .pie-chart-slice[largest] {
1024 text-anchor: middle;
1025 dominant-baseline: middle;
1026 pointer-events: none;
1033 .pie-chart-container[slices="1"] > .pie-chart-slice {
1039 transition: all 0.1s ease-out;
1042 .pie-chart-slice:not(:hover):not([focused]),
1043 .pie-chart-slice:not(:hover):not([focused]) + .pie-chart-label {
1044 transform: none !important;
1049 .table-chart-title {
1050 padding-bottom: 10px;
1060 .table-chart-grid:hover > .table-chart-row {
1061 transition: opacity 0.1s ease-in-out;
1064 .table-chart-grid:not(:hover) > .table-chart-row {
1065 transition: opacity 0.2s ease-in-out;
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]) {
1073 .table-chart-row-box {
1076 margin-inline-end: 10px;
1079 .table-chart-row-label {
1081 padding-inline-end: 6px;
1085 .table-chart-totals {
1090 .table-chart-totals {
1091 border-top: 1px solid var(--theme-body-color-alt); /* Grey foreground text */
1094 .table-chart-summary-label {
1099 .table-chart-summary-label {
1100 color: var(--theme-content-color2);
1107 .table-widget-body > .devtools-side-splitter {
1111 .table-widget-body {
1116 .table-widget-empty-text {
1117 background-color: var(--theme-body-background);
1120 /* Column Headers */
1122 .table-widget-column-header,
1123 .table-widget-cell {
1124 border-inline-end: 1px solid var(--table-splitter-color) !important;
1127 /* Table widget column header colors are taken from netmonitor.inc.css to match
1128 the look of both the tables. */
1130 .table-widget-column-header {
1135 padding: 5px 0 0 !important;
1138 font-weight: inherit !important;
1139 border-image: linear-gradient(transparent 15%,
1140 var(--theme-splitter-color) 15%,
1141 var(--theme-splitter-color) 85%,
1143 transparent calc(100% - 1px),
1144 var(--theme-splitter-color) calc(100% - 1px)) 1 1;
1145 background-repeat: no-repeat;
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));*/
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;
1160 .table-widget-column-header[sorted]:-moz-locale-dir(rtl) {
1161 background-position: 6px center;
1164 .table-widget-column-header[sorted=ascending] {
1165 background-image: url("chrome://devtools/skin/images/sort-arrows.svg#ascending");
1168 .table-widget-column-header[sorted=descending] {
1169 background-image: url("chrome://devtools/skin/images/sort-arrows.svg#descending");
1172 .table-widget-column[readonly] {
1173 background-color: #402800;
1176 .table-widget-body .devtools-side-splitter:last-of-type {
1182 .table-widget-cell {
1186 -moz-user-focus: normal;
1187 color: var(--theme-body-color);
1190 .table-widget-cell[hidden] {
1194 .table-widget-column-header + .table-widget-cell {
1195 border-top: 1px solid var(--theme-splitter-color);
1198 .table-widget-cell:last-child {
1199 border-bottom: 1px solid var(--table-splitter-color);
1202 .table-widget-cell.even:not(.theme-selected) {
1203 background-color: var(--table-zebra-background);
1206 :root:not(.no-animate) .table-widget-cell.flash-out {
1207 animation: flash-out 0.5s ease-in;
1210 @keyframes flash-out {
1212 background: var(--theme-contrast-background2);
1216 /* Empty text and initial text */
1218 .table-widget-empty-text {
1222 margin-top: -20px !important;
1225 .table-widget-body:empty + .table-widget-empty-text:not([value=""]),
1226 .table-widget-body[empty] + .table-widget-empty-text:not([value=""]) {
1232 .tree-widget-container {
1239 margin-inline-end: 40px;
1242 .tree-widget-container:-moz-focusring,
1243 .tree-widget-container *:-moz-focusring {
1244 outline-style: none;
1247 .tree-widget-empty-text {
1250 background: transparent;
1251 pointer-events: none;
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
1262 line-height: 17px !important;
1263 display: inline-block;
1265 word-break: keep-all; /* To prevent long urls like http://foo.com/bar from
1266 breaking in multiple lines */
1269 .tree-widget-container .tree-widget-children {
1275 .tree-widget-item[level="1"] {
1280 .tree-widget-item::before {
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;
1290 background-position: -28px -14px;
1293 .tree-widget-item:-moz-locale-dir(rtl)::before {
1295 transform: scaleX(-1);
1298 .tree-widget-item[empty]::before {
1299 background: transparent;
1302 .tree-widget-item[expanded]::before {
1303 background-position: -42px -14px;
1306 .tree-widget-item + ul {
1308 animation: collapse-tree-item 0.2s;
1312 .tree-widget-item[expanded] + ul {
1313 animation: expand-tree-item 0.3s;
1317 @keyframes collapse-tree-item {
1326 @keyframes expand-tree-item {
1335 @media (min-resolution: 1.1dppx) {
1336 .tree-widget-item:before {
1337 background-image: url("chrome://devtools/skin/images/controls@2x.png");
1341 /* Indentation of child items in the tree */
1344 .tree-widget-item[level] + ul > li > .tree-widget-item {
1345 padding-inline-start: 98px;
1349 .tree-widget-item[level="1"] + ul > li > .tree-widget-item {
1350 padding-inline-start: 14px;
1354 .tree-widget-item[level="2"] + ul > li > .tree-widget-item {
1355 padding-inline-start: 28px;
1359 .tree-widget-item[level="3"] + ul > li > .tree-widget-item {
1360 padding-inline-start: 42px;
1364 .tree-widget-item[level="4"] + ul > li > .tree-widget-item {
1365 padding-inline-start: 56px;
1369 .tree-widget-item[level="5"] + ul > li > .tree-widget-item {
1370 padding-inline-start: 70px;
1374 .tree-widget-item[level="6"] + ul > li > .tree-widget-item {
1375 padding-inline-start: 84px;
1378 /* Custom icons for certain tree items indicating the type of the item */
1380 .tree-widget-item[type]::after {
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;
1393 .tree-widget-item.theme-selected[type]::after {
1397 .tree-widget-item:-moz-locale-dir(rtl)::after {
1401 /*.theme-light .tree-widget-item.theme-selected[type]::after,*/
1402 .tree-widget-item[type]::after {
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;
1413 .tree-widget-item[type="dir"][expanded]:not([empty])::after {
1414 background-image: url("chrome://devtools/skin/images/filetypes/dir-open.svg");
1417 .tree-widget-item[type="url"]::after {
1418 background-image: url("chrome://devtools/skin/images/filetypes/globe.svg");
1419 background-size: auto 18px;