1%if 0 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%endif 6 7%define fieldHoverBorderColor hsla(240,5%,5%,.35) 8%define urlbarMarginInline 5px 9%define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding)) 10 11:root { 12 --toolbar-field-border-color: hsla(240,5%,5%,.25); 13 --toolbar-field-focus-border-color: var(--focus-outline-color); 14 --urlbar-container-padding: 1px; 15} 16 17@media not (prefers-contrast) { 18 :root { 19 --toolbar-field-border-color: transparent; 20 --toolbar-field-focus-border-color: color-mix(in srgb, var(--focus-outline-color) 50%, transparent); 21 } 22} 23 24#urlbar-container, 25#search-container { 26 padding-block: 4px; 27 margin-inline: @urlbarMarginInline@; 28} 29 30:root[uidensity=touch] #urlbar-container, 31:root[uidensity=touch] #search-container { 32 padding-block: 5px; 33} 34 35#urlbar, 36#searchbar { 37 min-height: var(--urlbar-min-height); 38 text-shadow: none; 39 color: var(--toolbar-field-non-lwt-color, FieldText); 40} 41 42#urlbar-background, 43#searchbar { 44 background-color: Field; 45 background-clip: border-box; 46 border: 1px solid var(--toolbar-field-border-color); 47 border-radius: var(--toolbarbutton-border-radius); 48} 49 50#urlbar:not([focused="true"], [open]) > #urlbar-background, 51#searchbar:not(:focus-within) { 52 background-color: var(--toolbar-field-non-lwt-bgcolor, Field); 53} 54 55#urlbar-input-container, 56#searchbar { 57 border-radius: var(--toolbarbutton-border-radius); 58 overflow: clip; 59} 60 61#urlbar-input, 62#urlbar-scheme, 63.searchbar-textbox { 64 -moz-box-flex: 1; 65 background-color: transparent; 66 color: inherit; 67 border: none; 68 margin: 0; 69 padding: 0; 70 outline: none; 71} 72 73#urlbar[focused="true"]:not([suppress-focus-border]) > #urlbar-background { 74 border: var(--focus-outline); 75 /* We used --focus-outline above to inherit its width and style properties, 76 but we still want to use the theme's border-color. 77 --toolbar-field-focus-border-color is set equal to --focus-outline-color 78 on :root, but LWT themes can override this value. */ 79 border-color: var(--toolbar-field-focus-border-color); 80} 81 82#urlbar[focused="true"] > #urlbar-background { 83 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.23); 84} 85 86#urlbar[open] > #urlbar-background { 87 border-color: var(--arrowpanel-border-color); 88 box-shadow: 0 2px 14px rgba(0, 0, 0, 0.13); 89} 90 91/* We draw the searchbar's border as a combination of its 1px unfocused border 92 and a 1px inset box-shadow. If we did it all as a border, the searchbar's 93 contents would shift when its border-width expanded by 1px when focused. 94 Removing the border when focused would also shift contents. #urlbar gets 95 around this problem by applying its border to #urlbar-background, which is 96 positioned absolutely. We don't plan on changing the searchbar's UX 97 significantly, so it's better to avoid that extra complexity. */ 98#searchbar:focus-within { 99 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.23), 100 0 0 0 1px var(--toolbar-field-focus-border-color) inset; 101 border-color: var(--toolbar-field-focus-border-color); 102} 103 104#urlbar:-moz-lwtheme, 105#searchbar:-moz-lwtheme { 106 color: var(--lwt-toolbar-field-color, black); 107} 108 109#urlbar:-moz-lwtheme > #urlbar-background, 110#searchbar:-moz-lwtheme { 111 background-color: var(--lwt-toolbar-field-background-color, hsla(0,0%,100%,.8)); 112} 113 114#urlbar:not([focused="true"], [open]):-moz-lwtheme > #urlbar-background, 115#searchbar:not(:focus-within):-moz-lwtheme { 116 border-color: var(--lwt-toolbar-field-border-color, var(--toolbar-field-border-color)); 117} 118 119#urlbar:not([focused="true"], [open]):-moz-lwtheme:hover > #urlbar-background, 120#searchbar:not(:focus-within):-moz-lwtheme:hover { 121 border-color: var(--lwt-toolbar-field-border-color, @fieldHoverBorderColor@); 122} 123 124#urlbar:-moz-lwtheme:hover > #urlbar-background, 125#searchbar:-moz-lwtheme:hover { 126 background-color: var(--lwt-toolbar-field-background-color, white); 127} 128 129#urlbar:is([focused="true"], [open]):-moz-lwtheme, 130#searchbar:focus-within:-moz-lwtheme { 131 color: var(--lwt-toolbar-field-focus-color); 132} 133 134#urlbar:is([focused="true"], [open]):-moz-lwtheme > #urlbar-background, 135#searchbar:focus-within:-moz-lwtheme { 136 background-color: var(--lwt-toolbar-field-focus); 137} 138 139#TabsToolbar #searchbar:not(:focus-within) { 140 /* The tabs toolbar is usually a different color than the other toolbars, and 141 we can't predict it, to avoid a transparent field we enforce a border. */ 142 border-color: color-mix(in srgb, currentColor 20%, transparent); 143} 144 145#urlbar-input:-moz-lwtheme::selection, 146.searchbar-textbox:-moz-lwtheme::selection { 147 background-color: var(--lwt-toolbar-field-highlight, -moz-system-color(text-select-background, light)); 148 color: var(--lwt-toolbar-field-highlight-text, -moz-system-color(text-select-foreground, light)); 149} 150 151#urlbar-input:not(:focus):-moz-lwtheme::selection, 152.searchbar-textbox:not(:focus-within):-moz-lwtheme::selection { 153 background-color: var(--lwt-toolbar-field-highlight, -moz-system-color(text-select-background-disabled, light)); 154} 155 156:root[lwt-toolbar-field-focus-brighttext] #urlbar-input:focus::selection, 157:root[lwt-toolbar-field-focus-brighttext] .searchbar-textbox:focus-within::selection { 158 background-color: var(--lwt-toolbar-field-highlight, -moz-system-color(text-select-background, dark)); 159 color: var(--lwt-toolbar-field-highlight-text, -moz-system-color(text-select-foreground, dark)); 160} 161 162:root[lwt-toolbar-field-brighttext] #urlbar-input:not(:focus)::selection, 163:root[lwt-toolbar-field-brighttext] .searchbar-textbox:not(:focus-within)::selection { 164 background-color: var(--lwt-toolbar-field-highlight, -moz-system-color(text-select-background-disabled, dark)); 165 color: var(--lwt-toolbar-field-highlight-text, -moz-system-color(text-select-foreground, dark)); 166} 167 168#urlbar:not([focused="true"]) { 169 caret-color: transparent; 170} 171 172#urlbar.searchButton > #urlbar-input-container > #urlbar-search-button { 173 width: @urlbarSearchButtonWidth@; 174 background-image: url(chrome://global/skin/icons/search-glass.svg); 175 background-repeat: no-repeat; 176 background-position: center; 177 -moz-context-properties: fill, fill-opacity; 178 fill: var(--toolbarbutton-icon-fill); 179 fill-opacity: var(--toolbarbutton-icon-fill-opacity); 180} 181 182#urlbar.searchButton > #urlbar-input-container[pageproxystate="invalid"] > #urlbar-search-button { 183 margin-inline-end: 6px; 184} 185 186/** 187 * The urlbar background is a separate element so we can animate it 188 * independently from the content. It's positioned absolutely and stretched to 189 * the bounds of the urlbar. 190 */ 191 192#urlbar, 193#urlbar-input-container, 194.urlbarView { 195 position: relative; 196} 197 198#urlbar-background { 199 display: block; 200 position: absolute; 201 inset: 0; 202} 203 204:root:not([chromehidden~="toolbar"]) #urlbar.searchButton:not([breakout]) > #urlbar-background, 205:root:not([chromehidden~="toolbar"]) #urlbar.searchButton:not([breakout-extend]) > #urlbar-background { 206 inset-inline-start: @urlbarSearchButtonWidth@; 207} 208 209#urlbar-input-container { 210 /* Match urlbar-background's border. */ 211 border: 1px solid transparent; 212 padding: var(--urlbar-container-padding); 213} 214 215#urlbar-container[breakout] { 216 position: relative; 217 min-height: var(--urlbar-container-height); 218} 219 220#urlbar[breakout] { 221 display: block; 222 position: absolute; 223 width: 100%; 224 height: var(--urlbar-height); 225 top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2); 226 left: 0; 227} 228 229#urlbar[breakout] > #urlbar-input-container { 230 width: 100%; 231 height: 100%; 232} 233 234#urlbar:not([open]) > .urlbarView, 235#urlbar:not([breakout]) > .urlbarView { 236 display: none; 237} 238 239#urlbar[breakout][breakout-extend], 240#urlbar[breakout][breakout-extend-disabled][open] { 241 /* The z-index needs to be big enough to trump other positioned UI pieces 242 that we want to overlay. 3 is used in the tab bar. */ 243 z-index: 3; 244 height: auto; 245} 246 247#urlbar[breakout][breakout-extend] { 248 top: 0; 249 left: -@urlbarMarginInline@; 250 width: calc(100% + 2 * @urlbarMarginInline@); 251} 252 253#urlbar[breakout][breakout-extend] > #urlbar-input-container { 254 height: var(--urlbar-toolbar-height); 255 padding-block: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding)); 256 padding-inline: calc(@urlbarMarginInline@ + var(--urlbar-container-padding)); 257} 258 259#urlbar.searchButton[breakout][breakout-extend] > #urlbar-input-container > #urlbar-search-button { 260 fill: currentColor; 261 fill-opacity: .6; 262} 263 264@keyframes urlbar-grow { 265 0% { 266 transform: scaleX(.99) scaleY(.95); 267 } 268 100% { 269 transform: scale(1.0); 270 } 271} 272 273#urlbar[breakout][breakout-extend] > #urlbar-background { 274 animation-name: urlbar-grow; 275 animation-duration: 0s; 276 animation-timing-function: var(--animation-easing-function); 277} 278 279@media (prefers-reduced-motion: no-preference) { 280 #urlbar[breakout][breakout-extend][breakout-extend-animate] > #urlbar-background { 281 animation-duration: 150ms; 282 } 283} 284 285:root[chromehidden~="toolbar"] #urlbar-container { 286 /* Remove excess space between the address bar and the menu button in popups. */ 287 padding-inline-end: 0; 288} 289 290:root[customizing] .urlbar-input-box { 291 visibility: hidden; 292} 293 294#urlbar-container { 295 -moz-box-align: center; 296} 297 298#urlbar-search-splitter { 299 /* The splitter width should equal the location and search bars' combined 300 neighboring margin and border width. */ 301 min-width: 12px; 302 margin: 0 -6px; 303 position: relative; 304 border: none; 305 background: transparent; 306 appearance: none; 307} 308 309/* Urlbar search mode indicator */ 310#urlbar-search-mode-indicator { 311 display: none; 312 background-color: var(--urlbar-box-bgcolor); 313 margin-inline-end: 8px; 314 align-items: center; 315 border-radius: var(--urlbar-icon-border-radius); 316 padding-inline: 8px 6px; 317} 318 319#urlbar[searchmode] > #urlbar-input-container > #urlbar-search-mode-indicator { 320 display: inline-flex; 321} 322 323#urlbar[searchmode] > #urlbar-input-container > #urlbar-label-box { 324 display: none; 325} 326 327/* Use system colors for low/high contrast mode */ 328@media (prefers-contrast) { 329 #urlbar-search-mode-indicator { 330 background-color: Highlight; 331 outline-color: Highlight; 332 color: HighlightText; 333 } 334} 335 336#urlbar-search-mode-indicator-title { 337 padding-inline: 0 3px; 338 opacity: var(--identity-box-label-opacity); 339} 340 341#urlbar-search-mode-indicator-close { 342 background: url(chrome://global/skin/icons/close.svg) no-repeat center; 343 background-size: 10px 10px; 344 width: 16px; 345 height: 16px; 346 -moz-context-properties: fill, fill-opacity; 347 fill-opacity: 0.6; 348 stroke-opacity: var(--identity-box-label-opacity); 349 fill: var(--lwt-toolbar-field-focus-color); 350 border-radius: var(--urlbar-icon-border-radius); 351} 352 353#urlbar-search-mode-indicator-close:hover { 354 background-color: hsla(0,0%,70%,.2); 355} 356#urlbar-search-mode-indicator-close:hover:active { 357 background-color: hsla(0,0%,70%,.3); 358} 359 360@media (prefers-contrast) { 361 #urlbar-search-mode-indicator-close { 362 fill: HighlightText; 363 fill-opacity: 1.0; 364 } 365} 366 367/* Page action panel */ 368.pageAction-panel-button > .toolbarbutton-icon { 369 width: 16px; 370 height: 16px; 371} 372 373#pageAction-panel-bookmark, 374#star-button { 375 list-style-image: url("chrome://browser/skin/bookmark-hollow.svg"); 376} 377#pageAction-panel-bookmark[starred], 378#star-button[starred] { 379 list-style-image: url("chrome://browser/skin/bookmark.svg"); 380} 381#star-button[starred] { 382 fill-opacity: 1; 383 fill: var(--toolbarbutton-icon-fill-attention); 384} 385 386/* URL bar and page action buttons */ 387 388/* The background can be very dark and if the add-on uses a black-ish svg it 389 will be barely visible. In the future we should have a standardized SVG 390 solution we can apply to add-on icons, for now we can only try to make them 391 visible through some filtering tricks */ 392:root[lwt-toolbar-field-brighttext] #urlbar:not([focused="true"]) .urlbar-addon-page-action[style*=".svg"] > .urlbar-icon, 393:root[lwt-toolbar-field-focus-brighttext] #urlbar[focused="true"] .urlbar-addon-page-action[style*=".svg"] > .urlbar-icon { 394 filter: grayscale(100%) brightness(20%) invert(); 395} 396 397@media (prefers-color-scheme: dark) { 398 /* As above, but for the default theme in dark mode, which suffers from the same issue */ 399 :root:not(:-moz-lwtheme) .urlbar-addon-page-action[style*=".svg"] > .urlbar-icon { 400 filter: grayscale(100%) brightness(20%) invert(); 401 } 402} 403 404#userContext-icons, 405#urlbar-zoom-button { 406 margin-inline: 6px; 407} 408 409.urlbar-icon { 410 width: calc(var(--urlbar-min-height) - 2px /* border */ - 2 * var(--urlbar-container-padding)); 411 height: calc(var(--urlbar-min-height) - 2px /* border */ - 2 * var(--urlbar-container-padding)); 412 padding: var(--urlbar-icon-padding); 413 -moz-context-properties: fill, fill-opacity; 414 fill: currentColor; 415 fill-opacity: var(--urlbar-icon-fill-opacity); 416 color: inherit; 417} 418 419.urlbar-icon, 420.urlbar-icon-wrapper { 421 border-radius: var(--urlbar-icon-border-radius); 422} 423 424:root[uidensity=compact] .urlbar-icon { 425 margin-inline: 1px; 426} 427 428:not(.urlbar-icon-wrapper) > .urlbar-icon:not([disabled]):hover, 429.urlbar-icon-wrapper:not([disabled]):hover { 430 background-color: hsla(0,0%,70%,.2); 431} 432 433:not(.urlbar-icon-wrapper) > .urlbar-icon:not([disabled])[open], 434:not(.urlbar-icon-wrapper) > .urlbar-icon:not([disabled]):hover:active, 435.urlbar-icon-wrapper:not([disabled])[open], 436.urlbar-icon-wrapper:not([disabled]):hover:active { 437 background-color: hsla(0,0%,70%,.3); 438} 439 440.urlbar-icon:-moz-focusring, 441.urlbar-icon-wrapper:-moz-focusring { 442 outline: var(--toolbarbutton-focus-outline); 443 outline-offset: -2px; 444} 445 446#urlbar-go-button, 447.search-go-button { 448 list-style-image: url("chrome://browser/skin/forward.svg"); 449} 450 451#urlbar-go-button:-moz-locale-dir(rtl), 452.search-go-button:-moz-locale-dir(rtl) { 453 transform: scaleX(-1); 454} 455 456#pageActionButton, 457.share-more-button { 458 list-style-image: url("chrome://global/skin/icons/more.svg"); 459} 460 461/** 462 * Contextual Feature Recommendation 463 * 464 * Animate the recommendation icon to expand outwards and display a text label. 465 * Fake the effect of a smoothly expanding width without animating any widths 466 * by (continuously) animating only `mask-position-x` and `transform`. 467 * 468 * In a few places, transition a property using the timing-function `step-start` 469 * while collapsed and `step-end` while expanded in order to (discretely) modify 470 * the value while expanded and while transitioning in either direction. 471 * 472 * This UI is part of an experiment launching in LTR locales only. Fixing the 473 * RTL issues is tracked by Bug 1485725. 474 */ 475 476:root { 477 --cfr-animation-duration: 0.35s; 478 --cfr-button-addons-icon: url(chrome://activity-stream/content/data/content/assets/glyph-webextension-16.svg); 479 --cfr-button-features-icon: url(chrome://activity-stream/content/data/content/assets/glyph-cfr-feature-16.svg); 480 --cfr-button-highlights-icon: url(chrome://global/skin/icons/highlights.svg); 481 --cfr-active-color: #0060df; 482} 483 484#contextual-feature-recommendation { 485 width: 28px; 486 margin-inline-start: 0; 487 transition: margin-inline-start step-end var(--cfr-animation-duration); 488} 489#urlbar[cfr-recommendation-state="expanded"] #contextual-feature-recommendation { 490 margin-inline-start: calc(var(--cfr-label-width) * -1); 491 transition: margin-inline-start step-start var(--cfr-animation-duration); 492} 493 494#cfr-button { 495 margin: -2px 0; 496 transition-property: fill, fill-opacity, transform; 497 transition-timing-function: ease-in-out; 498 transition-duration: var(--cfr-animation-duration); 499} 500#contextual-feature-recommendation[data-cfr-icon="webextensions-icon"] #cfr-button { 501 list-style-image: var(--cfr-button-addons-icon); 502} 503#contextual-feature-recommendation[data-cfr-icon="recommendations-icon"] #cfr-button { 504 list-style-image: var(--cfr-button-features-icon); 505} 506#contextual-feature-recommendation[data-cfr-icon="highlights-icon"] #cfr-button { 507 list-style-image: var(--cfr-button-highlights-icon); 508} 509#urlbar[cfr-recommendation-state="expanded"] #cfr-button { 510 fill: white; 511 fill-opacity: 1; 512 background-color: transparent; /* Override hover background-color */ 513 transform: translateX(calc(var(--cfr-label-width) * -1)); 514} 515#urlbar[cfr-recommendation-state="expanded"] #cfr-button:-moz-locale-dir(rtl) { 516 transform: translateX(calc(var(--cfr-label-width))); 517} 518@keyframes cfr-button-fade-through-active-color { 519 33% { 520 fill-opacity: 1; 521 fill: var(--cfr-active-color); 522 } 523 67% { 524 fill-opacity: 1; 525 fill: var(--cfr-active-color); 526 } 527} 528#urlbar[cfr-recommendation-state="collapsed"] #cfr-button { 529 animation: cfr-button-fade-through-active-color calc(3 * var(--cfr-animation-duration)); 530} 531 532#cfr-label-container { 533 width: 0; 534 overflow: hidden; 535 border-radius: 5px; 536 padding-inline-start: 28px; 537 mask-image: linear-gradient(to right, transparent 0, black 0); 538 mask-position-x: var(--cfr-label-width); 539 mask-repeat: no-repeat; 540 transition-property: background-color, mask-position-x, width, margin-inline-end; 541 transition-timing-function: ease-in-out, ease-in-out, step-end, step-end; 542 transition-duration: var(--cfr-animation-duration); 543 -moz-box-align: center; 544 margin-block: calc((var(--urlbar-min-height) - var(--urlbar-container-padding) - 2px /* border */ - 24px) / 2); 545} 546#cfr-label-container:-moz-locale-dir(rtl) { 547 mask-position-x: calc(var(--cfr-label-width) * -1); 548} 549 550#urlbar[cfr-recommendation-state="expanded"] #cfr-label-container { 551 width: calc(var(--cfr-label-width) + 28px); 552 background-color: var(--cfr-active-color); 553 margin-inline-end: -28px; 554 mask-position-x: 0; 555 transition-timing-function: ease-in-out, ease-in-out, step-start, step-start; 556} 557 558#cfr-label { 559 margin: 0; 560 padding: 3px 5px; 561 padding-inline-start: 0; 562 color: white; 563 mask-image: linear-gradient(to right, transparent 0, black 0); 564 mask-position-x: var(--cfr-label-width); 565 mask-repeat: no-repeat; 566 transition: mask-position-x ease-in-out var(--cfr-animation-duration); 567} 568#cfr-label:-moz-locale-dir(rtl) { 569 mask-position-x: calc(var(--cfr-label-width) * -1); 570} 571#urlbar[cfr-recommendation-state="expanded"] #cfr-label { 572 mask-position-x: 0; 573} 574 575/* Shift the url-bar text fading to stop the recommendation overlapping */ 576#urlbar[cfr-recommendation-state] #urlbar-input { 577 /* A mask-image is usually only defined for the url bar when text overflows. 578 We need to re-define the mask image here so that it shows up correctly when 579 we transition to or from an `expanded` state (in which the right end of the 580 url bar may be obscured without overflow). */ 581 mask-image: linear-gradient(to left, transparent, black 3ch); 582 transition: mask-position-x ease-in-out var(--cfr-animation-duration); 583} 584#urlbar[cfr-recommendation-state] #urlbar-input:-moz-locale-dir(rtl) { 585 mask-image: linear-gradient(to right, transparent, black 3ch); 586} 587#urlbar[cfr-recommendation-state="expanded"] #urlbar-input { 588 mask-position-x: calc(var(--cfr-label-width) * -1); 589} 590#urlbar[cfr-recommendation-state="expanded"] #urlbar-input:-moz-locale-dir(rtl) { 591 mask-position-x: calc(var(--cfr-label-width)); 592} 593 594/* Reader mode icon */ 595 596#reader-mode-button > .urlbar-icon { 597 list-style-image: url(chrome://browser/skin/reader-mode.svg); 598} 599 600#reader-mode-button[readeractive] > .urlbar-icon { 601 fill: var(--toolbarbutton-icon-fill-attention); 602 fill-opacity: 1; 603} 604 605/* Zoom button */ 606 607#urlbar-zoom-button { 608 appearance: none; 609 color: inherit; 610 font-size: .8em; 611 padding: 3px 7px; 612 border-radius: var(--urlbar-icon-border-radius); 613 background-color: var(--urlbar-box-bgcolor); 614 margin-block: calc((var(--urlbar-min-height) - 20px) / 2 - 1px /* border */ - var(--urlbar-container-padding)); 615 overflow: hidden; 616} 617 618#urlbar-zoom-button:hover { 619 background-color: var(--urlbar-box-hover-bgcolor); 620} 621 622#urlbar-zoom-button:hover:active { 623 background-color: var(--urlbar-box-active-bgcolor); 624} 625 626@keyframes urlbar-zoom-reset-pulse { 627 0% { 628 transform: scale(0); 629 } 630 75% { 631 transform: scale(1.5); 632 } 633 100% { 634 transform: scale(1.0); 635 } 636} 637 638#urlbar-zoom-button[animate="true"] { 639 animation-name: urlbar-zoom-reset-pulse; 640 animation-duration: 250ms; 641} 642 643#urlbar-zoom-button:-moz-focusring { 644 outline: var(--toolbarbutton-focus-outline); 645 outline-offset: calc(var(--focus-outline-width) * -1); 646} 647 648#urlbar-zoom-button > .toolbarbutton-text { 649 display: -moz-box; 650} 651 652#urlbar-zoom-button > .toolbarbutton-icon { 653 display: none; 654} 655 656/* Search bar */ 657 658#search-container { 659 min-width: 125px; 660} 661 662.searchbar-search-button { 663 -moz-box-align: center; 664 fill: currentColor; 665} 666 667.searchbar-search-icon { 668 list-style-image: url(chrome://global/skin/icons/search-glass.svg); 669 -moz-context-properties: fill, fill-opacity; 670 fill-opacity: var(--urlbar-icon-fill-opacity); 671 pointer-events: none; 672 margin-inline: 8px 6px; 673 width: 16px; 674} 675 676.searchbar-search-icon-overlay { 677 pointer-events: none; 678} 679 680.searchbar-search-button[addengines=true] > .searchbar-search-icon-overlay { 681 list-style-image: url(chrome://browser/skin/search-indicator-badge-add.svg); 682 margin-inline: -15px 4px; 683 margin-top: -10px; 684 width: 11px; 685 height: 11px; 686} 687 688.searchbar-search-button[addengines=true] > .searchbar-search-icon-overlay:-moz-locale-dir(rtl) { 689 margin-inline: -25px 14px; 690} 691 692.searchbar-search-button:hover:not([addengines=true]) > .searchbar-search-icon-overlay { 693 list-style-image: url(chrome://global/skin/icons/arrow-down-12.svg); 694 -moz-context-properties: fill; 695 margin-inline: -8px 2px; 696 width: 6px; 697 height: 6px; 698} 699 700.searchbar-search-button:hover:not([addengines=true]) > .searchbar-search-icon-overlay:-moz-locale-dir(rtl) { 701 margin-inline: -26px 20px; 702} 703 704.searchbar-engine-one-off-add-engine:not([image]), 705moz-input-box > menupopup .context-menu-add-engine:not([image]) { 706 list-style-image: url("chrome://browser/skin/search-engine-placeholder.png"); 707} 708 709@media (min-resolution: 1.1dppx) { 710 .searchbar-engine-one-off-add-engine:not([image]), 711 moz-input-box > menupopup .context-menu-add-engine:not([image]) { 712 list-style-image: url("chrome://browser/skin/search-engine-placeholder@2x.png"); 713 } 714} 715 716.searchbar-engine-one-off-add-engine > .button-box::after, 717moz-input-box > menupopup .context-menu-add-engine > .menu-iconic-left::after { 718 content: ""; 719 position: relative; 720 display: -moz-box; 721 background: url(chrome://browser/skin/search-indicator-badge-add.svg) no-repeat center; 722 height: 11px; 723 width: 11px; 724 margin-inline: -4px -7px; 725 margin-top: -13px; 726} 727 728moz-input-box > menupopup .context-menu-add-engine > .menu-iconic-left::after { 729 /* These differ from the urlbar and searchbar because the context menu 730 may not have enough space */ 731 margin-inline: -7px -4px; 732 margin-top: -8px; 733} 734 735/* Fade a little the icon so that the + badge is more evident and the button 736 is less likely to be visually confused with a normal search shortcut */ 737.searchbar-engine-one-off-add-engine[image]:not(:hover) > .button-box > .button-icon { 738 opacity: 0.7; 739} 740.searchbar-engine-one-off-add-engine[image]:hover > .button-box > .button-icon { 741 opacity: 1; 742} 743 744#urlbar-input::placeholder, 745.searchbar-textbox::placeholder { 746 opacity: 0.69; 747} 748