common.css 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798
  1. /* This Source Code Form is subject to the terms of the Mozilla Public
  2. * License, v. 2.0. If a copy of the MPL was not distributed with this
  3. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  4. @import url("resource://devtools/client/themes/splitters.css");
  5. @namespace html url("http://www.w3.org/1999/xhtml");
  6. :root {
  7. font: message-box;
  8. }
  9. :root[platform="mac"] {
  10. --monospace-font-family: Menlo, monospace;
  11. }
  12. :root[platform="win"] {
  13. --monospace-font-family: Consolas, monospace;
  14. }
  15. :root[platform="linux"],
  16. :root.theme-firebug {
  17. --monospace-font-family: monospace;
  18. }
  19. :root.theme-firebug {
  20. --proportional-font-family: Lucida Grande, Tahoma, sans-serif;
  21. }
  22. .devtools-monospace {
  23. font-family: var(--monospace-font-family);
  24. }
  25. :root[platform="linux"] .devtools-monospace {
  26. font-size: 80%;
  27. }
  28. /* Override wrong system font from forms.css */
  29. html|button, html|select {
  30. font: message-box;
  31. }
  32. /* Autocomplete Popup */
  33. .devtools-autocomplete-popup {
  34. box-shadow: 0 1px 0 hsla(209,29%,72%,.25) inset;
  35. background-color: transparent;
  36. border-radius: 3px;
  37. overflow-x: hidden;
  38. max-height: 20rem;
  39. /* Devtools autocompletes display technical english keywords and should be displayed
  40. using LTR direction. */
  41. direction: ltr !important;
  42. }
  43. /* Reset list styles. */
  44. .devtools-autocomplete-popup ul {
  45. list-style: none;
  46. }
  47. .devtools-autocomplete-popup ul,
  48. .devtools-autocomplete-popup li {
  49. margin: 0;
  50. }
  51. :root[platform="linux"] .devtools-autocomplete-popup {
  52. /* Root font size is bigger on Linux, adjust rem-based values. */
  53. max-height: 16rem;
  54. }
  55. .devtools-autocomplete-listbox {
  56. -moz-appearance: none !important;
  57. background-color: transparent;
  58. border-width: 0px !important;
  59. margin: 0;
  60. padding: 2px;
  61. }
  62. .devtools-autocomplete-listbox .autocomplete-item {
  63. width: 100%;
  64. background-color: transparent;
  65. border-radius: 4px;
  66. padding: 1px 0;
  67. }
  68. .devtools-autocomplete-listbox .autocomplete-selected {
  69. background-color: rgba(0,0,0,0.2);
  70. }
  71. .devtools-autocomplete-listbox.dark-theme .autocomplete-selected,
  72. .devtools-autocomplete-listbox.dark-theme .autocomplete-item:hover {
  73. background-color: rgba(0,0,0,0.5);
  74. }
  75. .devtools-autocomplete-listbox.dark-theme .autocomplete-selected > .autocomplete-value,
  76. .devtools-autocomplete-listbox:focus.dark-theme .autocomplete-selected > .initial-value {
  77. color: hsl(208,100%,60%);
  78. }
  79. .devtools-autocomplete-listbox.dark-theme .autocomplete-selected > span {
  80. color: #eee;
  81. }
  82. .devtools-autocomplete-listbox.dark-theme .autocomplete-item > span {
  83. color: #ccc;
  84. }
  85. .devtools-autocomplete-listbox .autocomplete-item > .initial-value,
  86. .devtools-autocomplete-listbox .autocomplete-item > .autocomplete-value {
  87. margin: 0;
  88. padding: 0;
  89. cursor: default;
  90. }
  91. .devtools-autocomplete-listbox .autocomplete-item > .autocomplete-count {
  92. text-align: end;
  93. }
  94. /* Rest of the dark and light theme */
  95. .devtools-autocomplete-popup,
  96. .theme-dark .CodeMirror-hints,
  97. .theme-dark .CodeMirror-Tern-tooltip {
  98. border: 1px solid hsl(210,11%,10%);
  99. background-image: linear-gradient(to bottom, hsla(209,18%,18%,0.9), hsl(210,11%,16%));
  100. }
  101. .devtools-autocomplete-popup.light-theme,
  102. .light-theme .CodeMirror-hints,
  103. .light-theme .CodeMirror-Tern-tooltip {
  104. border: 1px solid hsl(210,24%,90%);
  105. background-image: linear-gradient(to bottom, hsla(209,18%,100%,0.9), hsl(210,24%,95%));
  106. }
  107. .devtools-autocomplete-popup.light-theme {
  108. box-shadow: 0 1px 0 hsla(209,29%,90%,.25) inset;
  109. }
  110. .theme-firebug .devtools-autocomplete-popup {
  111. border-color: var(--theme-splitter-color);
  112. border-radius: 5px;
  113. font-size: var(--theme-autompletion-font-size);
  114. }
  115. .devtools-autocomplete-popup.firebug-theme {
  116. background: var(--theme-body-background);
  117. }
  118. .devtools-autocomplete-listbox.firebug-theme .autocomplete-selected,
  119. .devtools-autocomplete-listbox.firebug-theme .autocomplete-item:hover,
  120. .devtools-autocomplete-listbox.light-theme .autocomplete-selected,
  121. .devtools-autocomplete-listbox.light-theme .autocomplete-item:hover {
  122. background-color: rgba(128,128,128,0.3);
  123. }
  124. .devtools-autocomplete-listbox.firebug-theme .autocomplete-selected > .autocomplete-value,
  125. .devtools-autocomplete-listbox:focus.firebug-theme .autocomplete-selected > .initial-value,
  126. .devtools-autocomplete-listbox.light-theme .autocomplete-selected > .autocomplete-value,
  127. .devtools-autocomplete-listbox:focus.light-theme .autocomplete-selected > .initial-value {
  128. color: #222;
  129. }
  130. .devtools-autocomplete-listbox.firebug-theme .autocomplete-item > span,
  131. .devtools-autocomplete-listbox.light-theme .autocomplete-item > span {
  132. color: #666;
  133. }
  134. /* Autocomplete list clone used for accessibility. */
  135. .devtools-autocomplete-list-aria-clone {
  136. /* Cannot use display:none or visibility:hidden : screen readers ignore the element. */
  137. position: fixed;
  138. overflow: hidden;
  139. margin: 0;
  140. width: 0;
  141. height: 0;
  142. }
  143. .devtools-autocomplete-list-aria-clone li {
  144. /* Prevent screen readers from prefacing every item with 'bullet'. */
  145. list-style-type: none;
  146. }
  147. /* links to source code, like displaying `myfile.js:45` */
  148. .devtools-source-link {
  149. font-family: var(--monospace-font-family);
  150. color: var(--theme-highlight-blue);
  151. cursor: pointer;
  152. white-space: nowrap;
  153. display: flex;
  154. text-decoration: none;
  155. font-size: 11px;
  156. width: 12em; /* probably should be changed for each tool */
  157. }
  158. .devtools-source-link:hover {
  159. text-decoration: underline;
  160. }
  161. .devtools-source-link > .filename {
  162. text-overflow: ellipsis;
  163. text-align: end;
  164. overflow: hidden;
  165. margin: 2px 0px;
  166. cursor: pointer;
  167. }
  168. .devtools-source-link > .line-number {
  169. flex: none;
  170. margin: 2px 0px;
  171. cursor: pointer;
  172. }
  173. /* Keyboard focus highlight styles */
  174. :-moz-focusring {
  175. outline: var(--theme-focus-outline);
  176. outline-offset: -1px;
  177. }
  178. textbox[focused="true"] {
  179. border-color: var(--theme-focus-border-color-textbox);
  180. box-shadow: var(--theme-focus-box-shadow-textbox);
  181. transition: all 0.2s ease-in-out
  182. }
  183. textbox :-moz-focusring {
  184. box-shadow: none;
  185. outline: none;
  186. }
  187. /* Form fields should already have box-shadow hightlight */
  188. select:-moz-focusring,
  189. input[type="radio"]:-moz-focusring,
  190. input[type="checkbox"]:-moz-focusring,
  191. checkbox:-moz-focusring {
  192. outline: none;
  193. }
  194. /* Toolbar buttons */
  195. .devtools-menulist,
  196. .devtools-toolbarbutton,
  197. .devtools-button {
  198. -moz-appearance: none;
  199. background: transparent;
  200. min-height: 18px;
  201. text-shadow: none;
  202. border: none;
  203. border-radius: 0;
  204. color: var(--theme-body-color);
  205. transition: background 0.05s ease-in-out;
  206. }
  207. .devtools-menulist,
  208. .devtools-toolbarbutton {
  209. -moz-box-align: center;
  210. min-width: 78px;
  211. padding: 1px;
  212. margin: 2px 1px;
  213. }
  214. .devtools-toolbarbutton:not([label]) > .toolbarbutton-icon,
  215. .devtools-button::before {
  216. width: 16px;
  217. height: 16px;
  218. transition: opacity 0.05s ease-in-out;
  219. }
  220. /* HTML buttons */
  221. .devtools-button {
  222. margin: 2px 1px;
  223. padding: 1px;
  224. min-width: 32px;
  225. /* The icon is absolutely positioned in the button using ::before */
  226. position: relative;
  227. }
  228. .devtools-button::before {
  229. content: "";
  230. display: block;
  231. position: absolute;
  232. left: 50%;
  233. top: 50%;
  234. margin: -8px 0 0 -8px;
  235. background-size: cover;
  236. background-repeat: no-repeat;
  237. transition: opacity 0.05s ease-in-out;
  238. }
  239. .devtools-button:-moz-focusring {
  240. outline: none;
  241. }
  242. /* Standalone buttons */
  243. .devtools-button[standalone],
  244. .devtools-button[data-standalone],
  245. .devtools-toolbarbutton[standalone],
  246. .devtools-toolbarbutton[data-standalone] {
  247. border-width: 1px;
  248. border-style: solid;
  249. min-height: 32px;
  250. background-color: var(--theme-toolbar-background);
  251. }
  252. .devtools-toolbarbutton[standalone], .devtools-toolbarbutton[data-standalone] {
  253. margin-inline-end: 5px;
  254. }
  255. .devtools-toolbarbutton[label][standalone] {
  256. min-height: 2em;
  257. }
  258. .devtools-menulist,
  259. .devtools-toolbarbutton,
  260. .devtools-button {
  261. border-color: var(--toolbar-button-border-color);
  262. }
  263. /* Icon button styles */
  264. .devtools-toolbarbutton:not([label]),
  265. .devtools-toolbarbutton[text-as-image] {
  266. min-width: 32px;
  267. }
  268. .devtools-toolbarbutton:not([label]) > .toolbarbutton-text {
  269. display: none;
  270. }
  271. .devtools-toolbarbutton > .toolbarbutton-icon {
  272. margin: 0;
  273. }
  274. /* Menu button styles (eg. web console filters) */
  275. .devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-button {
  276. -moz-appearance: none;
  277. color: inherit;
  278. border-width: 0;
  279. -moz-box-orient: horizontal;
  280. padding: 0;
  281. }
  282. .devtools-toolbarbutton[type=menu-button] {
  283. padding: 0 1px;
  284. -moz-box-align: stretch;
  285. }
  286. .devtools-toolbarbutton > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
  287. margin-inline-end: 4px;
  288. }
  289. .devtools-menulist > .menulist-dropmarker {
  290. -moz-appearance: none;
  291. display: -moz-box;
  292. list-style-image: url("chrome://devtools/skin/images/dropmarker.svg");
  293. -moz-box-align: center;
  294. min-width: 16px;
  295. }
  296. .devtools-toolbarbutton[type=menu] > .toolbarbutton-menu-dropmarker,
  297. .devtools-toolbarbutton[type=menu-button] > .toolbarbutton-menubutton-dropmarker {
  298. -moz-appearance: none !important;
  299. list-style-image: url("chrome://devtools/skin/images/dropmarker.svg");
  300. -moz-box-align: center;
  301. padding: 0 3px;
  302. }
  303. /* Icon-only buttons */
  304. .devtools-button:empty::before,
  305. .devtools-toolbarbutton:not([label]):not([disabled]) > image {
  306. opacity: 0.8;
  307. }
  308. .devtools-button:hover:empty:not(:disabled):before,
  309. .devtools-button.checked:empty::before,
  310. .devtools-button[checked]:empty::before,
  311. .devtools-button[open]:empty::before,
  312. .devtools-toolbarbutton:not([label]):not([disabled=true]):hover > image,
  313. .devtools-toolbarbutton:not([label])[checked=true] > image,
  314. .devtools-toolbarbutton:not([label])[open=true] > image {
  315. opacity: 1;
  316. }
  317. .devtools-button:disabled,
  318. .devtools-button[disabled],
  319. .devtools-toolbarbutton[disabled] {
  320. opacity: 0.5 !important;
  321. }
  322. .devtools-button[checked]:empty::before,
  323. .devtools-button[open]:empty::before,
  324. .devtools-button.checked::before,
  325. .devtools-toolbarbutton:not([label])[checked=true] > image,
  326. .devtools-toolbarbutton:not([label])[open=true] > image {
  327. filter: var(--checked-icon-filter);
  328. }
  329. /* Checked/opened icon button background */
  330. .theme-firebug .devtools-button[checked]:empty,
  331. .theme-firebug .devtools-button[open]:empty,
  332. .theme-firebug .devtools-button.checked,
  333. .theme-firebug .devtools-toolbarbutton:not([label])[checked=true],
  334. .theme-firebug .devtools-toolbarbutton:not([label])[open=true] {
  335. background-color: #C8D8E7;
  336. }
  337. /* Icon-and-text buttons */
  338. .devtools-toolbarbutton.icon-and-text .toolbarbutton-text {
  339. margin-inline-start: .5em !important;
  340. font-weight: 600;
  341. }
  342. /* Text-only buttons */
  343. .theme-light .devtools-toolbarbutton[label]:not([text-as-image]):not([type=menu-button]),
  344. .theme-light .devtools-toolbarbutton[data-text-only],
  345. .theme-light .devtools-button:not(:empty) {
  346. background-color: var(--toolbar-tab-hover);
  347. }
  348. .theme-dark .devtools-toolbarbutton[label]:not([text-as-image]):not([type=menu-button]),
  349. .theme-dark .devtools-toolbarbutton[data-text-only],
  350. .theme-dark .devtools-button:not(:empty) {
  351. background-color: rgba(0, 0, 0, .2); /* Splitter */
  352. }
  353. /* Text-only button states */
  354. .theme-dark .devtools-button:not(:empty):not(:disabled):hover,
  355. .theme-dark .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover {
  356. background: rgba(0, 0, 0, .3); /* Splitters */
  357. }
  358. .theme-light .devtools-button:not(:empty):not(:disabled):hover,
  359. .theme-light .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover {
  360. background: rgba(170, 170, 170, .3); /* Splitters */
  361. }
  362. .theme-dark .devtools-button:not(:empty):not(:disabled):hover:active,
  363. .theme-dark .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover:active {
  364. background: rgba(0, 0, 0, .4); /* Splitters */
  365. }
  366. .theme-light .devtools-button:not(:empty):not(:disabled):hover:active,
  367. .theme-light .devtools-toolbarbutton:not(:-moz-any([checked=true],[disabled],[text-as-image]))[label]:hover:active {
  368. background: var(--toolbar-tab-hover-active);
  369. }
  370. .theme-dark .devtools-toolbarbutton:not([disabled])[label][checked=true],
  371. .theme-dark .devtools-toolbarbutton:not([disabled])[label][open],
  372. .theme-dark .devtools-button:not(:empty)[checked=true] {
  373. background: var(--theme-selection-background-semitransparent);
  374. color: var(--theme-selection-color);
  375. }
  376. .theme-light .devtools-toolbarbutton:not([disabled])[label][checked=true],
  377. .theme-light .devtools-toolbarbutton:not([disabled])[label][open],
  378. .theme-light .devtools-button:not(:empty)[checked=true] {
  379. background: rgba(76, 158, 217, .3); /* Select highlight blue */
  380. }
  381. :root {
  382. --clear-icon-url: url("chrome://devtools/skin/images/clear.svg");
  383. }
  384. .devtools-button.devtools-clear-icon::before {
  385. background-image: var(--clear-icon-url);
  386. }
  387. .devtools-button.devtools-filter-icon::before {
  388. background-image: var(--filter-image);
  389. }
  390. .devtools-toolbarbutton.devtools-clear-icon {
  391. list-style-image: var(--clear-icon-url);
  392. }
  393. .devtools-option-toolbarbutton {
  394. list-style-image: var(--tool-options-image);
  395. }
  396. .devtools-toolbarbutton-group > .devtools-toolbarbutton:last-child {
  397. margin-inline-end: 0;
  398. }
  399. .devtools-toolbarbutton-group + .devtools-toolbarbutton {
  400. margin-inline-start: 3px;
  401. }
  402. .devtools-separator + .devtools-toolbarbutton {
  403. margin-inline-start: 1px;
  404. }
  405. /*
  406. * Filter buttons
  407. * @TODO : Fix when https://bugzilla.mozilla.org/show_bug.cgi?id=1255116 lands
  408. */
  409. .menu-filter-button {
  410. -moz-appearance: none;
  411. background: rgba(128,128,128,0.1);
  412. border: none;
  413. border-radius: 2px;
  414. min-width: 0;
  415. padding: 0 5px;
  416. margin: 2px;
  417. color: var(--theme-body-color);
  418. }
  419. .menu-filter-button:hover {
  420. background: rgba(128,128,128,0.2);
  421. }
  422. .menu-filter-button:hover:active {
  423. background-color: var(--theme-selection-background-semitransparent);
  424. }
  425. .menu-filter-button:not(:active).checked {
  426. background-color: var(--theme-selection-background);
  427. color: var(--theme-selection-color);
  428. }
  429. /* Text input */
  430. .devtools-textinput,
  431. .devtools-searchinput,
  432. .devtools-filterinput {
  433. -moz-appearance: none;
  434. margin: 1px 3px;
  435. border: 1px solid;
  436. border-radius: 2px;
  437. padding: 4px 6px;
  438. border-color: var(--theme-splitter-color);
  439. font: message-box;
  440. }
  441. :root[platform="mac"] .devtools-textinput,
  442. :root[platform="mac"] .devtools-searchinput,
  443. :root[platform="mac"] .devtools-filterinput {
  444. border-radius: 20px;
  445. }
  446. .devtools-searchinput,
  447. .devtools-filterinput {
  448. padding: 0;
  449. padding-inline-start: 22px;
  450. padding-inline-end: 4px;
  451. background-position: 8px center;
  452. background-size: 11px 11px;
  453. background-repeat: no-repeat;
  454. font-size: inherit;
  455. }
  456. /*
  457. * @TODO : has-clear-btn class was added for bug 1296187 and we should remove it
  458. * once we have a standardized search and filter input across the toolboxes.
  459. */
  460. .has-clear-btn > .devtools-searchinput,
  461. .has-clear-btn > .devtools-filterinput {
  462. padding-inline-end: 23px;
  463. }
  464. .devtools-searchinput {
  465. background-image: var(--magnifying-glass-image);
  466. }
  467. .devtools-filterinput {
  468. background-image: url(chrome://devtools/skin/images/filter.svg#filterinput);
  469. }
  470. .devtools-searchinput:-moz-locale-dir(rtl),
  471. .devtools-searchinput:dir(rtl),
  472. .devtools-filterinput:-moz-locale-dir(rtl),
  473. .devtools-filterinput:dir(rtl) {
  474. background-position: calc(100% - 8px) center;
  475. }
  476. .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-icon,
  477. .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-icon {
  478. visibility: hidden;
  479. }
  480. .devtools-searchinput .textbox-input::placeholder,
  481. .devtools-filterinput .textbox-input::placeholder {
  482. font-style: normal;
  483. }
  484. .devtools-plaininput {
  485. border-color: transparent;
  486. background-color: transparent;
  487. }
  488. .theme-dark .devtools-plaininput {
  489. color: var(--theme-highlight-gray);
  490. }
  491. /* Searchbox is a div container element for a search input element */
  492. .devtools-searchbox {
  493. display: inline-flex;
  494. flex: 1;
  495. height: 23px;
  496. position: relative;
  497. padding: 0 3px;
  498. }
  499. /* The spacing is accomplished with a padding on the searchbox */
  500. .devtools-searchbox > .devtools-textinput,
  501. .devtools-searchbox > .devtools-searchinput,
  502. .devtools-searchbox > .devtools-filterinput {
  503. margin-left: 0;
  504. margin-right: 0;
  505. width: 100%;
  506. }
  507. .devtools-textinput:focus,
  508. .devtools-searchinput:focus,
  509. .devtools-filterinput:focus {
  510. border-color: var(--theme-focus-border-color-textbox);
  511. box-shadow: var(--theme-focus-box-shadow-textbox);
  512. transition: all 0.2s ease-in-out;
  513. outline: none;
  514. }
  515. /* Don't add 'double spacing' for inputs that are at beginning / end
  516. of a toolbar (since the toolbar has it's own spacing). */
  517. .devtools-toolbar > .devtools-textinput:first-child,
  518. .devtools-toolbar > .devtools-searchinput:first-child,
  519. .devtools-toolbar > .devtools-filterinput:first-child {
  520. margin-inline-start: 0;
  521. }
  522. .devtools-toolbar > .devtools-textinput:last-child,
  523. .devtools-toolbar > .devtools-searchinput:last-child,
  524. .devtools-toolbar > .devtools-filterinput:last-child {
  525. margin-inline-end: 0;
  526. }
  527. .devtools-toolbar > .devtools-searchbox:first-child {
  528. padding-inline-start: 0;
  529. }
  530. .devtools-toolbar > .devtools-searchbox:last-child {
  531. padding-inline-end: 0;
  532. }
  533. .devtools-rule-searchbox {
  534. -moz-box-flex: 1;
  535. width: 100%;
  536. }
  537. .devtools-filterinput:-moz-any([filled],.filled) {
  538. background-color: var(--searchbox-background-color);
  539. border-color: var(--searchbox-border-color);
  540. }
  541. .devtools-style-searchbox-no-match {
  542. background-color: var(--searcbox-no-match-background-color) !important;
  543. border-color: var(--searcbox-no-match-border-color) !important;
  544. }
  545. .devtools-searchinput-clear {
  546. position: absolute;
  547. top: 3.5px;
  548. offset-inline-end: 7px;
  549. padding: 0;
  550. border: 0;
  551. width: 16px;
  552. height: 16px;
  553. background-position: 0 0;
  554. background-repeat: no-repeat;
  555. background-color: transparent;
  556. }
  557. .devtools-searchinput-clear:dir(rtl) {
  558. right: unset;
  559. left: 7px;
  560. }
  561. .theme-dark .devtools-searchinput-clear {
  562. background-image: url("chrome://devtools/skin/images/search-clear-dark.svg");
  563. }
  564. .theme-light .devtools-searchinput-clear {
  565. background-image: url("chrome://devtools/skin/images/search-clear-light.svg");
  566. }
  567. .devtools-style-searchbox-no-match + .devtools-searchinput-clear {
  568. background-image: url("chrome://devtools/skin/images/search-clear-failed.svg") !important;
  569. }
  570. .devtools-searchinput-clear:hover {
  571. background-position: -16px 0;
  572. }
  573. .theme-dark .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear,
  574. .theme-dark .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
  575. list-style-image: url("chrome://devtools/skin/images/search-clear-dark.svg");
  576. -moz-image-region: rect(0, 16px, 16px, 0);
  577. }
  578. .theme-light .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear,
  579. .theme-light .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
  580. list-style-image: url("chrome://devtools/skin/images/search-clear-light.svg");
  581. -moz-image-region: rect(0, 16px, 16px, 0);
  582. }
  583. .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear,
  584. .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
  585. margin-bottom: 0;
  586. }
  587. .devtools-searchinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear:hover,
  588. .devtools-filterinput > .textbox-input-box > .textbox-search-icons > .textbox-search-clear:hover {
  589. -moz-image-region: rect(0, 32px, 16px, 16px);
  590. }
  591. /* Twisty and checkbox controls */
  592. .theme-twisty, .theme-checkbox {
  593. width: 14px;
  594. height: 14px;
  595. background-repeat: no-repeat;
  596. background-image: url("chrome://devtools/skin/images/controls.png");
  597. background-size: 56px 28px;
  598. }
  599. .theme-twisty {
  600. cursor: pointer;
  601. background-position: 0 -14px;
  602. }
  603. .theme-selected ~ .theme-twisty,
  604. .theme-dark .theme-twisty {
  605. background-position: -28px -14px;
  606. }
  607. .theme-twisty:-moz-focusring {
  608. outline-style: none;
  609. }
  610. .theme-twisty[open], .theme-twisty.open {
  611. background-position: -14px -14px;
  612. }
  613. .theme-selected ~ .theme-twisty[open],
  614. .theme-dark .theme-twisty[open], .theme-dark .theme-twisty.open {
  615. background-position: -42px -14px;
  616. }
  617. .theme-twisty[invisible] {
  618. visibility: hidden;
  619. }
  620. /* Mirror the twisty for rtl direction */
  621. .theme-twisty:dir(rtl),
  622. .theme-twisty:-moz-locale-dir(rtl) {
  623. transform: scaleX(-1);
  624. }
  625. .theme-checkbox {
  626. display: inline-block;
  627. border: 0;
  628. padding: 0;
  629. outline: none;
  630. background-position: 0 0;
  631. }
  632. .theme-dark .theme-checkbox {
  633. background-position: -28px 0;
  634. }
  635. .theme-checkbox[checked] {
  636. background-position: -14px 0;
  637. }
  638. .theme-dark .theme-checkbox[checked] {
  639. background-position: -42px 0;
  640. }
  641. @media (min-resolution: 1.1dppx) {
  642. .theme-twisty, .theme-checkbox {
  643. background-image: url("chrome://devtools/skin/images/controls@2x.png");
  644. }
  645. }
  646. /* Throbbers */
  647. .devtools-throbber::before {
  648. content: "";
  649. display: inline-block;
  650. vertical-align: bottom;
  651. margin-inline-end: 0.5em;
  652. width: 1em;
  653. height: 1em;
  654. border: 2px solid currentColor;
  655. border-right-color: transparent;
  656. border-radius: 50%;
  657. animation: 1.1s linear throbber-spin infinite;
  658. }
  659. @keyframes throbber-spin {
  660. from {
  661. transform: none;
  662. }
  663. to {
  664. transform: rotate(360deg);
  665. }
  666. }