michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); michael@0: @namespace html url("http://www.w3.org/1999/xhtml"); michael@0: @namespace svg url("http://www.w3.org/2000/svg"); michael@0: michael@0: #main-window:not([chromehidden~="toolbar"]) { michael@0: %ifdef XP_MACOSX michael@0: min-width: 335px; michael@0: %else michael@0: min-width: 300px; michael@0: %endif michael@0: } michael@0: michael@0: #main-window[customize-entered] { michael@0: min-width: -moz-fit-content; michael@0: } michael@0: michael@0: searchbar { michael@0: -moz-binding: url("chrome://browser/content/search/search.xml#searchbar"); michael@0: } michael@0: michael@0: .browserStack > browser[remote="true"] { michael@0: -moz-binding: url("chrome://global/content/bindings/remote-browser.xml#remote-browser"); michael@0: } michael@0: michael@0: toolbar[customizable="true"] { michael@0: -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar"); michael@0: } michael@0: michael@0: %ifdef XP_MACOSX michael@0: #toolbar-menubar { michael@0: -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar-menubar-stub"); michael@0: } michael@0: michael@0: toolbar[customizable="true"]:not([nowindowdrag="true"]) { michael@0: -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar-drag"); michael@0: } michael@0: %endif michael@0: michael@0: #toolbar-menubar[autohide="true"] { michael@0: -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar-menubar-autohide"); michael@0: } michael@0: michael@0: #addon-bar { michael@0: -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#addonbar-delegating"); michael@0: visibility: visible; michael@0: margin: 0; michael@0: height: 0 !important; michael@0: overflow: hidden; michael@0: padding: 0; michael@0: border: 0 none; michael@0: } michael@0: michael@0: #addonbar-closebutton { michael@0: visibility: visible; michael@0: height: 0 !important; michael@0: } michael@0: michael@0: #status-bar { michael@0: height: 0 !important; michael@0: -moz-binding: none; michael@0: padding: 0; michael@0: margin: 0; michael@0: } michael@0: michael@0: panelmultiview { michael@0: -moz-binding: url("chrome://browser/content/customizableui/panelUI.xml#panelmultiview"); michael@0: } michael@0: michael@0: panelview { michael@0: -moz-binding: url("chrome://browser/content/customizableui/panelUI.xml#panelview"); michael@0: -moz-box-orient: vertical; michael@0: } michael@0: michael@0: .panel-mainview { michael@0: transition: transform 150ms; michael@0: } michael@0: michael@0: panelview:not([mainview]):not([current]) { michael@0: display: none; michael@0: } michael@0: michael@0: tabbrowser { michael@0: -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser"); michael@0: } michael@0: michael@0: .tabbrowser-tabs { michael@0: -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-tabs"); michael@0: } michael@0: michael@0: #tabbrowser-tabs:not([overflow="true"]) ~ #alltabs-button, michael@0: #tabbrowser-tabs:not([overflow="true"]) + #new-tab-button, michael@0: #tabbrowser-tabs[overflow="true"] > .tabbrowser-arrowscrollbox > .tabs-newtab-button, michael@0: #TabsToolbar[currentset]:not([currentset*="tabbrowser-tabs,new-tab-button"]) > #tabbrowser-tabs > .tabbrowser-arrowscrollbox > .tabs-newtab-button, michael@0: #TabsToolbar[customizing="true"] > #tabbrowser-tabs > .tabbrowser-arrowscrollbox > .tabs-newtab-button { michael@0: visibility: collapse; michael@0: } michael@0: michael@0: #tabbrowser-tabs:not([overflow="true"])[using-closing-tabs-spacer] ~ #alltabs-button { michael@0: visibility: hidden; /* temporary space to keep a tab's close button under the cursor */ michael@0: } michael@0: michael@0: .tabbrowser-tab { michael@0: -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-tab"); michael@0: } michael@0: michael@0: .tabbrowser-tab:not([pinned]) { michael@0: -moz-box-flex: 100; michael@0: max-width: 210px; michael@0: min-width: 100px; michael@0: width: 0; michael@0: transition: min-width 200ms ease-out, michael@0: max-width 230ms ease-out; michael@0: } michael@0: michael@0: .tabbrowser-tab:not([pinned]):not([fadein]) { michael@0: max-width: 0.1px; michael@0: min-width: 0.1px; michael@0: visibility: hidden; michael@0: } michael@0: michael@0: .tab-close-button, michael@0: .tab-background { michael@0: /* Explicitly set the visibility to override the value (collapsed) michael@0: * we inherit from #TabsToolbar[collapsed] upon opening a browser window. */ michael@0: visibility: visible; michael@0: } michael@0: michael@0: .tab-close-button[fadein], michael@0: .tab-background[fadein] { michael@0: /* This transition is only wanted for opening tabs. */ michael@0: transition: visibility 0ms 25ms; michael@0: } michael@0: michael@0: .tab-close-button:not([fadein]), michael@0: .tab-background:not([fadein]) { michael@0: visibility: hidden; michael@0: } michael@0: michael@0: .tab-label:not([fadein]), michael@0: .tab-throbber:not([fadein]), michael@0: .tab-icon-image:not([fadein]) { michael@0: display: none; michael@0: } michael@0: michael@0: .tabbrowser-tabs[positionpinnedtabs] > .tabbrowser-tab[pinned] { michael@0: position: fixed !important; michael@0: display: block; /* position:fixed already does this (bug 579776), but let's be explicit */ michael@0: } michael@0: michael@0: .tabbrowser-tabs[movingtab] > .tabbrowser-tab[selected] { michael@0: position: relative; michael@0: z-index: 2; michael@0: pointer-events: none; /* avoid blocking dragover events on scroll buttons */ michael@0: } michael@0: michael@0: .tabbrowser-tabs[movingtab] > .tabbrowser-tab[fadein]:not([selected]) { michael@0: transition: transform 200ms ease-out; michael@0: } michael@0: michael@0: #alltabs-popup { michael@0: -moz-binding: url("chrome://browser/content/tabbrowser.xml#tabbrowser-alltabs-popup"); michael@0: } michael@0: michael@0: toolbar[printpreview="true"] { michael@0: -moz-binding: url("chrome://global/content/printPreviewBindings.xml#printpreviewtoolbar"); michael@0: } michael@0: michael@0: toolbar[overflowable] > .customization-target { michael@0: overflow: hidden; michael@0: } michael@0: michael@0: toolbar:not([overflowing]) > .overflow-button, michael@0: toolbar[customizing] > .overflow-button { michael@0: display: none; michael@0: } michael@0: michael@0: %ifdef CAN_DRAW_IN_TITLEBAR michael@0: #main-window:not([chromemargin]) > #titlebar, michael@0: #main-window[inFullscreen] > #titlebar, michael@0: #main-window[inFullscreen] .titlebar-placeholder, michael@0: #main-window:not([tabsintitlebar]) .titlebar-placeholder { michael@0: display: none; michael@0: } michael@0: michael@0: #titlebar { michael@0: -moz-binding: url("chrome://global/content/bindings/general.xml#windowdragbox"); michael@0: } michael@0: michael@0: #titlebar-spacer { michael@0: pointer-events: none; michael@0: } michael@0: michael@0: #main-window[tabsintitlebar] #titlebar-buttonbox { michael@0: position: relative; michael@0: } michael@0: michael@0: #titlebar-buttonbox { michael@0: -moz-appearance: -moz-window-button-box; michael@0: } michael@0: michael@0: %ifdef XP_MACOSX michael@0: #titlebar-fullscreen-button { michael@0: -moz-appearance: -moz-mac-fullscreen-button; michael@0: } michael@0: michael@0: /* Because these buttons don't move, they should always be aligned the same, michael@0: * left and right were deprecated, so we have to do work to get it to mean that: */ michael@0: #titlebar-buttonbox-container:-moz-locale-dir(ltr) { michael@0: -moz-box-align: start; michael@0: } michael@0: michael@0: #titlebar-buttonbox-container:-moz-locale-dir(rtl) { michael@0: -moz-box-align: end; michael@0: } michael@0: michael@0: /* Fullscreen and caption buttons don't move with RTL on OS X so override the automatic ordering. */ michael@0: #titlebar-secondary-buttonbox:-moz-locale-dir(ltr), michael@0: #titlebar-buttonbox-container:-moz-locale-dir(rtl), michael@0: .titlebar-placeholder[type="fullscreen-button"]:-moz-locale-dir(ltr), michael@0: .titlebar-placeholder[type="caption-buttons"]:-moz-locale-dir(rtl) { michael@0: -moz-box-ordinal-group: 1000; michael@0: } michael@0: michael@0: #titlebar-secondary-buttonbox:-moz-locale-dir(rtl), michael@0: #titlebar-buttonbox-container:-moz-locale-dir(ltr), michael@0: .titlebar-placeholder[type="caption-buttons"]:-moz-locale-dir(ltr), michael@0: .titlebar-placeholder[type="fullscreen-button"]:-moz-locale-dir(rtl) { michael@0: -moz-box-ordinal-group: 0; michael@0: } michael@0: %else michael@0: /* On non-OSX, these should be start-aligned */ michael@0: #titlebar-buttonbox-container { michael@0: -moz-box-align: start; michael@0: } michael@0: %endif michael@0: michael@0: %if !defined(MOZ_WIDGET_GTK) && !defined(MOZ_WIDGET_QT) michael@0: #TabsToolbar > .private-browsing-indicator { michael@0: -moz-box-ordinal-group: 1000; michael@0: } michael@0: %endif michael@0: michael@0: %ifdef XP_WIN michael@0: #main-window[sizemode="maximized"] #titlebar-buttonbox { michael@0: -moz-appearance: -moz-window-button-box-maximized; michael@0: } michael@0: %endif michael@0: michael@0: %endif michael@0: michael@0: /* Rules to help integrate SDK widgets */ michael@0: toolbaritem[sdkstylewidget="true"] > toolbarbutton, michael@0: toolbarpaletteitem > toolbaritem[sdkstylewidget="true"] > iframe, michael@0: toolbarpaletteitem > toolbaritem[sdkstylewidget="true"] > .toolbarbutton-text { michael@0: display: none; michael@0: } michael@0: michael@0: toolbarpaletteitem:-moz-any([place="palette"], [place="panel"]) > toolbaritem[sdkstylewidget="true"] > toolbarbutton { michael@0: display: -moz-box; michael@0: } michael@0: michael@0: toolbarpaletteitem > toolbaritem[sdkstylewidget="true"][cui-areatype="toolbar"] > .toolbarbutton-text { michael@0: display: -moz-box; michael@0: } michael@0: michael@0: toolbarpaletteitem[removable="false"] { michael@0: opacity: 0.5; michael@0: cursor: default; michael@0: } michael@0: michael@0: #bookmarks-toolbar-placeholder, michael@0: toolbarpaletteitem > #personal-bookmarks > #PlacesToolbar, michael@0: #personal-bookmarks[cui-areatype="menu-panel"] > #PlacesToolbar, michael@0: #personal-bookmarks[cui-areatype="toolbar"][overflowedItem=true] > #PlacesToolbar { michael@0: display: none; michael@0: } michael@0: michael@0: #PlacesToolbarDropIndicatorHolder { michael@0: position: absolute; michael@0: top: 25%; michael@0: } michael@0: michael@0: toolbarpaletteitem > #personal-bookmarks > #bookmarks-toolbar-placeholder, michael@0: #personal-bookmarks[cui-areatype="menu-panel"] > #bookmarks-toolbar-placeholder, michael@0: #personal-bookmarks[cui-areatype="toolbar"][overflowedItem=true] > #bookmarks-toolbar-placeholder { michael@0: display: -moz-box; michael@0: } michael@0: michael@0: toolbar:not(#TabsToolbar) > #wrapper-personal-bookmarks, michael@0: toolbar:not(#TabsToolbar) > #personal-bookmarks { michael@0: -moz-box-flex: 1; michael@0: } michael@0: michael@0: #zoom-controls[cui-areatype="toolbar"]:not([overflowedItem=true]) > #zoom-reset-button > .toolbarbutton-text { michael@0: display: -moz-box; michael@0: } michael@0: michael@0: #urlbar-reload-button:not([displaystop]) + #urlbar-stop-button, michael@0: #urlbar-reload-button[displaystop] { michael@0: visibility: collapse; michael@0: } michael@0: michael@0: #PanelUI-feeds > .feed-toolbarbutton:-moz-locale-dir(rtl) { michael@0: direction: rtl; michael@0: } michael@0: michael@0: #panelMenu_bookmarksMenu > .bookmark-item { michael@0: max-width: none; michael@0: } michael@0: michael@0: #urlbar-container { michael@0: min-width: 50ch; michael@0: } michael@0: michael@0: #search-container { michael@0: min-width: 25ch; michael@0: } michael@0: michael@0: #urlbar, michael@0: .searchbar-textbox { michael@0: /* Setting a width and min-width to let the location & search bars maintain michael@0: a constant width in case they haven't be resized manually. (bug 965772) */ michael@0: width: 1px; michael@0: min-width: 1px; michael@0: } michael@0: michael@0: #main-window:-moz-lwtheme { michael@0: background-repeat: no-repeat; michael@0: background-position: top right; michael@0: } michael@0: michael@0: %ifdef XP_MACOSX michael@0: #main-window[inFullscreen="true"] { michael@0: padding-top: 0; /* override drawintitlebar="true" */ michael@0: } michael@0: %endif michael@0: michael@0: #browser-bottombox[lwthemefooter="true"] { michael@0: background-repeat: no-repeat; michael@0: background-position: bottom left; michael@0: } michael@0: michael@0: .menuitem-tooltip { michael@0: -moz-binding: url("chrome://browser/content/urlbarBindings.xml#menuitem-tooltip"); michael@0: } michael@0: michael@0: .menuitem-iconic-tooltip, michael@0: .menuitem-tooltip[type="checkbox"], michael@0: .menuitem-tooltip[type="radio"] { michael@0: -moz-binding: url("chrome://browser/content/urlbarBindings.xml#menuitem-iconic-tooltip"); michael@0: } michael@0: michael@0: /* Hide menu elements intended for keyboard access support */ michael@0: #main-menubar[openedwithkey=false] .show-only-for-keyboard { michael@0: display: none; michael@0: } michael@0: michael@0: /* ::::: location bar ::::: */ michael@0: #urlbar { michael@0: -moz-binding: url(chrome://browser/content/urlbarBindings.xml#urlbar); michael@0: } michael@0: michael@0: .ac-url-text:-moz-locale-dir(rtl), michael@0: .ac-title:-moz-locale-dir(rtl) > description { michael@0: direction: ltr !important; michael@0: } michael@0: michael@0: /* For results that are actions, their description text is shown instead of michael@0: the URL - this needs to follow the locale's direction, unlike URLs. */ michael@0: panel:not([noactions]) > richlistbox > richlistitem[type~="action"]:-moz-locale-dir(rtl) > .ac-url-box { michael@0: direction: rtl; michael@0: } michael@0: michael@0: panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .ac-url > .ac-action-text, michael@0: panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .ac-action-icon { michael@0: visibility: collapse; michael@0: } michael@0: michael@0: panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .ac-url > .ac-url-text { michael@0: visibility: visible; michael@0: } michael@0: michael@0: #urlbar:not([actiontype]) > #urlbar-display-box { michael@0: display: none; michael@0: } michael@0: michael@0: #PopupAutoComplete { michael@0: -moz-binding: url("chrome://browser/content/urlbarBindings.xml#browser-autocomplete-result-popup"); michael@0: } michael@0: michael@0: #PopupAutoCompleteRichResult { michael@0: -moz-binding: url("chrome://browser/content/urlbarBindings.xml#urlbar-rich-result-popup"); michael@0: } michael@0: michael@0: #urlbar[pageproxystate="invalid"] > #urlbar-icons > .urlbar-icon, michael@0: #urlbar[pageproxystate="invalid"][focused="true"] > #urlbar-go-button ~ toolbarbutton, michael@0: #urlbar[pageproxystate="valid"] > #urlbar-go-button, michael@0: #urlbar:not([focused="true"]) > #urlbar-go-button { michael@0: visibility: collapse; michael@0: } michael@0: michael@0: #urlbar[pageproxystate="invalid"] > #identity-box > #identity-icon-labels { michael@0: visibility: collapse; michael@0: } michael@0: michael@0: #urlbar[pageproxystate="invalid"] > #identity-box { michael@0: pointer-events: none; michael@0: } michael@0: michael@0: #identity-icon-labels { michael@0: max-width: 18em; michael@0: } michael@0: @media (max-width: 700px) { michael@0: #urlbar-container { michael@0: min-width: 45ch; michael@0: } michael@0: #identity-icon-labels { michael@0: max-width: 70px; michael@0: } michael@0: } michael@0: @media (max-width: 600px) { michael@0: #urlbar-container { michael@0: min-width: 40ch; michael@0: } michael@0: #identity-icon-labels { michael@0: max-width: 60px; michael@0: } michael@0: } michael@0: @media (max-width: 500px) { michael@0: #urlbar-container { michael@0: min-width: 35ch; michael@0: } michael@0: #identity-icon-labels { michael@0: max-width: 50px; michael@0: } michael@0: } michael@0: @media (max-width: 400px) { michael@0: #urlbar-container { michael@0: min-width: 28ch; michael@0: } michael@0: #identity-icon-labels { michael@0: max-width: 40px; michael@0: } michael@0: } michael@0: michael@0: #identity-icon-country-label { michael@0: direction: ltr; michael@0: } michael@0: michael@0: #identity-box.verifiedIdentity > #identity-icon-labels > #identity-icon-label { michael@0: -moz-margin-end: 0.25em !important; michael@0: } michael@0: michael@0: #main-window[customizing] :-moz-any(#urlbar, .searchbar-textbox) > .autocomplete-textbox-container > .textbox-input-box { michael@0: visibility: hidden; michael@0: } michael@0: michael@0: /* ::::: Unified Back-/Forward Button ::::: */ michael@0: #back-button > .toolbarbutton-menu-dropmarker, michael@0: #forward-button > .toolbarbutton-menu-dropmarker { michael@0: display: none; michael@0: } michael@0: .unified-nav-current { michael@0: font-weight: bold; michael@0: } michael@0: michael@0: toolbarbutton.bookmark-item { michael@0: max-width: 13em; michael@0: } michael@0: michael@0: #editBMPanel_tagsSelector { michael@0: /* override default listbox width from xul.css */ michael@0: width: auto; michael@0: } michael@0: michael@0: /* The star doesn't make sense as text */ michael@0: toolbar[mode="text"] #bookmarks-menu-button > .toolbarbutton-menubutton-button > .toolbarbutton-icon { michael@0: display: -moz-box !important; michael@0: } michael@0: toolbar[mode="text"] #bookmarks-menu-button > .toolbarbutton-menubutton-button > .toolbarbutton-text, michael@0: toolbar[mode="full"] #bookmarks-menu-button.bookmark-item > .toolbarbutton-menubutton-button > .toolbarbutton-text { michael@0: display: none; michael@0: } michael@0: michael@0: menupopup[emptyplacesresult="true"] > .hide-if-empty-places-result { michael@0: display: none; michael@0: } michael@0: michael@0: menuitem.spell-suggestion { michael@0: font-weight: bold; michael@0: } michael@0: michael@0: /* apply Fitts' law to the notification bar's close button */ michael@0: window[sizemode="maximized"] #content .notification-inner { michael@0: border-right: 0px !important; michael@0: } michael@0: michael@0: /* Hide extension toolbars that neglected to set the proper class */ michael@0: window[chromehidden~="location"][chromehidden~="toolbar"] toolbar:not(.chromeclass-menubar), michael@0: window[chromehidden~="toolbar"] toolbar:not(.toolbar-primary):not(.chromeclass-menubar) { michael@0: display: none; michael@0: } michael@0: michael@0: #navigator-toolbox , michael@0: #mainPopupSet { michael@0: min-width: 1px; michael@0: } michael@0: michael@0: %ifdef MOZ_SERVICES_SYNC michael@0: /* Sync notification UI */ michael@0: #sync-notifications { michael@0: -moz-binding: url("chrome://browser/content/sync/notification.xml#notificationbox"); michael@0: overflow-y: visible !important; michael@0: } michael@0: michael@0: #sync-notifications notification { michael@0: -moz-binding: url("chrome://browser/content/sync/notification.xml#notification"); michael@0: } michael@0: %endif michael@0: michael@0: /* History Swipe Animation */ michael@0: michael@0: #historySwipeAnimationContainer { michael@0: overflow: hidden; michael@0: } michael@0: michael@0: #historySwipeAnimationPreviousPage, michael@0: #historySwipeAnimationCurrentPage, michael@0: #historySwipeAnimationNextPage { michael@0: background: none top left no-repeat white; michael@0: } michael@0: michael@0: #historySwipeAnimationPreviousPage { michael@0: background-image: -moz-element(#historySwipeAnimationPreviousPageSnapshot); michael@0: } michael@0: michael@0: #historySwipeAnimationCurrentPage { michael@0: background-image: -moz-element(#historySwipeAnimationCurrentPageSnapshot); michael@0: } michael@0: michael@0: #historySwipeAnimationNextPage { michael@0: background-image: -moz-element(#historySwipeAnimationNextPageSnapshot); michael@0: } michael@0: michael@0: /* Identity UI */ michael@0: #identity-popup-content-box:not(.chromeUI) > #identity-popup-brandName, michael@0: #identity-popup-content-box:not(.chromeUI) > #identity-popup-chromeLabel, michael@0: #identity-popup-content-box.chromeUI > .identity-popup-label:not(#identity-popup-brandName):not(#identity-popup-chromeLabel), michael@0: #identity-popup-content-box.chromeUI > .identity-popup-description, michael@0: #identity-popup.chromeUI > #identity-popup-button-container, michael@0: #identity-popup-content-box.unknownIdentity > #identity-popup-connectedToLabel , michael@0: #identity-popup-content-box.unknownIdentity > #identity-popup-runByLabel , michael@0: #identity-popup-content-box.unknownIdentity > #identity-popup-content-host , michael@0: #identity-popup-content-box.unknownIdentity > #identity-popup-content-owner , michael@0: #identity-popup-content-box.verifiedIdentity > #identity-popup-connectedToLabel2 , michael@0: #identity-popup-content-box.verifiedDomain > #identity-popup-connectedToLabel2 { michael@0: display: none; michael@0: } michael@0: michael@0: /* Full Screen UI */ michael@0: michael@0: #fullscr-toggler { michael@0: height: 1px; michael@0: background: black; michael@0: } michael@0: michael@0: #full-screen-warning-container { michael@0: position: fixed; michael@0: top: 0; michael@0: left: 0; michael@0: width: 100%; michael@0: height: 100%; michael@0: z-index: 2147483647 !important; michael@0: } michael@0: michael@0: #full-screen-warning-container[fade-warning-out] { michael@0: transition-property: opacity !important; michael@0: transition-duration: 500ms !important; michael@0: opacity: 0.0; michael@0: } michael@0: michael@0: /* When the modal fullscreen approval UI is showing, don't allow interaction michael@0: with the page, but when we're just showing the warning upon entering michael@0: fullscreen on an already approved page, do allow interaction with the page. michael@0: */ michael@0: #full-screen-warning-container:not([obscure-browser]) { michael@0: pointer-events: none; michael@0: } michael@0: michael@0: #full-screen-warning-message { michael@0: /* We must specify a max-width, otherwise word-wrap:break-word doesn't michael@0: work in descendant and