%if 0 /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ %endif %filter substitution %define urlbarViewPadding 4px %define urlbarViewIconMarginEnd (@identityBoxPaddingInline@ + @identityBoxMarginInlineEnd@) %define urlbarViewMarginInline 7px %define urlbarViewItemInlinePadding 6px %define urlbarViewFaviconWidth 16px %include ../shared/urlbar/dynamicResults.inc.css :root { --autocomplete-popup-background: var(--arrowpanel-background); --autocomplete-popup-color: var(--arrowpanel-color); --autocomplete-popup-highlight-background: Highlight; --autocomplete-popup-highlight-color: HighlightText; /* Colors copied from in-content button styling */ --urlbarView-button-background: rgba(12, 12, 13, 0.1); --urlbarView-button-background-hover: rgba(12, 12, 13, 0.2); --urlbarView-button-background-active: rgba(12, 12, 13, 0.3); --urlbarView-primary-button-text: white; --urlbarView-primary-button-background: #0060df; --urlbarView-primary-button-background-hover: #003eaa; --urlbarView-primary-button-background-active: #002275; --urlbarView-action-slide-in-distance: 200px; } :root:-moz-lwtheme { --urlbar-popup-url-color: hsl(210, 77%, 47%); --urlbar-popup-action-color: hsl(178, 100%, 28%); } :root:-moz-lwtheme[lwt-toolbar-field-focus-brighttext] { --urlbar-popup-url-color: @lwtPopupBrighttextLinkColor@; --urlbar-popup-action-color: #30e60b; /* Colors copied from in-content button styling */ --urlbarView-button-background: rgba(249, 249, 250, 0.24); --urlbarView-button-background-hover: rgba(249, 249, 250, 0.15); --urlbarView-button-background-active: rgba(249, 249, 250, 0.2); } :root:-moz-locale-dir(rtl) { --urlbarView-action-slide-in-distance: -200px; } .urlbarView { /* Don't handle window drag events in case we are overlapping a toolbar */ -moz-window-dragging: no-drag; display: block; text-shadow: none; overflow: clip; margin-inline: @urlbarViewMarginInline@; width: calc(100% - 2 * @urlbarViewMarginInline@); /* Match urlbar-background's border. */ border-inline: 1px solid transparent; } /* If the view is open, offset the toolbar overlap so the view's top border aligns with the toolbar. */ #urlbar[open] > .urlbarView { margin-block-start: -@urlbarBreakoutExtend@; } .urlbarView-body-inner { width: 100%; } #urlbar[open] > .urlbarView > .urlbarView-body-outer > .urlbarView-body-inner { border-top: 1px solid var(--urlbar-separator-color); } .urlbarView-results { padding-block: @urlbarViewPadding@; white-space: nowrap; } /* Vertically center the one-offs when no results are present. */ .urlbarView[noresults] > .urlbarView-body-outer > .urlbarView-body-inner > .urlbarView-results { padding-block: 0; } .urlbarView-row { fill: currentColor; fill-opacity: .6; padding-block: 3px; } .urlbarView-row-inner { border-radius: 2px; padding-inline-start: @urlbarViewItemInlinePadding@; padding-block: 6px; } :root[uidensity=touch] .urlbarView-row:not([type=tip], [type=dynamic]) { padding-block: 11px; } .urlbarView-row[type=tip] { padding-block-start: 18px; /* Compensating for the 16px bottom margin on the tip elements. */ padding-block-end: calc(18px - 16px); /* Compensating for the 4px focus ring on tip buttons. */ padding-inline-end: calc(@urlbarViewItemInlinePadding@ + 4px); } .urlbarView-row-inner, .urlbarView-no-wrap { display: flex; flex-wrap: nowrap; align-items: end; justify-content: start; } .urlbarView[actionoverride] .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-no-wrap, .urlbarView-row[has-url]:not([type$=tab]) > .urlbarView-row-inner > .urlbarView-no-wrap, .urlbarView-row[has-url]:is([type=remotetab], [sponsored]):is(:hover, [selected]) > .urlbarView-row-inner > .urlbarView-no-wrap { /* We prioritize icons + title + action over the url, so they can grow freely, but the url should never disappear when it's visible */ flex-shrink: 0; max-width: calc(70% - 2 * (@urlbarViewFaviconWidth@ + (6px + 2px))); } /* Wrap the url to a second line when the window is narrow. Do not wrap when the window is also short, because fewer results will be shown. */ @media screen and (min-height: 600px) { .urlbarView-results[wrap] > .urlbarView-row > .urlbarView-row-inner { flex-wrap: wrap; } .urlbarView-results[wrap] > .urlbarView-row > .urlbarView-row-inner > .urlbarView-no-wrap { max-width: 100% !important; flex-basis: 100%; } .urlbarView-results[wrap] > .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-url { margin-top: 2px; } /* urlbarView-url is forced to be LTR for RTL locales, so set the padding based on the browser's directionality. */ .urlbarView-results[wrap] > .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-url:-moz-locale-dir(ltr) { padding-left: calc(@urlbarViewItemInlinePadding@ + @identityBoxMarginInlineEnd@ + @urlbarViewFaviconWidth@); } .urlbarView-results[wrap] > .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-url:-moz-locale-dir(rtl) { padding-right: calc(@urlbarViewItemInlinePadding@ + @identityBoxMarginInlineEnd@ + @urlbarViewFaviconWidth@); } /* Note: switchtab entries show the url only in override mode, remotetab and sponsored ones only when selected or :hover. */ .urlbarView[actionoverride] .urlbarView-results[wrap] > .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator, .urlbarView-results[wrap] > .urlbarView-row[has-url]:not([type$=tab], [sponsored]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator, .urlbarView-results[wrap] > .urlbarView-row:is([type=remotetab], [sponsored]):is(:hover, [selected]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator, .urlbarView-results[wrap] > .urlbarView-row[type=tabtosearch] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator { display: none; } .urlbarView-results[wrap] > .urlbarView-row[type=tabtosearch] > .urlbarView-row-inner > .urlbarView-no-wrap { flex-wrap: wrap; } .urlbarView-results[wrap] > .urlbarView-row[type=tabtosearch] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action { flex-basis: 100%; margin-inline-start: calc(@urlbarViewItemInlinePadding@ + @identityBoxMarginInlineEnd@ + @urlbarViewFaviconWidth@); } } /* We should always wrap tip results at narrow widths regardless of screen height. Unlike regular results, unwrapped tips are taller than wrapped tips. */ .urlbarView-results[wrap] > .urlbarView-row[type=tip] > .urlbarView-row-inner { flex-wrap: wrap; } .urlbarView-row:not([type=tip], [type=dynamic]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title[overflow], .urlbarView-url[overflow] { mask-image: linear-gradient(to left, transparent, black 2em); } .urlbarView-row:not([type=tip], [type=dynamic]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title[overflow]:not([isurl]):-moz-locale-dir(rtl) { mask-image: linear-gradient(to right, transparent, black 2em); } .urlbarView-title[isurl]:-moz-locale-dir(rtl), .urlbarView-url:-moz-locale-dir(rtl) { direction: ltr !important; } .urlbarView-row:not([type=tip], [type=dynamic]):hover > .urlbarView-row-inner { background: var(--arrowpanel-dimmed); } .urlbarView-row:not([type=tip], [type=dynamic])[selected] > .urlbarView-row-inner { background: var(--autocomplete-popup-highlight-background); color: var(--autocomplete-popup-highlight-color); fill-opacity: 1; } /* Favicon */ .urlbarView-favicon { width: @urlbarViewFaviconWidth@; height: @urlbarViewFaviconWidth@; margin-inline-end: calc(@urlbarViewIconMarginEnd@); background-repeat: no-repeat; background-size: contain; object-fit: contain; flex-shrink: 0; -moz-context-properties: fill, fill-opacity; } .urlbarView-row[type=tip] > .urlbarView-row-inner > .urlbarView-favicon { width: 24px; height: 24px; margin-inline-end: 12px; flex-basis: 24px; flex-grow: 0; } .urlbarView-row[tail-suggestion] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon { visibility: hidden; } .urlbarView-row[type=tabtosearch] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon { color: #0060df; /* Blue-60 */ stroke: #fff; -moz-context-properties: fill, stroke; } .urlbarView-row[type=tabtosearch][selected] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon { color: #fff; stroke: #0060df; } :root[lwt-toolbar-field-brighttext] .urlbarView-row[type=tabtosearch]:not([selected]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon { color: #0a84ff; /* Blue-50 */ } :root[lwt-toolbar-field-brighttext] .urlbarView-row[type=tabtosearch][selected] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon { stroke: #0a84ff; } /* Type icon */ .urlbarView-type-icon { position: absolute; width: 12px; height: 12px; margin-bottom: -4px; margin-inline-start: 8px; background-repeat: no-repeat; background-size: contain; -moz-context-properties: fill, stroke; } /* Favicon badges have this priority: switchtab/remotetab > pinned > bookmark. */ .urlbarView-row[type=bookmark] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon { background-image: url(chrome://browser/skin/bookmark-12.svg); color: #0060df; /* Blue-60 */ stroke: #fff; } .urlbarView-row[pinned] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon { background-image: url(chrome://browser/skin/pin-12.svg); color: #b1b1b3; /* Grey-40 */ stroke: #fff; } .urlbarView:not([actionoverride]) .urlbarView-row[type=switchtab] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon, .urlbarView-row[type=remotetab] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon { background-image: url(chrome://browser/skin/tab-12.svg); color: #008eaf; /* Teal-70 */ stroke: #fff; } :root[lwt-toolbar-field-brighttext] .urlbarView-row[type=bookmark] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon { color: #0a84ff; /* Blue-50 */ stroke: #38383d; /* Grey-70 */ } :root[lwt-toolbar-field-brighttext] .urlbarView-row[pinned] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon { color: #d7d7db; /* Grey-30 */ stroke: #38383d; /* Grey-70 */ } :root[lwt-toolbar-field-brighttext] .urlbarView:not([actionoverride]) .urlbarView-row[type=switchtab] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon, :root[lwt-toolbar-field-brighttext] .urlbarView-row[type=remotetab] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon { color: #00c8d7; /* Teal-60 */ stroke: #38383d; /* Grey-70 */ } /* Tip rows */ .urlbarView-row[type=tip]:not(:last-child) { border-bottom: 1px solid var(--panel-separator-color); margin-bottom: 4px; } .urlbarView-row[type=tip]:not(:first-child) { border-top: 1px solid var(--panel-separator-color); margin-top: 4px; } .urlbarView-row[type=tip] > .urlbarView-row-inner { display: flex; align-items: center; min-height: 32px; width: 100%; } /* For tips, give the title some bottom margin so that when the window is narrow and the buttons wrap below it, there's space between it and the buttons. We then need to give the same bottom margin to the other tip elements so that they all remain vertically aligned. */ .urlbarView-row[type=tip] > .urlbarView-row-inner > .urlbarView-favicon, .urlbarView-row[type=tip] > .urlbarView-row-inner > .urlbarView-title, .urlbarView-tip-button, .urlbarView-tip-help { margin-block-end: 16px; } /* The help icon is a standard Photon ghost button. */ .urlbarView-tip-help { min-width: 16px; height: 32px; background-image: url("chrome://global/skin/icons/help.svg"); background-size: 16px; background-position: center; background-repeat: no-repeat; padding-inline: 8px; margin-inline-start: 8px; -moz-context-properties: fill, fill-opacity; } .urlbarView-tip-help[selected] { box-shadow: 0 0 0 1px #0a84ff inset, 0 0 0 1px #0a84ff, 0 0 0 4px rgba(10, 132, 255, 0.3); } .urlbarView-tip-help:hover { background-color: var(--urlbarView-button-background-hover); } .urlbarView-tip-help:hover:active { background-color: var(--urlbarView-button-background-active); } /* The tip button is a Photon default button when unfocused and a primary button in all other states. */ .urlbarView-tip-button { min-height: 16px; padding: 7px; border: 1px solid var(--urlbarView-button-border, var(--urlbarView-button-background)); border-radius: 2px; font-size: 0.93em; color: var(--urlbarView-button-text, inherit); background-color: var(--urlbarView-button-background); background-clip: padding-box; min-width: 8.75em; text-align: center; flex-basis: initial; flex-shrink: 0; } .urlbarView-tip-button:hover { background-color: var(--urlbarView-button-background-hover); } .urlbarView-tip-button:hover:active { background-color: var(--urlbarView-button-background-active); } .urlbarView-tip-button[selected] { color: var(--urlbarView-primary-button-text); background-color: var(--urlbarView-primary-button-background); border-color: #0a84ff; box-shadow: 0 0 0 1px #0a84ff, 0 0 0 4px rgba(10, 132, 255, 0.3); } .urlbarView-tip-button[selected]:hover { background-color: var(--urlbarView-primary-button-background-hover); } .urlbarView-tip-button[selected]:hover:active { background-color: var(--urlbarView-primary-button-background-active); } .urlbarView-tip-button-spacer { flex-basis: 48px; flex-grow: 1; flex-shrink: 1; } /* Title */ .urlbarView-title { overflow: hidden; white-space: nowrap; } .urlbarView-row[type=tip] > .urlbarView-row-inner > .urlbarView-title { white-space: normal; /* Give the tip title appropriate flex so that when the window is narrow, the tip buttons wrap around under it. We want the icon and title to remain on one line. So make the title's flex-basis the width of the parent minus the width of the icon. */ flex-basis: calc(100% - /* .urlbarView-row-inner padding-inline-start */ 6px - /* .urlbarView-favicon width */ 24px - /* .urlbarView-favicon margin-inline-end */ 12px); flex-grow: 1; flex-shrink: 1; } /* Tail suggestions */ .urlbarView-tail-prefix { display: none; justify-content: flex-end; white-space: pre; } .urlbarView-row[tail-suggestion] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-tail-prefix { display: inline-flex; } .urlbarView-tail-prefix > .urlbarView-tail-prefix-string { visibility: hidden; } .urlbarView-tail-prefix > .urlbarView-tail-prefix-char { position: absolute; } /* Title separator */ .urlbarView-title-separator::before { content: "\2014"; margin: 0 .4em; opacity: 0.6; } .urlbarView-title:empty + .urlbarView-tags:empty + .urlbarView-title-separator { display: none; } /* URLs, action labels, tags */ .urlbarView-tags, .urlbarView-url, .urlbarView-title:not(:empty) ~ .urlbarView-action { font-size: .85em; } .urlbarView-title:not(:empty) ~ .urlbarView-action { color: var(--urlbar-popup-action-color); } .urlbarView-row[sponsored] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action { color: unset; opacity: .6; } @media (prefers-reduced-motion: no-preference) { /* The slide-in effect is delayed ~100ms to reduce motion during result composition. We set opacity: 0 at the 0% keyframe to ensure the text is not seen by the user until after the delay. */ @keyframes urlbarView-action-slide-in { 0%, 28.6% { translate: var(--urlbarView-action-slide-in-distance); opacity: 0; } 100% { translate: 0; opacity: 1; } } .urlbarView-results > .urlbarView-row > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title:not(:empty) ~ .urlbarView-action[slide-in] { animation-name: urlbarView-action-slide-in; animation-duration: 350ms; animation-timing-function: var(--animation-easing-function); } } .urlbarView-url { overflow: hidden; color: var(--urlbar-popup-url-color); } .urlbarView-row[selected] > .urlbarView-row-inner > .urlbarView-no-wrap >.urlbarView-action, .urlbarView-row[selected] > .urlbarView-row-inner > .urlbarView-url { color: inherit; } .urlbarView-row:is([type=remotetab], [sponsored]):not([selected], :hover) > .urlbarView-row-inner > .urlbarView-url, .urlbarView-row:is([type=search], [restyled-search]):not([selected], [show-action-text], :hover) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator, .urlbarView-row:not([has-action], [has-url], [restyled-search]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-title-separator, .urlbarView:not([actionoverride]) .urlbarView-row[type=switchtab] > .urlbarView-row-inner > .urlbarView-url { /* Use visibility:collapse instead of display:none since the latter can confuse the overflow state of title and url elements when their content changes while they're hidden. */ visibility: collapse; } .urlbarView-row:is([type=remotetab], [sponsored]):is([selected], :hover) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action, .urlbarView-row:is([type=search], [restyled-search]):not([selected], [show-action-text], :hover) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action, .urlbarView-row:not([has-action], [has-url], [restyled-search]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action, .urlbarView[actionoverride] .urlbarView-row[type=switchtab] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-action { display: none; } .urlbarView-tags { overflow: hidden; } .urlbarView-tag { background-color: var(--arrowpanel-dimmed); border-radius: 2px; border: 1px solid var(--panel-separator-color); padding: 0 1px; margin-inline-start: .4em; } .urlbarView-row[selected] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-tags > .urlbarView-tag { background-color: var(--autocomplete-popup-highlight-color); color: var(--autocomplete-popup-highlight-background); } /* Search one-offs */ #urlbar .search-one-offs:not([hidden]) { display: flex; align-items: start; padding-block: 16px; flex-wrap: wrap; } .urlbarView[noresults] > .search-one-offs { border-top: none; } #urlbar .search-panel-one-offs-container { /* Make sure horizontally we can fit four buttons, empty space, settings. */ min-width: calc(4 * /* one-off with end margin */ 40px + /* settings with start margin */ 56px); } #urlbar .search-panel-header { padding: 0; min-height: 32px; display: flex; flex-direction: column; justify-content: center; } #urlbar .search-panel-one-offs-header-label { white-space: nowrap; margin: 0; padding-inline: 8px 16px; } #urlbar .searchbar-engine-one-off-item { min-width: 32px; height: 32px; margin-inline-end: 8px; } #urlbar .searchbar-engine-one-off-item:last-child { /* This applies to both the last one-off and the compact settings button */ margin-inline-end: 0; } #urlbar .search-setting-button-compact { /* Force empty space before the button */ margin-inline-start: calc(32px - /* settings start padding */ 8px ); } #urlbar .search-one-offs-spacer { flex-grow: 1; } .urlbarView-row[source="bookmarks"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, #urlbar-engine-one-off-item-bookmarks { list-style-image: url("chrome://browser/skin/bookmark.svg"); fill: #0060df; /* Blue-60 */ fill-opacity: 1; -moz-context-properties: fill, fill-opacity; } .urlbarView-row[source="tabs"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, #urlbar-engine-one-off-item-tabs { list-style-image: url("chrome://browser/skin/tab.svg"); fill: #008eaf; /* Teal-70 */ fill-opacity: 1; -moz-context-properties: fill, fill-opacity; } .urlbarView-row[source="history"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, #urlbar-engine-one-off-item-history { list-style-image: url("chrome://browser/skin/history.svg"); fill: currentColor; fill-opacity: .9; -moz-context-properties: fill, fill-opacity; } :root[lwt-toolbar-field-brighttext] .urlbarView-row[source="bookmarks"]:not([selected]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, :root[lwt-toolbar-field-brighttext] #urlbar-engine-one-off-item-bookmarks:not([selected]) { fill: #0a84ff; /* Blue-50 */ } :root[lwt-toolbar-field-brighttext] .urlbarView-row[source="tabs"]:not([selected]) > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, :root[lwt-toolbar-field-brighttext] #urlbar-engine-one-off-item-tabs:not([selected]) { fill: #00c8d7; /* Teal-60 */ } .urlbarView-row[source="bookmarks"][selected] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, .urlbarView-row[source="tabs"][selected] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon, #urlbar-engine-one-off-item-bookmarks[selected], #urlbar-engine-one-off-item-tabs[selected] { fill: currentColor; fill-opacity: .9; } /* search bar popup */ #PopupSearchAutoComplete { background: var(--autocomplete-popup-background); color: var(--autocomplete-popup-color); border-color: var(--arrowpanel-border-color); } #PopupSearchAutoComplete .autocomplete-richlistitem[selected] { background: var(--autocomplete-popup-highlight-background); color: var(--autocomplete-popup-highlight-color); }