diff options
Diffstat (limited to 'browser/themes/windows/browser.css')
-rw-r--r-- | browser/themes/windows/browser.css | 569 |
1 files changed, 569 insertions, 0 deletions
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css new file mode 100644 index 0000000000..768fd95c38 --- /dev/null +++ b/browser/themes/windows/browser.css @@ -0,0 +1,569 @@ +/* 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/. */ + +@import url("chrome://browser/skin/browser-shared.css"); +@import url("chrome://browser/skin/contextmenu.css"); +@import url("chrome://browser/skin/browser-custom-colors.css"); + +@namespace html url("http://www.w3.org/1999/xhtml"); + +:root { + --toolbar-non-lwt-bgcolor: color-mix(in srgb, -moz-dialog 85%, white); + --toolbar-non-lwt-textcolor: -moz-dialogtext; + + --chrome-content-separator-color: ThreeDShadow; +} + +@media (-moz-windows-default-theme) { + :root { + --toolbar-non-lwt-bgcolor: -moz-dialog; + } +} + +:root:-moz-lwtheme { + --chrome-content-separator-color: rgba(0,0,0,.3); +} + +#menubar-items { + flex-direction: column; /* for flex hack */ +} + +#main-menubar > menu { + appearance: none; + color: inherit; +} + +#main-menubar > menu[_moz-menuactive="true"] { + background-color: -moz-menuhover; + color: -moz-menuhovertext; +} + +/* Use a different color only on Windows 8 and higher in inactive windows. + * On Win 7, the menubar fog disappears for inactive windows, and renders gray + * illegible. + */ +@media (-moz-windows-default-theme) { + @media not (-moz-platform: windows-win7) { + #toolbar-menubar:not(:-moz-lwtheme):-moz-window-inactive { + color: ThreeDShadow; + } + } +} + +@media not (-moz-platform: windows-win7) { + @media not (-moz-platform: windows-win8) { + /* On Windows 10, when temporarily showing the menu bar, make it at least as + * tall as the tab bar such that the window controls don't appear to move up. */ + :root[tabsintitlebar] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); + } + :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) - var(--tabs-navbar-shadow-size)); + } + } +} + +/* Add 4px extra margin on top of the tabs toolbar on Windows 7. */ +@media (-moz-platform: windows-win7) { + :root[sizemode="normal"][chromehidden~="menubar"] #TabsToolbar > .toolbar-items, + :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] + #TabsToolbar > .toolbar-items { + padding-top: 4px; + } +} + +#navigator-toolbox, +.browser-toolbar { + appearance: none; +} + +.browser-toolbar:not(.titlebar-color) { + background-color: var(--toolbar-bgcolor); + background-clip: padding-box; + color: var(--toolbar-color); +} + +/* Add a fog for background tabs to be visible on Windows 7 glass window background */ +@media (-moz-platform: windows-win7) { + @media (-moz-windows-default-theme) { + #TabsToolbar:not(:-moz-lwtheme) { + background-image: radial-gradient(ellipse at bottom, rgba(255,255,255,0.8), rgba(255,255,255,0.5) 80%, transparent); + } + } +} + +@media (-moz-windows-compositor: 0), + (-moz-windows-default-theme: 0), + (-moz-platform: windows-win8) { + /* Please keep the menu text colors in this media block in sync with + * light-dark-overrides.css, minus the :not(:-moz-lwtheme) condition - see Bug 1165718. + */ + :root[tabsintitlebar]:not(:-moz-lwtheme) { + color: CaptionText; + } + + :root[tabsintitlebar]:not(:-moz-lwtheme):-moz-window-inactive { + color: InactiveCaptionText; + } +} + +@media (-moz-windows-classic) { + /** + * In the classic themes, the titlebar has a horizontal gradient, which is + * problematic for reading the text of background tabs when they're in the + * titlebar. We side-step this issue by layering our own background underneath + * the tabs. + */ + :root[tabsintitlebar]:not([sizemode=fullscreen]) #TabsToolbar:not(:-moz-lwtheme) { + background-image: linear-gradient(transparent, ActiveCaption); + background-size: auto 200%; + } + + :root[tabsintitlebar]:not([sizemode=fullscreen]) #TabsToolbar:not(:-moz-lwtheme):-moz-window-inactive { + background-image: linear-gradient(transparent, InactiveCaption); + } + + /* Add a window top border for webextension themes */ + :root[tabsintitlebar][sizemode="normal"] #navigator-toolbox:-moz-lwtheme { + background-image: linear-gradient(to bottom, + ThreeDLightShadow 0, ThreeDLightShadow 1px, + ThreeDHighlight 1px, ThreeDHighlight 2px, + ActiveBorder 2px, ActiveBorder 4px, transparent 4px); + } + + :root[tabsintitlebar] :is(#TabsToolbar, #toolbar-menubar) toolbarbutton:not(:-moz-lwtheme) { + color: inherit; + } +} + +#nav-bar:not([tabs-hidden="true"]) { + /* This is needed for some toolbar button animations. Gross :( */ + position: relative; +} + +@media (-moz-windows-default-theme: 0) { + #nav-bar:not(:-moz-lwtheme) { + box-shadow: 0 calc(-1 * var(--tabs-navbar-shadow-size)) 0 ThreeDShadow; + } +} +#nav-bar:-moz-lwtheme { + box-shadow: 0 calc(-1 * var(--tabs-navbar-shadow-size)) 0 var(--lwt-tabs-border-color, rgba(0,0,0,.3)); +} +@media (-moz-windows-compositor: 0) { + #nav-bar[tabs-hidden="true"] { + box-shadow: none; + } +} + +#print-preview-toolbar:not(:-moz-lwtheme) { + appearance: auto; + -moz-default-appearance: toolbox; +} + +/* Titlebar */ + +:root[tabsintitlebar][sizemode="normal"] #titlebar { + appearance: auto; + -moz-default-appearance: -moz-window-titlebar; +} + +:root[tabsintitlebar][sizemode="maximized"] #titlebar { + appearance: auto; + -moz-default-appearance: -moz-window-titlebar-maximized; +} + +@media (-moz-windows-compositor: 0) { + /** + * Anytime we're not using the compositor on Windows, the -moz-window-titlebar + * and -moz-window-titlebar-maximized values for -moz-appearance override + * backgrounds supplied by lwthemes. We make the #titlebar itself hidden, but + * it's children visible in order to hide the background but keep the margin and + * padding that comes from those -moz-window-titlebar rules. + */ + :root:not([inFullscreen]) #titlebar:-moz-lwtheme { + visibility: hidden; + } + :root:not([inFullscreen], [chromehidden~="menubar"]) #toolbar-menubar:-moz-lwtheme, + :root:not([inFullscreen], [chromehidden~="toolbar"]) #TabsToolbar:-moz-lwtheme { + visibility: visible; + } +} + +@media (-moz-windows-classic) { + :root[tabsintitlebar][sizemode="normal"] #toolbar-menubar { + margin-top: 4px; + } +} + +.titlebar-buttonbox { + /* For all Windows configurations except for Windows Aero and Windows Aero Basic, + * the default -moz-default-appearance of -moz-window-button-box and + * -moz-window-button-box-maximized adds unwanted margins to the button box. We + * special case Windows Aero and Windows Aero Basic in browser-aero.css. + */ + appearance: none; + /* The button box must appear on top of the navigator-toolbox in order for + * click and hover mouse events to work properly for the button in the restored + * window state. Otherwise, elements in the navigator-toolbox, like the menubar, + * can swallow those events. It will also place the buttons above the fog on + * Windows 7 with Aero Glass. + */ + z-index: 1; +} + +.titlebar-buttonbox-container { + align-items: stretch; +} + +@media (-moz-platform: windows-win7), + (-moz-platform: windows-win8) { + /* Preserve window control buttons position at the top of the button box. */ + .titlebar-buttonbox-container { + align-items: flex-start; + } +} + +/* Window control buttons */ + +.titlebar-min { + appearance: auto; + -moz-default-appearance: -moz-window-button-minimize; +} + +.titlebar-max { + appearance: auto; + -moz-default-appearance: -moz-window-button-maximize; +} + +.titlebar-restore { + appearance: auto; + -moz-default-appearance: -moz-window-button-restore; +} + +.titlebar-close { + appearance: auto; + -moz-default-appearance: -moz-window-button-close; +} + +@media (-moz-windows-classic: 0) { + .titlebar-min { + margin-inline-end: 2px; + } +} + +:root[tabletmode] .titlebar-min, +:root[tabletmode] .titlebar-restore, +:root[tabletmode] .titlebar-max { + display: none; +} + +/* Bookmark menus */ + +menu.bookmark-item, +menuitem.bookmark-item { + min-width: 0; + max-width: 32em; +} + +.bookmark-item:not(.subviewbutton) > .menu-iconic-left { + margin-block: 0; +} + +.bookmark-item[cutting] > .toolbarbutton-icon, +.bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-icon { + opacity: 0.5; +} + +.bookmark-item[cutting] > .toolbarbutton-text, +.bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-text { + opacity: 0.7; +} + + +/* Address bar */ + +@media not (prefers-contrast) { + :root:not(:-moz-lwtheme) #urlbar { + --urlbar-box-bgcolor: white; + } + :root[lwt-default-theme-in-dark-mode] #urlbar { + --urlbar-box-bgcolor: var(--toolbar-field-focus-background-color); + } +} + +#urlbar, +#searchbar { + font-size: 1.15em; +} + +@supports -moz-bool-pref("browser.urlbar.experimental.expandTextOnFocus") { + #urlbar[breakout-extend] { + font-size: 1.25em; + } +} + +@media (-moz-windows-default-theme: 0) { + /* Windows HCM conventions use these colors for chiclets. We can't use them on + other platforms because AccentColor can be shown atop SelectedItem, + which has zero contrast. */ + :root { + --urlbar-box-hover-bgcolor: SelectedItem; + --urlbar-box-active-bgcolor: SelectedItem; + --urlbar-box-hover-text-color: SelectedItemText; + } + + #urlbar:not(:-moz-lwtheme, [focused="true"]) > #urlbar-background, + #searchbar:not(:-moz-lwtheme, :focus-within), + .findbar-textbox:not(:-moz-lwtheme, :focus) { + border-color: ThreeDShadow; + } +} + +/* Address bar results view */ + +@media (-moz-windows-default-theme: 0) { + :root:not(:-moz-lwtheme) { + --urlbar-popup-action-color: -moz-nativehyperlinktext; + } +} + +/* Autocomplete */ + +#PopupAutoComplete > richlistbox > richlistitem[originaltype~="datalist-first"] { + border-top: 1px solid ThreeDShadow; +} + +/* Content area */ + +#browser { + --sidebar-border-color: ThreeDLightShadow; +} + +/* Tabstrip */ + +#TabsToolbar { + min-height: 0; + padding: 0; +} + +@media (-moz-windows-default-theme: 0) { + /* For high contrast themes. */ + #tabbrowser-tabpanels, + :root[privatebrowsingmode=temporary] #tabbrowser-tabpanels { + background-color: -moz-default-background-color; + } +} + +/* All tabs menupopup */ + +.alltabs-item[selected="true"] { + font-weight: bold; +} + +toolbarbutton.bookmark-item[dragover="true"][open="true"] { + appearance: none; + background: SelectedItem !important; + color: SelectedItemText !important; + fill: SelectedItemText; +} + +/* Bookmarks roots menu-items */ + +#bookmarksToolbarFolderMenu, +#BMB_bookmarksToolbar, +#panelMenu_bookmarksToolbar { + list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.svg"); +} + +/* Status panel */ + +#statuspanel-label { + margin: 0; + padding: 2px 4px; + background-color: -moz-dialog; + border: 1px none ThreeDLightShadow; + border-top-style: solid; + color: -moz-dialogText; + text-shadow: none; +} + +@media (-moz-windows-default-theme) { + #statuspanel-label { + background-color: #f9f9fa; + color: #444; + } +} + +@media (-moz-content-prefers-color-scheme: dark) { + #statuspanel-label { + background-color: hsl(240, 1%, 20%); + border-color: hsl(240, 1%, 40%); + color: rgb(249, 249, 250); + } +} + +#statuspanel:not([mirror]) > #statuspanel-label:-moz-locale-dir(ltr), +#statuspanel[mirror] > #statuspanel-label:-moz-locale-dir(rtl) { + border-right-style: solid; + /* disabled for triggering grayscale AA (bug 659213) + border-top-right-radius: .3em; + */ + margin-right: 1em; +} + +#statuspanel:not([mirror]) > #statuspanel-label:-moz-locale-dir(rtl), +#statuspanel[mirror] > #statuspanel-label:-moz-locale-dir(ltr) { + border-left-style: solid; + /* disabled for triggering grayscale AA (bug 659213) + border-top-left-radius: .3em; + */ + margin-left: 1em; +} + +/* Prevent window controls from overlapping the nav bar's shadow on the tab + * bar. */ +#TabsToolbar > .titlebar-buttonbox-container { + margin-bottom: var(--tabs-navbar-shadow-size); +} + +.private-browsing-indicator { + margin-inline: 12px; +} + +#UITourTooltipButtons { + /** + * Override the --arrowpanel-padding so the background extends + * to the sides and bottom of the panel. + */ + margin-inline: -10px; + margin-bottom: -10px; +} + +/* Make menu items larger when opened through touch. */ +panel[touchmode], +menupopup[touchmode] { + --arrowpanel-menuitem-padding-block: 12px; + --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline); + /* The value for the header back icon padding is selected in a way that the + * height of the header and its separator will be equal to the panel inner + * top padding plus standard menuitem, so that the header's separator will + * be located excatly where a normal toolbarseparator would be located after + * the first menuitem, in a menu without a header. */ + --arrowpanel-header-back-icon-padding: 10px; +} + +:root[uidensity="compact"] panel[touchmode] { + --arrowpanel-header-back-icon-padding: 12px; +} + +menupopup[touchmode] :is(menu, menuitem, menucaption) { + /* Use the var set in the rule above to increase menu items height in menupopups when + * they are opened through touch. + * Panel menu items already have their padding set in panelUI-shared.css with the same var. */ + padding-block: var(--arrowpanel-menuitem-padding-block); +} + +#contentAreaContextMenu[touchmode] > #context-navigation > menuitem { + /* The navigation menuitems are bigger to begin with because of their inner padding, + * so calculate the padding-block to match normal menuitems height when in touchmode. + * 3.5em is the desired menuitem height (~42px), minus the menuitem actual height devided by 2. */ + padding-block: calc((3.5em - 32px) / 2); +} + +#context-navigation { + background-color: menu; +} + +#context-sep-navigation { + margin-inline-start: -28px; +} + +@media (-moz-windows-non-native-menus) { + /* :not([hidden]) to avoid the display: flex unhiding the item. */ + #context-navigation:not([hidden]) { + /* The Windows 10 version of the navigation area needs the scrollbox's + background color, not the builtin "menu" color. */ + background-color: inherit; + /* Match the inner top padding of the menupopup to center the icons visually. */ + padding-bottom: 4px; + /* Use modern flex box so we can use percentage widths to redistribute + * spacing manually. */ + display: flex; + flex-direction: row; + /* We want the first and last icons to align with the text items which + * have 1em inline padding, and for icons to be centered within their + * hover state, so each icon of 16px needs 1em padding on both sides: + */ + --menuitem-min-width: calc(2em + 16px); + /* The total width of the container should then be at least 4 times that: */ + min-width: calc(4 * var(--menuitem-min-width)); + } + + #context-navigation > .menuitem-iconic { + flex: 1 0 auto; + } + + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] { + /* We only show hover state on the icons. This ensures there is no + * dead space between icons, but the visible hover state is only + * around the icons, and all the icons' hover states match each other. + */ + background-color: transparent; + } + + #context-navigation > .menuitem-iconic > .menu-iconic-left { + margin: 0; + padding: 0; + } + + /* override styles from shared/contextmenu.inc.css */ + #context-navigation > .menuitem-iconic > .menu-iconic-left > .menu-iconic-icon { + width: var(--menuitem-min-width); + height: 32px; + padding: 8px 1em; + margin: 0; + } + #context-navigation > .menuitem-iconic[_moz-menuactive="true"] > .menu-iconic-left > .menu-iconic-icon { + background-color: -moz-menuhover; + } + + #context-navigation > .menuitem-iconic[_moz-menuactive="true"][disabled="true"] > .menu-iconic-left > .menu-iconic-icon { + background-color: -moz-menuhoverdisabled; + } + + /* If the menu is wider than the icons strictly need, the <menuitem> elements + * will stretch to pick up the extra space. In that case, the outer icons + * should align to the start/end of their containing <menuitem>: */ + #context-navigation > .menuitem-iconic:first-child { + justify-content: flex-start; + } + + #context-navigation > .menuitem-iconic:last-child { + justify-content: flex-end; + } + + #context-navigation > .menuitem-iconic:last-child, + #context-navigation > .menuitem-iconic:first-child { + flex-grow: 0; + /* The first and last items start off as 16px + 2em, like the other ones. + * 100% is the width of the parent, which will be at least 4 * the width of + * an individual item (16px + 2em) + * So 100% - 4 item widths gets us the remaining available space if + * #context-navigation is wider than that. + * Then divide by 6 to get the 1/6 of that extra space, and add this space + * to the width of the first/last items. + * This ensures that the 3 visual gaps between the 4 icons are all the same + * size, with each 1/3 of the available space evenly distributed between + * the 2 items on either side of the gap. + */ + width: calc(var(--menuitem-min-width) + calc(100% - 4 * var(--menuitem-min-width)) / 6); + } + + + /* Other menu separators don't extend all the way to the menu edges, but the + one below the navigation buttons in the content context menu should. */ + #context-sep-navigation { + margin-top: 0; + margin-inline: 0; + } +} |