make devtools toolbar and options work in current nightly
[themes.git] / LCARStrek / devtools / toolbars.css
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 /* CSS Variables specific to the devtools toolbar that aren't defined by the themes */
7 .theme-light,
8 .theme-dark,
9 .theme-firebug {
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/search.svg);
17   --filter-image: url(images/filter.svg);
18   --tool-options-image: url(images/tool-options-tbutton.svg);
19   --icon-filter: invert(1);
20   --checked-icon-filter: url(images/filters.svg#checked-icon-state);
21   --toolbar-button-border-color: #A09090;
22 }
23
24 /* Toolbars */
25 .devtools-toolbar,
26 .devtools-sidebar-tabs tabs {
27   padding: 0;
28   border-width: 0;
29 /*  border-bottom-width: 1px;*/
30   border-style: solid;
31 /*  height: 24px;
32   line-height: 24px;*/
33   box-sizing: border-box;
34   font: 11px "Liberation Sans",Arial,Tahoma,Helvetica,sans-serif;
35 }
36 .devtools-toolbar {
37   height: 24px;
38 }
39
40 .devtools-toolbar {
41   border-bottom: 3px solid var(--theme-body-background);
42 }
43
44 .devtools-toolbar checkbox {
45   /* LCARStrek checkbox colors don't work well against toolbar background */
46   background-color: var(--theme-toolbar-background);
47   padding: 2px;
48   line-height: -moz-block-height;
49 }
50 .devtools-toolbar checkbox .checkbox-check {
51 }
52 .devtools-toolbar checkbox .checkbox-label-box {
53 }
54 .devtools-toolbar checkbox .checkbox-label-box .checkbox-label {
55 }
56
57 /* HTML Checkboxes - a lot copied from global/in-content/common.css */
58 /* Hide the actual checkbox */
59 input[type="checkbox"] {
60   opacity: 0;
61   width: 0;
62   pointer-events: none;
63   position: absolute;
64 }
65
66 label > input[type="checkbox"] { /* old placement of checkbox in label, undo above */
67   opacity: 1;
68   width: auto;
69   pointer-events: auto;
70   position: static;
71 }
72
73 /* Create a box to style as the checkbox */
74 input[type="checkbox"] + label::before {
75   display: inline-block;
76   content: "";
77   vertical-align: middle;
78 }
79
80 .devtools-searchbox + #browser-style-checkbox-label, /* workaround for old placement of checkbox in label */
81 input[type="checkbox"] + label {
82   line-height: 0px;
83   color: var(--theme-capped-toolbar-text);
84 }
85
86 input[type="checkbox"] + label::before {
87   -moz-appearance: none;
88   width: 13px;
89   height: 13px;
90   border-radius: 0;
91   border: 1px solid var(--theme-body-color);
92   margin-inline-end: 3px;
93   margin-inline-start: 2px;
94   background-color: var(--theme-toolbar-background);
95   background-position: center center;
96   background-repeat: no-repeat;
97 }
98
99 input[type="checkbox"]:not(:disabled) + label:hover::before {
100   border-color: var(--theme-hover-background);
101 }
102 .devtools-searchbox + #browser-style-checkbox-label:hover, /* workaround for old placement of checkbox in label */
103 input[type="checkbox"]:not(:disabled) + label:hover {
104   color: var(--theme-hover-background);
105 }
106 input[type="checkbox"]:checked + label::before {
107   background-image: url("chrome://global/skin/in-content/check.svg#check");
108 }
109
110 input[type="checkbox"]:checked:disabled + label::before {
111   background-image: url("chrome://global/skin/in-content/check.svg#check-disabled");
112 }
113 input[type="checkbox"]:checked:not(:disabled) + label:hover::before {
114   background-image: url("chrome://global/skin/in-content/check.svg#check-hover");
115 }
116 input[type="checkbox"]:disabled + label::before {
117   border-color: var(--theme-body-color-inactive);
118 }
119 input[type="checkbox"]:disabled + label {
120   color: var(--theme-body-color-inactive);
121 }
122
123 .devtools-separator {
124   margin: 0 2px;
125   width: 2px;
126   background-image: linear-gradient(transparent 15%, var(--theme-splitter-color) 15%, var(--theme-splitter-color) 85%, transparent 85%);
127   background-size: 1px 100%;
128   background-repeat: no-repeat;
129   background-position: 0, 1px, 2px;
130 }
131
132 /* HTML toolbars - style them LCARStrek-like */
133
134 div.devtools-toolbar,
135 div.devtools-tabbar {
136   background-size: calc(100% - 30px);
137   background-image: linear-gradient(90deg, var(--theme-capped-toolbar-background), var(--theme-capped-toolbar-background));
138   background-repeat: no-repeat;
139   background-position: center center;
140   display: flex;
141 }
142
143 div.devtools-toolbar::before,
144 div.devtools-toolbar::after,
145 div.devtools-tabbar::before,
146 div.devtools-tabbar::after {
147   display: flex;
148   content: "";
149   width: 12px;
150   min-height: 16px;
151   background-color: var(--theme-toolbar-caps);
152 }
153
154 div.devtools-toolbar::before,
155 div.devtools-tabbar::before {
156   border-radius: 8px 0px 0px 8px;
157   border: none;
158   border-inline-end: 3px solid black;
159   margin-inline-end: 2px;
160 }
161
162 div.devtools-toolbar::after,
163 div.devtools-tabbar::after {
164   border-radius: 0px 8px 8px 0px;
165   border: none;
166   border-inline-start: 3px solid black;
167   margin-inline-start: auto; /* originally 2px, but auto makes us able to get flexible free space */
168 }
169
170 /* Toolbar buttons */
171
172 .devtools-menulist,
173 .devtools-toolbarbutton,
174 .devtools-button {
175 }
176
177 .devtools-menulist,
178 .devtools-toolbarbutton {
179 }
180
181 .devtools-toolbarbutton:not([label]) > .toolbarbutton-icon,
182 .devtools-button::before {
183   width: 16px;
184   height: 16px;
185 /*  transition: opacity 0.05s ease-in-out;*/
186 }
187
188 /* HTML buttons */
189 .devtools-button {
190   margin: 0;
191   padding: 0;
192   border: none;
193   border-radius: 3px;
194   min-width: 18px;
195   height: 100%;
196   margin-inline-start: 2px;
197   background: var(--theme-toolbar-background);
198   color: var(--theme-body-color);
199   /* The icon is absolutely positioned in the button using ::before */
200   position: relative;
201 }
202
203 .devtools-button:not([disabled]):hover {
204   background: var(--theme-hover-background);
205   color: var(--theme-hover-color);
206 }
207
208 .devtools-button:not([disabled]):hover:active {
209   background: var(--theme-active-background);
210   color: var(--theme-active-color);
211 }
212
213 /* Menu type buttons and checked states */
214 .devtools-button[checked],
215 .devtools-button.checked {
216   background: var(--theme-selection-background);
217   color: var(--theme-selection-color);
218 }
219
220 .devtools-button::before {
221   content: "";
222   display: block;
223   position: absolute;
224   left: 50%;
225   top: 50%;
226   margin: -8px 0 0 -8px;
227 /*  background-size: cover;
228   background-repeat: no-repeat;*/
229 /*  transition: opacity 0.05s ease-in-out;*/
230 }
231
232 .devtools-button:-moz-focusring {
233   outline: none;
234 }
235
236 /* Standalone buttons */
237 .devtools-button[standalone],
238 .devtools-button[data-standalone],
239 .devtools-toolbarbutton[standalone],
240 .devtools-toolbarbutton[data-standalone],
241 .menu-filter-button {
242   border: none;
243 /*  min-height: 32px; */
244   font: inherit;
245   background-color: var(--theme-button-background);
246   color: var(--theme-button-color);
247   border-radius: 300px;
248 }
249
250 .devtools-button[standalone]:hover,
251 .devtools-button[data-standalone]:hover,
252 .devtools-toolbarbutton[standalone]:hover,
253 .devtools-toolbarbutton[data-standalone]:hover,
254 .menu-filter-button:hover {
255   background-color: var(--theme-hover-background);
256   color: var(--theme-hover-color);
257 }
258
259 .devtools-button[standalone]:hover:active,
260 .devtools-button[data-standalone]:hover:active,
261 .devtools-toolbarbutton[standalone]:hover:active,
262 .devtools-toolbarbutton[data-standalone]:hover:active,
263 .menu-filter-button:hover:active {
264   background-color: var(--theme-active-background);
265   color: var(--theme-active-color);
266 }
267
268 .menu-filter-button.checked {
269   background: var(--theme-selection-background);
270   color: var(--theme-selection-color);
271 }
272
273 .menu-filter-button + .menu-filter-button {
274   margin-inline-start: 2px;
275 }
276
277 .devtools-toolbarbutton[standalone], .devtools-toolbarbutton[data-standalone] {
278 }
279
280 .devtools-toolbarbutton[label][standalone] {
281 }
282
283 .devtools-menulist,
284 .devtools-toolbarbutton,
285 .devtools-button {
286   min-height: 18px;
287 }
288
289 /* Icon button styles */
290 .devtools-toolbarbutton:not([label]),
291 .devtools-toolbarbutton[text-as-image] {
292   min-width: 16px;
293 }
294
295 /* Set flex attribute to Toolbox buttons and Picker container so,
296    they don't overlapp with the tab bar */
297 #toolbox-buttons {
298   display: flex;
299 }
300
301 #toolbox-picker-container {
302   display: flex;
303   margin-inline-start: 1px;
304 }
305
306 .devtools-toolbarbutton:not([label]) > .toolbarbutton-text {
307   display: none;
308 }
309
310 .devtools-toolbar .devtools-toolbarbutton {
311   margin-inline-start: 2px;
312 }
313
314 .devtools-toolbarbutton > .toolbarbutton-icon {
315 }
316
317 /* Menu button styles (eg. web console filters) */
318 .devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-button {
319 /*  -moz-box-orient: horizontal; */
320 }
321
322 .devtools-toolbarbutton[type=menu-button] {
323 }
324
325 .devtools-toolbarbutton > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
326 }
327
328 .devtools-menulist > .menulist-dropmarker {
329 }
330
331 .devtools-toolbarbutton[type=menu] > .toolbarbutton-menu-dropmarker,
332 .devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-dropmarker {
333 }
334
335 /* Icon-only buttons */
336 .devtools-button:empty::before,
337 .devtools-toolbarbutton:not([label]):not([disabled]) > image {
338 /*  opacity: 0.8;*/
339 }
340
341 .devtools-button:hover:empty::before,
342 .devtools-button[checked]:empty::before,
343 .devtools-button[open]:empty::before,
344 .devtools-toolbarbutton:not([label]):hover > image,
345 .devtools-toolbarbutton:not([label])[checked=true] > image,
346 .devtools-toolbarbutton:not([label])[open=true] > image {
347 /*  opacity: 1;*/
348 }
349
350 .devtools-button:disabled,
351 .devtools-button[disabled],
352 .devtools-toolbarbutton[disabled] {
353 /*  opacity: 0.5 !important;*/
354 }
355
356 .devtools-button[standalone]::before,
357 .devtools-button[data-standalone]::before,
358 .devtools-button:not([disabled]):hover::before,
359 .devtools-button:not([disabled]):hover:active::before,
360 .devtools-button[checked]:empty::before,
361 .devtools-button[open]:empty::before,
362 .devtools-toolbarbutton[standalone] > image,
363 .devtools-toolbarbutton[data-standalone] > image,
364 .devtools-toolbarbutton:not([disabled]):hover > image,
365 .devtools-toolbarbutton:not([disabled]):hover:active > image,
366 .devtools-toolbarbutton[checked=true] > image,
367 .devtools-toolbarbutton[open=true] > image {
368   filter: var(--checked-icon-filter);
369 }
370
371 .devtools-button[disabled]::before,
372 .devtools-toolbarbutton[disabled] > image {
373   filter: url(images/filters.svg#disabled-icon-state);
374 }
375
376 /* Icon-and-text buttons */
377 .devtools-toolbarbutton.icon-and-text .toolbarbutton-text {
378   margin-inline-start: .5em !important;
379   font-weight: 600;
380 }
381
382 /* Text-only buttons */
383 .devtools-toolbarbutton[label]:not([text-as-image]):not([type=menu-button]),
384 .devtools-toolbarbutton[data-text-only],
385 #toolbox-buttons .devtools-toolbarbutton[text-as-image] {
386 /*  background-color: rgba(0, 0, 0, .2); / Splitter */
387 }
388
389 /* Text-only button states */
390 .devtools-button:not(:empty):not([disabled]):hover,
391 #toolbox-buttons .devtools-toolbarbutton:not([disabled])[text-as-image]:hover,
392 .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover {
393 /*  background: rgba(0, 0, 0, .3); / Splitters */
394 }
395
396 .devtools-button:not(:empty):not([disabled]):hover:active,
397 #toolbox-buttons .devtools-toolbarbutton:not([disabled])[text-as-image]:hover:active,
398 .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover:active {
399 /*  background: rgba(0, 0, 0, .4); / Splitters */
400 }
401
402 .devtools-toolbarbutton:not([disabled])[label][checked=true],
403 .devtools-toolbarbutton:not([disabled])[label][open],
404 .devtools-button:not(:empty)[checked=true],
405 #toolbox-buttons .devtools-toolbarbutton[text-as-image][checked=true] {
406 /*  background: rgba(29, 79, 115, .7); / Select highlight blue /
407   color: var(--theme-selection-color); */
408 }
409
410 .devtools-menulist[open=true],
411 .devtools-toolbarbutton[open=true],
412 .devtools-toolbarbutton[open=true]:hover,
413 .devtools-toolbarbutton[open=true]:hover:active,
414 .devtools-toolbarbutton[checked=true],
415 .devtools-toolbarbutton[checked=true]:hover,
416 #toolbox-buttons .devtools-toolbarbutton[text-as-image][checked] {
417 /*  background: rgba(29, 79, 115, .8); / Select highlight blue /
418   color: var(--theme-selection-color); */
419 }
420
421 :root {
422   --clear-icon-url: url("chrome://devtools/skin/images/clear.svg");
423 }
424
425 .devtools-button.devtools-clear-icon::before {
426   background-image: var(--clear-icon-url);
427 }
428
429 .devtools-toolbarbutton.devtools-clear-icon {
430   list-style-image: var(--clear-icon-url);
431 }
432
433 .devtools-option-toolbarbutton {
434   list-style-image: var(--tool-options-image);
435 }
436
437 .devtools-toolbarbutton-group > .devtools-toolbarbutton:last-child {
438 }
439
440 .devtools-toolbarbutton-group + .devtools-toolbarbutton {
441 }
442
443 .devtools-separator + .devtools-toolbarbutton {
444 }
445
446 /* Text input */
447
448 .devtools-textinput,
449 .devtools-searchinput,
450 .devtools-filterinput {
451 /*  -moz-appearance: none;
452   margin: 1 3px;
453   border: 1px solid;
454   border-radius: 2px;
455   padding: 4px 6px;
456   border-color: var(--theme-splitter-color);
457   font: message-box;*/
458   margin-top: 0;
459   margin-bottom: 0;
460 }
461
462 :root[platform="mac"] .devtools-searchinput,
463 :root[platform="mac"] .devtools-textinput {
464 /*  border-radius: 20px;*/
465 }
466
467 .devtools-searchinput,
468 .devtools-filterinput {
469 /*  margin-top: 1px;
470   margin-bottom: 1px;
471   padding: 0;*/
472   padding-inline-start: 22px;
473   padding-inline-end: 4px;
474   background-position: 8px center;
475   background-size: 11px 11px;
476   background-repeat: no-repeat;
477   font-size: inherit;
478 }
479
480 .devtools-searchinput {
481   background-image: var(--magnifying-glass-image);
482 }
483
484 .devtools-filterinput {
485   background-image: var(--filter-image);
486 }
487
488 .devtools-searchinput:-moz-locale-dir(rtl),
489 .devtools-searchinput:dir(rtl),
490 .devtools-filterinput:-moz-locale-dir(rtl),
491 .devtools-filterinput:dir(rtl) {
492   background-position: calc(100% - 8px) center;
493 }
494
495 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-icon,
496 .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-icon {
497   visibility: hidden;
498 }
499
500 .devtools-searchinput .textbox-input::placeholder,
501 .devtools-filterinput .textbox-input::placeholder {
502   font-style: normal;
503 }
504
505 /* Searchbox is a div container element for a search input element */
506 .devtools-searchbox {
507   display: flex;
508   flex: 1;
509   position: relative;
510 }
511
512 button + .devtools-searchbox {
513   margin-inline-start: 2px;
514 }
515
516 /* The spacing is accomplished with a padding on the searchbox */
517 .devtools-searchbox > .devtools-textinput,
518 .devtools-searchbox > .devtools-searchinput {
519 }
520
521 .devtools-textinput:focus,
522 .devtools-searchinput:focus,
523 .devtools-filterinput:focus {
524   border-color: var(--theme-focus-border-color-textbox);
525 /*  box-shadow: var(--theme-focus-box-shadow-textbox);*/
526   transition: all 0.2s ease-in-out;
527   outline: none;
528 }
529
530 /* Don't add 'double spacing' for inputs that are at beginning / end
531    of a toolbar (since the toolbar has it's own spacing). */
532 .devtools-toolbar > .devtools-textinput:first-child,
533 .devtools-toolbar > .devtools-searchinput:first-child,
534 .devtools-toolbar > .devtools-filterinput:first-child {
535 }
536 .devtools-toolbar > .devtools-textinput:last-child,
537 .devtools-toolbar > .devtools-searchinput:last-child,
538 .devtools-toolbar > .devtools-filterinput:last-child {
539 }
540 .devtools-toolbar > .devtools-searchbox:first-child {
541 }
542 .devtools-toolbar > .devtools-searchbox:last-child {
543 }
544
545 .devtools-rule-searchbox {
546   -moz-box-flex: 1;
547   width: 100%;
548 /*  font: inherit;*/
549 }
550
551 .devtools-rule-searchbox[filled] {
552   background-color: var(--searchbox-background-color);
553   border-color: var(--searchbox-border-color);
554   padding-inline-end: 23px;
555 }
556
557 .devtools-style-searchbox-no-match {
558   background-color: var(--searchbox-no-match-background-color) !important;
559   border-color: var(--searchbox-no-match-border-color) !important;
560 }
561
562 .devtools-searchinput-clear {
563   position: absolute;
564   top: 3.5px;
565   right: 7px;
566   padding: 0;
567   border: 0;
568   width: 16px;
569   height: 16px;
570   background-position: 0 0;
571   background-repeat: no-repeat;
572   background-color: transparent;
573 }
574
575 .devtools-searchinput-clear:dir(rtl) {
576   right: unset;
577   left: 7px;
578 }
579
580 .devtools-searchinput-clear {
581   background-image: url("chrome://devtools/skin/images/search-clear.svg");
582 }
583
584 .devtools-style-searchbox-no-match + .devtools-searchinput-clear {
585   background-image: url("chrome://devtools/skin/images/search-clear-failed.svg") !important;
586 }
587
588 .devtools-searchinput-clear:hover {
589   background-position: -16px 0;
590 }
591
592 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear,
593 .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
594   list-style-image: url("chrome://devtools/skin/images/search-clear.svg");
595   -moz-image-region: rect(0, 16px, 16px, 0);
596 }
597
598 .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear:hover,
599 .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear:hover {
600   -moz-image-region: rect(0, 32px, 16px, 16px);
601 }
602
603 /* In-tools sidebar */
604
605 .devtools-sidebar-tabs {
606   height: 100%;
607 }
608
609 .devtools-sidebar-tabs > tabpanels {
610   padding: 0;
611   border: 0;
612 }
613
614 .devtools-sidebar-tabs tabs {
615   position: static;
616   overflow: hidden;
617 }
618
619 .devtools-sidebar-alltabs {
620 /*  -moz-appearance: none;
621   height: 24px;
622   line-height: 24px;
623   padding: 0 4px;
624   margin: 0;
625   border-width: 0 0 1px 0;
626   border-inline-start-width: 1px;
627   border-style: solid;*/
628 }
629
630 .devtools-sidebar-alltabs .toolbarbutton-icon {
631   display: none;
632 }
633
634 .devtools-sidebar-tabs tabs > .tabs-right,
635 .devtools-sidebar-tabs tabs > .tabs-left {
636   display: none;
637 }
638
639 .devtools-sidebar-tabs tabs > tab {
640   min-width: 78px;
641   text-align: center;
642   -moz-box-flex: 1;
643   position: static;
644   margin-top: 0;
645 }
646
647 .devtools-sidebar-tabs tabs > tab:-moz-focusring {
648   position: static;
649 }
650
651 .devtools-sidebar-tabs tabs > tab:first-of-type {
652   margin-inline-start: 0;
653 }
654
655 .devtools-sidebar-tabs tabs > tab:last-of-type {
656   border-inline-end-width: 0;
657 }
658
659 .devtools-sidebar-tabs tabs > tab {
660 }
661
662 .devtools-sidebar-tabs tabs > tab[selected],
663 .devtools-sidebar-tabs tabs > tab[selected] + tab {
664 }
665
666 .devtools-sidebar-tabs tabs > tab:first-child {
667 }
668
669 .devtools-sidebar-tabs tabs > tab:hover {
670 }
671
672 .devtools-sidebar-tabs tabs > tab:hover:active {
673 }
674
675 .devtools-sidebar-tabs tabs > tab[selected],
676 .devtools-sidebar-tabs tabs > tab[selected]:hover:active {
677 }
678
679 .hidden-labels-box:not(.visible) > label,
680 .hidden-labels-box.visible ~ .hidden-labels-box > label:last-child {
681   display: none;
682 }
683
684 .devtools-invisible-splitter {
685   border-color: transparent;
686   background-color: transparent;
687 }
688
689 .devtools-horizontal-splitter,
690 .devtools-side-splitter {
691 /*  background-color: var(--theme-splitter-color);*/
692 }
693
694 /* HACK around hardcoded stylings for the HTML-based sidebar tabs */
695 .tabs .tabs-menu-item,
696 .theme-dark .tabs .tabs-menu-item,
697 .theme-light .tabs .tabs-menu-item {
698   margin: 0;
699   margin-inline-end: 3px !important;
700   padding: 0 !important;
701   border-radius: 8px 8px 0 0;
702   border: 0 !important;
703   background-color: var(--theme-button-background);
704 }
705 .tabs .tabs-menu-item a {
706   color: var(--theme-button-color) !important;
707   padding: 0px 3px !important;
708 }
709 .tabs .tabs-menu-item.is-active {
710   height: auto !important;
711 }
712 .tabs .tabs-navigation {
713   height: auto !important;
714   border: 0 !important;
715   border-bottom: 3px solid  var(--theme-body-background) !important;
716 }
717
718 /* Throbbers */
719
720 .devtools-throbber::before {
721   content: "";
722   display: inline-block;
723   vertical-align: bottom;
724   margin-inline-end: 0.5em;
725   width: 1em;
726   height: 1em;
727   border: 2px solid currentColor;
728   border-right-color: transparent;
729   border-radius: 50%;
730   animation: 1.1s linear throbber-spin infinite;
731 }
732
733 @keyframes throbber-spin {
734   from {
735     transform: none;
736   }
737   to {
738     transform: rotate(360deg);
739   }
740 }