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/. */
6 /* === BEGIN widgets.inc.css === */
8 /* Generic pane helpers */
10 .generic-toggled-side-pane {
11 -moz-margin-start: 0px !important;
12 /* Unfortunately, transitions don't work properly with locale-aware properties,
13 so both the left and right margins are set via js, while the start margin
14 is always overridden here. */
17 .generic-toggled-side-pane[animated] {
18 transition: margin 0.25s ease-in-out;
21 /* BreacrumbsWidget */
23 .breadcrumbs-widget-container {
25 max-height: 25px; /* Set max-height for proper sizing on linux */
26 height: 25px; /* Set height to prevent starting small waiting for content */
27 /* A fake 1px-shadow is included in the border-images of the
28 breadcrumbs-widget-items, to match toolbar-buttons style.
29 This negative margin compensates the extra row of pixels created
36 background: transparent;
51 .scrollbutton-up > .toolbarbutton-icon,
52 .scrollbutton-down > .toolbarbutton-icon {
56 .scrollbutton-up:not([disabled]):active:hover > .toolbarbutton-icon,
57 .scrollbutton-down:not([disabled]):active:hover > .toolbarbutton-icon {
60 .scrollbutton-up[disabled] > .toolbarbutton-icon,
61 .scrollbutton-down[disabled] > .toolbarbutton-icon {
64 .scrollbutton-up:-moz-locale-dir(ltr) {
65 border-top-right-radius: 0;
66 border-bottom-right-radius: 0;
69 .scrollbutton-down:-moz-locale-dir(ltr) {
70 border-top-left-radius: 0;
71 border-bottom-left-radius: 0;
74 .scrollbutton-up:-moz-locale-dir(rtl) {
75 border-top-left-radius: 0;
76 border-bottom-left-radius: 0;
79 .scrollbutton-down:-moz-locale-dir(rtl) {
80 border-top-right-radius: 0;
81 border-bottom-right-radius: 0;
84 /* Draw shadows to indicate there is more content 'behind' scrollbuttons. */
86 .scrollbutton-up:-moz-locale-dir(ltr),
87 .scrollbutton-down:-moz-locale-dir(rtl) {
88 border-right: solid 1px rgba(255, 255, 255, .1);
89 border-left: solid 1px transparent;
90 box-shadow: 3px 0px 3px -3px #181d20;
93 .scrollbutton-down:-moz-locale-dir(ltr),
94 .scrollbutton-up:-moz-locale-dir(rtl) {
95 border-right: solid 1px transparent;
96 border-left: solid 1px rgba(255, 255, 255, .1);
97 box-shadow: -3px 0px 3px -3px #181d20;
100 .scrollbutton-up[disabled],
101 .scrollbutton-down[disabled] {
103 border-color: transparent;
107 .scrollbutton-up > .toolbarbutton-icon:-moz-locale-dir(rtl),
108 .scrollbutton-down > .toolbarbutton-icon:-moz-locale-dir(ltr) {
109 /* transform: scaleX(-1); */
112 /* The breadcrumb separator elements are used as background images with
113 * -moz-element, so we position them offscreen since we don't care about
114 * seeing the original elements.
116 .breadcrumb-separator-container {
122 #breadcrumb-separator-before,
123 #breadcrumb-separator-after,
124 #breadcrumb-separator-normal {
130 #breadcrumb-separator-before,
131 #breadcrumb-separator-after:after {
132 background: #9C9CFF; /* Select Highlight Blue */
135 #breadcrumb-separator-after,
136 #breadcrumb-separator-before:after {
137 background: #9C9CFF; /* Toolbars */
140 /* This chevron arrow cannot be replicated easily in CSS, so we are using
141 * a background image for it (still keeping it in a separate element so
142 * we can handle RTL support with a CSS transform).
144 #breadcrumb-separator-normal {
145 background: url("breadcrumbs-divider@2x.png") no-repeat center right;
146 background-size: 12px 24px;
149 /* Fake a triangle by rotating a rectangle inside the elements */
150 #breadcrumb-separator-before:after,
151 #breadcrumb-separator-after:after {
156 transform: translateX(-18px) rotate(45deg);
157 -moz-box-sizing: border-box;
160 .breadcrumbs-widget-item {
161 background-color: #000000;
165 padding: 0 8px 0 20px;
171 .breadcrumbs-widget-item:hover {
172 background-color: #FFCF00;
176 .breadcrumbs-widget-item[checked]:not(:hover) {
177 background-color: #008484;
181 .breadcrumbs-widget-item[siblings-menu-open],
182 .breadcrumbs-widget-item:active {
183 background-color: #FF9F00;
187 .breadcrumbs-widget-item:not([checked]) {
188 background: -moz-element(#breadcrumb-separator-normal) no-repeat center left;
191 .breadcrumbs-widget-item[checked] + .breadcrumbs-widget-item {
192 background: -moz-element(#breadcrumb-separator-after) no-repeat 0 0;
195 .breadcrumbs-widget-item[checked] {
196 background: -moz-element(#breadcrumb-separator-before) no-repeat 0 0;
197 background-color: #008484; /* Select Highlight Blue */
200 .breadcrumbs-widget-item:first-child {
201 background-image: none;
204 /* RTL support: move the images that were on the left to the right,
205 * and move images that were on the right to the left.
207 .breadcrumbs-widget-item:-moz-locale-dir(rtl) {
208 padding: 0 20px 0 8px;
211 .breadcrumbs-widget-item:-moz-locale-dir(rtl),
212 .breadcrumbs-widget-item[checked] + .breadcrumbs-widget-item:-moz-locale-dir(rtl) {
213 background-position: center right;
216 #breadcrumb-separator-before:-moz-locale-dir(rtl),
217 #breadcrumb-separator-after:-moz-locale-dir(rtl),
218 #breadcrumb-separator-normal:-moz-locale-dir(rtl) {
219 transform: scaleX(-1);
222 #breadcrumb-separator-before:-moz-locale-dir(rtl):after,
223 #breadcrumb-separator-after:-moz-locale-dir(rtl):after {
224 transform: translateX(-5px) rotate(45deg);
227 .breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-id,
228 .breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-tag,
229 .breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-pseudo-classes,
230 .breadcrumbs-widget-item[checked] .breadcrumbs-widget-item-classes {
231 color: #FF9F00; /* Foreground (Text) - Light */
234 .breadcrumbs-widget-item {
235 color: #FF9F00; /* Foreground (Text) - Light */
238 .breadcrumbs-widget-item-id {
239 color: #A09090; /* Foreground (Text) - Grey */
242 .breadcrumbs-widget-item-classes {
243 color: #FF9F00; /* Content (Text) - Light */
246 .breadcrumbs-widget-item-pseudo-classes {
247 color: #FFCF00; /* Light Orange */
250 /* SimpleListWidget */
252 .simple-list-widget-container {
253 /* Hack: force hardware acceleration */
254 transform: translateZ(1px);
257 .simple-list-widget-item.selected {
258 background-color: #008484; /* Select Highlight Blue */
259 color: #FFCF00; /* Light foreground text */
262 .simple-list-widget-item:not(.selected):hover {
263 background-color: #FFCF00;
267 .simple-list-widget-perma-text,
268 .simple-list-widget-empty-text {
275 .fast-list-widget-container {
276 /* Hack: force hardware acceleration */
277 transform: translateZ(1px);
280 /* dark/light theme */
281 .fast-list-widget-empty-text {
289 /* SideMenuWidget container */
291 .side-menu-widget-container {
292 /* Hack: force hardware acceleration */
293 transform: translateZ(1px);
295 background-color: #000000;
299 .side-menu-widget-container:-moz-locale-dir(ltr),
300 .side-menu-widget-empty-text:-moz-locale-dir(ltr) {
303 .side-menu-widget-container:-moz-locale-dir(rtl),
304 .side-menu-widget-empty-text:-moz-locale-dir(rtl)[with-arrows=true]:-moz-locale-dir(rtl) {
307 .side-menu-widget-group {
308 /* To allow visibility of the dark margin shadow. */
309 /* -moz-margin-end: 1px; */
312 .side-menu-widget-container[with-arrows=true] .side-menu-widget-item {
313 /* To compensate for the arrow image's dark margin. */
314 /* -moz-margin-end: -1px; */
317 /* SideMenuWidget groups */
319 .side-menu-widget-group-title {
322 background-color: #A09090;
326 /* SideMenuWidget items */
328 .side-menu-widget-item {
329 border-top: 1px solid #9C9CFF;
330 /* To compensate for the top and bottom borders */
333 background-clip: padding-box;
336 .side-menu-widget-item:last-of-type {
337 border-bottom: 1px solid #9C9CFF;
340 .side-menu-widget-item.selected {
341 background-color: #008484 !important;
345 .side-menu-widget-item-arrow {
346 -moz-margin-start: -7px;
347 width: 7px; /* The image's width is 7 pixels */
348 /* Cover the border of the side-menu-widget-item */
353 .side-menu-widget-item.selected > .side-menu-widget-item-arrow {
354 background-size: auto, 1px 100%;
355 background-repeat: no-repeat;
358 .side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(ltr) {
359 background-position: center right;
362 .side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(rtl) {
363 background-position: center left;
366 .side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(ltr) {
367 background-image: url("itemArrow-ltr.svg");
370 .side-menu-widget-item.selected > .side-menu-widget-item-arrow:-moz-locale-dir(rtl) {
371 background-image: url("itemArrow-rtl.svg");
374 /* SideMenuWidget items contents */
376 .side-menu-widget-item-contents {
378 /* To avoid having content overlapping the arrow image. */
379 -moz-padding-end: 8px;
382 .side-menu-widget-item-other {
383 /* To avoid having content overlapping the arrow image. */
384 -moz-padding-end: 8px;
385 /* To compensate for the .side-menu-widget-item-contents padding. */
386 -moz-margin-start: -4px;
387 -moz-margin-end: -8px;
389 background-color: #000000;
392 .side-menu-widget-item-other.selected {
393 background-color: #008484;
397 .side-menu-widget-item-other:first-of-type {
399 /* border-top-left-radius: 4px; */
402 .side-menu-widget-item-other:last-of-type {
406 .side-menu-widget-item-other:not(.selected) > label {
410 /* SideMenuWidget checkboxes */
412 .side-menu-widget-group-checkbox {
414 -moz-margin-end: 4px;
417 .side-menu-widget-item-checkbox {
419 -moz-margin-start: 4px;
420 -moz-margin-end: -4px;
423 /* SideMenuWidget misc */
425 .side-menu-widget-empty-text {
428 background-color: #000000;
435 .variables-view-container:not([empty]) {
436 /* Hack: force hardware acceleration */
437 transform: translateZ(1px);
440 .variables-view-empty-notice {
445 .variables-view-scope > .title {
446 background-color: #A09090;
450 /* Generic variables traits */
452 .variables-view-variable:not(:last-child) {
453 border-bottom: 1px solid #A09090;
456 .variables-view-variable > .title > .name {
460 /* Generic variables *and* properties traits */
462 .variable-or-property:focus > .title > label {
463 color: inherit !important;
466 .variable-or-property > .title > .value {
470 .variable-or-property > .title > .arrow {
471 -moz-margin-start: 3px;
474 .variable-or-property:not([untitled]) > .variables-view-element-details {
475 -moz-margin-start: 7px;
478 /* Traits applied when variables or properties are changed or overridden */
480 .variable-or-property:not([overridden]) {
481 transition: background 1s ease-in-out, color 1s ease-in-out;
484 .variable-or-property:not([overridden])[changed] {
486 transition-duration: .4s;
489 .variable-or-property[overridden] {
490 background: rgba(160,144,144,0.0.5);
493 .variable-or-property[overridden] .title > label {
494 /* Cross out the title for this variable and all child properties. */
496 text-decoration: line-through;
497 border-bottom: none !important;
502 /* Traits applied when variables or properties are editable */
504 .variable-or-property[editable] > .title > .value {
508 .variable-or-property[overridden] .title > .value {
509 /* Disallow editing this variable and all child properties. */
510 pointer-events: none;
513 /* Custom configurable/enumerable/writable or frozen/sealed/extensible
514 * variables and properties */
516 .variable-or-property[non-enumerable]:not([self]):not([pseudo-item]) > .title > .name {
520 .variable-or-property[non-configurable]:not([pseudo-item]) > .title > .name {
521 border-bottom: 1px dashed #9C9CFF;
524 .variable-or-property[non-writable]:not([pseudo-item]) > .title > .name {
525 border-bottom: 1px dashed #FF0000;
528 .variable-or-property[safe-getter]:not([pseudo-item]) > .title > .name {
529 border-bottom: 1px dashed #A09090;
532 .variable-or-property-non-writable-icon {
533 background: url("chrome://browser/skin/devtools/vview-lock.png") no-repeat;
539 @media (min-resolution: 2dppx) {
540 .variable-or-property-non-writable-icon > .title:after {
541 background-image: url("chrome://browser/skin/devtools/vview-lock@2x.png");
542 background-size: 32px;
546 .variable-or-property-frozen-label,
547 .variable-or-property-sealed-label,
548 .variable-or-property-non-extensible-label {
549 -moz-padding-end: 4px;
552 .variable-or-property:not(:focus) > .title > .variable-or-property-frozen-label,
553 .variable-or-property:not(:focus) > .title > .variable-or-property-sealed-label,
554 .variable-or-property:not(:focus) > .title > .variable-or-property-non-extensible-label {
560 .variables-view-container[aligned-values] .title > .separator {
564 .variables-view-container[aligned-values] .title > .value {
569 .variables-view-container[aligned-values] .title > .element-value-input {
570 width: calc(70vw - 10px);
575 .variables-view-container[actions-first] .variables-view-delete,
576 .variables-view-container[actions-first] .variables-view-open-inspector,
577 .variables-view-container[actions-first] .variables-view-add-property {
578 -moz-box-ordinal-group: 0;
581 .variables-view-container[actions-first] [invisible] {
585 /* Variables and properties tooltips */
587 .variable-or-property > tooltip > label {
591 .variable-or-property[non-enumerable] > tooltip > label.enumerable,
592 .variable-or-property[non-configurable] > tooltip > label.configurable,
593 .variable-or-property[non-writable] > tooltip > label.writable
594 .variable-or-property[non-extensible] > tooltip > label.extensible {
596 text-decoration: line-through;
599 .variable-or-property[overridden] > tooltip > label.overridden {
600 -moz-padding-start: 4px;
601 -moz-border-start: 1px dotted #9C9CFF;
604 .variable-or-property[safe-getter] > tooltip > label.WebIDL {
605 -moz-padding-start: 4px;
606 -moz-border-start: 1px dotted #9C9CFF;
610 /* Variables and properties editing */
612 .variables-view-delete {
613 list-style-image: url("chrome://browser/skin/devtools/vview-delete.png");
614 -moz-image-region: rect(0,16px,16px,0);
617 .variables-view-delete:hover {
618 -moz-image-region: rect(0,48px,16px,32px);
621 .variables-view-delete:active {
622 -moz-image-region: rect(0,32px,16px,16px);
625 .variable-or-property:focus .variables-view-delete {
626 /* -moz-image-region: rect(0,16px,16px,0); */
629 .variables-view-edit {
630 list-style-image: url("chrome://browser/skin/devtools/vview-edit.png");
631 -moz-image-region: rect(0,16px,16px,0);
636 .variables-view-edit:hover {
637 -moz-image-region: rect(0,48px,16px,32px);
640 .variables-view-edit:active {
641 -moz-image-region: rect(0,32px,16px,16px);
644 .variable-or-property:focus .variables-view-edit {
645 /* -moz-image-region: rect(0,16px,16px,0); */
648 .variables-view-open-inspector {
649 list-style-image: url("chrome://browser/skin/devtools/vview-open-inspector.png");
650 -moz-image-region: rect(0,16px,16px,0);
654 .variables-view-open-inspector:hover {
655 -moz-image-region: rect(0,48px,16px,32px);
658 .variables-view-open-inspector:active {
659 -moz-image-region: rect(0,32px,16px,16px);
662 .variable-or-property:focus .variables-view-open-inspector {
663 /* -moz-image-region: rect(0,16px,16px,0); */
666 .variables-view-throbber {
667 background: url("chrome://global/skin/icons/loading_16.png") center no-repeat;
672 .element-value-input {
673 -moz-margin-start: -2px !important;
674 -moz-margin-end: 2px !important;
677 .element-name-input {
678 -moz-margin-start: -2px !important;
679 -moz-margin-end: 2px !important;
683 .element-value-input,
684 .element-name-input {
685 border: 1px solid #008484 !important;
689 /* Variables and properties searching */
691 .variables-view-searchinput {
695 .variable-or-property[unmatched] {
700 /* Expand/collapse arrow */
703 background: url("chrome://global/skin/tree/twisty-closed.gif") center center no-repeat;
706 -moz-margin-start: 5px;
707 -moz-margin-end: 5px;
710 .variables-view-scope > .title > .arrow {
711 background-image: url("chrome://global/skin/tree/twisty-closed-selected.gif");
715 background-image: url("chrome://global/skin/tree/twisty-open.gif");
718 .variables-view-scope > .title > .arrow[open] {
719 background-image: url("chrome://global/skin/tree/twisty-open-selected.gif");
728 .generic-chart-container {
729 /* Hack: force hardware acceleration */
730 transform: translateZ(1px);
733 .generic-chart-container {
734 color: #A09090; /* Light foreground text */
737 .chart-colored-blob {
738 fill: #9C9CFF; /* Light content text */
753 .pie-chart-slice[largest] {
760 dominant-baseline: middle;
761 pointer-events: none;
768 .pie-chart-container[slices="1"] > .pie-chart-slice {
774 transition: all 0.1s ease-out;
777 .pie-chart-slice:not(:hover):not([focused]),
778 .pie-chart-slice:not(:hover):not([focused]) + .pie-chart-label {
779 transform: none !important;
785 padding-bottom: 10px;
795 .table-chart-grid:hover > .table-chart-row {
796 transition: opacity 0.1s ease-in-out;
799 .table-chart-grid:not(:hover) > .table-chart-row {
800 transition: opacity 0.2s ease-in-out;
803 .generic-chart-container:hover > .table-chart-grid:hover > .table-chart-row:not(:hover),
804 .generic-chart-container:hover ~ .table-chart-container > .table-chart-grid > .table-chart-row:not([focused]) {
808 .table-chart-row-box {
811 -moz-margin-end: 10px;
814 .table-chart-row-label {
816 -moz-padding-end: 6px;
820 .table-chart-totals {
825 .table-chart-totals {
826 border-top: 1px solid #A09090; /* Grey foreground text */
829 .table-chart-summary-label {
834 .table-chart-summary-label {
835 color: #A09090; /* Light foreground text */
838 /* === BEGIN manifest-editor.inc.css === */
840 /* Manifest Editor overrides */
842 .variables-view-container.manifest-editor {
843 background-color: #000000;
847 .manifest-editor .variable-or-property:focus > .title {
848 /* background-color: #EDEDED;
853 .manifest-editor .variables-view-property > .title > .name {
854 /* color: #27406A; */
857 .manifest-editor .variable-or-property > .title > label,
858 .manifest-editor textbox {
859 font-family: monospace;
862 .manifest-editor .variable-or-property > .title > .token-string {
863 /* color: #54BC6A; */
867 .manifest-editor .variable-or-property > .title > .token-boolean,
868 .manifest-editor .variable-or-property > .title > .token-number {
869 /* color: #009BD4; */
873 .manifest-editor .variable-or-property > .title > .token-undefined {
877 .manifest-editor .variable-or-property > .title > .token-null {
881 .manifest-editor .variable-or-property > .title > .token-other {
885 .manifest-editor .variables-view-variable {
889 .manifest-editor .variables-view-delete,
890 .manifest-editor .variables-view-delete:hover,
891 .manifest-editor .variables-view-delete:active,
892 .manifest-editor .variable-or-property:focus .variables-view-delete,
893 .manifest-editor .variables-view-add-property:hover,
894 .manifest-editor .variables-view-add-property:active,
895 .manifest-editor .variable-or-property:focus .variables-view-add-property {
896 list-style-image: none;
897 -moz-image-region: initial;
900 .manifest-editor .variables-view-delete::before,
901 .manifest-editor .variables-view-add-property::before {
905 display: inline-block;
906 background-size: 11px auto;
909 .manifest-editor .variables-view-delete::before {
910 background-image: url("app-manager/remove.svg");
911 background-size: 12px auto;
914 .manifest-editor .variables-view-add-property::before {
915 background-image: url("app-manager/add.svg");
916 -moz-margin-end: 2px;
919 /* === END manifest-editor.inc.css === */
921 /* === END widgets.inc.css === */