// Prevent window background overflows window border #main-window { background-color: initial; } // Prevent background flicker #browser { background: var(--material-tabbar); } #titlebar { height: var(--tab-min-height); flex-direction: row; -moz-box-pack: center; pointer-events: none; -moz-appearance: -moz-window-titlebar; // fx140: Titlebar is transparent by default, so add background and border // Use Mozilla titlebar color background-color: ActiveCaption; &:-moz-window-inactive { background-color: InactiveCaption; } border-bottom: var(--material-panedivider); // fx140: Add border radius to match window corners border-top-left-radius: env(-moz-gtk-csd-titlebar-radius); border-top-right-radius: env(-moz-gtk-csd-titlebar-radius); } #toolbar-menubar { pointer-events: none; visibility: visible; // space for 30*30 icon margin: 0 8px; height: var(--tab-min-height); appearance: none; flex: 1; @include inactive-opacity; } #menubar-items { pointer-events: all; -moz-window-dragging: drag; } #main-menubar { height: var(--tab-min-height); } .titlebar-buttonbox { pointer-events: all; margin: 0 10px; } .titlebar-button { position: static; // Fix KDE rendering bug z-index: 1; // Fix X11 button background rendering bug pointer-events: none; -moz-window-dragging: drag; background: transparent !important; .toolbarbutton-icon { pointer-events: all; -moz-window-dragging: no-drag; } } .titlebar-icon-container { display: none; } // Following rules from https://searchfox.org/mozilla-central/source/browser/themes/linux/browser.css /** * Titlebar drawing: * * GTK windows have both a window radius (exposed via the * `-moz-gtk-csd-titlebar-radius`) environment variable, and a window shadow * (which we can't read back from GTK). Note that the -moz-window-decorations * (in X11) or the compositor (in Wayland) does draw the shadow corners * already. */ :root[customtitlebar] { background-color: transparent; &[sizemode="normal"]:not([gtktiledwindow="true"]) { /* This takes care of drawing our window decorations on X11 */ -moz-default-appearance: -moz-window-decorations; appearance: auto; #navigator-toolbox, dialog::backdrop { border-top-left-radius: env(-moz-gtk-csd-titlebar-radius); border-top-right-radius: env(-moz-gtk-csd-titlebar-radius); } /* stylelint-disable-next-line media-query-no-invalid */ // @media -moz-pref("widget.gtk.rounded-bottom-corners.enabled") { #navigator-toolbox { /* The body clip below covers this. */ border-radius: 0; } body, dialog::backdrop { /* Use an uniform clip to allow WebRender to optimize it better */ border-radius: env(-moz-gtk-csd-titlebar-radius); } // } } } /* 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. */ .titlebar-buttonbox { z-index: 1; align-items: stretch; } @media (-moz-gtk-csd-reversed-placement) { .titlebar-buttonbox { order: -1; } } .titlebar-button { appearance: none; color: inherit; align-items: center; padding: 0; padding-inline: calc(env(-moz-gtk-csd-titlebar-button-spacing) / 2); > .toolbarbutton-icon { border-radius: 100%; background-position: center center; background-repeat: no-repeat; -moz-context-properties: stroke; stroke: currentColor; /* Roughly the Adwaita size */ width: 24px; height: 24px; /* Matches the libadwaita transition */ transition: background-color .2s ease; } &:hover > .toolbarbutton-icon { background-color: color-mix(in srgb, currentColor 15%, transparent); } &:hover:active > .toolbarbutton-icon { background-color: color-mix(in srgb, currentColor 30%, transparent); } &:focus-visible > .toolbarbutton-icon { outline: var(--focus-outline); outline-offset: var(--focus-outline-inset); } } .titlebar-max { order: env(-moz-gtk-csd-maximize-button-position); > .toolbarbutton-icon { background-image: -moz-symbolic-icon(window-maximize-symbolic); } } .titlebar-restore { order: env(-moz-gtk-csd-maximize-button-position); > .toolbarbutton-icon { background-image: -moz-symbolic-icon(window-restore-symbolic); } } @media not (-moz-gtk-csd-maximize-button) { .titlebar-restore, .titlebar-max { display: none; } } .titlebar-close { order: env(-moz-gtk-csd-close-button-position); > .toolbarbutton-icon { background-image: -moz-symbolic-icon(window-close-symbolic); } @media not (-moz-gtk-csd-close-button) { display: none; } } .titlebar-min { order: env(-moz-gtk-csd-minimize-button-position); > .toolbarbutton-icon { background-image: -moz-symbolic-icon(window-minimize-symbolic); } @media not (-moz-gtk-csd-minimize-button) { display: none; } }