/** * This Zen theme adds additional styling to the private browsing mode window such as a gradient on the toolbar, * a border around the browser page, and an icon in the URL bar. These are configurable in the Zen Mods settings. * * The --pbmh prefix stands for Private Browsing Mode Highlighting. */ /*******************************************\ * Base variables. \*******************************************/ :root { --pbmh-private-browsing-mode-base-color: #32064e; --pbmh-private-browsing-mode-gradient-stop-color: rgb( from var(--pbmh-private-browsing-mode-color) r g b / 0% ); --pbmg-private-browsing-mode-gradient-stop-position: 50px; --pbmg-private-browsing-mode-border-size: 2px; } /*******************************************\ * Topbar highlighting. \*******************************************/ :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="match-zen"] ) { --pbmh-private-browsing-mode-base-color: oklch( from var(--zen-primary-color) calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="blue"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #aac7ff calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="teal"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #74d7cb calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="green"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #a0d490 calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="yellow"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #dec663 calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="orange"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #ffb787 calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="brown"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #dec1b1 calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="red"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #ffb1c0 calc(l - 0.5) c h ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-color="pink"] ) { --pbmh-private-browsing-mode-base-color: oklch( from #f6b0ea calc(l - 0.5) c h ); } :root { --pbmh-private-browsing-mode-color: var( --pbmh-private-browsing-mode-base-color ); --pbmh-private-browsing-mode-border: oklch( from var(--pbmh-private-browsing-mode-color) calc(l + 0.2) c h ); &:where([lwt-toolbar="light"]) { --pbmh-private-browsing-mode-color: oklch( from var(--pbmh-private-browsing-mode-base-color) calc(l + 0.45) calc(c + 0.05) h ); --pbmh-private-browsing-mode-border: oklch( from var(--pbmh-private-browsing-mode-color) calc(l - 0.2) c h ); } } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-highlighting-style="solid"] ) { --pbmh-private-browsing-mode-gradient-stop-color: var( --pbmh-private-browsing-mode-color ); } :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-highlighting-style]:not( [uc-private-browsing-top-bar-highlighting-style="none"] ) ) { &[privatebrowsingmode] #browser { background-image: linear-gradient( to bottom, var(--pbmh-private-browsing-mode-color), var(--pbmh-private-browsing-mode-gradient-stop-color) var(--pbmg-private-browsing-mode-gradient-stop-position), transparent calc(var(--pbmg-private-browsing-mode-gradient-stop-position) + 1px) ) !important; } } /*******************************************\ * Viewport border styling. \*******************************************/ :root:has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-border-style="thin"] ) { --pbmg-private-browsing-mode-border-size: 1px; } :root[privatebrowsingmode]:not([inDOMFullscreen="true"]):not( [chromehidden~="location"] ):not([chromehidden~="toolbar"]):has( #theme-Private-Mode-Highlighting[uc-private-browsing-top-bar-border-style]:not( [uc-private-browsing-top-bar-border-style="none"] ) ) { & #tabbrowser-tabbox #tabbrowser-tabpanels .browserSidebarContainer { box-shadow: 0 0 0 var(--pbmg-private-browsing-mode-border-size) var(--pbmh-private-browsing-mode-border) !important; } } /*******************************************\ * Private Browsing Mode Icon styling. \*******************************************/ @media not (-moz-bool-pref: "uc.private-browsing-top-bar.hide-icon") { [privatebrowsingmode] #zen-profile-button { position: relative; } [privatebrowsingmode] #zen-profile-button::after { content: ""; position: absolute; left: calc(100% + 1em); top: 25%; bottom: 25%; aspect-ratio: 1; width: auto; height: auto; border-radius: 100%; background-color: oklch( from var(--pbmh-private-browsing-mode-base-color) calc(l + 0.05) calc(c + 0.2) h ); background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48c3R5bGU+KntmaWxsOm5vbmU7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjEuOTJweDt9PC9zdHlsZT48L2RlZnM+PHBvbHlsaW5lIHBvaW50cz0iMC41IDExLjA0IDEyIDExLjA0IDIzLjUgMTEuMDQiLz48cGF0aCBkPSJNMTkuNjcsMTFINC4zM0w1LDQuNjhBMi41NCwyLjU0LDAsMCwxLDcuNTcsMi40MmgwYTIuNDcsMi40NywwLDAsMSwxLjEzLjI3aDBhNy40Myw3LjQzLDAsMCwwLDYuNiwwaDBhMi40NywyLjQ3LDAsMCwxLDEuMTMtLjI3aDBBMi41NCwyLjU0LDAsMCwxLDE5LDQuNjhaIi8+PGNpcmNsZSBjeD0iNi43MyIgY3k9IjE4LjIzIiByPSIzLjM1Ii8+PGNpcmNsZSBjeD0iMTcuMjciIGN5PSIxOC4yMyIgcj0iMy4zNSIvPjxwYXRoIGQ9Ik0xMC4wOCwxOC43MWExLjkyLDEuOTIsMCwxLDEsMy44NCwwIi8+PGxpbmUgeDE9IjEuNDYiIHkxPSIxNS44MyIgeDI9IjQuMzMiIHkyPSIxNS44MyIvPjxsaW5lIHgxPSIxOS42NyIgeTE9IjE1LjgzIiB4Mj0iMjIuNTQiIHkyPSIxNS44MyIvPjwvc3ZnPg=="); background-repeat: no-repeat; background-position: center center; background-size: 65%; pointer-events: none; } }