/** * Zen Mod: Better CtrlTab Panel * Re-style and add customization options for the Ctrl+Tab panel. * Pontus Sundén */ @-moz-document url-prefix("chrome:") { :root { /** --psu-better_ctrltab-roundness: 50px; --psu-better_ctrltab-padding: 35px; --psu-better_ctrltab-zoom: .8; --psu-better_ctrltab-background: light-dark(rgba(146, 145, 144, 0.94), rgba(24, 23, 22, 0.94)); --psu-better_ctrltab-shadow_size: 20px; --psu-better_ctrltab-preview_padding: 30px; --psu-better_ctrltab-preview_border_width: 1px; --psu-better_ctrltab-preview_border_color: light-dark(rgba(253, 255, 254, 0.1), rgba(83, 82, 79, 0.2)); --psu-better_ctrltab-preview_focus_background: light-dark(rgba(77, 76, 78, 0.8), rgba(184, 185, 183, 0.18)); --psu-better_ctrltab-preview_font_size: 13px; --psu-better_ctrltab-preview_letter_spacing: 0px; --psu-better_ctrltab-preview_favicon_size: 36px; --psu-better_ctrltab-preview_favicon_outdent: 12px; /**/ /* helpers */ --psu-zoom-invert: pow(var(--psu-better_ctrltab-zoom), -1); --psu-roundness-zoomed: calc(var(--psu-better_ctrltab-roundness) * var(--psu-better_ctrltab-zoom)); } #ctrlTab-panel { /* panel styling */ --panel-border-radius: var(--psu-roundness-zoomed) !important; --panel-shadow: 0 0 var(--psu-better_ctrltab-shadow_size) calc(var(--psu-better_ctrltab-shadow_size) / 3) rgba(1, 1, 4, 0.2) !important; --panel-background: var(--psu-better_ctrltab-background) !important; --panel-padding: 0 !important; margin: 0 !important; padding: 0 !important; background-color: unset !important; /* panel zoom adjust size */ --psu-default_spacing: 10%; --psu-tile-counter: 0; &:has(.ctrlTab-preview:nth-child(1):not([hidden])) { --psu-tile-counter: 1; } &:has(.ctrlTab-preview:nth-child(2):not([hidden])) { --psu-tile-counter: 2; } &:has(.ctrlTab-preview:nth-child(3):not([hidden])) { --psu-tile-counter: 3; } &:has(.ctrlTab-preview:nth-child(4):not([hidden])) { --psu-tile-counter: 4; } &:has(.ctrlTab-preview:nth-child(5):not([hidden])) { --psu-tile-counter: 5; } &:has(.ctrlTab-preview:nth-child(6):not([hidden])) { --psu-tile-counter: 6; } &:has(.ctrlTab-preview:nth-child(7):not([hidden])) { --psu-tile-counter: 7; --psu-default_spacing: 7%; } --panel-shadow-margin: var(--psu-better_ctrltab-shadow_size) calc( /* decrease by default non-css space */ var(--psu-default_spacing) + (90% - var(--psu-default_spacing)) / 2 * (1 - var(--psu-better_ctrltab-zoom)) - ( /* increase by tile padding and borders */ ((var(--psu-better_ctrltab-preview_padding) * 2 + var(--psu-better_ctrltab-preview_border_width) * 2) * var(--psu-tile-counter)) / 2 /* increase by panel padding */ + (var(--psu-better_ctrltab-padding) * 0.8) ) * var(--psu-better_ctrltab-zoom) ) !important; #ctrlTab-previews { /* panel zoom and padding*/ zoom: var(--psu-better_ctrltab-zoom) !important; padding: var(--psu-better_ctrltab-padding) calc(var(--psu-better_ctrltab-padding) * 0.8) !important; .ctrlTab-preview { margin: 0 !important; padding: 0 !important; border-radius: calc(var(--psu-roundness-zoomed) * 0.8) !important; /* previews styling */ .ctrlTab-preview-inner { margin: 0 !important; padding: calc(var(--psu-better_ctrltab-preview_padding) + var(--psu-better_ctrltab-preview_border_width)) !important; border-radius: calc(var(--psu-roundness-zoomed) * 0.8) !important; padding-bottom: calc(var(--psu-better_ctrltab-preview_padding) / 2) !important; border: none !important; text-shadow: 0.5px 0.5px 0px light-dark(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)); } .ctrlTab-canvas { margin-bottom: calc(var(--psu-better_ctrltab-preview_padding) / 2 + var(--psu-better_ctrltab-preview_border_width)) !important; box-shadow: 0 0 0 var(--psu-better_ctrltab-preview_border_width) var(--psu-better_ctrltab-preview_border_color) !important; } .ctrlTab-canvas, img, canvas { border-radius: calc(var(--psu-roundness-zoomed) * 0.25) !important; } /* label styling */ .ctrlTab-label { font-size: calc(var(--psu-better_ctrltab-preview_font_size) * var(--psu-zoom-invert)) !important; letter-spacing: calc(var(--psu-better_ctrltab-preview_letter_spacing) * var(--psu-zoom-invert)); margin: 0 calc(var(--psu-better_ctrltab-preview_border_width) * -1) !important; padding: 0 !important; } /* favicon styling and position */ .ctrlTab-favicon-container image { height: var(--psu-better_ctrltab-preview_favicon_size) !important; width: var(--psu-better_ctrltab-preview_favicon_size) !important; box-shadow: none !important; background: none !important; position: absolute !important; padding: 0 !important; margin: 0 !important; margin-right: calc(var(--psu-better_ctrltab-preview_favicon_outdent) * -1) !important; margin-top: calc( (var(--psu-better_ctrltab-preview_padding) / 2 + var(--psu-better_ctrltab-preview_border_width)) * -1 - var(--psu-better_ctrltab-preview_favicon_size) + var(--psu-better_ctrltab-preview_favicon_outdent) * 0.8 ) !important; } /* focused bg styling */ &:focus { .ctrlTab-preview-inner { background: var(--psu-better_ctrltab-preview_focus_background) !important; border: none !important; } } } } } }