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 /* CSS Variables specific to the devtools toolbar that aren't defined by the themes */
10 --toolbar-tab-hover: #FFCF00;
11 --toolbar-tab-hover-active: #FF9F00;
12 --searchbox-background-color: #000000;
13 --searchbox-border-color: #9C9CFF;
14 --searcbox-no-match-background-color: #400000;
15 --searcbox-no-match-border-color: #FF0000;
16 --magnifying-glass-image: url(images/magnifying-glass-light.png);
17 --magnifying-glass-image-2x: url(images/magnifying-glass-light@2x.png);
18 --tool-options-image: url(images/tool-options.svg);
19 --close-button-image: url(chrome://devtools/skin/images/close.svg);
20 --icon-filter: invert(1);
21 --dock-bottom-image: url(chrome://devtools/skin/images/dock-bottom.svg);
22 --dock-side-image: url(chrome://devtools/skin/images/dock-side.svg);
23 --dock-undock-image: url(chrome://devtools/skin/images/dock-undock.svg);
24 --toolbar-button-border-color: #A09090;
27 --command-paintflashing-image: url(images/command-paintflashing.svg);
28 --command-screenshot-image: url(images/command-screenshot.svg);
29 --command-responsive-image: url(images/command-responsivemode.svg);
30 --command-scratchpad-image: url(images/command-scratchpad.svg);
31 --command-pick-image: url(images/command-pick.svg);
32 --command-frames-image: url(images/command-frames.svg);
33 --command-splitconsole-image: url(images/command-console.svg);
34 --command-noautohide-image: url(images/command-noautohide.svg);
35 --command-eyedropper-image: url(images/command-eyedropper.svg);
36 --command-rulers-image: url(images/command-rulers.svg);
37 --command-measure-image: url(images/command-measure.svg);
42 .devtools-sidebar-tabs tabs {
48 .devtools-toolbar checkbox {
49 /* LCARStrek checkbox colors don't work well against toolbar background */
50 background-color: var(--theme-toolbar-background);
52 line-height: -moz-block-height;
54 .devtools-toolbar checkbox .checkbox-check {
56 .devtools-toolbar checkbox .checkbox-label-box {
58 .devtools-toolbar checkbox .checkbox-label-box .checkbox-label {
64 .devtools-toolbarbutton,
69 .devtools-toolbarbutton {
72 .devtools-menulist:-moz-focusring,
73 .devtools-toolbarbutton:-moz-focusring,
74 .devtools-button:-moz-focusring {
75 outline: 1px dotted var(--theme-selection-color);
78 .devtools-toolbarbutton:not([label]) > .toolbarbutton-icon,
79 .devtools-button::before {
82 /* transition: opacity 0.05s ease-in-out;*/
90 background: var(--theme-toolbar-background);
91 color: var(--theme-body-color);
92 /* The icon is absolutely positioned in the button using ::before */
96 .devtools-button:not([disabled]):hover {
97 background: var(--theme-hover-background);
98 color: var(--theme-hover-color);
101 .devtools-button:not([disabled]):hover:active {
102 background: var(--theme-active-background);
103 color: var(--theme-active-color);
106 /* Menu type buttons and checked states */
107 .devtools-button[checked] {
108 background: var(--theme-selection-background);
109 color: var(--theme-selection-color);
112 .devtools-button::before {
118 margin: -8px 0 0 -8px;
119 background-size: cover;
120 background-repeat: no-repeat;
121 /* transition: opacity 0.05s ease-in-out;*/
124 /* Standalone buttons */
125 .devtools-button[standalone],
126 .devtools-button[data-standalone],
127 .devtools-toolbarbutton[standalone],
128 .devtools-toolbarbutton[data-standalone] {
130 /* min-height: 32px; */
131 background-color: var(--theme-button-background);
134 .devtools-toolbarbutton[standalone], .devtools-toolbarbutton[data-standalone] {
137 .devtools-toolbarbutton[label][standalone] {
141 .devtools-toolbarbutton,
145 /* Icon button styles */
146 .devtools-toolbarbutton:not([label]),
147 .devtools-toolbarbutton[text-as-image] {
151 #toolbox-buttons .devtools-toolbarbutton[text-as-image] {
152 -moz-padding-start: 5px;
153 -moz-padding-end: 5px;
157 #toolbox-buttons .devtools-toolbarbutton[type=menu] > .toolbarbutton-menu-dropmarker {
161 .devtools-toolbarbutton:not([label]) > .toolbarbutton-text {
165 .devtools-toolbar .devtools-toolbarbutton {
166 -moz-margin-start: 2px;
169 .devtools-toolbarbutton > .toolbarbutton-icon {
172 /* Menu button styles (eg. web console filters) */
173 .devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-button {
174 /* -moz-box-orient: horizontal; */
177 .devtools-toolbarbutton[type=menu-button] {
180 .devtools-toolbarbutton > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
183 .devtools-menulist > .menulist-dropmarker {
186 .devtools-toolbarbutton[type=menu] > .toolbarbutton-menu-dropmarker,
187 .devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-dropmarker {
190 /* Icon-only buttons */
191 .devtools-button:empty::before,
192 .devtools-toolbarbutton:not([label]):not([disabled]) > image {
196 .devtools-button:hover:empty::before,
197 .devtools-button[checked]:empty::before,
198 .devtools-button[open]:empty::before,
199 .devtools-toolbarbutton:not([label]):hover > image,
200 .devtools-toolbarbutton:not([label])[checked=true] > image,
201 .devtools-toolbarbutton:not([label])[open=true] > image {
205 .devtools-button:disabled,
206 .devtools-button[disabled],
207 .devtools-toolbarbutton[disabled] {
208 /* opacity: 0.5 !important;*/
211 .devtools-button[checked]:empty::before,
212 .devtools-button[open]:empty::before,
213 .devtools-toolbarbutton:not([label]):hover > image,
214 .devtools-toolbarbutton:not([label]):hover:active > image,
215 .devtools-toolbarbutton:not([label])[checked=true] > image,
216 .devtools-toolbarbutton:not([label])[open=true] > image {
217 filter: url(images/filters.svg#checked-icon-state);
220 /* Icon-and-text buttons */
221 .devtools-toolbarbutton.icon-and-text .toolbarbutton-text {
222 margin-inline-start: .5em !important;
226 /* Text-only buttons */
227 .devtools-toolbarbutton[label]:not([text-as-image]):not([type=menu-button]),
228 .devtools-toolbarbutton[data-text-only],
229 #toolbox-buttons .devtools-toolbarbutton[text-as-image] {
230 /* background-color: rgba(0, 0, 0, .2); / Splitter */
233 /* Text-only button states */
234 .devtools-button:not(:empty):not([disabled]):hover,
235 #toolbox-buttons .devtools-toolbarbutton:not([disabled])[text-as-image]:hover,
236 .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover {
237 /* background: rgba(0, 0, 0, .3); / Splitters */
240 .devtools-button:not(:empty):not([disabled]):hover:active,
241 #toolbox-buttons .devtools-toolbarbutton:not([disabled])[text-as-image]:hover:active,
242 .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover:active {
243 /* background: rgba(0, 0, 0, .4); / Splitters */
246 .devtools-toolbarbutton:not([disabled])[label][checked=true],
247 .devtools-toolbarbutton:not([disabled])[label][open],
248 .devtools-button:not(:empty)[checked=true],
249 #toolbox-buttons .devtools-toolbarbutton[text-as-image][checked=true] {
250 /* background: rgba(29, 79, 115, .7); / Select highlight blue /
251 color: var(--theme-selection-color); */
254 .devtools-menulist[open=true],
255 .devtools-toolbarbutton[open=true],
256 .devtools-toolbarbutton[open=true]:hover,
257 .devtools-toolbarbutton[open=true]:hover:active,
258 .devtools-toolbarbutton[checked=true],
259 .devtools-toolbarbutton[checked=true]:hover,
260 #toolbox-buttons .devtools-toolbarbutton[text-as-image][checked] {
261 /* background: rgba(29, 79, 115, .8); / Select highlight blue /
262 color: var(--theme-selection-color); */
266 --clear-icon-url: url("chrome://devtools/skin/images/clear.svg");
269 .devtools-button.devtools-clear-icon::before {
270 background-image: var(--clear-icon-url);
273 .devtools-toolbarbutton.devtools-clear-icon {
274 list-style-image: var(--clear-icon-url);
277 .devtools-option-toolbarbutton {
278 list-style-image: var(--tool-options-image);
281 .devtools-toolbarbutton-group > .devtools-toolbarbutton:last-child {
284 .devtools-toolbarbutton-group + .devtools-toolbarbutton {
287 .devtools-separator + .devtools-toolbarbutton {
293 .devtools-searchinput {
294 /* -moz-appearance: none;
299 border-color: var(--theme-splitter-color);*/
302 :root[platform="mac"] .devtools-textinput,
303 :root[platform="mac"] .devtools-searchinput {
304 /* border-radius: 20px;*/
307 .devtools-searchinput {
311 -moz-padding-start: 22px;
312 -moz-padding-end: 4px;
313 background-image: var(--magnifying-glass-image);
314 background-position: 8px center;
315 background-size: 11px 11px;
316 background-repeat: no-repeat;
320 .devtools-searchinput:-moz-locale-dir(rtl),
321 .devtools-searchinput:-moz-dir(rtl) {
322 background-position: calc(100% - 8px) center;
325 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-icon {
329 /* Searchbox is a div container element for a search input element */
330 .devtools-searchbox {
336 /* The spacing is accomplished with a padding on the searchbox */
337 .devtools-searchbox > .devtools-textinput,
338 .devtools-searchbox > .devtools-searchinput {
341 /* Don't add 'double spacing' for inputs that are at beginning / end
342 of a toolbar (since the toolbar has it's own spacing). */
343 .devtools-toolbar > .devtools-textinput:first-child,
344 .devtools-toolbar > .devtools-searchinput:first-child {
346 .devtools-toolbar > .devtools-textinput:last-child,
347 .devtools-toolbar > .devtools-searchinput:last-child {
349 .devtools-toolbar > .devtools-searchbox:first-child {
351 .devtools-toolbar > .devtools-searchbox:last-child {
354 .devtools-rule-searchbox {
360 .devtools-rule-searchbox[filled] {
361 background-color: var(--searchbox-background-color);
362 border-color: var(--searchbox-border-color);
363 -moz-padding-end: 23px;
366 .devtools-style-searchbox-no-match {
367 background-color: var(--searcbox-no-match-background-color) !important;
368 border-color: var(--searcbox-no-match-border-color) !important;
371 .devtools-no-search-result {
372 border-color: var(--theme-highlight-red) !important;
375 .devtools-searchinput-clear {
383 background-position: 0 0;
384 background-repeat: no-repeat;
385 background-color: transparent;
388 .devtools-searchinput-clear:-moz-dir(rtl) {
393 .devtools-searchinput-clear {
394 background-image: url("chrome://devtools/skin/images/search-clear.svg");
397 .devtools-style-searchbox-no-match + .devtools-searchinput-clear {
398 background-image: url("chrome://devtools/skin/images/search-clear-failed.svg") !important;
401 .devtools-searchinput-clear:hover {
402 background-position: -16px 0;
405 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
406 list-style-image: url("chrome://devtools/skin/images/search-clear.svg");
407 -moz-image-region: rect(0, 16px, 16px, 0);
410 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
413 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear:hover {
414 -moz-image-region: rect(0, 32px, 16px, 16px);
417 @media (min-resolution: 1.1dppx) {
418 .devtools-searchinput {
419 background-image: var(--magnifying-glass-image-2x);
425 .devtools-closebutton {
430 #toolbox-close::before,
431 .devtools-closebutton > image {
434 -moz-appearance: none;
435 background-size: cover;
436 background-image: var(--close-button-image);
437 background-position: center center;
438 background-repeat: no-repeat;
441 .devtools-closebutton > .toolbarbutton-icon {
442 /* XXX Buttons have padding in widget/ that we don't want here but can't override with good CSS, so we must
443 use evil CSS to give the impression of smaller content */
446 .devtools-closebutton > .toolbarbutton-text {
450 /* In-tools sidebar */
452 .devtools-sidebar-tabs {
455 .devtools-sidebar-tabs > tabpanels {
460 .devtools-sidebar-tabs tabs {
465 .devtools-sidebar-alltabs {
466 /* -moz-appearance: none;
471 border-width: 0 0 1px 0;
472 -moz-border-start-width: 1px;
473 border-style: solid;*/
476 .devtools-sidebar-alltabs .toolbarbutton-icon {
480 .devtools-sidebar-tabs tabs > .tabs-right,
481 .devtools-sidebar-tabs tabs > .tabs-left {
485 .devtools-sidebar-tabs tabs > tab {
493 .devtools-sidebar-tabs tabs > tab:-moz-focusring {
497 .devtools-sidebar-tabs tabs > tab:first-of-type {
498 -moz-margin-start: 0;
501 .devtools-sidebar-tabs tabs > tab:last-of-type {
502 -moz-border-end-width: 0;
505 .devtools-sidebar-tabs tabs > tab {
508 .devtools-sidebar-tabs tabs > tab[selected],
509 .devtools-sidebar-tabs tabs > tab[selected] + tab {
512 .devtools-sidebar-tabs tabs > tab:first-child {
515 .devtools-sidebar-tabs tabs > tab:hover {
518 .devtools-sidebar-tabs tabs > tab:hover:active {
521 .devtools-sidebar-tabs tabs > tab[selected],
522 .devtools-sidebar-tabs tabs > tab[selected]:hover:active {
525 /* Toolbox - moved from toolbox.css.
526 * Rules that apply to the global toolbox like command buttons,
527 * devtools tabs, docking buttons, etc. */
529 #toolbox-controls > toolbarbutton,
530 #toolbox-dock-buttons > toolbarbutton {
531 -moz-user-focus: normal;
536 #toolbox-dock-buttons > toolbarbutton > image {
539 background-size: 16px 16px;
540 background-position: 0 center;
541 background-repeat: no-repeat;
544 #toolbox-dock-bottom::before,
545 #toolbox-dock-bottom > image {
546 background-image: var(--dock-bottom-image);
549 #toolbox-dock-side::before,
550 #toolbox-dock-side > image {
551 background-image: var(--dock-side-image);
554 #toolbox-dock-window::before,
555 #toolbox-dock-window > image {
556 background-image: var(--dock-undock-image);
559 #toolbox-dock-bottom-minimize {
560 /* Bug 1177463 - The minimize button is currently hidden until we agree on
561 the UI for it, and until bug 1173849 is fixed too. */
565 #toolbox-dock-bottom-minimize > image {
566 background-image: url("chrome://devtools/skin/images/dock-bottom-minimize@2x.png");
569 #toolbox-dock-bottom-minimize.minimized > image {
570 background-image: url("chrome://devtools/skin/images/dock-bottom-maximize@2x.png");
573 #toolbox-dock-window,
574 #toolbox-dock-bottom,
578 #toolbox-dock-window:hover,
579 #toolbox-dock-bottom:hover,
580 #toolbox-dock-side:hover {
583 .devtools-separator {
588 #toolbox-buttons:empty + .devtools-separator,
589 .devtools-separator[invisible] {
593 #toolbox-controls-separator {
598 /* Command buttons */
600 .toolbox-dock-button,
602 -moz-appearance: none;
604 /* padding: 0 8px; */
608 -moz-user-focus: normal;
611 .command-button:hover {
612 /* background-color: var(--toolbar-tab-hover); */
614 .command-button:hover:active, .command-button[checked=true]:not(:hover) {
615 /* background-color: var(--toolbar-tab-hover-active) */
618 #command-button-frames {
622 #toolbox-close::before,
623 .toolbox-dock-button::before,
624 .command-button::before,
625 .command-button > image {
628 background-size: cover;
629 background-position: 0 center;
630 background-repeat: no-repeat;
633 #toolbox-close:hover::before,
634 #toolbox-close:hover:active::before,
635 .toolbox-dock-button:hover::before,
636 .toolbox-dock-button:hover:active::before,
637 .command-button:hover::before,
638 .command-button:hover:active::before,
639 .command-button[checked=true]::before,
640 .command-button[open=true]::before,
641 .command-button:hover > image,
642 .command-button:hover:active > image,
643 .command-button[checked=true] > image,
644 .command-button[open=true] > image {
645 filter: url(images/filters.svg#checked-icon-state);
648 /* Toolbox buttons images */
650 #command-button-paintflashing > image,
651 #command-button-paintflashing::before {
652 background-image: var(--command-paintflashing-image);
655 #command-button-screenshot > image,
656 #command-button-screenshot::before {
657 background-image: var(--command-screenshot-image);
660 #command-button-responsive > image,
661 #command-button-responsive::before {
662 background-image: var(--command-responsive-image);
665 #command-button-scratchpad > image,
666 #command-button-scratchpad::before {
667 background-image: var(--command-scratchpad-image);
670 #command-button-pick > image,
671 #command-button-pick::before {
672 background-image: var(--command-pick-image);
675 #command-button-frames > image,
676 #command-button-frames::before {
677 background-image: var(--command-frames-image);
680 #command-button-splitconsole > image,
681 #command-button-splitconsole::before {
682 background-image: var(--command-splitconsole-image);
685 #command-button-noautohide > image,
686 #command-button-noautohide::before {
687 background-image: var(--command-noautohide-image);
690 #command-button-eyedropper > image,
691 #command-button-eyedropper::before {
692 background-image: var(--command-eyedropper-image);
695 #command-button-rulers > image,
696 #command-button-rulers::before {
697 background-image: var(--command-rulers-image);
700 #command-button-measure > image,
701 #command-button-measure::before {
702 background-image: var(--command-measure-image);
711 padding-inline-start: 3px;
712 margin-inline-start: 2px; /* this is only needed for the old button design */
713 margin-inline-end: 3px; /* this is for the new ::before-based button design */
714 background-color: #000000;
721 visibility: collapse;
724 .toolbox-panel[selected] {
733 -moz-margin-end: 3px;
735 -moz-padding-start: 3px;
736 background-color: #C09070;
737 border-radius: 8px 8px 0 0;
740 .devtools-tab > image {
742 /* margin-inline-start: 4px; */
744 width: 16px; /* Prevents collapse during theme switching */
747 .devtools-tab > label {
752 .devtools-tab:hover > image {
755 .devtools-tab:active > image,
756 .devtools-tab[selected] > image {
760 .devtools-tab:hover:active {
761 background-color: var(--theme-hover-background);
762 color: var(--theme-hover-color);
765 .devtools-tab[selected] {
766 background-color: var(--theme-selection-background);
767 color: var(--theme-selection-color);
770 .devtools-tab > spacer {
775 .devtools-tab > image {
777 -moz-margin-start: 0;
780 #toolbox-picker-container {
781 margin-inline-start: 1px;
784 #toolbox-option-container {
785 background-color: #000000;
786 padding-inline-start: 3px;
787 margin-inline-end: 1px;
790 #toolbox-tab-options {
794 #toolbox-tab-options > image {
795 -moz-margin-end: 3px;
798 .devtools-tab:not([highlighted]) > .highlighted-icon,
799 .devtools-tab[selected] > .highlighted-icon,
800 .devtools-tab:not([selected])[highlighted] > .default-icon {
801 visibility: collapse;
804 .devtools-tab:not([selected])[highlighted] {
807 .devtools-tab:not([selected])[highlighted] {
811 .devtools-tab:not([highlighted]) > .highlighted-icon,
812 .devtools-tab[selected] > .highlighted-icon,
813 .devtools-tab:not([selected])[highlighted] > .default-icon {
814 visibility: collapse;
817 /* The options tab is special - it doesn't have the same parent
818 as the other tabs (toolbox-option-container vs toolbox-tabs) */
819 #toolbox-option-container .devtools-tab:not([selected]) {
820 /* background-color: transparent;*/
822 #toolbox-option-container .devtools-tab {
823 /* border-color: transparent;
825 -moz-padding-start: 1px;*/
827 #toolbox-tab-options > image {
831 .hidden-labels-box:not(.visible) > label,
832 .hidden-labels-box.visible ~ .hidden-labels-box > label:last-child {
836 .devtools-horizontal-splitter {
837 /* border-bottom: 1px solid var(--theme-splitter-color); */
840 .devtools-side-splitter {
841 /* -moz-border-end: 1px solid var(--theme-splitter-color);
842 border-color: var(--theme-splitter-color); / Needed for responsive container at low width. */
845 .devtools-invisible-splitter {
846 border-color: transparent;
847 background-color: transparent;
852 .devtools-throbber::before {
854 display: inline-block;
855 vertical-align: bottom;
856 -moz-margin-end: 0.5em;
859 border: 2px solid currentColor;
860 border-right-color: transparent;
862 animation: 1.1s linear throbber-spin infinite;
865 @keyframes throbber-spin {
870 transform: rotate(360deg);