diff --git a/share/themes/Kali-Dark/gtk-4.0/gtk.css b/share/themes/Kali-Dark/gtk-4.0/gtk.css new file mode 100644 index 00000000..d4aa69c8 --- /dev/null +++ b/share/themes/Kali-Dark/gtk-4.0/gtk.css @@ -0,0 +1,4315 @@ +/*************************** + * Check and Radio buttons * + ***************************/ +/*************** + * Base States * + ***************/ +.background { + color: #eeeeec; + background-color: #23252e; } + .background:backdrop { + text-shadow: none; + -gtk-icon-shadow: none; } + +dnd { + color: #eeeeec; } + +.normal-icons { + -gtk-icon-size: 16px; } + +.large-icons { + -gtk-icon-size: 32px; } + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Every time a wildcard is used a kitten dies, painfully. +*/ +spinner:disabled, +arrow:disabled, +scrollbar:disabled, +check:disabled, +radio:disabled, +treeview.expander:disabled { + -gtk-icon-filter: opacity(0.5); } + +.view, iconview, +textview > text { + color: white; + background-color: #272a34; } + .view:disabled, iconview:disabled, + textview > text:disabled { + color: #888a8d; + background-color: #242731; } + .view:selected:focus, iconview:selected:focus, .view:selected, iconview:selected, + textview > text:selected:focus, + textview > text:selected { + border-radius: 3px; } + +textview:drop(active) { + caret-color: #19a187; } + +textview > border { + background-color: #252831; } + +iconview { + outline: 0 solid transparent; + outline-offset: 4px; } + +iconview:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +iconview:drop(active) { + box-shadow: none; } + +iconview > dndtarget:drop(active) { + border-style: solid; + border-width: 1px; + border-color: #00348d; } + +rubberband, .content-view > rubberband, columnview.view > rubberband, +treeview.view > rubberband, gridview > rubberband, flowbox > rubberband { + border: 1px solid #005af3; + background-color: rgba(0, 90, 243, 0.2); } + +flowbox > flowboxchild { + padding: 3px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + flowbox > flowboxchild { + outline: 0 solid transparent; + outline-offset: 4px; } + flowbox > flowboxchild:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + flowbox > flowboxchild:selected { + outline-color: rgba(255, 255, 255, 0.3); } + +gridview > child { + padding: 3px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + gridview > child { + outline: 0 solid transparent; + outline-offset: 4px; } + gridview > child:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + gridview > child:selected { + outline-color: rgba(255, 255, 255, 0.3); } + gridview > child box { + border-spacing: 8px; + margin: 12px; } + +coverflow cover { + color: white; + background-color: #272a34; + border: 1px solid black; } + +label { + outline: 0 solid transparent; + outline-offset: 4px; } + +label:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +label > selection { + background-color: #2777ff; + color: #ffffff; } + +label:disabled { + color: #888a8d; } + button label:disabled { + color: inherit; } + +label.error { + color: #bf1717; } + label.error:disabled { + color: rgba(191, 23, 23, 0.5); } + +.dim-label, .titlebar:not(headerbar) .subtitle, +headerbar .subtitle, spinbutton.vertical > text > text > placeholder, spinbutton:not(.vertical) > text > placeholder, +entry > text > placeholder, label.separator { + opacity: 0.55; + text-shadow: none; } + +window.assistant .sidebar { + padding: 5px; + border-top: 1px solid #0d0e11; } + +window.assistant.csd .sidebar { + border-top-style: none; } + +window.assistant .sidebar > label { + padding: 6px 12px; } + +window.assistant .sidebar > label.highlight { + background-color: #3b3e46; + border-radius: 5px; } + +window.aboutdialog image.large-icons { + -gtk-icon-size: 128px; } + +.osd .scale-popup, .app-notification, .osd popover.background > arrow, +.osd popover.background > contents, popover.background.touch-selection > arrow, +popover.background.touch-selection > contents, popover.background.magnifier > arrow, +popover.background.magnifier > contents, +.osd { + color: white; + border: none; + background-color: #303340; + background-clip: padding-box; + -gtk-icon-shadow: 0 1px black; } + +/********************* + * Spinner Animation * + *********************/ +@keyframes spin { + to { + transform: rotate(1turn); } } + +spinner { + background: none; + opacity: 0; + -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); } + spinner:checked { + opacity: 1; + animation: spin 1s linear infinite; } + spinner:checked:disabled { + opacity: 0.5; } + +/********************** + * General Typography * + **********************/ +.large-title { + font-weight: 300; + font-size: 24pt; } + +.title-1 { + font-weight: 800; + font-size: 20pt; } + +.title-2 { + font-weight: 800; + font-size: 15pt; } + +.title-3 { + font-weight: 700; + font-size: 15pt; } + +.title-4 { + font-weight: 700; + font-size: 13pt; } + +.heading { + font-weight: 700; + font-size: 11pt; } + +.body { + font-weight: 400; + font-size: 11pt; } + +.caption-heading { + font-weight: 700; + font-size: 9pt; } + +.caption { + font-weight: 400; + font-size: 9pt; } + +/**************** + * Text Entries * + ****************/ +spinbutton.vertical > text, spinbutton:not(.vertical), +entry { + min-height: 32px; + padding-left: 8px; + padding-right: 8px; + border: 1px solid; + border-radius: 5px; + border-spacing: 6px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: white; + border-color: #0d0e11; + background-color: #272a34; } + spinbutton.vertical > text, spinbutton:not(.vertical), + entry { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text:focus-within, spinbutton:focus-within:not(.vertical), + entry:focus-within { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text > image.left, spinbutton:not(.vertical) > image.left, + entry > image.left { + margin-right: 6px; } + spinbutton.vertical > text > image.right, spinbutton:not(.vertical) > image.right, + entry > image.right { + margin-left: 6px; } + spinbutton.vertical > text > text > block-cursor, spinbutton:not(.vertical) > text > block-cursor, + entry > text > block-cursor { + color: #272a34; + background-color: white; } + spinbutton.vertical > text.flat, spinbutton.flat:not(.vertical), + entry.flat:focus-within, + entry.flat:backdrop, + entry.flat:disabled, + entry.flat { + min-height: 0; + padding: 2px; + background-color: transparent; + border-color: transparent; + border-radius: 0; } + spinbutton.vertical > text:focus-within > placeholder, spinbutton:focus-within:not(.vertical) > placeholder, + entry:focus-within > placeholder { + opacity: 0; + /* We hide placeholders on focus */ } + spinbutton.vertical > text:disabled, spinbutton:disabled:not(.vertical), + entry:disabled { + color: #888a8d; + border-color: #0d0e11; + background-color: #242731; } + spinbutton.vertical > text.error, spinbutton.error:not(.vertical), + entry.error { + color: #bf1717; } + spinbutton.vertical > text.error, spinbutton.error:not(.vertical), + entry.error { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text.error:focus-within, spinbutton.error:focus-within:not(.vertical), + entry.error:focus-within { + outline-color: rgba(191, 23, 23, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text.error > selection, spinbutton.error:not(.vertical) > selection, + entry.error > selection { + background-color: #bf1717; } + spinbutton.vertical > text.warning, spinbutton.warning:not(.vertical), + entry.warning { + color: #fd7d00; } + spinbutton.vertical > text.warning, spinbutton.warning:not(.vertical), + entry.warning { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text.warning:focus-within, spinbutton.warning:focus-within:not(.vertical), + entry.warning:focus-within { + outline-color: rgba(253, 125, 0, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text.warning > selection, spinbutton.warning:not(.vertical) > selection, + entry.warning > selection { + background-color: #fd7d00; } + spinbutton.vertical > text > image, spinbutton:not(.vertical) > image, + entry > image { + color: #c6c7c7; } + spinbutton.vertical > text > image:hover, spinbutton:not(.vertical) > image:hover, + entry > image:hover { + color: #eeeeec; } + spinbutton.vertical > text > image:active, spinbutton:not(.vertical) > image:active, + entry > image:active { + color: #2777ff; } + spinbutton.vertical > text.password image.caps-lock-indicator, spinbutton.password:not(.vertical) image.caps-lock-indicator, + entry.password image.caps-lock-indicator { + color: #75777c; } + spinbutton.vertical > text:drop(active), spinbutton:drop(active):not(.vertical), + entry:drop(active):focus-within, + entry:drop(active) { + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; } + .osd spinbutton.vertical > text, .osd spinbutton:not(.vertical), .osd entry { + color: white; + border-color: black; + background-color: rgba(0, 0, 0, 0.5); + background-clip: padding-box; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .osd spinbutton.vertical > text:focus-within, .osd spinbutton:focus-within:not(.vertical), .osd entry:focus-within { + color: white; + border-color: #2777ff; + background-color: rgba(0, 0, 0, 0.5); + background-clip: padding-box; } + .osd spinbutton.vertical > text:disabled, .osd spinbutton:disabled:not(.vertical), .osd entry:disabled { + color: #97999f; + border-color: black; + background-color: rgba(68, 72, 83, 0.5); + background-clip: padding-box; } + +spinbutton.vertical > text > progress, spinbutton:not(.vertical) > progress, +entry > progress { + margin-bottom: 2px; } + +spinbutton.vertical > text progress > trough > progress, spinbutton:not(.vertical) progress > trough > progress, +entry progress > trough > progress { + background-color: transparent; + background-image: none; + border-radius: 0; + border-width: 0 0 2px; + border-color: #2777ff; + border-style: solid; + box-shadow: none; } + +spinbutton.vertical.linked:not(.vertical) > text:drop(active) + text, spinbutton.vertical.linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + text, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + spinbutton:not(.vertical), spinbutton.vertical.linked:not(.vertical) > text:drop(active) + button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + menubutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + menubutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + dropdown > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + dropdown > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + colorbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + colorbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + fontbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + fontbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + filechooserbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + filechooserbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + combobox > box > button.combo, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + entry, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + entry, .linked:not(.vertical) > entry:drop(active) + button, .linked:not(.vertical) > entry:drop(active) + menubutton > button, .linked:not(.vertical) > entry:drop(active) + dropdown > button, .linked:not(.vertical) > entry:drop(active) + colorbutton > button, .linked:not(.vertical) > entry:drop(active) + fontbutton > button, .linked:not(.vertical) > entry:drop(active) + filechooserbutton > button, .linked:not(.vertical) > entry:drop(active) + combobox > box > button.combo, spinbutton.vertical.linked:not(.vertical) > entry:drop(active) + text, .linked:not(.vertical) > entry:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > entry:drop(active) + entry { + border-left-color: #19a187; } + +spinbutton.vertical.linked > text:not(:disabled) + entry:not(:disabled), .linked.vertical > spinbutton:not(:disabled):not(.vertical) + entry:not(:disabled), spinbutton.vertical.linked > text:not(:disabled) + text:not(:disabled), spinbutton.vertical.linked > spinbutton:not(:disabled):not(.vertical) + text:not(:disabled), spinbutton.vertical.linked > text:not(:disabled) + spinbutton:not(:disabled):not(.vertical), .linked.vertical > spinbutton:not(:disabled):not(.vertical) + spinbutton:not(:disabled):not(.vertical), .linked.vertical > entry:not(:disabled) + entry:not(:disabled), spinbutton.vertical.linked > entry:not(:disabled) + text:not(:disabled), .linked.vertical > entry:not(:disabled) + spinbutton:not(:disabled):not(.vertical) { + border-top-color: #1f222a; } + +spinbutton.vertical.linked > text:disabled + text:disabled, spinbutton.vertical.linked > spinbutton:disabled:not(.vertical) + text:disabled, spinbutton.vertical.linked > text:disabled + spinbutton:disabled:not(.vertical), .linked.vertical > spinbutton:disabled:not(.vertical) + spinbutton:disabled:not(.vertical), spinbutton.vertical.linked > text:disabled + entry:disabled, .linked.vertical > spinbutton:disabled:not(.vertical) + entry:disabled, spinbutton.vertical.linked > entry:disabled + text:disabled, .linked.vertical > entry:disabled + spinbutton:disabled:not(.vertical), .linked.vertical > entry:disabled + entry:disabled { + border-top-color: #1f222a; } + +spinbutton.vertical.linked > text + text:drop(active):not(:only-child), spinbutton.vertical.linked > spinbutton:not(.vertical) + text:drop(active):not(:only-child), spinbutton.vertical.linked > text + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + spinbutton:drop(active):not(:only-child):not(.vertical), +spinbutton.vertical.linked > text + entry:drop(active):not(:only-child), +.linked.vertical > spinbutton:not(.vertical) + entry:drop(active):not(:only-child), spinbutton.vertical.linked > entry + text:drop(active):not(:only-child), .linked.vertical > entry + spinbutton:drop(active):not(:only-child):not(.vertical), +.linked.vertical > entry + entry:drop(active):not(:only-child) { + border-top-color: #19a187; } + +spinbutton.vertical.linked > text:drop(active):not(:only-child) + text, spinbutton.vertical.linked > spinbutton:drop(active):not(:only-child):not(.vertical) + text, spinbutton.vertical.linked > text:drop(active):not(:only-child) + spinbutton:not(.vertical), .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + spinbutton:not(.vertical), +spinbutton.vertical.linked > text:drop(active):not(:only-child) + entry, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + entry, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + menubutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + menubutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + dropdown > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + dropdown > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + colorbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + colorbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + fontbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + fontbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + filechooserbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + filechooserbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + combobox > box > button.combo, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + combobox > box > button.combo, spinbutton.vertical.linked > entry:drop(active):not(:only-child) + text, .linked.vertical > entry:drop(active):not(:only-child) + spinbutton:not(.vertical), +.linked.vertical > entry:drop(active):not(:only-child) + entry, +.linked.vertical > entry:drop(active):not(:only-child) + button, +.linked.vertical > entry:drop(active):not(:only-child) + menubutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + dropdown > button, +.linked.vertical > entry:drop(active):not(:only-child) + colorbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + fontbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + filechooserbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + combobox > box > button.combo { + border-top-color: #19a187; } + +spinbutton.vertical > text.error, spinbutton.error:not(.vertical), +entry.error { + color: #bf1717; } + +treeview entry:focus-within:dir(rtl), treeview entry:focus-within:dir(ltr) { + background-color: #272a34; + transition-property: color, background; } + +treeview entry.flat, treeview entry { + border-radius: 0; + background-image: none; + background-color: #272a34; } + treeview entry.flat:focus-within, treeview entry:focus-within { + border-color: #2777ff; } + +/******************* + * Editable Labels * + *******************/ +editablelabel > stack > text { + color: white; + border-color: #0d0e11; + background-color: #272a34; } + +/*********** + * Buttons * + ***********/ +@keyframes needs_attention { + from { + background-image: radial-gradient(farthest-side, #74a7ff 0%, rgba(116, 167, 255, 0) 0%); } + to { + background-image: radial-gradient(farthest-side, #74a7ff 95%, rgba(116, 167, 255, 0)); } } + +notebook > header > tabs > arrow, windowcontrols button, +button { + min-height: 24px; + min-width: 16px; + padding: 4px 9px; + border: 1px solid; + border-radius: 5px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + notebook > header > tabs > arrow, windowcontrols button, + button { + outline: 0 solid transparent; + outline-offset: 4px; } + notebook > header > tabs > arrow:focus:focus-visible, + button:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + notebook > header > tabs > arrow:hover, + button:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); + -gtk-icon-filter: brightness(1.2); } + notebook > header > tabs > arrow:active, notebook > header > tabs > arrow:checked, + button:active, + button:checked { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#13151a); + box-shadow: none; + transition-duration: 50ms; } + notebook > header > tabs > arrow:checked:hover, + button:checked:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#0d0e11); + box-shadow: none; } + notebook > header > tabs > arrow:checked:active, + button:checked:active { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#08090b); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop, + button.flat:backdrop, + button:backdrop { + color: #888a8d; + border-color: #16171d; + background-image: image(#23252e); + box-shadow: none; + transition: 200ms ease-out; + -gtk-icon-filter: none; } + notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, + button.flat:backdrop:active, + button.flat:backdrop:checked, + button:backdrop:active, + button:backdrop:checked { + color: #888a8d; + border-color: #16171d; + background-image: image(#1e2128); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop:disabled, + button.flat:backdrop:disabled, + button:backdrop:disabled { + color: #43495a; + border-color: #16171d; + background-image: image(#242731); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, + button.flat:backdrop:disabled:active, + button.flat:backdrop:disabled:checked, + button:backdrop:disabled:active, + button:backdrop:disabled:checked { + color: #43495a; + border-color: #16171d; + background-image: image(#1e2128); + box-shadow: none; } + notebook > header > tabs > arrow:disabled, + button:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + notebook > header > tabs > arrow:disabled:active, notebook > header > tabs > arrow:disabled:checked, + button:disabled:active, + button:disabled:checked { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#1a1c23); + box-shadow: none; } + button.sidebar-button, notebook > header > tabs > arrow, windowcontrols button, notebook > header > tabs > arrow.flat, + button.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + transition: none; } + button.sidebar-button:hover, notebook > header > tabs > arrow:hover, windowcontrols button:hover, + button.flat:hover { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #252831; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-duration: 500ms; } + button.sidebar-button:active, notebook > header > tabs > arrow:active, windowcontrols button:active, button.sidebar-button:checked, notebook > header > tabs > arrow:checked, windowcontrols button:checked, + button.flat:active, + button.flat:checked { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #1c1e25; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + button.sidebar-button:backdrop, notebook > header > tabs > arrow:backdrop, windowcontrols button:backdrop, button.sidebar-button:disabled, notebook > header > tabs > arrow:disabled, windowcontrols button:disabled, + button.flat:backdrop, + button.flat:disabled, + button.flat:backdrop:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; } + notebook > header > tabs > arrow.image-button, + button.image-button { + min-width: 24px; + padding-left: 5px; + padding-right: 5px; } + notebook > header > tabs > arrow.text-button, + button.text-button { + padding-left: 16px; + padding-right: 16px; } + notebook > header > tabs > arrow.text-button.image-button, + button.text-button.image-button { + padding-left: 8px; + padding-right: 8px; } + notebook > header > tabs > arrow.text-button.image-button label, + button.text-button.image-button label { + padding-left: 8px; + padding-right: 8px; } + dropdown:drop(active) button.combo, + combobox:drop(active) button.combo, notebook > header > tabs > arrow:drop(active), + button:drop(active) { + color: #19a187; + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; } + +row:selected button.sidebar-button:not(:active):not(:checked):not(:hover):not(disabled), row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled) { + color: #ffffff; + border-color: transparent; } + row:selected button.sidebar-button:not(:active):not(:checked):not(:hover):not(disabled):backdrop, row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop { + color: #888a8d; } + + +button.osd { + min-width: 26px; + min-height: 32px; + color: white; + border-radius: 5px; + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border: none; + box-shadow: none; } + + button.osd.image-button { + min-width: 30px; } + + button.osd.image-button:only-child { + margin: 4px; + border-radius: 50%; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + + button.osd:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; + border: none; + box-shadow: none; } + + button.osd:active, + button.osd:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; + border: none; + box-shadow: none; } + +.app-notification button, popover.background.touch-selection button, popover.background.magnifier button, .osd button { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .app-notification button:hover, popover.background.touch-selection button:hover, popover.background.magnifier button:hover, .osd button:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .app-notification button:active, popover.background.touch-selection button:active, popover.background.magnifier button:active, .app-notification button:checked, popover.background.touch-selection button:checked, popover.background.magnifier button:checked, .osd button:active:backdrop, .osd button:active, .osd button:checked:backdrop, .osd button:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .app-notification button:disabled, popover.background.touch-selection button:disabled, popover.background.magnifier button:disabled, .osd button:disabled:backdrop, .osd button:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + .app-notification button.flat, popover.background.touch-selection button.flat, popover.background.magnifier button.flat, .osd button.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .app-notification button.flat:hover, popover.background.touch-selection button.flat:hover, popover.background.magnifier button.flat:hover, .osd button.flat:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .app-notification button.flat:disabled, popover.background.touch-selection button.flat:disabled, popover.background.magnifier button.flat:disabled, .osd button.flat:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; + background-image: none; + border-color: transparent; + box-shadow: none; } + .app-notification button.flat:active, popover.background.touch-selection button.flat:active, popover.background.magnifier button.flat:active, .app-notification button.flat:checked, popover.background.touch-selection button.flat:checked, popover.background.magnifier button.flat:checked, .osd button.flat:active, .osd button.flat:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + + +button.suggested-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: #0047c0; + background-image: linear-gradient(to top, #2274ff 2px, #2777ff); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.suggested-action { + outline: 0 solid transparent; + outline-offset: 4px; } + + button.suggested-action:focus:focus-visible { + outline-color: rgba(255, 255, 255, 0.3); + outline-width: 2px; + outline-offset: -2px; } + + button.suggested-action.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #2777ff; } + + button.suggested-action:hover { + color: white; + border-color: #0051da; + background-image: linear-gradient(to top, #136aff 20%, #186eff 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.suggested-action:active, + button.suggested-action:checked { + color: white; + border-color: #0051da; + background-image: image(#005cf8); + box-shadow: none; } + + button.suggested-action.flat:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: rgba(39, 119, 255, 0.8); } + + button.suggested-action:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + + button.suggested-action:disabled:active, + button.suggested-action:disabled:checked { + color: #a4bfeb; + border-color: #0051da; + background-image: image(#1c5ecd); + box-shadow: none; } + .osd button.suggested-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: black; + background-color: transparent; + background-image: image(rgba(39, 119, 255, 0.5)); + background-clip: padding-box; } + .osd button.suggested-action:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(rgba(39, 119, 255, 0.7)); + background-clip: padding-box; } + .osd button.suggested-action:active:backdrop, .osd button.suggested-action:active, .osd button.suggested-action:checked:backdrop, .osd button.suggested-action:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#2777ff); + background-clip: padding-box; + box-shadow: none; } + .osd button.suggested-action:disabled:backdrop, .osd button.suggested-action:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + + +button.destructive-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: #4b0909; + background-image: linear-gradient(to top, #a21313 2px, #a61414); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.destructive-action { + outline: 0 solid transparent; + outline-offset: 4px; } + + button.destructive-action:focus:focus-visible { + outline-color: rgba(255, 255, 255, 0.3); + outline-width: 2px; + outline-offset: -2px; } + + button.destructive-action.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #a61414; } + + button.destructive-action:hover { + color: white; + border-color: #620c0c; + background-image: linear-gradient(to top, #941111 20%, #991212 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.destructive-action:active, + button.destructive-action:checked { + color: white; + border-color: #620c0c; + background-image: image(#7d0f0f); + box-shadow: none; } + + button.destructive-action.flat:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: rgba(166, 20, 20, 0.8); } + + button.destructive-action:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + + button.destructive-action:disabled:active, + button.destructive-action:disabled:checked { + color: #c9a1a1; + border-color: #620c0c; + background-image: image(#791314); + box-shadow: none; } + .osd button.destructive-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: black; + background-color: transparent; + background-image: image(rgba(166, 20, 20, 0.5)); + background-clip: padding-box; } + .osd button.destructive-action:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(rgba(166, 20, 20, 0.7)); + background-clip: padding-box; } + .osd button.destructive-action:active:backdrop, .osd button.destructive-action:active, .osd button.destructive-action:checked:backdrop, .osd button.destructive-action:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#a61414); + background-clip: padding-box; + box-shadow: none; } + .osd button.destructive-action:disabled:backdrop, .osd button.destructive-action:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + +stackswitcher > button > label { + padding: 0 6px; + margin: 0 -6px; } + +stackswitcher > button > image { + padding: 3px 6px; + margin: -3px -6px; } + + +button.font separator { + background-color: transparent; } + + +button.font > box { + border-spacing: 6px; } + + +button.font > box > box > label { + font-weight: bold; } + + +button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; + border-radius: 9999px; } + + button.circular label { + padding: 0; } + +stacksidebar row.needs-attention > label, stackswitcher > button.needs-attention > label, +stackswitcher > button.needs-attention > image { + animation: needs_attention 150ms ease-in; + background-image: radial-gradient(farthest-side, #74a7ff 96%, rgba(116, 167, 255, 0)); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + background-position: right 3px, right 2px; } + stacksidebar row.needs-attention > label:backdrop, stackswitcher > button.needs-attention > label:backdrop, + stackswitcher > button.needs-attention > image:backdrop { + background-size: 6px 6px, 0 0; } + stacksidebar row.needs-attention > label:dir(rtl), stackswitcher > button.needs-attention > label:dir(rtl), + stackswitcher > button.needs-attention > image:dir(rtl) { + background-position: left 3px, left 2px; } + +.linked:not(.vertical) > filechooserbutton > combobox:dir(rtl):not(:last-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(rtl):not(:last-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(rtl):not(:last-child) > box > button.combo, .linked:not(.vertical) > filechooserbutton > combobox:dir(ltr):not(:first-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(ltr):not(:first-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(ltr):not(:first-child) > box > button.combo, dropdown.linked button:nth-child(2):dir(ltr), +combobox.linked button:nth-child(2):dir(ltr), .linked:not(.vertical) > menubutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > dropdown:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > colorbutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > fontbutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(rtl):not(:last-child) > button, .linked:not(.vertical) > menubutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > dropdown:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > colorbutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > fontbutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(ltr):not(:first-child) > button, spinbutton.vertical.linked:not(.vertical) > text:dir(rtl):not(:last-child), .linked:not(.vertical) > spinbutton:dir(rtl):not(:last-child):not(.vertical), .linked:not(.vertical) > entry:dir(rtl):not(:last-child), .linked:not(.vertical) > button:dir(rtl):not(:last-child), spinbutton.vertical.linked:not(.vertical) > text:dir(ltr):not(:first-child), .linked:not(.vertical) > spinbutton:dir(ltr):not(:first-child):not(.vertical), .linked:not(.vertical) > entry:dir(ltr):not(:first-child), .linked:not(.vertical) > button:dir(ltr):not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.linked:not(.vertical) > filechooserbutton > combobox:dir(rtl):not(:first-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(rtl):not(:first-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(rtl):not(:first-child) > box > button.combo, .linked:not(.vertical) > filechooserbutton > combobox:dir(ltr):not(:last-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(ltr):not(:last-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(ltr):not(:last-child) > box > button.combo, dropdown.linked button:nth-child(2):dir(rtl), +combobox.linked button:nth-child(2):dir(rtl), .linked:not(.vertical) > menubutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > dropdown:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > colorbutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > fontbutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(rtl):not(:first-child) > button, .linked:not(.vertical) > menubutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > dropdown:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > colorbutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > fontbutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(ltr):not(:last-child) > button, spinbutton.vertical.linked:not(.vertical) > text:dir(rtl):not(:first-child), .linked:not(.vertical) > spinbutton:dir(rtl):not(:first-child):not(.vertical), .linked:not(.vertical) > entry:dir(rtl):not(:first-child), .linked:not(.vertical) > button:dir(rtl):not(:first-child), spinbutton.vertical.linked:not(.vertical) > text:dir(ltr):not(:last-child), .linked:not(.vertical) > spinbutton:dir(ltr):not(:last-child):not(.vertical), .linked:not(.vertical) > entry:dir(ltr):not(:last-child), .linked:not(.vertical) > button:dir(ltr):not(:last-child) { + border-right-style: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.linked.vertical > filechooserbutton > combobox:not(:first-child) > box > button.combo, +.linked.vertical > appchooserbutton > combobox:not(:first-child) > box > button.combo, +.linked.vertical > combobox:not(:first-child) > box > button.combo, .linked.vertical > menubutton:not(:first-child) > button, +.linked.vertical > dropdown:not(:first-child) > button, +.linked.vertical > colorbutton:not(:first-child) > button, +.linked.vertical > fontbutton:not(:first-child) > button, +.linked.vertical > filechooserbutton:not(:first-child) > button, spinbutton.vertical.linked > text:not(:first-child), .linked.vertical > spinbutton:not(:first-child):not(.vertical), .linked.vertical > entry:not(:first-child), .linked.vertical > button:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.linked.vertical > filechooserbutton > combobox:not(:last-child) > box > button.combo, +.linked.vertical > appchooserbutton > combobox:not(:last-child) > box > button.combo, +.linked.vertical > combobox:not(:last-child) > box > button.combo, .linked.vertical > menubutton:not(:last-child) > button, +.linked.vertical > dropdown:not(:last-child) > button, +.linked.vertical > colorbutton:not(:last-child) > button, +.linked.vertical > fontbutton:not(:last-child) > button, +.linked.vertical > filechooserbutton:not(:last-child) > button, spinbutton.vertical.linked > text:not(:last-child), .linked.vertical > spinbutton:not(:last-child):not(.vertical), .linked.vertical > entry:not(:last-child), .linked.vertical > button:not(:last-child) { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.scale-popup button:hover, button.link, button.link:hover, button.link:active, button.link:checked, popover.menu box.circular-buttons button.circular.image-button.model, +list > row button.image-button:not(.flat), .toolbar button, modelbutton.flat { + background-color: transparent; + background-image: none; + border-color: transparent; + box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); + text-shadow: none; + -gtk-icon-shadow: none; } + +/* menu buttons */ +modelbutton.flat { + min-height: 26px; + padding-left: 5px; + padding-right: 5px; + border-radius: 5px; } + modelbutton.flat:hover { + background-color: #3b3e46; } + modelbutton.flat:disabled { + color: #888a8d; } + +modelbutton.flat arrow { + background: none; + min-width: 16px; + min-height: 16px; + opacity: 0.3; } + modelbutton.flat arrow:hover { + background: none; } + modelbutton.flat arrow.left { + -gtk-icon-source: -gtk-icontheme("go-previous-symbolic"); } + modelbutton.flat arrow.right { + -gtk-icon-source: -gtk-icontheme("go-next-symbolic"); } + +/* oldstyle toolbar buttons */ +.toolbar button { + margin: 1px; } + .toolbar button:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + .toolbar button:active { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#13151a); + box-shadow: none; } + .toolbar button:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + .toolbar button:backdrop { + color: #888a8d; + border-color: #16171d; + background-image: image(#23252e); + box-shadow: none; } + .toolbar button:backdrop:disabled { + color: #43495a; + border-color: #16171d; + background-image: image(#242731); + box-shadow: none; } + +button.color { + padding: 4px; } + button.color > colorswatch:only-child, button.color > colorswatch:only-child > overlay { + border-radius: 0; } + +/* list buttons */ +/* tone down as per new designs, see issue #1473 */ +popover.menu box.circular-buttons button.circular.image-button.model, +list > row button.image-button:not(.flat) { + border: 1px solid rgba(13, 14, 17, 0.5); } + popover.menu box.circular-buttons button.circular.image-button.model:hover, + list > row button.image-button:not(.flat):hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + popover.menu box.circular-buttons button.circular.image-button.model:active, popover.menu box.circular-buttons button.circular.image-button.model:checked, + list > row button.image-button:not(.flat):active, + list > row button.image-button:not(.flat):checked { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#13151a); + box-shadow: none; } + +/********* + * Links * + *********/ +button.link, +link { + color: #8db7ff; + text-decoration: underline; } + button.link:visited, + link:visited { + color: #5a97ff; } + *:selected button.link:visited, *:selected link:visited { + color: #bdd5ff; } + button.link:hover, + link:hover { + color: #c0d7ff; } + *:selected button.link:hover, *:selected link:hover { + color: #f9fbff; } + button.link:active, + link:active { + color: #8db7ff; } + *:selected button.link:active, *:selected link:active { + color: #e8f1ff; } + button.link:disabled, + link:disabled { + color: rgba(198, 198, 198, 0.8); } + button.link:selected, *:selected button.link, + link:selected, *:selected link { + color: #e8f1ff; } + +link { + outline: 0 solid transparent; + outline-offset: 4px; } + +link:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +button.link, button.link:hover, button.link:active, button.link:checked { + text-shadow: none; } + +button.link > label { + text-decoration: underline; } + +/***************** + * GtkSpinButton * + *****************/ +spinbutton { + font-feature-settings: "tnum"; } + spinbutton:not(.vertical) { + padding: 0; + border-spacing: 0; + /* :not here just to bump specificity above that of the list button styling */ } + .osd spinbutton:not(.vertical) > text, spinbutton:not(.vertical) > text { + min-width: 28px; + margin: 0; + background: none; + background-color: transparent; + border: none; + border-radius: 0; + box-shadow: none; + padding: 6px; } + .osd spinbutton:not(.vertical) > text:backdrop:disabled, spinbutton:not(.vertical) > text:backdrop:disabled { + background-color: transparent; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat), + spinbutton:not(.vertical) > button.image-button.down:not(.flat) { + min-height: 16px; + margin: 0; + padding-bottom: 0; + padding-top: 0; + color: #dadada; + background-image: none; + border-style: none none none solid; + border-color: rgba(13, 14, 17, 0.3); + border-radius: 0; + box-shadow: none; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl), + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl) { + border-style: none solid none none; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):hover, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):hover { + color: #eeeeec; + background-color: #181a20; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):disabled, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):disabled { + color: rgba(136, 138, 141, 0.3); + background-color: transparent; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):active, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):active { + background-color: rgba(0, 0, 0, 0.1); + box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.2); } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(ltr):last-child, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(ltr):last-child { + border-radius: 0 5px 5px 0; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl):first-child, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl):first-child { + border-radius: 5px 0 0 5px; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat), + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat) { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + border-style: none none none solid; + border-color: rgba(0, 0, 0, 0.7); + border-radius: 0; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl), + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl) { + border-style: none solid none none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):hover, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):hover { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + border-color: rgba(0, 0, 0, 0.5); + background-color: #1a1c23; + -gtk-icon-shadow: 0 1px black; + box-shadow: none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):disabled, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #97999f; + border-color: rgba(0, 0, 0, 0.5); + -gtk-icon-shadow: none; + box-shadow: none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(ltr):last-child, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(ltr):last-child { + border-radius: 0 5px 5px 0; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl):first-child, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl):first-child { + border-radius: 5px 0 0 5px; } + spinbutton.vertical:disabled { + color: #888a8d; } + spinbutton.vertical:drop(active) { + border-color: transparent; + box-shadow: none; } + spinbutton.vertical > text { + min-height: 32px; + min-width: 32px; + padding: 0; + border-radius: 0; } + spinbutton.vertical > text > block-cursor { + color: #272a34; + background-color: white; } + spinbutton.vertical > button { + min-height: 32px; + min-width: 32px; + padding: 0; } + spinbutton.vertical > button.up { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + spinbutton.vertical > button.down { + border-top-style: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + .osd spinbutton.vertical > button:first-child { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd spinbutton.vertical > button:first-child:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .osd spinbutton.vertical > button:first-child:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .osd spinbutton.vertical > button:first-child:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + treeview spinbutton:not(.vertical) { + min-height: 0; + border-style: none; + border-radius: 0; } + treeview spinbutton:not(.vertical) > text { + min-height: 0; + padding: 1px 2px; } + +/************** + * ComboBoxes * + **************/ +dropdown > popover.menu.background > contents { + padding: 0; } + +dropdown > button > box { + border-spacing: 6px; } + +dropdown arrow, +combobox arrow { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); + min-height: 16px; + min-width: 16px; } + +dropdown > popover.menu > contents modelbutton, +combobox > popover.menu > contents modelbutton { + padding-left: 9px; + padding-right: 9px; } + +dropdown:drop(active), +combobox:drop(active) { + box-shadow: none; } + +dropdown popover, +combobox popover { + margin-top: 6px; + padding: 0; } + dropdown popover listview, + combobox popover listview { + margin: 8px 0; } + dropdown popover listview > row, + combobox popover listview > row { + padding: 8px; } + dropdown popover listview > row:selected, + combobox popover listview > row:selected { + outline-color: rgba(255, 255, 255, 0.3); + color: white; + background-color: #3b3e46; } + dropdown popover .dropdown-searchbar, + combobox popover .dropdown-searchbar { + padding: 6px; + border-bottom: 1px solid #0d0e11; } + +/************ + * Toolbars * + ************/ +searchbar > revealer > box, .toolbar, +toolbar { + padding: 4px; + border-spacing: 4px; + background-color: #23252e; } + +.osd .toolbar, .osd toolbar { + background-color: transparent; } + +.toolbar.osd, +toolbar.osd { + padding: 13px; + border: none; + border-radius: 5px; + background-color: #303340; } + .toolbar.osd.left, .toolbar.osd.right, .toolbar.osd.top, .toolbar.osd.bottom, + toolbar.osd.left, + toolbar.osd.right, + toolbar.osd.top, + toolbar.osd.bottom { + border-radius: 0; } + +.toolbar.horizontal > separator, +toolbar.horizontal > separator { + margin: 4px 0; } + +.toolbar.vertical > separator, +toolbar.vertical > separator { + margin: 0 4px; } + +searchbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-width: 0 0 1px; } + +searchbar > revealer > box { + border-style: solid; + border-color: #0d0e11; + background-color: #1c1e25; } + searchbar > revealer > box:backdrop { + border-color: #16171d; + background-color: #1e2028; + box-shadow: none; + transition: 200ms ease-out; } + +/************** + * GtkInfoBar * + **************/ +infobar > revealer > box { + padding: 8px; + border-spacing: 12px; } + +infobar.action:hover > revealer > box { + background-color: #010101; } + +infobar.info > revealer > box, infobar.question > revealer > box, infobar.warning > revealer > box, infobar.error > revealer > box { + border-bottom: 1px solid #181a20; + background-color: #080604; } + +infobar .close, +searchbar .close { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + min-width: 16px; + min-height: 16px; + padding: 4px; + border-radius: 50%; } + infobar .close:hover, + searchbar .close:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + +/***************** + * Title buttons * + *****************/ +windowcontrols { + border-spacing: 6px; } + windowcontrols.start:not(.empty):dir(ltr), windowcontrols.end:not(.empty):dir(rtl) { + margin-right: 7px; } + windowcontrols.start:not(.empty):dir(rtl), windowcontrols.end:not(.empty):dir(ltr) { + margin-left: 7px; } + windowcontrols button { + border-radius: 9999px; + padding: 6px; + margin: 0 2px; + min-width: 0; + min-height: 0; } + windowcontrols button:hover { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #0d0e11; } + windowcontrols button:active, windowcontrols button:checked { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: black; } + +/*************** + * Header bars * + ***************/ +.titlebar:not(headerbar), +headerbar { + padding: 0 6px; + min-height: 46px; + border-width: 0 0 1px; + border-style: solid; + border-color: black; + border-radius: 0; + background: #0d0e11 linear-gradient(to top, #16171d, #1a1c23); + /* Darken switchbuttons for headerbars. issue #1588 */ } + .titlebar:backdrop:not(headerbar), + headerbar:backdrop { + border-color: #16171d; + background-color: #23252e; + background-image: none; + box-shadow: inset 0 1px rgba(238, 238, 236, 0.07); + transition: 200ms ease-out; } + .titlebar:not(headerbar) .title, + headerbar .title { + padding-left: 12px; + padding-right: 12px; + font-weight: bold; } + .titlebar:not(headerbar) .subtitle, + headerbar .subtitle { + font-size: smaller; + padding-left: 12px; + padding-right: 12px; } + .titlebar:not(headerbar) stackswitcher > button:checked, + .titlebar:not(headerbar) button.toggle:checked, + headerbar stackswitcher > button:checked, + headerbar button.toggle:checked { + background: image(#0f1014); + border-color: #060708; + border-top-color: black; } + .titlebar:not(headerbar) stackswitcher > button:checked:backdrop, + .titlebar:not(headerbar) button.toggle:checked:backdrop, + headerbar stackswitcher > button:checked:backdrop, + headerbar button.toggle:checked:backdrop { + color: #888a8d; + border-color: #16171d; + background-image: image(#1e2128); + box-shadow: none; } + .tiled .titlebar:not(headerbar), .tiled-top .titlebar:not(headerbar), .tiled-left .titlebar:not(headerbar), .tiled-right .titlebar:not(headerbar), .tiled-bottom .titlebar:not(headerbar), .maximized .titlebar:not(headerbar), .fullscreen .titlebar:not(headerbar), .tiled headerbar, .tiled-top headerbar, .tiled-left headerbar, .tiled-right headerbar, .tiled-bottom headerbar, .maximized headerbar, .fullscreen headerbar { + border-radius: 0; } + .default-decoration.titlebar:not(headerbar), + headerbar.default-decoration { + min-height: 28px; + padding: 4px; } + .default-decoration.titlebar:not(headerbar) windowcontrols button, + .default-decoration.titlebar:not(headerbar) windowcontrols menubutton, + headerbar.default-decoration windowcontrols button, + headerbar.default-decoration windowcontrols menubutton { + min-height: 26px; + min-width: 26px; + margin: 0; + padding: 0; } + .default-decoration.titlebar:not(headerbar) windowcontrols menubutton button, + headerbar.default-decoration windowcontrols menubutton button { + min-height: 20px; + min-width: 20px; + margin: 0; + padding: 4px; } + .solid-csd .titlebar:dir(rtl):not(headerbar), .solid-csd .titlebar:dir(ltr):not(headerbar), .solid-csd headerbar:backdrop:dir(rtl), .solid-csd headerbar:backdrop:dir(ltr), .solid-csd headerbar:dir(rtl), .solid-csd headerbar:dir(ltr) { + margin-left: -1px; + margin-right: -1px; + margin-top: -1px; + border-radius: 0; + box-shadow: none; } + +headerbar > windowhandle > box, +headerbar > windowhandle > box > box.start, +headerbar > windowhandle > box > box.end { + border-spacing: 6px; } + +headerbar entry, +headerbar spinbutton, +headerbar separator:not(.sidebar), +headerbar button, +headerbar menubutton { + margin-top: 6px; + margin-bottom: 6px; } + +headerbar menubutton > button { + margin-top: 0px; + margin-bottom: 0px; } + +headerbar switch { + margin-top: 10px; + margin-bottom: 10px; } + +headerbar.titlebar headerbar:not(.titlebar) { + background: none; + box-shadow: none; } + +window.csd > .titlebar:not(headerbar) { + padding: 0; + background-color: transparent; + background-image: none; + border-style: none; + border-color: transparent; + box-shadow: none; } + +.titlebar:not(headerbar) separator { + background-color: #0d0e11; } + +window.devel headerbar.titlebar { + background: #23252e cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, linear-gradient(to right, transparent 65%, rgba(39, 119, 255, 0.1)), linear-gradient(to top, #13151a 3px, #181a20); } + window.devel headerbar.titlebar:backdrop { + background: #23252e cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, image(#23252e); + /* background-color would flash */ } + +/************ + * Pathbars * + ************/ +pathbar > button.text-button, pathbar > button.image-button, pathbar > button { + padding-left: 4px; + padding-right: 4px; } + +pathbar > button.text-button.image-button label { + padding-left: 0; + padding-right: 0; } + +pathbar > button.text-button.image-button label:last-child, pathbar > button label:last-child { + padding-right: 8px; } + +pathbar > button.text-button.image-button label:first-child, pathbar > button label:first-child { + padding-left: 8px; } + +pathbar > button image { + padding-left: 4px; + padding-right: 4px; } + +pathbar > button.slider-button { + padding-left: 0; + padding-right: 0; } + +/************** + * Tree Views * + **************/ +columnview.view, +treeview.view { + border-left-color: #4f5159; + border-top-color: #4f5159; } + columnview.view, + treeview.view { + outline: 0 solid transparent; + outline-offset: 4px; } + columnview.view:focus:focus-visible, + treeview.view:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + columnview.view:selected:focus, columnview.view:selected, + treeview.view:selected:focus, + treeview.view:selected { + border-radius: 0; + outline-color: rgba(255, 255, 255, 0.3); } + columnview.view:disabled, + treeview.view:disabled { + color: #888a8d; } + columnview.view:disabled:selected, + treeview.view:disabled:selected { + color: #7dadff; } + columnview.view:disabled:selected:backdrop, + treeview.view:disabled:selected:backdrop { + color: #5b93f3; } + columnview.view.separator, + treeview.view.separator { + min-height: 2px; + color: #4f5159; } + columnview.view:backdrop, + treeview.view:backdrop { + border-left-color: #3a3d46; + border-top: #3a3d46; } + columnview.view:drop(active), + treeview.view:drop(active) { + box-shadow: none; } + columnview.view > dndtarget:drop(active), + treeview.view > dndtarget:drop(active) { + border-style: solid none; + border-width: 1px; + border-color: #00348d; } + columnview.view > dndtarget.after:drop(active), + treeview.view > dndtarget.after:drop(active) { + border-top-style: none; } + columnview.view > dndtarget.before:drop(active), + treeview.view > dndtarget.before:drop(active) { + border-bottom-style: none; } + columnview.view.expander, + treeview.view.expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); + color: #bebfc2; } + columnview.view.expander:dir(rtl), + treeview.view.expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + columnview.view.expander:hover, + treeview.view.expander:hover { + color: white; } + columnview.view.expander:selected, + treeview.view.expander:selected { + color: #bed6ff; } + columnview.view.expander:selected:hover, + treeview.view.expander:selected:hover { + color: #ffffff; } + columnview.view.expander:checked, + treeview.view.expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + columnview.view.progressbar, + treeview.view.progressbar { + background-color: #2777ff; + background-image: image(#2777ff); + box-shadow: none; } + columnview.view.progressbar:selected:focus, columnview.view.progressbar:selected, + treeview.view.progressbar:selected:focus, + treeview.view.progressbar:selected { + box-shadow: inset 0 1px rgba(255, 255, 255, 0.05); + background-image: image(#272a34); } + columnview.view.progressbar:selected:focus:backdrop, columnview.view.progressbar:selected:backdrop, + treeview.view.progressbar:selected:focus:backdrop, + treeview.view.progressbar:selected:backdrop { + background-color: #292c37; } + columnview.view.trough, + treeview.view.trough { + background-color: rgba(238, 238, 236, 0.1); } + columnview.view.trough:selected:focus, columnview.view.trough:selected, + treeview.view.trough:selected:focus, + treeview.view.trough:selected { + background-color: #005af3; } + columnview.view > header > button, + treeview.view > header > button { + color: #8b8c90; + background-color: #272a34; + font-weight: bold; + text-shadow: none; + box-shadow: none; } + columnview.view > header > button:hover, + treeview.view > header > button:hover { + color: #bdbdbe; + box-shadow: none; + transition: none; } + columnview.view > header > button:active, + treeview.view > header > button:active { + color: #eeeeec; + transition: none; } + columnview.view button.dnd:active, columnview.view button.dnd:selected, columnview.view button.dnd:hover, columnview.view button.dnd, + columnview.view header.button.dnd:active, + columnview.view header.button.dnd:selected, + columnview.view header.button.dnd:hover, + columnview.view header.button.dnd, + treeview.view button.dnd:active, + treeview.view button.dnd:selected, + treeview.view button.dnd:hover, + treeview.view button.dnd, + treeview.view header.button.dnd:active, + treeview.view header.button.dnd:selected, + treeview.view header.button.dnd:hover, + treeview.view header.button.dnd { + padding: 0 6px; + color: #272a34; + background-image: none; + background-color: #2777ff; + border-style: none; + border-radius: 0; + box-shadow: inset 0 0 0 1px #272a34; + text-shadow: none; + transition: none; } + columnview.view acceleditor > label, + treeview.view acceleditor > label { + background-color: #2777ff; } + +columnview.view > header > button, +treeview.view > header > button, columnview.view > header > button:hover, +treeview.view > header > button:hover, columnview.view > header > button:active, +treeview.view > header > button:active { + padding: 0 6px; + background-image: none; + border-style: none none solid solid; + border-color: #4f5159; + border-radius: 0; + text-shadow: none; } + columnview.view > header > button:disabled, + treeview.view > header > button:disabled { + border-color: #23252e; + background-image: none; } + columnview.view > header > button:last-child, + treeview.view > header > button:last-child { + border-right-style: none; } + +/*************** + * Popovers * + ***************/ +popover.background { + background-color: transparent; + font: initial; } + popover.background > arrow, + popover.background > contents { + background-color: #1f222a; + background-clip: padding-box; + border: 1px solid rgba(13, 14, 17, 0.9); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } + popover.background:backdrop { + background-color: transparent; } + popover.background > contents { + padding: 8px; + border-radius: 9px; } + popover.background > contents > list, + popover.background > contents > .view, + popover.background > contents > iconview, + popover.background > contents > toolbar { + border-style: none; + background-color: transparent; } + popover.background > contents separator { + background-color: #13151a; + margin: 3px; } + popover.background > contents list separator { + margin: 0; } + .osd popover.background, popover.background.touch-selection, popover.background.magnifier { + background-color: transparent; } + .osd popover.background > arrow, + .osd popover.background > contents, popover.background.touch-selection > arrow, + popover.background.touch-selection > contents, popover.background.magnifier > arrow, + popover.background.magnifier > contents { + border: 1px solid rgba(255, 255, 255, 0.1); + box-shadow: none; } + +magnifier { + background-color: #272a34; } + +/********************** + * Popover Base Menus * + **********************/ +popover.menu { + padding: 0; } + popover.menu box.inline-buttons { + padding: 0 12px; } + popover.menu box.inline-buttons button.image-button.model { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + min-height: 30px; + min-width: 30px; + padding: 0; + border: none; + outline: none; + transition: none; } + popover.menu box.inline-buttons button.image-button.model:selected { + background: image(#3b3e46); } + popover.menu box.circular-buttons { + padding: 12px 12px 6px; } + popover.menu box.circular-buttons button.circular.image-button.model { + padding: 11px; } + popover.menu box.circular-buttons button.circular.image-button.model:focus { + background-color: #3b3e46; + border-color: #3b3e46; } + popover.menu > arrow, popover.menu.background > contents { + background-color: #1f222a; + padding: 5px; } + popover.menu.background separator { + margin: 6px 0; } + popover.menu accelerator { + color: alpha(currentColor,0.55); } + popover.menu accelerator:dir(ltr) { + margin-left: 12px; } + popover.menu accelerator:dir(rtl) { + margin-right: 12px; } + popover.menu check, + popover.menu radio { + transform: scale(0.8); + border-width: 1.2px; + border-color: transparent; + box-shadow: none; + background-image: image(transparent); + color: white; } + popover.menu check:hover, + popover.menu radio:hover { + transform: scale(0.8); + border-width: 1.2px; + color: white; + box-shadow: none; + background-image: image(transparent); } + popover.menu check:active, + popover.menu radio:active { + transform: scale(0.8); + border-width: 1.2px; + color: white; + box-shadow: none; + background-image: image(transparent); } + popover.menu radio { + border-color: #0d0e11; } + popover.menu radio:active { + border-color: rgba(13, 14, 17, 0.5); } + popover.menu arrow.left, + popover.menu radio.left, + popover.menu check.left { + margin-left: -2px; + margin-right: 6px; } + popover.menu arrow.right, + popover.menu radio.right, + popover.menu check.right { + margin-left: 6px; + margin-right: -2px; } + popover.menu modelbutton { + min-height: 30px; + min-width: 40px; + padding: 0 12px; + border-radius: 5px; } + popover.menu modelbutton:selected { + color: white; + background-color: #3b3e46; } + popover.menu modelbutton:selected:active { + background-color: #040405; } + popover.menu label.title { + font-weight: bold; + padding: 4px 32px; } + +menubar { + padding: 0px; + box-shadow: inset 0 -1px rgba(0, 0, 0, 0.1); } + menubar > item { + min-height: 16px; + padding: 4px 8px; } + menubar > item:selected { + box-shadow: inset 0 -3px #2777ff; + color: #8db7ff; } + menubar > item:disabled { + color: #888a8d; + box-shadow: none; } + menubar > item popover.menu.background > contents { + padding: 5px; } + menubar > item popover.menu popover.menu { + padding: 0 0 4px 0; } + menubar > item popover.menu.background popover.menu.background > contents { + margin: 0; + border-radius: 9px; } + +/************* + * Notebooks * + *************/ +notebook > header > tabs > tab:checked { + outline: 0 solid transparent; + outline-offset: 4px; } + +notebook:focus:focus-visible > header > tabs > tab:checked { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +notebook > header { + padding: 1px; + border-color: #0d0e11; + border-width: 1px; + background-color: #1b1d24; } + notebook > header > tabs { + margin: -1px; } + notebook > header.top { + border-bottom-style: solid; } + notebook > header.top > tabs { + margin-bottom: -2px; } + notebook > header.top > tabs > tab:hover { + box-shadow: inset 0 -4px #0d0e11; } + notebook > header.top > tabs > tab:checked { + box-shadow: inset 0 -4px #2777ff; } + notebook > header.bottom { + border-top-style: solid; } + notebook > header.bottom > tabs { + margin-top: -2px; } + notebook > header.bottom > tabs > tab:hover { + box-shadow: inset 0 4px #0d0e11; } + notebook > header.bottom > tabs > tab:checked { + box-shadow: inset 0 4px #2777ff; } + notebook > header.left { + border-right-style: solid; } + notebook > header.left > tabs { + margin-right: -2px; } + notebook > header.left > tabs > tab:hover { + box-shadow: inset -4px 0 #0d0e11; } + notebook > header.left > tabs > tab:checked { + box-shadow: inset -4px 0 #2777ff; } + notebook > header.right { + border-left-style: solid; } + notebook > header.right > tabs { + margin-left: -2px; } + notebook > header.right > tabs > tab:hover { + box-shadow: inset 4px 0 #0d0e11; } + notebook > header.right > tabs > tab:checked { + box-shadow: inset 4px 0 #2777ff; } + notebook > header.top > tabs > arrow { + border-top-style: none; } + notebook > header.bottom > tabs > arrow { + border-bottom-style: none; } + notebook > header.top > tabs > arrow, notebook > header.bottom > tabs > arrow { + margin-left: -5px; + margin-right: -5px; + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs > arrow.down, notebook > header.bottom > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + notebook > header.top > tabs > arrow.up, notebook > header.bottom > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + notebook > header.left > tabs > arrow { + border-left-style: none; } + notebook > header.right > tabs > arrow { + border-right-style: none; } + notebook > header.left > tabs > arrow, notebook > header.right > tabs > arrow { + margin-top: -5px; + margin-bottom: -5px; + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs > arrow.down, notebook > header.right > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } + notebook > header.left > tabs > arrow.up, notebook > header.right > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + notebook > header > tabs > arrow { + min-height: 16px; + min-width: 16px; + border-radius: 0; } + notebook > header > tabs > arrow:hover:not(:active):not(:backdrop) { + background-clip: padding-box; + background-image: none; + background-color: rgba(255, 255, 255, 0.3); + border-color: transparent; + box-shadow: none; } + notebook > header > tabs > arrow:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; } + notebook > header > tabs > tab { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + min-height: 30px; + min-width: 30px; + padding: 3px 12px; + color: #eeeeec; + font-weight: normal; + border-width: 1px; + border-color: transparent; } + notebook > header > tabs > tab:hover { + color: #eeeeec; + background-color: #121418; } + notebook > header > tabs > tab.reorderable-page:hover { + border-color: rgba(13, 14, 17, 0.3); + background-color: rgba(35, 37, 46, 0.2); } + notebook > header > tabs > tab:not(:checked) { + outline-color: transparent; } + notebook > header > tabs > tab:checked { + color: #eeeeec; } + notebook > header > tabs > tab.reorderable-page:checked { + border-color: rgba(13, 14, 17, 0.5); + background-color: rgba(35, 37, 46, 0.5); } + notebook > header > tabs > tab.reorderable-page:checked:hover { + background-color: rgba(35, 37, 46, 0.7); } + notebook > header > tabs > tab button.flat { + color: alpha(currentColor,0.3); + padding: 0; + margin-top: 4px; + margin-bottom: 4px; + min-width: 20px; + min-height: 20px; } + notebook > header > tabs > tab button.flat:hover { + color: currentColor; } + notebook > header > tabs > tab button.flat:last-child { + margin-left: 4px; + margin-right: -4px; } + notebook > header > tabs > tab button.flat:first-child { + margin-left: -4px; + margin-right: 4px; } + notebook > header.top > tabs, notebook > header.bottom > tabs { + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs:not(:only-child), notebook > header.bottom > tabs:not(:only-child) { + margin-left: 3px; + margin-right: 3px; } + notebook > header.top > tabs:not(:only-child):first-child, notebook > header.bottom > tabs:not(:only-child):first-child { + margin-left: -1px; } + notebook > header.top > tabs:not(:only-child):last-child, notebook > header.bottom > tabs:not(:only-child):last-child { + margin-right: -1px; } + notebook > header.top > tabs > tab, notebook > header.bottom > tabs > tab { + margin-left: 4px; + margin-right: 4px; } + notebook > header.top > tabs > tab.reorderable-page, notebook > header.bottom > tabs > tab.reorderable-page { + border-style: none solid; } + notebook > header.left > tabs, notebook > header.right > tabs { + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs:not(:only-child), notebook > header.right > tabs:not(:only-child) { + margin-top: 3px; + margin-bottom: 3px; } + notebook > header.left > tabs:not(:only-child):first-child, notebook > header.right > tabs:not(:only-child):first-child { + margin-top: -1px; } + notebook > header.left > tabs:not(:only-child):last-child, notebook > header.right > tabs:not(:only-child):last-child { + margin-bottom: -1px; } + notebook > header.left > tabs > tab, notebook > header.right > tabs > tab { + margin-top: 4px; + margin-bottom: 4px; } + notebook > header.left > tabs > tab.reorderable-page, notebook > header.right > tabs > tab.reorderable-page { + border-style: solid none; } + notebook > header.top > tabs > tab { + padding-bottom: 4px; } + notebook > header.bottom > tabs > tab { + padding-top: 4px; } + +notebook > stack:not(:only-child) { + background-color: #272a34; } + +/************** + * Scrollbars * + **************/ +scrollbar { + background-color: #272a34; + transition: 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + scrollbar.top { + border-bottom: 1px solid #0d0e11; } + scrollbar.bottom { + border-top: 1px solid #0d0e11; } + scrollbar.left { + border-right: 1px solid #0d0e11; } + scrollbar.right { + border-left: 1px solid #0d0e11; } + scrollbar > range > trough > slider { + min-width: 6px; + min-height: 6px; + margin: -1px; + border: 4px solid transparent; + border-radius: 8px; + background-clip: padding-box; + background-color: #41434b; } + scrollbar > range > trough > slider:hover { + background-color: #4b4d54; } + scrollbar > range > trough > slider:hover:active { + background-color: #2777ff; } + scrollbar > range > trough > slider:disabled { + background-color: transparent; } + scrollbar > range.fine-tune > trough > slider { + min-width: 4px; + min-height: 4px; } + scrollbar > range.fine-tune.horizontal > trough > slider { + border-width: 5px 4px; } + scrollbar > range.fine-tune.vertical > trough > slider { + border-width: 4px 5px; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + border-color: transparent; + opacity: 0.4; + background-color: transparent; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) > range > trough > slider { + margin: 0; + min-width: 3px; + min-height: 3px; + background-color: #eeeeec; + border: 1px solid black; } + scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) > range > trough > slider { + margin: 0 2px; + min-width: 40px; } + scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) > range > trough > slider { + margin: 2px 0; + min-height: 40px; } + scrollbar.overlay-indicator.dragging, scrollbar.overlay-indicator.hovering { + opacity: 0.8; } + scrollbar.horizontal > range > trough > slider { + min-width: 40px; } + scrollbar.vertical > range > trough > slider { + min-height: 40px; } + +treeview ~ scrollbar.vertical { + border-top: 1px solid #0d0e11; + margin-top: -1px; } + +/********** + * Switch * + **********/ +switch { + font-weight: bold; + font-size: smaller; + border: 1px solid #0d0e11; + border-radius: 14px; + color: #eeeeec; + background-color: #1b1d24; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + /* only show i / o for the accessible theme */ } + switch { + outline: 0 solid transparent; + outline-offset: 4px; } + switch:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: 0; } + headerbar switch { + background-color: #0a0a0d; } + switch:checked { + color: #ffffff; + border-color: #00348d; + background-color: #2777ff; } + switch:disabled { + color: #888a8d; + border-color: #0d0e11; + background-color: #242731; + text-shadow: none; } + switch > slider { + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); + margin: -1px; + min-width: 24px; + min-height: 24px; + border: 1px solid; + border-color: #0d0e11; + border-radius: 50%; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + switch > image { + color: transparent; } + switch:hover > slider { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + switch:checked > slider { + border: 1px solid #00348d; } + switch:disabled > slider { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + row:selected switch { + outline-color: rgba(255, 255, 255, 0.3); } + +/************************* + * Check and Radio items * + *************************/ +.view.content-view.check:not(list), iconview.content-view.check:not(list), +.content-view .tile check:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:hover:not(list), iconview.content-view.check:hover:not(list), +.content-view .tile check:hover:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:active:not(list), iconview.content-view.check:active:not(list), +.content-view .tile check:active:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:backdrop:not(list), iconview.content-view.check:backdrop:not(list), +.content-view .tile check:backdrop:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #939393; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:not(list), iconview.content-view.check:checked:not(list), +.content-view .tile check:checked:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:hover:not(list), iconview.content-view.check:checked:hover:not(list), +.content-view .tile check:checked:hover:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:active:not(list), iconview.content-view.check:checked:active:not(list), +.content-view .tile check:checked:active:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:backdrop:checked:not(list), iconview.content-view.check:backdrop:checked:not(list), +.content-view .tile check:backdrop:checked:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: rgba(255, 255, 255, 0.8); + background-color: #939393; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +checkbutton { + border-spacing: 4px; + border-radius: 5px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + checkbutton { + outline: 0 solid transparent; + outline-offset: 4px; } + checkbutton:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + checkbutton.text-button { + padding: 4px; } + +check, +radio { + min-height: 14px; + min-width: 14px; + border: 1px solid; + -gtk-icon-source: none; } + check, + radio { + background-clip: padding-box; + background-image: linear-gradient(to bottom, #2e313d 20%, #23252e 90%); + border-color: black; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:hover, + radio:hover { + background-image: linear-gradient(to bottom, #363a48 10%, #2b2f3a 90%); } + check:active, + radio:active { + box-shadow: inset 0 1px black; + background-image: image(#181a20); } + check:disabled, + radio:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + check:checked, + radio:checked { + background-clip: border-box; + background-image: linear-gradient(to bottom, #4187ff 20%, #2777ff 90%); + border-color: #00215a; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:checked:hover, + radio:checked:hover { + background-image: linear-gradient(to bottom, #5594ff 10%, #3b84ff 90%); } + check:checked:active, + radio:checked:active { + box-shadow: inset 0 1px black; + background-image: image(#0e67ff); } + check:checked:disabled, + radio:checked:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + check:indeterminate, + radio:indeterminate { + background-clip: border-box; + background-image: linear-gradient(to bottom, #4187ff 20%, #2777ff 90%); + border-color: #00215a; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:indeterminate:hover, + radio:indeterminate:hover { + background-image: linear-gradient(to bottom, #5594ff 10%, #3b84ff 90%); } + check:indeterminate:active, + radio:indeterminate:active { + box-shadow: inset 0 1px black; + background-image: image(#0e67ff); } + check:indeterminate:disabled, + radio:indeterminate:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + .osd check, .osd radio { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd check:hover, .osd radio:hover { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd check:active, .osd radio:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .osd check:disabled, .osd radio:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + + +check { + border-radius: 3px; + -gtk-icon-size: 14px; } + + check:checked { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/check-symbolic.symbolic.png")), -gtk-recolor(url("assets/check@2-symbolic.symbolic.png"))); } + + check:indeterminate { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } + +treeview.view radio:selected:focus, treeview.view radio:selected, +radio { + border-radius: 100%; + -gtk-icon-size: 14px; } + treeview.view radio:checked:selected, + radio:checked { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/bullet-symbolic.symbolic.png")), -gtk-recolor(url("assets/bullet@2-symbolic.symbolic.png"))); } + treeview.view radio:indeterminate:selected, + radio:indeterminate { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } + +treeview.view check:selected:focus, treeview.view check:selected, +treeview.view radio:selected:focus, +treeview.view radio:selected { + color: #ffffff; } + +/************ + * GtkScale * + ************/ +progressbar > trough, scale > trough > fill, scale > trough { + border: 1px solid #1b1d24; + border-radius: 3px; + background-color: #1b1d24; } + headerbar progressbar > trough, headerbar scale > trough > fill, headerbar scale > trough { + background-color: #0a0a0d; } + progressbar > trough:disabled, scale > trough > fill:disabled, scale > trough:disabled { + background-color: #242731; + border-color: #0d0e11; } + row:selected progressbar > trough, row:selected scale > trough > fill, row:selected scale > trough { + outline-color: rgba(255, 255, 255, 0.3); + border-color: #00348d; } + .osd progressbar > trough, .osd scale > trough > fill, .osd scale > trough { + border-color: black; + background-color: rgba(0, 0, 0, 0.8); } + .osd progressbar > trough:disabled, .osd scale > trough > fill:disabled, .osd scale > trough:disabled { + background-color: rgba(68, 72, 83, 0.5); } + +progressbar > trough > progress, scale > trough > highlight { + border: 1px solid #2777ff; + border-radius: 3px; + background-color: #2777ff; } + progressbar > trough > progress:disabled, scale > trough > highlight:disabled { + background-color: transparent; + border-color: transparent; } + row:selected progressbar > trough > progress, row:selected scale > trough > highlight { + border-color: #00348d; } + .osd progressbar > trough > progress, .osd scale > trough > highlight { + border-color: black; } + .osd progressbar > trough > progress:disabled, .osd scale > trough > highlight:disabled { + border-color: transparent; } + +scale { + min-height: 10px; + min-width: 10px; + padding: 12px; } + scale > trough { + outline: 0 solid transparent; + outline-offset: 16px; } + scale:focus:focus-visible > trough { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: 10px; } + scale > trough { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + scale > trough > fill, + scale > trough > highlight { + margin: -1px; } + scale > trough > slider { + min-height: 18px; + min-width: 18px; + margin: -9px; } + scale.fine-tune.horizontal { + padding-top: 9px; + padding-bottom: 9px; + min-height: 16px; } + scale.fine-tune.vertical { + padding-left: 9px; + padding-right: 9px; + min-width: 16px; } + scale.fine-tune > trough > slider { + margin: -6px; } + scale.fine-tune > trough > fill, + scale.fine-tune > trough > highlight, + scale.fine-tune > trough { + border-radius: 5px; } + scale > trough > fill:disabled { + border-color: transparent; + background-color: transparent; } + .osd scale > trough > fill { + background-color: #404040; } + .osd scale > trough > fill:disabled { + border-color: transparent; + background-color: transparent; } + scale > trough > slider { + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); + border-width: 1px; + border-style: solid; + border-radius: 100%; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-property: background, border, box-shadow; } + scale > trough > slider:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + scale > trough > slider:active { + border-color: #00348d; } + scale > trough > slider:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + row:selected scale > trough > slider:disabled, row:selected scale > trough > slider { + border-color: #00348d; } + .osd scale > trough > slider { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border-color: black; + background-color: #303340; } + .osd scale > trough > slider:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; + background-color: #303340; } + .osd scale > trough > slider:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; + background-color: #303340; } + .osd scale > trough > slider:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; + background-color: #303340; } + scale > value { + color: alpha(currentColor,0.55); + font-feature-settings: "tnum"; } + scale.horizontal > marks { + color: alpha(currentColor,0.55); } + scale.horizontal > marks.top { + margin-bottom: 6px; } + scale.horizontal > marks.bottom { + margin-top: 6px; } + scale.horizontal > marks indicator { + background-color: currentColor; + min-height: 6px; + min-width: 1px; } + scale.horizontal > value.left { + margin-right: 9px; } + scale.horizontal > value.right { + margin-left: 9px; } + scale.horizontal.fine-tune > marks.top { + margin-top: 3px; } + scale.horizontal.fine-tune > marks.bottom { + margin-bottom: 3px; } + scale.horizontal.fine-tune > marks indicator { + min-height: 3px; } + scale.vertical > marks { + color: alpha(currentColor,0.55); } + scale.vertical > marks.top { + margin-right: 6px; } + scale.vertical > marks.bottom { + margin-left: 6px; } + scale.vertical > marks indicator { + background-color: currentColor; + min-height: 1px; + min-width: 6px; } + scale.vertical > value.top { + margin-bottom: 9px; } + scale.vertical > value.bottom { + margin-top: 9px; } + scale.vertical.fine-tune > marks.top { + margin-left: 3px; } + scale.vertical.fine-tune > marks.bottom { + margin-right: 3px; } + scale.vertical.fine-tune > marks indicator { + min-height: 3px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-dark.png"), url("assets/slider-horz-scale-has-marks-above-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover-dark.png"), url("assets/slider-horz-scale-has-marks-above-hover-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active-dark.png"), url("assets/slider-horz-scale-has-marks-above-active-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-above-insensitive-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-dark.png"), url("assets/slider-horz-scale-has-marks-below-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-hover-dark.png"), url("assets/slider-horz-scale-has-marks-below-hover-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-active-dark.png"), url("assets/slider-horz-scale-has-marks-below-active-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-below-insensitive-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-dark.png"), url("assets/slider-vert-scale-has-marks-above-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-hover-dark.png"), url("assets/slider-vert-scale-has-marks-above-hover-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-active-dark.png"), url("assets/slider-vert-scale-has-marks-above-active-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-above-insensitive-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-dark.png"), url("assets/slider-vert-scale-has-marks-below-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-hover-dark.png"), url("assets/slider-vert-scale-has-marks-below-hover-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-active-dark.png"), url("assets/slider-vert-scale-has-marks-below-active-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-below-insensitive-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.color { + min-height: 0; + min-width: 0; } + scale.color > trough { + background-image: image(#0d0e11); + background-repeat: no-repeat; } + scale.color.horizontal { + padding: 0 0 15px 0; } + scale.color.horizontal > trough { + padding-bottom: 4px; + background-position: 0 -3px; + border-top-left-radius: 0; + border-top-right-radius: 0; } + scale.color.horizontal > trough > slider:dir(ltr):hover, scale.color.horizontal > trough > slider:dir(ltr):backdrop, scale.color.horizontal > trough > slider:dir(ltr):disabled, scale.color.horizontal > trough > slider:dir(ltr):backdrop:disabled, scale.color.horizontal > trough > slider:dir(ltr), scale.color.horizontal > trough > slider:dir(rtl):hover, scale.color.horizontal > trough > slider:dir(rtl):backdrop, scale.color.horizontal > trough > slider:dir(rtl):disabled, scale.color.horizontal > trough > slider:dir(rtl):backdrop:disabled, scale.color.horizontal > trough > slider:dir(rtl) { + margin-bottom: -15px; + margin-top: 6px; } + scale.color.vertical:dir(ltr) { + padding: 0 0 0 15px; } + scale.color.vertical:dir(ltr) > trough { + padding-left: 4px; + background-position: 3px 0; + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + scale.color.vertical:dir(ltr) > trough > slider:hover, scale.color.vertical:dir(ltr) > trough > slider:backdrop, scale.color.vertical:dir(ltr) > trough > slider:disabled, scale.color.vertical:dir(ltr) > trough > slider:backdrop:disabled, scale.color.vertical:dir(ltr) > trough > slider { + margin-left: -15px; + margin-right: 6px; } + scale.color.vertical:dir(rtl) { + padding: 0 15px 0 0; } + scale.color.vertical:dir(rtl) > trough { + padding-right: 4px; + background-position: -3px 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + scale.color.vertical:dir(rtl) > trough > slider:hover, scale.color.vertical:dir(rtl) > trough > slider:backdrop, scale.color.vertical:dir(rtl) > trough > slider:disabled, scale.color.vertical:dir(rtl) > trough > slider:backdrop:disabled, scale.color.vertical:dir(rtl) > trough > slider { + margin-right: -15px; + margin-left: 6px; } + scale.color.fine-tune.horizontal:dir(ltr), scale.color.fine-tune.horizontal:dir(rtl) { + padding: 0 0 12px 0; } + scale.color.fine-tune.horizontal:dir(ltr) > trough, scale.color.fine-tune.horizontal:dir(rtl) > trough { + padding-bottom: 7px; + background-position: 0 -6px; } + scale.color.fine-tune.horizontal:dir(ltr) > trough > slider, scale.color.fine-tune.horizontal:dir(rtl) > trough > slider { + margin-bottom: -15px; + margin-top: 6px; } + scale.color.fine-tune.vertical:dir(ltr) { + padding: 0 0 0 12px; } + scale.color.fine-tune.vertical:dir(ltr) > trough { + padding-left: 7px; + background-position: 6px 0; } + scale.color.fine-tune.vertical:dir(ltr) > trough > slider { + margin-left: -15px; + margin-right: 6px; } + scale.color.fine-tune.vertical:dir(rtl) { + padding: 0 12px 0 0; } + scale.color.fine-tune.vertical:dir(rtl) > trough { + padding-right: 7px; + background-position: -6px 0; } + scale.color.fine-tune.vertical:dir(rtl) > trough > slider { + margin-right: -15px; + margin-left: 6px; } + +/***************** + * Progress bars * + *****************/ +progressbar { + font-size: smaller; + color: rgba(238, 238, 236, 0.4); + font-feature-settings: "tnum"; } + progressbar.horizontal > trough { + min-width: 150px; } + progressbar.horizontal > trough, progressbar.horizontal > trough > progress { + min-height: 2px; } + progressbar.vertical > trough { + min-height: 80px; } + progressbar.vertical > trough, progressbar.vertical > trough > progress { + min-width: 2px; } + progressbar.horizontal > trough > progress { + margin: 0 -1px; } + progressbar.vertical > trough > progress { + margin: -1px 0; } + progressbar > trough > progress { + /* share most of scales' */ + /* override insensitive that is specific to progress */ + border-radius: 1.5px; } + progressbar > trough > progress:disabled { + background-color: #888a8d; + border-color: #888a8d; } + progressbar > trough > progress.left { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } + progressbar > trough > progress.right { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; } + progressbar > trough > progress.top { + border-top-right-radius: 5px; + border-top-left-radius: 5px; } + progressbar > trough > progress.bottom { + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; } + progressbar.osd { + min-width: 3px; + min-height: 3px; + background-color: transparent; } + progressbar.osd > trough { + border-style: none; + border-radius: 0; + background-color: transparent; + box-shadow: none; } + progressbar.osd > trough > progress { + border-style: none; + border-radius: 0; } + progressbar > trough.empty > progress { + all: unset; } + +/************* + * Level Bar * + *************/ +levelbar.horizontal trough > block { + min-height: 9px; + border-radius: 5px; } + levelbar.horizontal trough > block:dir(rtl) { + border-radius: 0 5px 5px 0; } + levelbar.horizontal trough > block:dir(ltr) { + border-radius: 5px 0 0 5px; } + levelbar.horizontal trough > block.empty, levelbar.horizontal trough > block.full { + border-radius: 5px; } + +levelbar.horizontal.discrete trough > block { + min-height: 2px; + margin: 1px; + min-width: 24px; + border-radius: 0; } + levelbar.horizontal.discrete trough > block:first-child { + border-radius: 2px 0 0 2px; } + levelbar.horizontal.discrete trough > block:last-child { + border-radius: 0 2px 2px 0; } + +levelbar.vertical trough > block { + min-width: 9px; + border-radius: 5px; } + +levelbar.vertical.discrete > trough > block { + min-width: 2px; + margin: 1px 0; + min-height: 32px; } + +levelbar > trough { + padding: 0; } + +levelbar > trough > block { + border: 1px solid; } + levelbar > trough > block.low { + border-color: #fd7d00; + background-color: #fd7d00; } + levelbar > trough > block.high, levelbar > trough > block:not(.empty) { + border-color: #2777ff; + background-color: #2777ff; } + levelbar > trough > block.full { + border-color: #308e63; + background-color: #308e63; } + levelbar > trough > block.empty { + background-color: #181a20; + border-color: #181a20; } + +/**************** + * Print dialog * +*****************/ +window.dialog.print drawing { + color: #eeeeec; + background: none; + border: none; + padding: 0; } + window.dialog.print drawing paper { + background: white; + color: #2e3436; + border: 1px solid #0d0e11; } + +window.dialog.print .dialog-action-box { + margin: 12px; } + +/********** + * Frames * + **********/ +frame, +.frame { + border: 1px solid #0d0e11; } + +frame { + border-radius: 8px; } + frame > label { + margin: 4px; } + +actionbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid #0d0e11; } + +scrolledwindow > overshoot.top { + background-image: radial-gradient(farthest-side at top, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at top, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 100% 3%, 100% 50%; + background-repeat: no-repeat; + background-position: top; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.bottom { + background-image: radial-gradient(farthest-side at bottom, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at bottom, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 100% 3%, 100% 50%; + background-repeat: no-repeat; + background-position: bottom; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.left { + background-image: radial-gradient(farthest-side at left, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at left, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 3% 100%, 50% 100%; + background-repeat: no-repeat; + background-position: left; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.right { + background-image: radial-gradient(farthest-side at right, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at right, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 3% 100%, 50% 100%; + background-repeat: no-repeat; + background-position: right; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > junction { + background: #0d0e11, linear-gradient(to bottom, transparent 1px, #272a34 1px), linear-gradient(to right, transparent 1px, #272a34 1px); } + scrolledwindow > junction:dir(rtl) { + background: #0d0e11, linear-gradient(to bottom, transparent 1px, #272a34 1px), linear-gradient(to left, transparent 1px, #272a34 1px); } + +separator { + background: #181a20; + min-width: 1px; + min-height: 1px; } + +/********* + * Lists * + *********/ +listview, +list { + color: white; + background-color: #272a34; + border-color: #0d0e11; } + listview:backdrop, + list:backdrop { + color: #d4d5d7; + background-color: #292c37; + border-color: #16171d; } + listview > row, + list > row { + padding: 2px; } + listview > row.expander, + list > row.expander { + padding: 0px; } + listview > row.expander .row-header, + list > row.expander .row-header { + padding: 2px; } + listview.horizontal row.separator, listview.separators.horizontal > row:not(.separator), + list.horizontal row.separator, + list.separators.horizontal > row:not(.separator) { + border-left: 1px solid #4f5159; } + listview:not(.horizontal) row.separator, listview.separators:not(.horizontal) > row:not(.separator), + list:not(.horizontal) row.separator, + list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: 1px solid #4f5159; } + +row { + outline: 0 solid transparent; + outline-offset: 4px; } + +row:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +row.activatable.has-open-popup, row.activatable:hover { + background-color: rgba(238, 238, 236, 0.05); } + +row.activatable:active { + box-shadow: inset 0 2px 2px -2px rgba(0, 0, 0, 0.2); } + +row.activatable:selected:active { + box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.5); } + +row.activatable.has-open-popup:selected, row.activatable:selected:hover { + background-color: #3b83fd; } + +row:selected { + outline-color: rgba(255, 255, 255, 0.3); } + +columnview > listview > row { + padding: 0; } + columnview > listview > row > cell { + padding: 8px 6px; } + columnview > listview > row > cell:not(:first-child) { + border-left: 1px solid transparent; } + +columnview.column-separators > listview > row > cell { + border-left-color: #4f5159; } + +columnview.data-table > listview > row > cell { + padding-top: 2px; + padding-bottom: 2px; } + +treeexpander { + border-spacing: 4px; } + +/******************************************************** + * Data Tables * + * treeview like tables with individual focusable cells * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 * + ********************************************************/ +columnview row:not(:selected) cell editablelabel:not(.editing):focus-within { + outline: 2px solid rgba(39, 119, 255, 0.7); } + +columnview row:not(:selected) cell editablelabel.editing:focus-within { + outline: 2px solid #2777ff; } + +columnview row:not(:selected) cell editablelabel.editing text selection { + color: #ffffff; + background-color: #2777ff; } + +/******************************************************* + * Rich Lists * + * Large list usually containing lots of widgets * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/3073 * + *******************************************************/ +.rich-list { + /* rich lists usually containing other widgets than just labels/text */ } + .rich-list > row { + padding: 8px 12px; + min-height: 32px; + /* should be tall even when only containing a label */ } + .rich-list > row > box { + border-spacing: 12px; } + +/********************* + * App Notifications * + *********************/ +.app-notification { + padding: 10px; + border-spacing: 10px; + border-radius: 0 0 5px 5px; + background-color: #303340; + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), transparent 2px); + background-clip: padding-box; } + .app-notification border { + border: none; } + +/************* + * Expanders * + *************/ +expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + expander:disabled { + color: #888a8d; } + expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + +expander-widget > box > title { + outline: 0 solid transparent; + outline-offset: 4px; } + +expander-widget:focus:focus-visible > box > title { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +expander-widget > box > title { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + border-radius: 5px; } + expander-widget > box > title:hover > expander { + color: white; } + +.navigation-sidebar:not(decoration):not(window):drop(active):focus, .navigation-sidebar:not(decoration):not(window):drop(active), +placessidebar:not(decoration):not(window):drop(active):focus, +placessidebar:not(decoration):not(window):drop(active), +stackswitcher:not(decoration):not(window):drop(active):focus, +stackswitcher:not(decoration):not(window):drop(active), +expander-widget:not(decoration):not(window):drop(active):focus, +expander-widget:not(decoration):not(window):drop(active) { + box-shadow: none; } + +/************ + * Calendar * + ***********/ +calendar { + color: white; + border: 1px solid #0d0e11; } + calendar > header { + border-bottom: 1px solid #0d0e11; } + calendar > header > button { + border: none; + box-shadow: none; + background: none; + border-radius: 0; } + calendar > header > button:backdrop { + background: none; } + calendar > grid > label.today { + box-shadow: inset 0px -2px #0d0e11; } + calendar > grid > label.today:selected { + box-shadow: none; } + calendar > grid > label:focus { + outline-color: rgba(39, 119, 255, 0.7); + outline-offset: -2px; + outline-width: 2px; + outline-style: solid; } + calendar > grid > label.day-number { + padding: 4px; } + calendar > grid > label.day-number:selected { + border-radius: 3px; } + calendar > grid > label.day-number.other-month { + color: alpha(currentColor,0.3); } + +/*********** + * Dialogs * + ***********/ +window.dialog.message .titlebar { + min-height: 20px; + background-image: none; + background-color: #23252e; + border-style: none; + border-top-left-radius: 7px; + border-top-right-radius: 7px; } + +window.dialog.message box.dialog-vbox.vertical { + border-spacing: 10px; } + +window.dialog.message label.title { + font-weight: 800; + font-size: 15pt; } + +window.dialog.message.csd.background { + border-bottom-left-radius: 9px; + border-bottom-right-radius: 9px; } + +window.dialog.message.csd .dialog-action-area button { + padding: 10px 14px; + border-radius: 0; + border-left-style: solid; + border-right-style: none; + border-bottom-style: none; } + window.dialog.message.csd .dialog-action-area button:first-child { + border-left-style: none; + border-bottom-left-radius: 7px; } + window.dialog.message.csd .dialog-action-area button:last-child { + border-bottom-right-radius: 7px; } + +filechooser .dialog-action-box { + border-top: 1px solid #0d0e11; } + +filechooser #pathbarbox { + border-bottom: 1px solid #23252e; } + +filechooserbutton > button > box { + border-spacing: 6px; } + +filechooserbutton:drop(active) { + box-shadow: none; + border-color: transparent; } + +/*********** + * Sidebar * + ***********/ +.sidebar { + background-color: #252831; } + .sidebar:not(separator):dir(ltr), .sidebar.left:not(separator), .sidebar.left:not(separator):dir(rtl) { + border-right: 1px solid #0d0e11; + border-left-style: none; } + .sidebar:not(separator):dir(rtl), .sidebar.right:not(separator) { + border-left: 1px solid #0d0e11; + border-right-style: none; } + .sidebar listview.view, + .sidebar list { + background-color: transparent; } + paned .sidebar.left, paned .sidebar.right, paned .sidebar.left:dir(rtl), paned .sidebar:dir(rtl), paned .sidebar:dir(ltr), paned .sidebar { + border-style: none; } + +stacksidebar list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: none; } + +stacksidebar row { + padding: 10px 4px; } + stacksidebar row > label { + padding-left: 6px; + padding-right: 6px; } + stacksidebar row.needs-attention > label { + background-size: 6px 6px, 0 0; } + stacksidebar row:selected { + background-color: #3b3e46; + border-radius: 5px; + color: #eeeeec; } + stacksidebar row:selected:hover:dir(ltr), stacksidebar row:selected:hover:dir(rtl) { + background-color: #2f3238; } + stacksidebar row:focus:focus-visible { + outline-width: 0; + background-color: #2777ff; + color: #ffffff; } + stacksidebar row.activatable:active, stacksidebar row.activatable:selected:active { + box-shadow: none; } + +separator.sidebar { + background-color: #0d0e11; } + +/********************** + * Navigation Sidebar * + **********************/ +.navigation-sidebar { + padding: 5px 0; } + .navigation-sidebar > separator { + margin: 5px; } + .navigation-sidebar > row { + min-height: 36px; + padding: 0 8px; + border-radius: 5px; + margin: 0 5px 2px; } + .navigation-sidebar > row:hover, .navigation-sidebar > row:focus-visible:focus-within { + background-color: #2f3238; } + .navigation-sidebar > row:selected { + background-color: #3b3e46; + color: inherit; } + .navigation-sidebar > row:selected:hover { + background-color: #2f3238; } + .navigation-sidebar > row:selected:focus-visible:focus-within { + outline-width: 0; + color: #ffffff; + background-color: #2777ff; } + .navigation-sidebar > row:selected:focus-visible:focus-within:hover { + background-color: #005af3; } + .navigation-sidebar > row:disabled { + color: #888a8d; } + +/**************** + * File chooser * + ****************/ +row image.sidebar-icon { + opacity: 0.7; } + +/* this should be more generic, only using .navigation-sidebar + https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 +*/ +placessidebar .navigation-sidebar > row { + padding: 0; } + placessidebar .navigation-sidebar > row > revealer { + padding: 0 14px; } + placessidebar .navigation-sidebar > row image.sidebar-icon:dir(ltr) { + padding-right: 8px; } + placessidebar .navigation-sidebar > row image.sidebar-icon:dir(rtl) { + padding-left: 8px; } + placessidebar .navigation-sidebar > row label.sidebar-label:dir(ltr) { + padding-right: 2px; } + placessidebar .navigation-sidebar > row label.sidebar-label:dir(rtl) { + padding-left: 2px; } + button.sidebar-button { + min-height: 26px; + min-width: 26px; + margin-top: 3px; + margin-bottom: 3px; + padding: 0; + border-radius: 100%; } + placessidebar .navigation-sidebar > row:selected:active { + box-shadow: none; } + placessidebar .navigation-sidebar > row.sidebar-placeholder-row { + padding: 0 8px; + min-height: 2px; + background-image: image(#19a187); + background-clip: content-box; } + placessidebar .navigation-sidebar > row.sidebar-new-bookmark-row { + color: #2777ff; } + placessidebar .navigation-sidebar > row:drop(active):not(:disabled) { + color: #19a187; + box-shadow: inset 0 1px #19a187, inset 0 -1px #19a187; } + placessidebar .navigation-sidebar > row:drop(active):not(:disabled):selected { + color: #ffffff; + background-color: #19a187; } + +placesview .server-list-button > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(0turn); } + +placesview .server-list-button:checked > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(-0.5turn); } + +placesview > actionbar > revealer > box > box { + border-spacing: 6px; } + +/********* + * Paned * + *********/ +paned > separator { + min-width: 1px; + min-height: 1px; + -gtk-icon-source: none; + border-style: none; + background-color: transparent; + background-image: image(#0d0e11); + background-size: 1px 1px; } + paned > separator:selected { + background-image: image(#2777ff); } + paned > separator.wide { + min-width: 5px; + min-height: 5px; + background-color: #23252e; + background-image: image(#0d0e11), image(#0d0e11); + background-size: 1px 1px, 1px 1px; } + +paned.horizontal > separator { + background-repeat: repeat-y; } + paned.horizontal > separator:dir(ltr) { + margin: 0 -8px 0 0; + padding: 0 8px 0 0; + background-position: left; } + paned.horizontal > separator:dir(rtl) { + margin: 0 0 0 -8px; + padding: 0 0 0 8px; + background-position: right; } + paned.horizontal > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-y, repeat-y; + background-position: left, right; } + +paned.vertical > separator { + margin: 0 0 -8px 0; + padding: 0 0 8px 0; + background-repeat: repeat-x; + background-position: top; } + paned.vertical > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-x, repeat-x; + background-position: bottom, top; } + +/************** + * GtkVideo * + **************/ +video { + background: black; } + video image.osd { + min-width: 64px; + min-height: 64px; + border-radius: 32px; } + +/************ + * Tooltips * + ************/ +tooltip { + padding: 6px 10px; + border-radius: 8px; + box-shadow: none; } + tooltip.background { + background-color: rgba(0, 0, 0, 0.8); + background-clip: padding-box; + border: 1px solid rgba(255, 255, 255, 0.1); + color: white; } + tooltip > box { + border-spacing: 6px; } + +/***************** + * Color Chooser * + *****************/ +colorswatch { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + colorswatch { + outline: 0 solid transparent; + outline-offset: 6px; } + colorswatch:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 4px; + outline-offset: -2px; } + colorswatch:drop(active), colorswatch { + border-style: none; } + colorswatch.top { + border-top-left-radius: 5.5px; + border-top-right-radius: 5.5px; } + colorswatch.top > overlay { + border-top-left-radius: 5px; + border-top-right-radius: 5px; } + colorswatch.bottom { + border-bottom-left-radius: 5.5px; + border-bottom-right-radius: 5.5px; } + colorswatch.bottom > overlay { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; } + colorswatch.left, colorswatch:first-child:not(.top) { + border-top-left-radius: 5.5px; + border-bottom-left-radius: 5.5px; } + colorswatch.left > overlay, colorswatch:first-child:not(.top) > overlay { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } + colorswatch.right, colorswatch:last-child:not(.bottom) { + border-top-right-radius: 5.5px; + border-bottom-right-radius: 5.5px; } + colorswatch.right > overlay, colorswatch:last-child:not(.bottom) > overlay { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; } + colorswatch.dark > overlay { + color: white; } + colorswatch.dark.activatable:hover > overlay { + border-color: #0d0e11; } + colorswatch.light > overlay { + color: black; } + colorswatch.light.activatable:hover > overlay { + border-color: #0d0e11; } + colorswatch:drop(active) { + box-shadow: none; } + colorswatch.light:drop(active) > overlay { + border-color: #19a187; + box-shadow: inset 0 0 0 2px #0d0e11, inset 0 0 0 1px #19a187; } + colorswatch.dark:drop(active) > overlay { + border-color: #19a187; + box-shadow: inset 0 0 0 2px #0d0e11, inset 0 0 0 1px #19a187; } + colorswatch > overlay { + border: 1px solid #0d0e11; } + colorswatch.activatable:hover > overlay { + box-shadow: inset 0 1px rgba(255, 255, 255, 0.4), inset 0 -1px rgba(0, 0, 0, 0.2); } + colorswatch#add-color-button { + border-radius: 5px 0 0 5px; } + colorswatch#add-color-button:only-child { + border-radius: 5px; } + colorswatch#add-color-button > overlay { + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + colorswatch#add-color-button.activatable:hover > overlay { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + colorswatch:disabled { + opacity: 0.5; } + colorswatch:disabled > overlay { + border-color: rgba(0, 0, 0, 0.6); + box-shadow: none; } + row:selected colorswatch { + box-shadow: 0 0 0 2px #ffffff; } + colorswatch#editor-color-sample { + border-radius: 4px; } + colorswatch#editor-color-sample > overlay { + border-radius: 4.5px; } + +plane { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + plane { + outline: 0 solid transparent; + outline-offset: 6px; } + plane:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: 2px; } + +colorchooser .popover.osd { + border-radius: 5px; } + +/******** + * Misc * + ********/ +.content-view { + background-color: #13151a; } + .content-view:hover { + -gtk-icon-filter: brightness(1.2); } + .content-view .tile { + margin: 2px; + background-color: black; + border-radius: 0; + padding: 0; } + .content-view .tile:active, .content-view .tile:selected { + background-color: #2777ff; } + .content-view .tile:disabled { + background-color: #242731; } + +.osd .scale-popup button.flat { + border-style: none; + border-radius: 5px; } + +.scale-popup button:hover { + background-color: rgba(238, 238, 236, 0.1); + border-radius: 5px; } + +/********************** + * Window Decorations * + *********************/ +window { + border-width: 0px; } + window.csd { + box-shadow: 0 3px 9px 1px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(13, 14, 17, 0.9); + margin: 0px; + border-radius: 8px 8px 0 0; } + window.csd:backdrop { + box-shadow: 0 3px 9px 1px transparent, 0 2px 6px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(13, 14, 17, 0.9); + transition: 200ms ease-out; } + window.csd.popup { + border-radius: 5px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(13, 14, 17, 0.8); } + window.csd.dialog.message { + border-radius: 8px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(13, 14, 17, 0.8); } + window.csd.solid-csd { + margin: 0; + padding: 0; + border: solid 1px #0d0e11; + border-radius: 0; + box-shadow: inset 0 0 0 3px #1c1e25, inset 0 1px rgba(238, 238, 236, 0.07); } + window.csd.solid-csd:backdrop { + box-shadow: inset 0 0 0 3px #23252e, inset 0 1px rgba(238, 238, 236, 0.07); } + window.maximized, window.fullscreen, window.tiled, window.tiled-top, window.tiled-left, window.tiled-right, window.tiled-bottom { + border-radius: 0; } + window.popup { + box-shadow: none; } + window.ssd { + box-shadow: 0 0 0 1px rgba(13, 14, 17, 0.9); } + +tooltip.csd { + border-radius: 5px; + box-shadow: none; } + +filechooser placessidebar.sidebar row.sidebar-row:selected, +.nautilus-window placessidebar.sidebar row.sidebar-row:selected, .view:selected:focus, .view:selected, +textview > text:selected:focus, +textview > text:selected, textview > text > selection:focus, textview > text > selection, iconview:selected:focus, iconview:selected, flowbox > flowboxchild:selected, gridview > child:selected, +entry > text > selection, modelbutton.flat:selected, spinbutton:not(.vertical) > text > selection, spinbutton.vertical > text > text > selection, spinbutton.vertical > text > selection, columnview.view:selected:focus, columnview.view:selected, +treeview.view:selected:focus, +treeview.view:selected, row:selected, calendar > grid > label.day-number:selected { + background-color: #2777ff; } + label:selected, filechooser placessidebar.sidebar row.sidebar-row:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected, .view:selected:focus, .view:selected, + textview > text:selected:focus, + textview > text:selected, textview > text > selection:focus, textview > text > selection, iconview:selected:focus, iconview:selected, flowbox > flowboxchild:selected, gridview > child:selected, + entry > text > selection, modelbutton.flat:selected, spinbutton:not(.vertical) > text > selection, spinbutton.vertical > text > text > selection, spinbutton.vertical > text > selection, columnview.view:selected:focus, columnview.view:selected, + treeview.view:selected:focus, + treeview.view:selected, row:selected, calendar > grid > label.day-number:selected { + color: #ffffff; } + label:disabled > selection, label:disabled:selected, filechooser placessidebar.sidebar row.sidebar-row:disabled:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:disabled:selected, .view:disabled:selected, + textview > text:disabled:selected:focus, + textview > text:disabled:selected, textview > text > selection:disabled, iconview:disabled:selected:focus, iconview:disabled:selected, flowbox > flowboxchild:disabled:selected, gridview > child:disabled:selected, + entry > text > selection:disabled, modelbutton.flat:disabled:selected, spinbutton:not(.vertical) > text > selection:disabled, spinbutton.vertical > text > text > selection:disabled, spinbutton.vertical > text > selection:disabled, columnview.view:disabled:selected, + treeview.view:disabled:selected, row:disabled:selected, calendar > grid > label.day-number:disabled:selected { + color: #93bbff; } + +.monospace { + font-family: monospace; } + +/********************** + * Touch Copy & Paste * + *********************/ +cursor-handle { + background-color: transparent; + background-image: none; + box-shadow: none; + border-style: none; + min-width: 20px; + min-height: 24px; + padding-left: 20px; + padding-right: 20px; + padding-top: 24px; + padding-bottom: 24px; } + cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-dark.png"), url("assets/text-select-start-dark@2.png")); } + cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-dark.png"), url("assets/text-select-end-dark@2.png")); } + cursor-handle.insertion-cursor:dir(ltr), cursor-handle.insertion-cursor:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-dark.png"), url("assets/slider-horz-scale-has-marks-above-dark@2.png")); } + cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover-dark.png"), url("assets/text-select-start-hover-dark@2.png")); } + cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover-dark.png"), url("assets/text-select-end-hover-dark@2.png")); } + cursor-handle.insertion-cursor:hover:dir(ltr), cursor-handle.insertion-cursor:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover-dark.png"), url("assets/slider-horz-scale-has-marks-above-hover-dark@2.png")); } + cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active-dark.png"), url("assets/text-select-start-active-dark@2.png")); } + cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active-dark.png"), url("assets/text-select-end-active-dark@2.png")); } + cursor-handle.insertion-cursor:active:dir(ltr), cursor-handle.insertion-cursor:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active-dark.png"), url("assets/slider-horz-scale-has-marks-above-active-dark@2.png")); } + +shortcuts-section { + margin: 20px; } + +.shortcuts-search-results { + margin: 20px; + border-spacing: 24px; } + +shortcut { + border-spacing: 6px; } + +shortcut > .keycap { + min-width: 20px; + min-height: 25px; + margin-top: 2px; + padding-bottom: 3px; + padding-left: 6px; + padding-right: 6px; + color: #eeeeec; + background-color: #272a34; + border: 1px solid; + border-color: #0d0e11; + border-radius: 5px; + box-shadow: inset 0 -3px #17191f; + font-size: smaller; } + +:not(decoration):not(window):drop(active):focus, +:not(decoration):not(window):drop(active) { + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; + caret-color: #19a187; } + +stackswitcher > button.text-button { + min-width: 100px; } + +stackswitcher.circular { + border-spacing: 12px; } + stackswitcher.circular > button.circular, + stackswitcher.circular > button.text-button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; } + +/************* + * App Icons * + *************/ +/* Outline for low res icons */ +.lowres-icon { + -gtk-icon-shadow: 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1); } + +/* Drapshadow for large icons */ +.icon-dropshadow { + -gtk-icon-shadow: 0 1px 12px rgba(0, 0, 0, 0.05), 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1); } + +/********* + * Emoji * + ********/ +popover.emoji-picker > contents { + padding: 0; } + +.emoji-searchbar { + padding: 6px; + border-spacing: 6px; + border-bottom: 1px solid #0d0e11; } + +.emoji-toolbar { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid #0d0e11; } + +button.emoji-section { + border-color: transparent; + border-width: 3px; + border-style: none none solid; + border-radius: 0; + padding: 3px 0 0; + min-width: 32px; + min-height: 28px; + /* reset props inherited from the button style */ + background: none; + box-shadow: none; + text-shadow: none; } + button.emoji-section:hover { + border-color: rgba(238, 238, 236, 0.1); } + button.emoji-section:checked { + border-color: #2777ff; } + +popover.emoji-picker emoji { + font-size: x-large; + padding: 6px; + border-radius: 6px; } + popover.emoji-picker emoji:focus, popover.emoji-picker emoji:hover { + background: #2777ff; } + +emoji-completion-row > box { + border-spacing: 10px; + padding: 2px 10px; } + +emoji-completion-row:focus, +emoji-completion-row:hover { + background-color: #2777ff; + color: #ffffff; } + +emoji-completion-row emoji:focus, +emoji-completion-row emoji:hover { + background-color: #3b3e46; } + +popover.entry-completion > contents { + padding: 0; } + +statusbar { + padding: 6px 10px 6px 10px; } + +/* Nautilus */ +@define-color disk_space_unknown #383c4a; +@define-color disk_space_used #2777ff; +@define-color disk_space_free white; +filechooser placessidebar.sidebar, +.nautilus-window placessidebar.sidebar { + box-shadow: inset 0 8px 4px -8px rgba(0, 0, 0, 0.3); } + filechooser placessidebar.sidebar:dir(ltr), + .nautilus-window placessidebar.sidebar:dir(ltr) { + background-image: linear-gradient(to right, #1a1c23 41px, #23252e 0); } + filechooser placessidebar.sidebar:dir(rtl), + .nautilus-window placessidebar.sidebar:dir(rtl) { + background-image: linear-gradient(to left, #1a1c23 41px, #23252e 0); } + filechooser placessidebar.sidebar:backdrop, + .nautilus-window placessidebar.sidebar:backdrop { + box-shadow: none; } + filechooser placessidebar.sidebar row.sidebar-row:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected { + margin-left: 6px; + margin-right: 6px; + border-radius: 5px; + box-shadow: 0 1px 4px rgba(39, 119, 255, 0.5); + transition: box-shadow 200ms ease-out; } + filechooser placessidebar.sidebar row.sidebar-row:selected:backdrop, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:backdrop { + box-shadow: none; } + filechooser placessidebar.sidebar row.sidebar-row:selected:dir(ltr), + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:dir(ltr) { + background-image: linear-gradient(to right, #005af3 35px, transparent 0); } + filechooser placessidebar.sidebar row.sidebar-row:selected:dir(rtl), + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:dir(rtl) { + background-image: linear-gradient(to left, #005af3 35px, transparent 0); } + filechooser placessidebar.sidebar row.sidebar-row:selected revealer, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer { + padding-left: 8px; + padding-right: 8px; } + filechooser placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-icon, filechooser placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-label, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-icon, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-label { + color: #ffffff; } + filechooser placessidebar.sidebar row.sidebar-row .sidebar-icon, + .nautilus-window placessidebar.sidebar row.sidebar-row .sidebar-icon { + padding-right: 20px; } + +.nautilus-window .floating-bar { + color: #ffffff; + background-color: #2777ff; + border-color: #00348d; + margin: 10px; + box-shadow: 0 1px 4px rgba(39, 119, 255, 0.5); + transition: background-color 200ms ease-out; } + .nautilus-window .floating-bar:backdrop { + color: inherit; + box-shadow: none; + border-color: #0d0e11; } + .nautilus-window .floating-bar.bottom.left, .nautilus-window .floating-bar.bottom.right { + border-radius: 5px; + border-style: solid; } + +.path-bar-box:backdrop { + border-color: #16171d; } + +/* XFCE4 PANEL */ +.xfce4-panel.background { + background: rgba(35, 37, 46, 0.8); } + +.xfce4-panel button { + border: 0; + border-radius: 0; + box-shadow: none; + text-shadow: none; + background: transparent; + color: #eeeeec; } + .xfce4-panel button:hover { + background: rgba(0, 0, 0, 0.2); } + .xfce4-panel button:not(#whiskermenu-button):checked, .xfce4-panel button:not(#whiskermenu-button):active { + box-shadow: inset 0 4px 0 #2777ff; + background: rgba(0, 0, 0, 0.2); } + +.xfce4-panel.vertical button:not(#whiskermenu-button):checked, .xfce4-panel.vertical button:not(#whiskermenu-button):active { + box-shadow: inset 4px 0 0 #2777ff; } + +/* XFCE4 NOTIFICATIONS */ +#XfceNotifyWindow { + background-color: #272a34; } + +/* Whisker menu */ +#whiskermenu-window entry { + border-radius: 100px; + border: 2px solid #2777ff; + box-shadow: none; } + +#whiskermenu-window button { + transition-duration: 0s; } + #whiskermenu-window button:hover { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border-color: transparent; + border-bottom-color: #1c1e25; } + #whiskermenu-window button:checked { + border-color: transparent; } + +#whiskermenu-window scrolledwindow.frame { + border: 0; + border-radius: 8px; + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3); + background: #1c1e25; + padding: 7px 10px; + margin: 0 5px; } + #whiskermenu-window scrolledwindow.frame treeview { + background: transparent; + border-radius: 5px; } + #whiskermenu-window scrolledwindow.frame treeview:hover, #whiskermenu-window scrolledwindow.frame treeview:active, #whiskermenu-window scrolledwindow.frame treeview:selected { + background-color: rgba(0, 0, 0, 0.27); + color: inherit; } + +/* XFCE4 panel action buttons */ +#XfcePanelWindowWrapper > widget > box > #xfce-panel-button > image { + -gtk-icon-style: symbolic; + -gtk-icon-transform: scale(0.7); } + +/* XFCE4 workspace switcher */ +wnck-pager { + background-color: #3d4251; } + wnck-pager:selected { + background-color: black; } + wnck-pager:hover { + background-color: black; } + +/* LightDM */ +.lightdm-gtk-greeter #panel_window { + background: rgba(35, 37, 46, 0.8); + color: #eeeeec; + text-shadow: none; + -gtk-icon-shadow: none; } + +.lightdm-gtk-greeter #login_window { + border: 0; + background-color: rgba(35, 37, 46, 0.8); + border-radius: 5px; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.15); } + .lightdm-gtk-greeter #login_window entry { + background: rgba(35, 37, 46, 0.4); + border-color: rgba(35, 37, 46, 0.3); + min-height: 32px; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.05), 0 1px 2px rgba(0, 0, 0, 0.4); } + .lightdm-gtk-greeter #login_window entry image { + margin: 0; } + .lightdm-gtk-greeter #login_window #buttonbox_frame { + padding-top: 20px; + background: #23252e; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 0 0 5px 5px; + box-shadow: inset 0 -4px rgba(0, 0, 0, 0.2), inset 0 1px 2px rgba(0, 0, 0, 0.27); } + .lightdm-gtk-greeter #login_window #buttonbox_frame button { + border: 0; + color: white; + text-shadow: none; } + .lightdm-gtk-greeter #login_window #buttonbox_frame #cancel_button { + background: rgba(0, 0, 0, 0.27); + box-shadow: none; + color: #eeeeec; } + .lightdm-gtk-greeter #login_window #buttonbox_frame #login_button { + background: #2777ff; + box-shadow: inset 0 -2px rgba(0, 0, 0, 0.2); } + +/* Thunar */ +.thunar .warning { + opacity: 0; + font-size: 0; + margin: -10px 0; } + +/* GTK NAMED COLORS + ---------------- + use responsibly! */ +/* +widget text/foreground color */ +@define-color theme_fg_color #eeeeec; +/* +text color for entries, views and content in general */ +@define-color theme_text_color white; +/* +widget base background color */ +@define-color theme_bg_color #23252e; +/* +text widgets and the like base background color */ +@define-color theme_base_color #272a34; +/* +base background color of selections */ +@define-color theme_selected_bg_color #2777ff; +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color #ffffff; +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color #242731; +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color #888a8d; +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color #272a34; +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color #888a8d; +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color white; +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #23252e; +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #292c37; +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color #2777ff; +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color #ffffff; +/* +insensitive color on backdrop windows*/ +@define-color unfocused_insensitive_color #43495a; +/* +widgets main borders color */ +@define-color borders #0d0e11; +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #16171d; +/* +these are pretty self explicative */ +@define-color warning_color #fd7d00; +@define-color error_color #bf1717; +@define-color success_color #308e63; +/* +these colors are exported for the window manager and shouldn't be used in applications, +read if you used those and something break with a version upgrade you're on your own... */ +@define-color wm_title shade(#eeeeec, 1.8); +@define-color wm_unfocused_title #888a8d; +@define-color wm_highlight rgba(0, 0, 0, 0); +@define-color wm_borders_edge rgba(238, 238, 236, 0.07); +@define-color wm_bg_a shade(#23252e, 1.2); +@define-color wm_bg_b #23252e; +@define-color wm_shadow alpha(black, 0.35); +@define-color wm_border alpha(black, 0.18); +@define-color wm_button_hover_color_a shade(#23252e, 1.3); +@define-color wm_button_hover_color_b #23252e; +@define-color wm_button_active_color_a shade(#23252e, 0.85); +@define-color wm_button_active_color_b shade(#23252e, 0.89); +@define-color wm_button_active_color_c shade(#23252e, 0.9); +/* content view background such as thumbnails view in Photos or Boxes */ +@define-color content_view_bg #272a34; +/* Very contrasty background for text views (@theme_text_color foreground) */ +@define-color text_view_bg #1a1c23; +.gedit-document-panel { + background-color: @sidebar_bg; +} + +.gedit-document-panel:backdrop { + color: #b0b2b2; +} + +.gedit-document-panel row:selected:backdrop { + background-color: #8b8e8f; +} + +.gedit-document-panel-group-row, +.gedit-document-panel-group-row:hover { + border-top: 1px solid alpha(currentColor, 0.3); +} + +.gedit-document-panel-group-row:first-child, +.gedit-document-panel-group-row:first-child:hover { + border-top: 0px; +} + +/* Try to look as the notebook tab close button */ +.gedit-document-panel row button.flat { + padding: 0; + margin-top: 8px; + margin-bottom: 8px; + min-width: 18px; + min-height: 18px; + color: alpha(currentColor,0.3); +} + +.gedit-document-panel row:hover button.flat { + color: alpha(currentColor,0.5); +} + +.gedit-document-panel row button.flat:hover { + color: @theme_fg_color; +} + +statusbar { + border-top: 1px solid @borders; +} + +.gedit-search-slider { + background-color: @theme_base_color; + padding: 6px; + border-color: @borders; + border-radius: 0 0 3px 3px; + border-width: 0 1px 1px 1px; + border-style: solid; +} + +.gedit-search-entry-occurrences-tag { + background-color: @theme_base_color; + background-image: none; + color: shade (@theme_unfocused_fg_color, 0.8); + border: 0px; + margin: 2px; + padding: 2px; +} +.nautilus-window, +.nautilus-window notebook, +.nautilus-window notebook > stack { + background: @theme_base_color; +} + +.nautilus-canvas-item { + border-radius: 5px; +} + +.nautilus-canvas-item.dim-label, +.nautilus-list-dim-label { + color: mix (@theme_fg_color, @theme_bg_color, 0.50); +} + +.nautilus-canvas-item.dim-label:selected, +.nautilus-list-dim-label:selected { + color: mix (@theme_selected_fg_color, @theme_selected_bg_color, 0.20); +} + +/* Toolbar */ + +/* Here we use the .button background-image colors from Adwaita, but ligthen them, + * since is not possible to use lighten () in common css. */ +@keyframes needs_attention_keyframes { + 0% {background-image: linear-gradient(to bottom, #fafafa, #ededed 40%, #e0e0e0); border-color: @borders; } + /* can't do animation-direction, so holding the color on two keyframes */ + 30% {background-image: linear-gradient(to bottom, @theme_base_color, @theme_base_color, @theme_base_color); border-color: @theme_fg_color; } + 90% {background-image: linear-gradient(to bottom, @theme_base_color, @theme_base_color, @theme_base_color); border-color: @theme_fg_color; } + 100% {background-image: linear-gradient(to bottom, #fafafa, #ededed 40%, #e0e0e0); border-color: @borders; } +} + +.nautilus-operations-button-needs-attention { + animation: needs_attention_keyframes 2s ease-in-out; +} +.nautilus-operations-button-needs-attention-multiple { + animation: needs_attention_keyframes 3s ease-in-out; + animation-iteration-count: 3; +} + +.disclosure-button { + padding-left: 4px; + padding-right: 4px; +} + +/* Path bar */ + +.path-bar-box { + border-radius: 5px; + border: 1px @borders solid; + background-color: @theme_bg_color; + padding-right: 6px; +} + +.nautilus-path-bar button { + margin: 0px; +} + +.nautilus-path-bar button:first-child { + border-width: 0px 1px 0px 0px; + border-radius: 3.5px 0px 0px 3.5px; +} + +.nautilus-path-bar button:not(:first-child) { + border-width: 0px 1px 0px 1px; + border-radius: 0px 0px 0px 0px; +} + +.nautilus-path-bar button:not(:checked) image { opacity: 0.8; } /* dim the icon when not checked */ + +/* Make the tags fit into the box */ +entry.search > * { + margin: 5px; +} + +/* Sidebar */ + +.nautilus-window .sidebar-row:selected { + background: mix(@theme_bg_color, @theme_fg_color, 0.07); +} + +.nautilus-window .sidebar-row:selected, +.nautilus-window .sidebar-row:selected image, +.nautilus-window .sidebar-row:selected label { + color: mix(@theme_fg_color, @theme_text_color, 0.5); +} + +.nautilus-window .sidebar-row:selected:backdrop { + background: mix(@theme_unfocused_bg_color, @theme_unfocused_fg_color, 0.07); +} + +.nautilus-window .sidebar-row:selected:backdrop, +.nautilus-window .sidebar-row:selected:backdrop label { + color: mix(@theme_unfocused_fg_color, @theme_unfocused_text_color, 0.15); +} + +/* Floating status bar */ +.floating-bar { + padding: 1px; + background-color: @theme_base_color; + border-width: 1px; + border-style: solid solid none; + border-color: @borders; + border-radius: 3px 3px 0 0; +} + +.floating-bar.bottom.left { /* axes left border and border radius */ + border-left-style: none; + border-top-left-radius: 0; +} +.floating-bar.bottom.right { /* axes right border and border radius */ + border-right-style: none; + border-top-right-radius: 0; +} + +.floating-bar:backdrop { + background-color: @theme_unfocused_base_color; + border-color: @unfocused_borders; +} + +.floating-bar button { + padding: 0px; +} + +@define-color disk_space_unknown #888a85; +@define-color disk_space_used #729fcf; +@define-color disk_space_free #eeeeec; + +.disk-space-display { + border-style: solid; + border-width: 2px; +} + +.disk-space-display.unknown { + background-color: @disk_space_unknown; + border-color: shade(@disk_space_unknown, 0.7); + color: @disk_space_unknown; +} +.disk-space-display.unknown.border { + color: shade(@disk_space_unknown, 0.7); +} + +.disk-space-display.used { + background-color: @disk_space_used; + border-color: shade(@disk_space_used, 0.7); + color: @disk_space_used; +} +.disk-space-display.used.border { + color: shade(@disk_space_used, 0.7); +} + +.disk-space-display.free { + background-color: @disk_space_free; + border-color: shade(@disk_space_free, 0.7); + color: @disk_space_free; +} +.disk-space-display.free.border { + color: shade(@disk_space_free, 0.7); +} + +/* View */ +.nautilus-list-view .view { + border-bottom: 1px solid @theme_bg_color; +} + +.search-information { + background-color: @theme_selected_bg_color; + color:white; + padding:2px; +} + +/* Hide superfluous treeview drop target indication */ +.nautilus-list-view .view.dnd { + border-style: none; +} + +@define-color conflict_bg #fef6b6; + +.conflict-row { + background: @conflict_bg; + color: black; +} + +.conflict-row:hover { + background-color: shade(@conflict_bg, 0.9); +} + +.conflict-row:selected { + background: @theme_selected_bg_color; + color: @theme_selected_fg_color; +} + +/* Icon view */ +flowboxchild:selected { + background-color:transparent; +} + +.icon-background { + background-color:black; + border-color:#4a90d9; + border-style:solid; + border-width:0px; +} + +flowboxchild > .icon-item-background { + padding:4px; +} +flowboxchild:selected > .icon-item-background { + padding:4px; + background-color:#4a90d9; + border-color:#4a90d9; + border-style:solid; + border-width:0px; + border-radius:4px 4px 4px 4px; +} diff --git a/share/themes/Kali-Light/gtk-4.0/gtk-dark.css b/share/themes/Kali-Light/gtk-4.0/gtk-dark.css new file mode 100644 index 00000000..d4aa69c8 --- /dev/null +++ b/share/themes/Kali-Light/gtk-4.0/gtk-dark.css @@ -0,0 +1,4315 @@ +/*************************** + * Check and Radio buttons * + ***************************/ +/*************** + * Base States * + ***************/ +.background { + color: #eeeeec; + background-color: #23252e; } + .background:backdrop { + text-shadow: none; + -gtk-icon-shadow: none; } + +dnd { + color: #eeeeec; } + +.normal-icons { + -gtk-icon-size: 16px; } + +.large-icons { + -gtk-icon-size: 32px; } + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Every time a wildcard is used a kitten dies, painfully. +*/ +spinner:disabled, +arrow:disabled, +scrollbar:disabled, +check:disabled, +radio:disabled, +treeview.expander:disabled { + -gtk-icon-filter: opacity(0.5); } + +.view, iconview, +textview > text { + color: white; + background-color: #272a34; } + .view:disabled, iconview:disabled, + textview > text:disabled { + color: #888a8d; + background-color: #242731; } + .view:selected:focus, iconview:selected:focus, .view:selected, iconview:selected, + textview > text:selected:focus, + textview > text:selected { + border-radius: 3px; } + +textview:drop(active) { + caret-color: #19a187; } + +textview > border { + background-color: #252831; } + +iconview { + outline: 0 solid transparent; + outline-offset: 4px; } + +iconview:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +iconview:drop(active) { + box-shadow: none; } + +iconview > dndtarget:drop(active) { + border-style: solid; + border-width: 1px; + border-color: #00348d; } + +rubberband, .content-view > rubberband, columnview.view > rubberband, +treeview.view > rubberband, gridview > rubberband, flowbox > rubberband { + border: 1px solid #005af3; + background-color: rgba(0, 90, 243, 0.2); } + +flowbox > flowboxchild { + padding: 3px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + flowbox > flowboxchild { + outline: 0 solid transparent; + outline-offset: 4px; } + flowbox > flowboxchild:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + flowbox > flowboxchild:selected { + outline-color: rgba(255, 255, 255, 0.3); } + +gridview > child { + padding: 3px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + gridview > child { + outline: 0 solid transparent; + outline-offset: 4px; } + gridview > child:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + gridview > child:selected { + outline-color: rgba(255, 255, 255, 0.3); } + gridview > child box { + border-spacing: 8px; + margin: 12px; } + +coverflow cover { + color: white; + background-color: #272a34; + border: 1px solid black; } + +label { + outline: 0 solid transparent; + outline-offset: 4px; } + +label:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +label > selection { + background-color: #2777ff; + color: #ffffff; } + +label:disabled { + color: #888a8d; } + button label:disabled { + color: inherit; } + +label.error { + color: #bf1717; } + label.error:disabled { + color: rgba(191, 23, 23, 0.5); } + +.dim-label, .titlebar:not(headerbar) .subtitle, +headerbar .subtitle, spinbutton.vertical > text > text > placeholder, spinbutton:not(.vertical) > text > placeholder, +entry > text > placeholder, label.separator { + opacity: 0.55; + text-shadow: none; } + +window.assistant .sidebar { + padding: 5px; + border-top: 1px solid #0d0e11; } + +window.assistant.csd .sidebar { + border-top-style: none; } + +window.assistant .sidebar > label { + padding: 6px 12px; } + +window.assistant .sidebar > label.highlight { + background-color: #3b3e46; + border-radius: 5px; } + +window.aboutdialog image.large-icons { + -gtk-icon-size: 128px; } + +.osd .scale-popup, .app-notification, .osd popover.background > arrow, +.osd popover.background > contents, popover.background.touch-selection > arrow, +popover.background.touch-selection > contents, popover.background.magnifier > arrow, +popover.background.magnifier > contents, +.osd { + color: white; + border: none; + background-color: #303340; + background-clip: padding-box; + -gtk-icon-shadow: 0 1px black; } + +/********************* + * Spinner Animation * + *********************/ +@keyframes spin { + to { + transform: rotate(1turn); } } + +spinner { + background: none; + opacity: 0; + -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); } + spinner:checked { + opacity: 1; + animation: spin 1s linear infinite; } + spinner:checked:disabled { + opacity: 0.5; } + +/********************** + * General Typography * + **********************/ +.large-title { + font-weight: 300; + font-size: 24pt; } + +.title-1 { + font-weight: 800; + font-size: 20pt; } + +.title-2 { + font-weight: 800; + font-size: 15pt; } + +.title-3 { + font-weight: 700; + font-size: 15pt; } + +.title-4 { + font-weight: 700; + font-size: 13pt; } + +.heading { + font-weight: 700; + font-size: 11pt; } + +.body { + font-weight: 400; + font-size: 11pt; } + +.caption-heading { + font-weight: 700; + font-size: 9pt; } + +.caption { + font-weight: 400; + font-size: 9pt; } + +/**************** + * Text Entries * + ****************/ +spinbutton.vertical > text, spinbutton:not(.vertical), +entry { + min-height: 32px; + padding-left: 8px; + padding-right: 8px; + border: 1px solid; + border-radius: 5px; + border-spacing: 6px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: white; + border-color: #0d0e11; + background-color: #272a34; } + spinbutton.vertical > text, spinbutton:not(.vertical), + entry { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text:focus-within, spinbutton:focus-within:not(.vertical), + entry:focus-within { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text > image.left, spinbutton:not(.vertical) > image.left, + entry > image.left { + margin-right: 6px; } + spinbutton.vertical > text > image.right, spinbutton:not(.vertical) > image.right, + entry > image.right { + margin-left: 6px; } + spinbutton.vertical > text > text > block-cursor, spinbutton:not(.vertical) > text > block-cursor, + entry > text > block-cursor { + color: #272a34; + background-color: white; } + spinbutton.vertical > text.flat, spinbutton.flat:not(.vertical), + entry.flat:focus-within, + entry.flat:backdrop, + entry.flat:disabled, + entry.flat { + min-height: 0; + padding: 2px; + background-color: transparent; + border-color: transparent; + border-radius: 0; } + spinbutton.vertical > text:focus-within > placeholder, spinbutton:focus-within:not(.vertical) > placeholder, + entry:focus-within > placeholder { + opacity: 0; + /* We hide placeholders on focus */ } + spinbutton.vertical > text:disabled, spinbutton:disabled:not(.vertical), + entry:disabled { + color: #888a8d; + border-color: #0d0e11; + background-color: #242731; } + spinbutton.vertical > text.error, spinbutton.error:not(.vertical), + entry.error { + color: #bf1717; } + spinbutton.vertical > text.error, spinbutton.error:not(.vertical), + entry.error { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text.error:focus-within, spinbutton.error:focus-within:not(.vertical), + entry.error:focus-within { + outline-color: rgba(191, 23, 23, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text.error > selection, spinbutton.error:not(.vertical) > selection, + entry.error > selection { + background-color: #bf1717; } + spinbutton.vertical > text.warning, spinbutton.warning:not(.vertical), + entry.warning { + color: #fd7d00; } + spinbutton.vertical > text.warning, spinbutton.warning:not(.vertical), + entry.warning { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text.warning:focus-within, spinbutton.warning:focus-within:not(.vertical), + entry.warning:focus-within { + outline-color: rgba(253, 125, 0, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text.warning > selection, spinbutton.warning:not(.vertical) > selection, + entry.warning > selection { + background-color: #fd7d00; } + spinbutton.vertical > text > image, spinbutton:not(.vertical) > image, + entry > image { + color: #c6c7c7; } + spinbutton.vertical > text > image:hover, spinbutton:not(.vertical) > image:hover, + entry > image:hover { + color: #eeeeec; } + spinbutton.vertical > text > image:active, spinbutton:not(.vertical) > image:active, + entry > image:active { + color: #2777ff; } + spinbutton.vertical > text.password image.caps-lock-indicator, spinbutton.password:not(.vertical) image.caps-lock-indicator, + entry.password image.caps-lock-indicator { + color: #75777c; } + spinbutton.vertical > text:drop(active), spinbutton:drop(active):not(.vertical), + entry:drop(active):focus-within, + entry:drop(active) { + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; } + .osd spinbutton.vertical > text, .osd spinbutton:not(.vertical), .osd entry { + color: white; + border-color: black; + background-color: rgba(0, 0, 0, 0.5); + background-clip: padding-box; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .osd spinbutton.vertical > text:focus-within, .osd spinbutton:focus-within:not(.vertical), .osd entry:focus-within { + color: white; + border-color: #2777ff; + background-color: rgba(0, 0, 0, 0.5); + background-clip: padding-box; } + .osd spinbutton.vertical > text:disabled, .osd spinbutton:disabled:not(.vertical), .osd entry:disabled { + color: #97999f; + border-color: black; + background-color: rgba(68, 72, 83, 0.5); + background-clip: padding-box; } + +spinbutton.vertical > text > progress, spinbutton:not(.vertical) > progress, +entry > progress { + margin-bottom: 2px; } + +spinbutton.vertical > text progress > trough > progress, spinbutton:not(.vertical) progress > trough > progress, +entry progress > trough > progress { + background-color: transparent; + background-image: none; + border-radius: 0; + border-width: 0 0 2px; + border-color: #2777ff; + border-style: solid; + box-shadow: none; } + +spinbutton.vertical.linked:not(.vertical) > text:drop(active) + text, spinbutton.vertical.linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + text, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + spinbutton:not(.vertical), spinbutton.vertical.linked:not(.vertical) > text:drop(active) + button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + menubutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + menubutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + dropdown > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + dropdown > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + colorbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + colorbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + fontbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + fontbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + filechooserbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + filechooserbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + combobox > box > button.combo, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + entry, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + entry, .linked:not(.vertical) > entry:drop(active) + button, .linked:not(.vertical) > entry:drop(active) + menubutton > button, .linked:not(.vertical) > entry:drop(active) + dropdown > button, .linked:not(.vertical) > entry:drop(active) + colorbutton > button, .linked:not(.vertical) > entry:drop(active) + fontbutton > button, .linked:not(.vertical) > entry:drop(active) + filechooserbutton > button, .linked:not(.vertical) > entry:drop(active) + combobox > box > button.combo, spinbutton.vertical.linked:not(.vertical) > entry:drop(active) + text, .linked:not(.vertical) > entry:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > entry:drop(active) + entry { + border-left-color: #19a187; } + +spinbutton.vertical.linked > text:not(:disabled) + entry:not(:disabled), .linked.vertical > spinbutton:not(:disabled):not(.vertical) + entry:not(:disabled), spinbutton.vertical.linked > text:not(:disabled) + text:not(:disabled), spinbutton.vertical.linked > spinbutton:not(:disabled):not(.vertical) + text:not(:disabled), spinbutton.vertical.linked > text:not(:disabled) + spinbutton:not(:disabled):not(.vertical), .linked.vertical > spinbutton:not(:disabled):not(.vertical) + spinbutton:not(:disabled):not(.vertical), .linked.vertical > entry:not(:disabled) + entry:not(:disabled), spinbutton.vertical.linked > entry:not(:disabled) + text:not(:disabled), .linked.vertical > entry:not(:disabled) + spinbutton:not(:disabled):not(.vertical) { + border-top-color: #1f222a; } + +spinbutton.vertical.linked > text:disabled + text:disabled, spinbutton.vertical.linked > spinbutton:disabled:not(.vertical) + text:disabled, spinbutton.vertical.linked > text:disabled + spinbutton:disabled:not(.vertical), .linked.vertical > spinbutton:disabled:not(.vertical) + spinbutton:disabled:not(.vertical), spinbutton.vertical.linked > text:disabled + entry:disabled, .linked.vertical > spinbutton:disabled:not(.vertical) + entry:disabled, spinbutton.vertical.linked > entry:disabled + text:disabled, .linked.vertical > entry:disabled + spinbutton:disabled:not(.vertical), .linked.vertical > entry:disabled + entry:disabled { + border-top-color: #1f222a; } + +spinbutton.vertical.linked > text + text:drop(active):not(:only-child), spinbutton.vertical.linked > spinbutton:not(.vertical) + text:drop(active):not(:only-child), spinbutton.vertical.linked > text + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + spinbutton:drop(active):not(:only-child):not(.vertical), +spinbutton.vertical.linked > text + entry:drop(active):not(:only-child), +.linked.vertical > spinbutton:not(.vertical) + entry:drop(active):not(:only-child), spinbutton.vertical.linked > entry + text:drop(active):not(:only-child), .linked.vertical > entry + spinbutton:drop(active):not(:only-child):not(.vertical), +.linked.vertical > entry + entry:drop(active):not(:only-child) { + border-top-color: #19a187; } + +spinbutton.vertical.linked > text:drop(active):not(:only-child) + text, spinbutton.vertical.linked > spinbutton:drop(active):not(:only-child):not(.vertical) + text, spinbutton.vertical.linked > text:drop(active):not(:only-child) + spinbutton:not(.vertical), .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + spinbutton:not(.vertical), +spinbutton.vertical.linked > text:drop(active):not(:only-child) + entry, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + entry, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + menubutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + menubutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + dropdown > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + dropdown > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + colorbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + colorbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + fontbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + fontbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + filechooserbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + filechooserbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + combobox > box > button.combo, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + combobox > box > button.combo, spinbutton.vertical.linked > entry:drop(active):not(:only-child) + text, .linked.vertical > entry:drop(active):not(:only-child) + spinbutton:not(.vertical), +.linked.vertical > entry:drop(active):not(:only-child) + entry, +.linked.vertical > entry:drop(active):not(:only-child) + button, +.linked.vertical > entry:drop(active):not(:only-child) + menubutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + dropdown > button, +.linked.vertical > entry:drop(active):not(:only-child) + colorbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + fontbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + filechooserbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + combobox > box > button.combo { + border-top-color: #19a187; } + +spinbutton.vertical > text.error, spinbutton.error:not(.vertical), +entry.error { + color: #bf1717; } + +treeview entry:focus-within:dir(rtl), treeview entry:focus-within:dir(ltr) { + background-color: #272a34; + transition-property: color, background; } + +treeview entry.flat, treeview entry { + border-radius: 0; + background-image: none; + background-color: #272a34; } + treeview entry.flat:focus-within, treeview entry:focus-within { + border-color: #2777ff; } + +/******************* + * Editable Labels * + *******************/ +editablelabel > stack > text { + color: white; + border-color: #0d0e11; + background-color: #272a34; } + +/*********** + * Buttons * + ***********/ +@keyframes needs_attention { + from { + background-image: radial-gradient(farthest-side, #74a7ff 0%, rgba(116, 167, 255, 0) 0%); } + to { + background-image: radial-gradient(farthest-side, #74a7ff 95%, rgba(116, 167, 255, 0)); } } + +notebook > header > tabs > arrow, windowcontrols button, +button { + min-height: 24px; + min-width: 16px; + padding: 4px 9px; + border: 1px solid; + border-radius: 5px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + notebook > header > tabs > arrow, windowcontrols button, + button { + outline: 0 solid transparent; + outline-offset: 4px; } + notebook > header > tabs > arrow:focus:focus-visible, + button:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + notebook > header > tabs > arrow:hover, + button:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); + -gtk-icon-filter: brightness(1.2); } + notebook > header > tabs > arrow:active, notebook > header > tabs > arrow:checked, + button:active, + button:checked { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#13151a); + box-shadow: none; + transition-duration: 50ms; } + notebook > header > tabs > arrow:checked:hover, + button:checked:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#0d0e11); + box-shadow: none; } + notebook > header > tabs > arrow:checked:active, + button:checked:active { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#08090b); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop, + button.flat:backdrop, + button:backdrop { + color: #888a8d; + border-color: #16171d; + background-image: image(#23252e); + box-shadow: none; + transition: 200ms ease-out; + -gtk-icon-filter: none; } + notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, + button.flat:backdrop:active, + button.flat:backdrop:checked, + button:backdrop:active, + button:backdrop:checked { + color: #888a8d; + border-color: #16171d; + background-image: image(#1e2128); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop:disabled, + button.flat:backdrop:disabled, + button:backdrop:disabled { + color: #43495a; + border-color: #16171d; + background-image: image(#242731); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, + button.flat:backdrop:disabled:active, + button.flat:backdrop:disabled:checked, + button:backdrop:disabled:active, + button:backdrop:disabled:checked { + color: #43495a; + border-color: #16171d; + background-image: image(#1e2128); + box-shadow: none; } + notebook > header > tabs > arrow:disabled, + button:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + notebook > header > tabs > arrow:disabled:active, notebook > header > tabs > arrow:disabled:checked, + button:disabled:active, + button:disabled:checked { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#1a1c23); + box-shadow: none; } + button.sidebar-button, notebook > header > tabs > arrow, windowcontrols button, notebook > header > tabs > arrow.flat, + button.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + transition: none; } + button.sidebar-button:hover, notebook > header > tabs > arrow:hover, windowcontrols button:hover, + button.flat:hover { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #252831; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-duration: 500ms; } + button.sidebar-button:active, notebook > header > tabs > arrow:active, windowcontrols button:active, button.sidebar-button:checked, notebook > header > tabs > arrow:checked, windowcontrols button:checked, + button.flat:active, + button.flat:checked { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #1c1e25; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + button.sidebar-button:backdrop, notebook > header > tabs > arrow:backdrop, windowcontrols button:backdrop, button.sidebar-button:disabled, notebook > header > tabs > arrow:disabled, windowcontrols button:disabled, + button.flat:backdrop, + button.flat:disabled, + button.flat:backdrop:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; } + notebook > header > tabs > arrow.image-button, + button.image-button { + min-width: 24px; + padding-left: 5px; + padding-right: 5px; } + notebook > header > tabs > arrow.text-button, + button.text-button { + padding-left: 16px; + padding-right: 16px; } + notebook > header > tabs > arrow.text-button.image-button, + button.text-button.image-button { + padding-left: 8px; + padding-right: 8px; } + notebook > header > tabs > arrow.text-button.image-button label, + button.text-button.image-button label { + padding-left: 8px; + padding-right: 8px; } + dropdown:drop(active) button.combo, + combobox:drop(active) button.combo, notebook > header > tabs > arrow:drop(active), + button:drop(active) { + color: #19a187; + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; } + +row:selected button.sidebar-button:not(:active):not(:checked):not(:hover):not(disabled), row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled) { + color: #ffffff; + border-color: transparent; } + row:selected button.sidebar-button:not(:active):not(:checked):not(:hover):not(disabled):backdrop, row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop { + color: #888a8d; } + + +button.osd { + min-width: 26px; + min-height: 32px; + color: white; + border-radius: 5px; + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border: none; + box-shadow: none; } + + button.osd.image-button { + min-width: 30px; } + + button.osd.image-button:only-child { + margin: 4px; + border-radius: 50%; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + + button.osd:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; + border: none; + box-shadow: none; } + + button.osd:active, + button.osd:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; + border: none; + box-shadow: none; } + +.app-notification button, popover.background.touch-selection button, popover.background.magnifier button, .osd button { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .app-notification button:hover, popover.background.touch-selection button:hover, popover.background.magnifier button:hover, .osd button:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .app-notification button:active, popover.background.touch-selection button:active, popover.background.magnifier button:active, .app-notification button:checked, popover.background.touch-selection button:checked, popover.background.magnifier button:checked, .osd button:active:backdrop, .osd button:active, .osd button:checked:backdrop, .osd button:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .app-notification button:disabled, popover.background.touch-selection button:disabled, popover.background.magnifier button:disabled, .osd button:disabled:backdrop, .osd button:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + .app-notification button.flat, popover.background.touch-selection button.flat, popover.background.magnifier button.flat, .osd button.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .app-notification button.flat:hover, popover.background.touch-selection button.flat:hover, popover.background.magnifier button.flat:hover, .osd button.flat:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .app-notification button.flat:disabled, popover.background.touch-selection button.flat:disabled, popover.background.magnifier button.flat:disabled, .osd button.flat:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; + background-image: none; + border-color: transparent; + box-shadow: none; } + .app-notification button.flat:active, popover.background.touch-selection button.flat:active, popover.background.magnifier button.flat:active, .app-notification button.flat:checked, popover.background.touch-selection button.flat:checked, popover.background.magnifier button.flat:checked, .osd button.flat:active, .osd button.flat:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + + +button.suggested-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: #0047c0; + background-image: linear-gradient(to top, #2274ff 2px, #2777ff); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.suggested-action { + outline: 0 solid transparent; + outline-offset: 4px; } + + button.suggested-action:focus:focus-visible { + outline-color: rgba(255, 255, 255, 0.3); + outline-width: 2px; + outline-offset: -2px; } + + button.suggested-action.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #2777ff; } + + button.suggested-action:hover { + color: white; + border-color: #0051da; + background-image: linear-gradient(to top, #136aff 20%, #186eff 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.suggested-action:active, + button.suggested-action:checked { + color: white; + border-color: #0051da; + background-image: image(#005cf8); + box-shadow: none; } + + button.suggested-action.flat:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: rgba(39, 119, 255, 0.8); } + + button.suggested-action:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + + button.suggested-action:disabled:active, + button.suggested-action:disabled:checked { + color: #a4bfeb; + border-color: #0051da; + background-image: image(#1c5ecd); + box-shadow: none; } + .osd button.suggested-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: black; + background-color: transparent; + background-image: image(rgba(39, 119, 255, 0.5)); + background-clip: padding-box; } + .osd button.suggested-action:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(rgba(39, 119, 255, 0.7)); + background-clip: padding-box; } + .osd button.suggested-action:active:backdrop, .osd button.suggested-action:active, .osd button.suggested-action:checked:backdrop, .osd button.suggested-action:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#2777ff); + background-clip: padding-box; + box-shadow: none; } + .osd button.suggested-action:disabled:backdrop, .osd button.suggested-action:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + + +button.destructive-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: #4b0909; + background-image: linear-gradient(to top, #a21313 2px, #a61414); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.destructive-action { + outline: 0 solid transparent; + outline-offset: 4px; } + + button.destructive-action:focus:focus-visible { + outline-color: rgba(255, 255, 255, 0.3); + outline-width: 2px; + outline-offset: -2px; } + + button.destructive-action.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #a61414; } + + button.destructive-action:hover { + color: white; + border-color: #620c0c; + background-image: linear-gradient(to top, #941111 20%, #991212 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + + button.destructive-action:active, + button.destructive-action:checked { + color: white; + border-color: #620c0c; + background-image: image(#7d0f0f); + box-shadow: none; } + + button.destructive-action.flat:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: rgba(166, 20, 20, 0.8); } + + button.destructive-action:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + + button.destructive-action:disabled:active, + button.destructive-action:disabled:checked { + color: #c9a1a1; + border-color: #620c0c; + background-image: image(#791314); + box-shadow: none; } + .osd button.destructive-action { + color: white; + outline-color: rgba(255, 255, 255, 0.3); + border-color: black; + background-color: transparent; + background-image: image(rgba(166, 20, 20, 0.5)); + background-clip: padding-box; } + .osd button.destructive-action:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(rgba(166, 20, 20, 0.7)); + background-clip: padding-box; } + .osd button.destructive-action:active:backdrop, .osd button.destructive-action:active, .osd button.destructive-action:checked:backdrop, .osd button.destructive-action:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#a61414); + background-clip: padding-box; + box-shadow: none; } + .osd button.destructive-action:disabled:backdrop, .osd button.destructive-action:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + +stackswitcher > button > label { + padding: 0 6px; + margin: 0 -6px; } + +stackswitcher > button > image { + padding: 3px 6px; + margin: -3px -6px; } + + +button.font separator { + background-color: transparent; } + + +button.font > box { + border-spacing: 6px; } + + +button.font > box > box > label { + font-weight: bold; } + + +button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; + border-radius: 9999px; } + + button.circular label { + padding: 0; } + +stacksidebar row.needs-attention > label, stackswitcher > button.needs-attention > label, +stackswitcher > button.needs-attention > image { + animation: needs_attention 150ms ease-in; + background-image: radial-gradient(farthest-side, #74a7ff 96%, rgba(116, 167, 255, 0)); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + background-position: right 3px, right 2px; } + stacksidebar row.needs-attention > label:backdrop, stackswitcher > button.needs-attention > label:backdrop, + stackswitcher > button.needs-attention > image:backdrop { + background-size: 6px 6px, 0 0; } + stacksidebar row.needs-attention > label:dir(rtl), stackswitcher > button.needs-attention > label:dir(rtl), + stackswitcher > button.needs-attention > image:dir(rtl) { + background-position: left 3px, left 2px; } + +.linked:not(.vertical) > filechooserbutton > combobox:dir(rtl):not(:last-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(rtl):not(:last-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(rtl):not(:last-child) > box > button.combo, .linked:not(.vertical) > filechooserbutton > combobox:dir(ltr):not(:first-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(ltr):not(:first-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(ltr):not(:first-child) > box > button.combo, dropdown.linked button:nth-child(2):dir(ltr), +combobox.linked button:nth-child(2):dir(ltr), .linked:not(.vertical) > menubutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > dropdown:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > colorbutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > fontbutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(rtl):not(:last-child) > button, .linked:not(.vertical) > menubutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > dropdown:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > colorbutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > fontbutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(ltr):not(:first-child) > button, spinbutton.vertical.linked:not(.vertical) > text:dir(rtl):not(:last-child), .linked:not(.vertical) > spinbutton:dir(rtl):not(:last-child):not(.vertical), .linked:not(.vertical) > entry:dir(rtl):not(:last-child), .linked:not(.vertical) > button:dir(rtl):not(:last-child), spinbutton.vertical.linked:not(.vertical) > text:dir(ltr):not(:first-child), .linked:not(.vertical) > spinbutton:dir(ltr):not(:first-child):not(.vertical), .linked:not(.vertical) > entry:dir(ltr):not(:first-child), .linked:not(.vertical) > button:dir(ltr):not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.linked:not(.vertical) > filechooserbutton > combobox:dir(rtl):not(:first-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(rtl):not(:first-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(rtl):not(:first-child) > box > button.combo, .linked:not(.vertical) > filechooserbutton > combobox:dir(ltr):not(:last-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(ltr):not(:last-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(ltr):not(:last-child) > box > button.combo, dropdown.linked button:nth-child(2):dir(rtl), +combobox.linked button:nth-child(2):dir(rtl), .linked:not(.vertical) > menubutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > dropdown:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > colorbutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > fontbutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(rtl):not(:first-child) > button, .linked:not(.vertical) > menubutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > dropdown:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > colorbutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > fontbutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(ltr):not(:last-child) > button, spinbutton.vertical.linked:not(.vertical) > text:dir(rtl):not(:first-child), .linked:not(.vertical) > spinbutton:dir(rtl):not(:first-child):not(.vertical), .linked:not(.vertical) > entry:dir(rtl):not(:first-child), .linked:not(.vertical) > button:dir(rtl):not(:first-child), spinbutton.vertical.linked:not(.vertical) > text:dir(ltr):not(:last-child), .linked:not(.vertical) > spinbutton:dir(ltr):not(:last-child):not(.vertical), .linked:not(.vertical) > entry:dir(ltr):not(:last-child), .linked:not(.vertical) > button:dir(ltr):not(:last-child) { + border-right-style: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.linked.vertical > filechooserbutton > combobox:not(:first-child) > box > button.combo, +.linked.vertical > appchooserbutton > combobox:not(:first-child) > box > button.combo, +.linked.vertical > combobox:not(:first-child) > box > button.combo, .linked.vertical > menubutton:not(:first-child) > button, +.linked.vertical > dropdown:not(:first-child) > button, +.linked.vertical > colorbutton:not(:first-child) > button, +.linked.vertical > fontbutton:not(:first-child) > button, +.linked.vertical > filechooserbutton:not(:first-child) > button, spinbutton.vertical.linked > text:not(:first-child), .linked.vertical > spinbutton:not(:first-child):not(.vertical), .linked.vertical > entry:not(:first-child), .linked.vertical > button:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.linked.vertical > filechooserbutton > combobox:not(:last-child) > box > button.combo, +.linked.vertical > appchooserbutton > combobox:not(:last-child) > box > button.combo, +.linked.vertical > combobox:not(:last-child) > box > button.combo, .linked.vertical > menubutton:not(:last-child) > button, +.linked.vertical > dropdown:not(:last-child) > button, +.linked.vertical > colorbutton:not(:last-child) > button, +.linked.vertical > fontbutton:not(:last-child) > button, +.linked.vertical > filechooserbutton:not(:last-child) > button, spinbutton.vertical.linked > text:not(:last-child), .linked.vertical > spinbutton:not(:last-child):not(.vertical), .linked.vertical > entry:not(:last-child), .linked.vertical > button:not(:last-child) { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.scale-popup button:hover, button.link, button.link:hover, button.link:active, button.link:checked, popover.menu box.circular-buttons button.circular.image-button.model, +list > row button.image-button:not(.flat), .toolbar button, modelbutton.flat { + background-color: transparent; + background-image: none; + border-color: transparent; + box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); + text-shadow: none; + -gtk-icon-shadow: none; } + +/* menu buttons */ +modelbutton.flat { + min-height: 26px; + padding-left: 5px; + padding-right: 5px; + border-radius: 5px; } + modelbutton.flat:hover { + background-color: #3b3e46; } + modelbutton.flat:disabled { + color: #888a8d; } + +modelbutton.flat arrow { + background: none; + min-width: 16px; + min-height: 16px; + opacity: 0.3; } + modelbutton.flat arrow:hover { + background: none; } + modelbutton.flat arrow.left { + -gtk-icon-source: -gtk-icontheme("go-previous-symbolic"); } + modelbutton.flat arrow.right { + -gtk-icon-source: -gtk-icontheme("go-next-symbolic"); } + +/* oldstyle toolbar buttons */ +.toolbar button { + margin: 1px; } + .toolbar button:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + .toolbar button:active { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#13151a); + box-shadow: none; } + .toolbar button:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + .toolbar button:backdrop { + color: #888a8d; + border-color: #16171d; + background-image: image(#23252e); + box-shadow: none; } + .toolbar button:backdrop:disabled { + color: #43495a; + border-color: #16171d; + background-image: image(#242731); + box-shadow: none; } + +button.color { + padding: 4px; } + button.color > colorswatch:only-child, button.color > colorswatch:only-child > overlay { + border-radius: 0; } + +/* list buttons */ +/* tone down as per new designs, see issue #1473 */ +popover.menu box.circular-buttons button.circular.image-button.model, +list > row button.image-button:not(.flat) { + border: 1px solid rgba(13, 14, 17, 0.5); } + popover.menu box.circular-buttons button.circular.image-button.model:hover, + list > row button.image-button:not(.flat):hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + popover.menu box.circular-buttons button.circular.image-button.model:active, popover.menu box.circular-buttons button.circular.image-button.model:checked, + list > row button.image-button:not(.flat):active, + list > row button.image-button:not(.flat):checked { + color: #eeeeec; + border-color: #0d0e11; + background-image: image(#13151a); + box-shadow: none; } + +/********* + * Links * + *********/ +button.link, +link { + color: #8db7ff; + text-decoration: underline; } + button.link:visited, + link:visited { + color: #5a97ff; } + *:selected button.link:visited, *:selected link:visited { + color: #bdd5ff; } + button.link:hover, + link:hover { + color: #c0d7ff; } + *:selected button.link:hover, *:selected link:hover { + color: #f9fbff; } + button.link:active, + link:active { + color: #8db7ff; } + *:selected button.link:active, *:selected link:active { + color: #e8f1ff; } + button.link:disabled, + link:disabled { + color: rgba(198, 198, 198, 0.8); } + button.link:selected, *:selected button.link, + link:selected, *:selected link { + color: #e8f1ff; } + +link { + outline: 0 solid transparent; + outline-offset: 4px; } + +link:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +button.link, button.link:hover, button.link:active, button.link:checked { + text-shadow: none; } + +button.link > label { + text-decoration: underline; } + +/***************** + * GtkSpinButton * + *****************/ +spinbutton { + font-feature-settings: "tnum"; } + spinbutton:not(.vertical) { + padding: 0; + border-spacing: 0; + /* :not here just to bump specificity above that of the list button styling */ } + .osd spinbutton:not(.vertical) > text, spinbutton:not(.vertical) > text { + min-width: 28px; + margin: 0; + background: none; + background-color: transparent; + border: none; + border-radius: 0; + box-shadow: none; + padding: 6px; } + .osd spinbutton:not(.vertical) > text:backdrop:disabled, spinbutton:not(.vertical) > text:backdrop:disabled { + background-color: transparent; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat), + spinbutton:not(.vertical) > button.image-button.down:not(.flat) { + min-height: 16px; + margin: 0; + padding-bottom: 0; + padding-top: 0; + color: #dadada; + background-image: none; + border-style: none none none solid; + border-color: rgba(13, 14, 17, 0.3); + border-radius: 0; + box-shadow: none; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl), + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl) { + border-style: none solid none none; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):hover, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):hover { + color: #eeeeec; + background-color: #181a20; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):disabled, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):disabled { + color: rgba(136, 138, 141, 0.3); + background-color: transparent; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):active, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):active { + background-color: rgba(0, 0, 0, 0.1); + box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.2); } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(ltr):last-child, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(ltr):last-child { + border-radius: 0 5px 5px 0; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl):first-child, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl):first-child { + border-radius: 5px 0 0 5px; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat), + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat) { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + border-style: none none none solid; + border-color: rgba(0, 0, 0, 0.7); + border-radius: 0; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl), + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl) { + border-style: none solid none none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):hover, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):hover { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + border-color: rgba(0, 0, 0, 0.5); + background-color: #1a1c23; + -gtk-icon-shadow: 0 1px black; + box-shadow: none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):disabled, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #97999f; + border-color: rgba(0, 0, 0, 0.5); + -gtk-icon-shadow: none; + box-shadow: none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(ltr):last-child, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(ltr):last-child { + border-radius: 0 5px 5px 0; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl):first-child, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl):first-child { + border-radius: 5px 0 0 5px; } + spinbutton.vertical:disabled { + color: #888a8d; } + spinbutton.vertical:drop(active) { + border-color: transparent; + box-shadow: none; } + spinbutton.vertical > text { + min-height: 32px; + min-width: 32px; + padding: 0; + border-radius: 0; } + spinbutton.vertical > text > block-cursor { + color: #272a34; + background-color: white; } + spinbutton.vertical > button { + min-height: 32px; + min-width: 32px; + padding: 0; } + spinbutton.vertical > button.up { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + spinbutton.vertical > button.down { + border-top-style: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + .osd spinbutton.vertical > button:first-child { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd spinbutton.vertical > button:first-child:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .osd spinbutton.vertical > button:first-child:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .osd spinbutton.vertical > button:first-child:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + treeview spinbutton:not(.vertical) { + min-height: 0; + border-style: none; + border-radius: 0; } + treeview spinbutton:not(.vertical) > text { + min-height: 0; + padding: 1px 2px; } + +/************** + * ComboBoxes * + **************/ +dropdown > popover.menu.background > contents { + padding: 0; } + +dropdown > button > box { + border-spacing: 6px; } + +dropdown arrow, +combobox arrow { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); + min-height: 16px; + min-width: 16px; } + +dropdown > popover.menu > contents modelbutton, +combobox > popover.menu > contents modelbutton { + padding-left: 9px; + padding-right: 9px; } + +dropdown:drop(active), +combobox:drop(active) { + box-shadow: none; } + +dropdown popover, +combobox popover { + margin-top: 6px; + padding: 0; } + dropdown popover listview, + combobox popover listview { + margin: 8px 0; } + dropdown popover listview > row, + combobox popover listview > row { + padding: 8px; } + dropdown popover listview > row:selected, + combobox popover listview > row:selected { + outline-color: rgba(255, 255, 255, 0.3); + color: white; + background-color: #3b3e46; } + dropdown popover .dropdown-searchbar, + combobox popover .dropdown-searchbar { + padding: 6px; + border-bottom: 1px solid #0d0e11; } + +/************ + * Toolbars * + ************/ +searchbar > revealer > box, .toolbar, +toolbar { + padding: 4px; + border-spacing: 4px; + background-color: #23252e; } + +.osd .toolbar, .osd toolbar { + background-color: transparent; } + +.toolbar.osd, +toolbar.osd { + padding: 13px; + border: none; + border-radius: 5px; + background-color: #303340; } + .toolbar.osd.left, .toolbar.osd.right, .toolbar.osd.top, .toolbar.osd.bottom, + toolbar.osd.left, + toolbar.osd.right, + toolbar.osd.top, + toolbar.osd.bottom { + border-radius: 0; } + +.toolbar.horizontal > separator, +toolbar.horizontal > separator { + margin: 4px 0; } + +.toolbar.vertical > separator, +toolbar.vertical > separator { + margin: 0 4px; } + +searchbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-width: 0 0 1px; } + +searchbar > revealer > box { + border-style: solid; + border-color: #0d0e11; + background-color: #1c1e25; } + searchbar > revealer > box:backdrop { + border-color: #16171d; + background-color: #1e2028; + box-shadow: none; + transition: 200ms ease-out; } + +/************** + * GtkInfoBar * + **************/ +infobar > revealer > box { + padding: 8px; + border-spacing: 12px; } + +infobar.action:hover > revealer > box { + background-color: #010101; } + +infobar.info > revealer > box, infobar.question > revealer > box, infobar.warning > revealer > box, infobar.error > revealer > box { + border-bottom: 1px solid #181a20; + background-color: #080604; } + +infobar .close, +searchbar .close { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + min-width: 16px; + min-height: 16px; + padding: 4px; + border-radius: 50%; } + infobar .close:hover, + searchbar .close:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + +/***************** + * Title buttons * + *****************/ +windowcontrols { + border-spacing: 6px; } + windowcontrols.start:not(.empty):dir(ltr), windowcontrols.end:not(.empty):dir(rtl) { + margin-right: 7px; } + windowcontrols.start:not(.empty):dir(rtl), windowcontrols.end:not(.empty):dir(ltr) { + margin-left: 7px; } + windowcontrols button { + border-radius: 9999px; + padding: 6px; + margin: 0 2px; + min-width: 0; + min-height: 0; } + windowcontrols button:hover { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #0d0e11; } + windowcontrols button:active, windowcontrols button:checked { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: black; } + +/*************** + * Header bars * + ***************/ +.titlebar:not(headerbar), +headerbar { + padding: 0 6px; + min-height: 46px; + border-width: 0 0 1px; + border-style: solid; + border-color: black; + border-radius: 0; + background: #0d0e11 linear-gradient(to top, #16171d, #1a1c23); + /* Darken switchbuttons for headerbars. issue #1588 */ } + .titlebar:backdrop:not(headerbar), + headerbar:backdrop { + border-color: #16171d; + background-color: #23252e; + background-image: none; + box-shadow: inset 0 1px rgba(238, 238, 236, 0.07); + transition: 200ms ease-out; } + .titlebar:not(headerbar) .title, + headerbar .title { + padding-left: 12px; + padding-right: 12px; + font-weight: bold; } + .titlebar:not(headerbar) .subtitle, + headerbar .subtitle { + font-size: smaller; + padding-left: 12px; + padding-right: 12px; } + .titlebar:not(headerbar) stackswitcher > button:checked, + .titlebar:not(headerbar) button.toggle:checked, + headerbar stackswitcher > button:checked, + headerbar button.toggle:checked { + background: image(#0f1014); + border-color: #060708; + border-top-color: black; } + .titlebar:not(headerbar) stackswitcher > button:checked:backdrop, + .titlebar:not(headerbar) button.toggle:checked:backdrop, + headerbar stackswitcher > button:checked:backdrop, + headerbar button.toggle:checked:backdrop { + color: #888a8d; + border-color: #16171d; + background-image: image(#1e2128); + box-shadow: none; } + .tiled .titlebar:not(headerbar), .tiled-top .titlebar:not(headerbar), .tiled-left .titlebar:not(headerbar), .tiled-right .titlebar:not(headerbar), .tiled-bottom .titlebar:not(headerbar), .maximized .titlebar:not(headerbar), .fullscreen .titlebar:not(headerbar), .tiled headerbar, .tiled-top headerbar, .tiled-left headerbar, .tiled-right headerbar, .tiled-bottom headerbar, .maximized headerbar, .fullscreen headerbar { + border-radius: 0; } + .default-decoration.titlebar:not(headerbar), + headerbar.default-decoration { + min-height: 28px; + padding: 4px; } + .default-decoration.titlebar:not(headerbar) windowcontrols button, + .default-decoration.titlebar:not(headerbar) windowcontrols menubutton, + headerbar.default-decoration windowcontrols button, + headerbar.default-decoration windowcontrols menubutton { + min-height: 26px; + min-width: 26px; + margin: 0; + padding: 0; } + .default-decoration.titlebar:not(headerbar) windowcontrols menubutton button, + headerbar.default-decoration windowcontrols menubutton button { + min-height: 20px; + min-width: 20px; + margin: 0; + padding: 4px; } + .solid-csd .titlebar:dir(rtl):not(headerbar), .solid-csd .titlebar:dir(ltr):not(headerbar), .solid-csd headerbar:backdrop:dir(rtl), .solid-csd headerbar:backdrop:dir(ltr), .solid-csd headerbar:dir(rtl), .solid-csd headerbar:dir(ltr) { + margin-left: -1px; + margin-right: -1px; + margin-top: -1px; + border-radius: 0; + box-shadow: none; } + +headerbar > windowhandle > box, +headerbar > windowhandle > box > box.start, +headerbar > windowhandle > box > box.end { + border-spacing: 6px; } + +headerbar entry, +headerbar spinbutton, +headerbar separator:not(.sidebar), +headerbar button, +headerbar menubutton { + margin-top: 6px; + margin-bottom: 6px; } + +headerbar menubutton > button { + margin-top: 0px; + margin-bottom: 0px; } + +headerbar switch { + margin-top: 10px; + margin-bottom: 10px; } + +headerbar.titlebar headerbar:not(.titlebar) { + background: none; + box-shadow: none; } + +window.csd > .titlebar:not(headerbar) { + padding: 0; + background-color: transparent; + background-image: none; + border-style: none; + border-color: transparent; + box-shadow: none; } + +.titlebar:not(headerbar) separator { + background-color: #0d0e11; } + +window.devel headerbar.titlebar { + background: #23252e cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, linear-gradient(to right, transparent 65%, rgba(39, 119, 255, 0.1)), linear-gradient(to top, #13151a 3px, #181a20); } + window.devel headerbar.titlebar:backdrop { + background: #23252e cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, image(#23252e); + /* background-color would flash */ } + +/************ + * Pathbars * + ************/ +pathbar > button.text-button, pathbar > button.image-button, pathbar > button { + padding-left: 4px; + padding-right: 4px; } + +pathbar > button.text-button.image-button label { + padding-left: 0; + padding-right: 0; } + +pathbar > button.text-button.image-button label:last-child, pathbar > button label:last-child { + padding-right: 8px; } + +pathbar > button.text-button.image-button label:first-child, pathbar > button label:first-child { + padding-left: 8px; } + +pathbar > button image { + padding-left: 4px; + padding-right: 4px; } + +pathbar > button.slider-button { + padding-left: 0; + padding-right: 0; } + +/************** + * Tree Views * + **************/ +columnview.view, +treeview.view { + border-left-color: #4f5159; + border-top-color: #4f5159; } + columnview.view, + treeview.view { + outline: 0 solid transparent; + outline-offset: 4px; } + columnview.view:focus:focus-visible, + treeview.view:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + columnview.view:selected:focus, columnview.view:selected, + treeview.view:selected:focus, + treeview.view:selected { + border-radius: 0; + outline-color: rgba(255, 255, 255, 0.3); } + columnview.view:disabled, + treeview.view:disabled { + color: #888a8d; } + columnview.view:disabled:selected, + treeview.view:disabled:selected { + color: #7dadff; } + columnview.view:disabled:selected:backdrop, + treeview.view:disabled:selected:backdrop { + color: #5b93f3; } + columnview.view.separator, + treeview.view.separator { + min-height: 2px; + color: #4f5159; } + columnview.view:backdrop, + treeview.view:backdrop { + border-left-color: #3a3d46; + border-top: #3a3d46; } + columnview.view:drop(active), + treeview.view:drop(active) { + box-shadow: none; } + columnview.view > dndtarget:drop(active), + treeview.view > dndtarget:drop(active) { + border-style: solid none; + border-width: 1px; + border-color: #00348d; } + columnview.view > dndtarget.after:drop(active), + treeview.view > dndtarget.after:drop(active) { + border-top-style: none; } + columnview.view > dndtarget.before:drop(active), + treeview.view > dndtarget.before:drop(active) { + border-bottom-style: none; } + columnview.view.expander, + treeview.view.expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); + color: #bebfc2; } + columnview.view.expander:dir(rtl), + treeview.view.expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + columnview.view.expander:hover, + treeview.view.expander:hover { + color: white; } + columnview.view.expander:selected, + treeview.view.expander:selected { + color: #bed6ff; } + columnview.view.expander:selected:hover, + treeview.view.expander:selected:hover { + color: #ffffff; } + columnview.view.expander:checked, + treeview.view.expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + columnview.view.progressbar, + treeview.view.progressbar { + background-color: #2777ff; + background-image: image(#2777ff); + box-shadow: none; } + columnview.view.progressbar:selected:focus, columnview.view.progressbar:selected, + treeview.view.progressbar:selected:focus, + treeview.view.progressbar:selected { + box-shadow: inset 0 1px rgba(255, 255, 255, 0.05); + background-image: image(#272a34); } + columnview.view.progressbar:selected:focus:backdrop, columnview.view.progressbar:selected:backdrop, + treeview.view.progressbar:selected:focus:backdrop, + treeview.view.progressbar:selected:backdrop { + background-color: #292c37; } + columnview.view.trough, + treeview.view.trough { + background-color: rgba(238, 238, 236, 0.1); } + columnview.view.trough:selected:focus, columnview.view.trough:selected, + treeview.view.trough:selected:focus, + treeview.view.trough:selected { + background-color: #005af3; } + columnview.view > header > button, + treeview.view > header > button { + color: #8b8c90; + background-color: #272a34; + font-weight: bold; + text-shadow: none; + box-shadow: none; } + columnview.view > header > button:hover, + treeview.view > header > button:hover { + color: #bdbdbe; + box-shadow: none; + transition: none; } + columnview.view > header > button:active, + treeview.view > header > button:active { + color: #eeeeec; + transition: none; } + columnview.view button.dnd:active, columnview.view button.dnd:selected, columnview.view button.dnd:hover, columnview.view button.dnd, + columnview.view header.button.dnd:active, + columnview.view header.button.dnd:selected, + columnview.view header.button.dnd:hover, + columnview.view header.button.dnd, + treeview.view button.dnd:active, + treeview.view button.dnd:selected, + treeview.view button.dnd:hover, + treeview.view button.dnd, + treeview.view header.button.dnd:active, + treeview.view header.button.dnd:selected, + treeview.view header.button.dnd:hover, + treeview.view header.button.dnd { + padding: 0 6px; + color: #272a34; + background-image: none; + background-color: #2777ff; + border-style: none; + border-radius: 0; + box-shadow: inset 0 0 0 1px #272a34; + text-shadow: none; + transition: none; } + columnview.view acceleditor > label, + treeview.view acceleditor > label { + background-color: #2777ff; } + +columnview.view > header > button, +treeview.view > header > button, columnview.view > header > button:hover, +treeview.view > header > button:hover, columnview.view > header > button:active, +treeview.view > header > button:active { + padding: 0 6px; + background-image: none; + border-style: none none solid solid; + border-color: #4f5159; + border-radius: 0; + text-shadow: none; } + columnview.view > header > button:disabled, + treeview.view > header > button:disabled { + border-color: #23252e; + background-image: none; } + columnview.view > header > button:last-child, + treeview.view > header > button:last-child { + border-right-style: none; } + +/*************** + * Popovers * + ***************/ +popover.background { + background-color: transparent; + font: initial; } + popover.background > arrow, + popover.background > contents { + background-color: #1f222a; + background-clip: padding-box; + border: 1px solid rgba(13, 14, 17, 0.9); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } + popover.background:backdrop { + background-color: transparent; } + popover.background > contents { + padding: 8px; + border-radius: 9px; } + popover.background > contents > list, + popover.background > contents > .view, + popover.background > contents > iconview, + popover.background > contents > toolbar { + border-style: none; + background-color: transparent; } + popover.background > contents separator { + background-color: #13151a; + margin: 3px; } + popover.background > contents list separator { + margin: 0; } + .osd popover.background, popover.background.touch-selection, popover.background.magnifier { + background-color: transparent; } + .osd popover.background > arrow, + .osd popover.background > contents, popover.background.touch-selection > arrow, + popover.background.touch-selection > contents, popover.background.magnifier > arrow, + popover.background.magnifier > contents { + border: 1px solid rgba(255, 255, 255, 0.1); + box-shadow: none; } + +magnifier { + background-color: #272a34; } + +/********************** + * Popover Base Menus * + **********************/ +popover.menu { + padding: 0; } + popover.menu box.inline-buttons { + padding: 0 12px; } + popover.menu box.inline-buttons button.image-button.model { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + min-height: 30px; + min-width: 30px; + padding: 0; + border: none; + outline: none; + transition: none; } + popover.menu box.inline-buttons button.image-button.model:selected { + background: image(#3b3e46); } + popover.menu box.circular-buttons { + padding: 12px 12px 6px; } + popover.menu box.circular-buttons button.circular.image-button.model { + padding: 11px; } + popover.menu box.circular-buttons button.circular.image-button.model:focus { + background-color: #3b3e46; + border-color: #3b3e46; } + popover.menu > arrow, popover.menu.background > contents { + background-color: #1f222a; + padding: 5px; } + popover.menu.background separator { + margin: 6px 0; } + popover.menu accelerator { + color: alpha(currentColor,0.55); } + popover.menu accelerator:dir(ltr) { + margin-left: 12px; } + popover.menu accelerator:dir(rtl) { + margin-right: 12px; } + popover.menu check, + popover.menu radio { + transform: scale(0.8); + border-width: 1.2px; + border-color: transparent; + box-shadow: none; + background-image: image(transparent); + color: white; } + popover.menu check:hover, + popover.menu radio:hover { + transform: scale(0.8); + border-width: 1.2px; + color: white; + box-shadow: none; + background-image: image(transparent); } + popover.menu check:active, + popover.menu radio:active { + transform: scale(0.8); + border-width: 1.2px; + color: white; + box-shadow: none; + background-image: image(transparent); } + popover.menu radio { + border-color: #0d0e11; } + popover.menu radio:active { + border-color: rgba(13, 14, 17, 0.5); } + popover.menu arrow.left, + popover.menu radio.left, + popover.menu check.left { + margin-left: -2px; + margin-right: 6px; } + popover.menu arrow.right, + popover.menu radio.right, + popover.menu check.right { + margin-left: 6px; + margin-right: -2px; } + popover.menu modelbutton { + min-height: 30px; + min-width: 40px; + padding: 0 12px; + border-radius: 5px; } + popover.menu modelbutton:selected { + color: white; + background-color: #3b3e46; } + popover.menu modelbutton:selected:active { + background-color: #040405; } + popover.menu label.title { + font-weight: bold; + padding: 4px 32px; } + +menubar { + padding: 0px; + box-shadow: inset 0 -1px rgba(0, 0, 0, 0.1); } + menubar > item { + min-height: 16px; + padding: 4px 8px; } + menubar > item:selected { + box-shadow: inset 0 -3px #2777ff; + color: #8db7ff; } + menubar > item:disabled { + color: #888a8d; + box-shadow: none; } + menubar > item popover.menu.background > contents { + padding: 5px; } + menubar > item popover.menu popover.menu { + padding: 0 0 4px 0; } + menubar > item popover.menu.background popover.menu.background > contents { + margin: 0; + border-radius: 9px; } + +/************* + * Notebooks * + *************/ +notebook > header > tabs > tab:checked { + outline: 0 solid transparent; + outline-offset: 4px; } + +notebook:focus:focus-visible > header > tabs > tab:checked { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +notebook > header { + padding: 1px; + border-color: #0d0e11; + border-width: 1px; + background-color: #1b1d24; } + notebook > header > tabs { + margin: -1px; } + notebook > header.top { + border-bottom-style: solid; } + notebook > header.top > tabs { + margin-bottom: -2px; } + notebook > header.top > tabs > tab:hover { + box-shadow: inset 0 -4px #0d0e11; } + notebook > header.top > tabs > tab:checked { + box-shadow: inset 0 -4px #2777ff; } + notebook > header.bottom { + border-top-style: solid; } + notebook > header.bottom > tabs { + margin-top: -2px; } + notebook > header.bottom > tabs > tab:hover { + box-shadow: inset 0 4px #0d0e11; } + notebook > header.bottom > tabs > tab:checked { + box-shadow: inset 0 4px #2777ff; } + notebook > header.left { + border-right-style: solid; } + notebook > header.left > tabs { + margin-right: -2px; } + notebook > header.left > tabs > tab:hover { + box-shadow: inset -4px 0 #0d0e11; } + notebook > header.left > tabs > tab:checked { + box-shadow: inset -4px 0 #2777ff; } + notebook > header.right { + border-left-style: solid; } + notebook > header.right > tabs { + margin-left: -2px; } + notebook > header.right > tabs > tab:hover { + box-shadow: inset 4px 0 #0d0e11; } + notebook > header.right > tabs > tab:checked { + box-shadow: inset 4px 0 #2777ff; } + notebook > header.top > tabs > arrow { + border-top-style: none; } + notebook > header.bottom > tabs > arrow { + border-bottom-style: none; } + notebook > header.top > tabs > arrow, notebook > header.bottom > tabs > arrow { + margin-left: -5px; + margin-right: -5px; + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs > arrow.down, notebook > header.bottom > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + notebook > header.top > tabs > arrow.up, notebook > header.bottom > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + notebook > header.left > tabs > arrow { + border-left-style: none; } + notebook > header.right > tabs > arrow { + border-right-style: none; } + notebook > header.left > tabs > arrow, notebook > header.right > tabs > arrow { + margin-top: -5px; + margin-bottom: -5px; + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs > arrow.down, notebook > header.right > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } + notebook > header.left > tabs > arrow.up, notebook > header.right > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + notebook > header > tabs > arrow { + min-height: 16px; + min-width: 16px; + border-radius: 0; } + notebook > header > tabs > arrow:hover:not(:active):not(:backdrop) { + background-clip: padding-box; + background-image: none; + background-color: rgba(255, 255, 255, 0.3); + border-color: transparent; + box-shadow: none; } + notebook > header > tabs > arrow:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; } + notebook > header > tabs > tab { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + min-height: 30px; + min-width: 30px; + padding: 3px 12px; + color: #eeeeec; + font-weight: normal; + border-width: 1px; + border-color: transparent; } + notebook > header > tabs > tab:hover { + color: #eeeeec; + background-color: #121418; } + notebook > header > tabs > tab.reorderable-page:hover { + border-color: rgba(13, 14, 17, 0.3); + background-color: rgba(35, 37, 46, 0.2); } + notebook > header > tabs > tab:not(:checked) { + outline-color: transparent; } + notebook > header > tabs > tab:checked { + color: #eeeeec; } + notebook > header > tabs > tab.reorderable-page:checked { + border-color: rgba(13, 14, 17, 0.5); + background-color: rgba(35, 37, 46, 0.5); } + notebook > header > tabs > tab.reorderable-page:checked:hover { + background-color: rgba(35, 37, 46, 0.7); } + notebook > header > tabs > tab button.flat { + color: alpha(currentColor,0.3); + padding: 0; + margin-top: 4px; + margin-bottom: 4px; + min-width: 20px; + min-height: 20px; } + notebook > header > tabs > tab button.flat:hover { + color: currentColor; } + notebook > header > tabs > tab button.flat:last-child { + margin-left: 4px; + margin-right: -4px; } + notebook > header > tabs > tab button.flat:first-child { + margin-left: -4px; + margin-right: 4px; } + notebook > header.top > tabs, notebook > header.bottom > tabs { + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs:not(:only-child), notebook > header.bottom > tabs:not(:only-child) { + margin-left: 3px; + margin-right: 3px; } + notebook > header.top > tabs:not(:only-child):first-child, notebook > header.bottom > tabs:not(:only-child):first-child { + margin-left: -1px; } + notebook > header.top > tabs:not(:only-child):last-child, notebook > header.bottom > tabs:not(:only-child):last-child { + margin-right: -1px; } + notebook > header.top > tabs > tab, notebook > header.bottom > tabs > tab { + margin-left: 4px; + margin-right: 4px; } + notebook > header.top > tabs > tab.reorderable-page, notebook > header.bottom > tabs > tab.reorderable-page { + border-style: none solid; } + notebook > header.left > tabs, notebook > header.right > tabs { + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs:not(:only-child), notebook > header.right > tabs:not(:only-child) { + margin-top: 3px; + margin-bottom: 3px; } + notebook > header.left > tabs:not(:only-child):first-child, notebook > header.right > tabs:not(:only-child):first-child { + margin-top: -1px; } + notebook > header.left > tabs:not(:only-child):last-child, notebook > header.right > tabs:not(:only-child):last-child { + margin-bottom: -1px; } + notebook > header.left > tabs > tab, notebook > header.right > tabs > tab { + margin-top: 4px; + margin-bottom: 4px; } + notebook > header.left > tabs > tab.reorderable-page, notebook > header.right > tabs > tab.reorderable-page { + border-style: solid none; } + notebook > header.top > tabs > tab { + padding-bottom: 4px; } + notebook > header.bottom > tabs > tab { + padding-top: 4px; } + +notebook > stack:not(:only-child) { + background-color: #272a34; } + +/************** + * Scrollbars * + **************/ +scrollbar { + background-color: #272a34; + transition: 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + scrollbar.top { + border-bottom: 1px solid #0d0e11; } + scrollbar.bottom { + border-top: 1px solid #0d0e11; } + scrollbar.left { + border-right: 1px solid #0d0e11; } + scrollbar.right { + border-left: 1px solid #0d0e11; } + scrollbar > range > trough > slider { + min-width: 6px; + min-height: 6px; + margin: -1px; + border: 4px solid transparent; + border-radius: 8px; + background-clip: padding-box; + background-color: #41434b; } + scrollbar > range > trough > slider:hover { + background-color: #4b4d54; } + scrollbar > range > trough > slider:hover:active { + background-color: #2777ff; } + scrollbar > range > trough > slider:disabled { + background-color: transparent; } + scrollbar > range.fine-tune > trough > slider { + min-width: 4px; + min-height: 4px; } + scrollbar > range.fine-tune.horizontal > trough > slider { + border-width: 5px 4px; } + scrollbar > range.fine-tune.vertical > trough > slider { + border-width: 4px 5px; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + border-color: transparent; + opacity: 0.4; + background-color: transparent; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) > range > trough > slider { + margin: 0; + min-width: 3px; + min-height: 3px; + background-color: #eeeeec; + border: 1px solid black; } + scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) > range > trough > slider { + margin: 0 2px; + min-width: 40px; } + scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) > range > trough > slider { + margin: 2px 0; + min-height: 40px; } + scrollbar.overlay-indicator.dragging, scrollbar.overlay-indicator.hovering { + opacity: 0.8; } + scrollbar.horizontal > range > trough > slider { + min-width: 40px; } + scrollbar.vertical > range > trough > slider { + min-height: 40px; } + +treeview ~ scrollbar.vertical { + border-top: 1px solid #0d0e11; + margin-top: -1px; } + +/********** + * Switch * + **********/ +switch { + font-weight: bold; + font-size: smaller; + border: 1px solid #0d0e11; + border-radius: 14px; + color: #eeeeec; + background-color: #1b1d24; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + /* only show i / o for the accessible theme */ } + switch { + outline: 0 solid transparent; + outline-offset: 4px; } + switch:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: 0; } + headerbar switch { + background-color: #0a0a0d; } + switch:checked { + color: #ffffff; + border-color: #00348d; + background-color: #2777ff; } + switch:disabled { + color: #888a8d; + border-color: #0d0e11; + background-color: #242731; + text-shadow: none; } + switch > slider { + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); + margin: -1px; + min-width: 24px; + min-height: 24px; + border: 1px solid; + border-color: #0d0e11; + border-radius: 50%; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + switch > image { + color: transparent; } + switch:hover > slider { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + switch:checked > slider { + border: 1px solid #00348d; } + switch:disabled > slider { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + row:selected switch { + outline-color: rgba(255, 255, 255, 0.3); } + +/************************* + * Check and Radio items * + *************************/ +.view.content-view.check:not(list), iconview.content-view.check:not(list), +.content-view .tile check:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:hover:not(list), iconview.content-view.check:hover:not(list), +.content-view .tile check:hover:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:active:not(list), iconview.content-view.check:active:not(list), +.content-view .tile check:active:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:backdrop:not(list), iconview.content-view.check:backdrop:not(list), +.content-view .tile check:backdrop:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #939393; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:not(list), iconview.content-view.check:checked:not(list), +.content-view .tile check:checked:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:hover:not(list), iconview.content-view.check:checked:hover:not(list), +.content-view .tile check:checked:hover:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:active:not(list), iconview.content-view.check:checked:active:not(list), +.content-view .tile check:checked:active:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:backdrop:checked:not(list), iconview.content-view.check:backdrop:checked:not(list), +.content-view .tile check:backdrop:checked:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: rgba(255, 255, 255, 0.8); + background-color: #939393; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +checkbutton { + border-spacing: 4px; + border-radius: 5px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + checkbutton { + outline: 0 solid transparent; + outline-offset: 4px; } + checkbutton:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + checkbutton.text-button { + padding: 4px; } + +check, +radio { + min-height: 14px; + min-width: 14px; + border: 1px solid; + -gtk-icon-source: none; } + check, + radio { + background-clip: padding-box; + background-image: linear-gradient(to bottom, #2e313d 20%, #23252e 90%); + border-color: black; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:hover, + radio:hover { + background-image: linear-gradient(to bottom, #363a48 10%, #2b2f3a 90%); } + check:active, + radio:active { + box-shadow: inset 0 1px black; + background-image: image(#181a20); } + check:disabled, + radio:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + check:checked, + radio:checked { + background-clip: border-box; + background-image: linear-gradient(to bottom, #4187ff 20%, #2777ff 90%); + border-color: #00215a; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:checked:hover, + radio:checked:hover { + background-image: linear-gradient(to bottom, #5594ff 10%, #3b84ff 90%); } + check:checked:active, + radio:checked:active { + box-shadow: inset 0 1px black; + background-image: image(#0e67ff); } + check:checked:disabled, + radio:checked:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + check:indeterminate, + radio:indeterminate { + background-clip: border-box; + background-image: linear-gradient(to bottom, #4187ff 20%, #2777ff 90%); + border-color: #00215a; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:indeterminate:hover, + radio:indeterminate:hover { + background-image: linear-gradient(to bottom, #5594ff 10%, #3b84ff 90%); } + check:indeterminate:active, + radio:indeterminate:active { + box-shadow: inset 0 1px black; + background-image: image(#0e67ff); } + check:indeterminate:disabled, + radio:indeterminate:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + .osd check, .osd radio { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd check:hover, .osd radio:hover { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd check:active, .osd radio:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .osd check:disabled, .osd radio:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + + +check { + border-radius: 3px; + -gtk-icon-size: 14px; } + + check:checked { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/check-symbolic.symbolic.png")), -gtk-recolor(url("assets/check@2-symbolic.symbolic.png"))); } + + check:indeterminate { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } + +treeview.view radio:selected:focus, treeview.view radio:selected, +radio { + border-radius: 100%; + -gtk-icon-size: 14px; } + treeview.view radio:checked:selected, + radio:checked { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/bullet-symbolic.symbolic.png")), -gtk-recolor(url("assets/bullet@2-symbolic.symbolic.png"))); } + treeview.view radio:indeterminate:selected, + radio:indeterminate { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } + +treeview.view check:selected:focus, treeview.view check:selected, +treeview.view radio:selected:focus, +treeview.view radio:selected { + color: #ffffff; } + +/************ + * GtkScale * + ************/ +progressbar > trough, scale > trough > fill, scale > trough { + border: 1px solid #1b1d24; + border-radius: 3px; + background-color: #1b1d24; } + headerbar progressbar > trough, headerbar scale > trough > fill, headerbar scale > trough { + background-color: #0a0a0d; } + progressbar > trough:disabled, scale > trough > fill:disabled, scale > trough:disabled { + background-color: #242731; + border-color: #0d0e11; } + row:selected progressbar > trough, row:selected scale > trough > fill, row:selected scale > trough { + outline-color: rgba(255, 255, 255, 0.3); + border-color: #00348d; } + .osd progressbar > trough, .osd scale > trough > fill, .osd scale > trough { + border-color: black; + background-color: rgba(0, 0, 0, 0.8); } + .osd progressbar > trough:disabled, .osd scale > trough > fill:disabled, .osd scale > trough:disabled { + background-color: rgba(68, 72, 83, 0.5); } + +progressbar > trough > progress, scale > trough > highlight { + border: 1px solid #2777ff; + border-radius: 3px; + background-color: #2777ff; } + progressbar > trough > progress:disabled, scale > trough > highlight:disabled { + background-color: transparent; + border-color: transparent; } + row:selected progressbar > trough > progress, row:selected scale > trough > highlight { + border-color: #00348d; } + .osd progressbar > trough > progress, .osd scale > trough > highlight { + border-color: black; } + .osd progressbar > trough > progress:disabled, .osd scale > trough > highlight:disabled { + border-color: transparent; } + +scale { + min-height: 10px; + min-width: 10px; + padding: 12px; } + scale > trough { + outline: 0 solid transparent; + outline-offset: 16px; } + scale:focus:focus-visible > trough { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: 10px; } + scale > trough { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + scale > trough > fill, + scale > trough > highlight { + margin: -1px; } + scale > trough > slider { + min-height: 18px; + min-width: 18px; + margin: -9px; } + scale.fine-tune.horizontal { + padding-top: 9px; + padding-bottom: 9px; + min-height: 16px; } + scale.fine-tune.vertical { + padding-left: 9px; + padding-right: 9px; + min-width: 16px; } + scale.fine-tune > trough > slider { + margin: -6px; } + scale.fine-tune > trough > fill, + scale.fine-tune > trough > highlight, + scale.fine-tune > trough { + border-radius: 5px; } + scale > trough > fill:disabled { + border-color: transparent; + background-color: transparent; } + .osd scale > trough > fill { + background-color: #404040; } + .osd scale > trough > fill:disabled { + border-color: transparent; + background-color: transparent; } + scale > trough > slider { + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); + border-width: 1px; + border-style: solid; + border-radius: 100%; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-property: background, border, box-shadow; } + scale > trough > slider:hover { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + scale > trough > slider:active { + border-color: #00348d; } + scale > trough > slider:disabled { + color: #888a8d; + border-color: #0d0e11; + background-image: image(#242731); } + row:selected scale > trough > slider:disabled, row:selected scale > trough > slider { + border-color: #00348d; } + .osd scale > trough > slider { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border-color: black; + background-color: #303340; } + .osd scale > trough > slider:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; + background-color: #303340; } + .osd scale > trough > slider:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; + background-color: #303340; } + .osd scale > trough > slider:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; + background-color: #303340; } + scale > value { + color: alpha(currentColor,0.55); + font-feature-settings: "tnum"; } + scale.horizontal > marks { + color: alpha(currentColor,0.55); } + scale.horizontal > marks.top { + margin-bottom: 6px; } + scale.horizontal > marks.bottom { + margin-top: 6px; } + scale.horizontal > marks indicator { + background-color: currentColor; + min-height: 6px; + min-width: 1px; } + scale.horizontal > value.left { + margin-right: 9px; } + scale.horizontal > value.right { + margin-left: 9px; } + scale.horizontal.fine-tune > marks.top { + margin-top: 3px; } + scale.horizontal.fine-tune > marks.bottom { + margin-bottom: 3px; } + scale.horizontal.fine-tune > marks indicator { + min-height: 3px; } + scale.vertical > marks { + color: alpha(currentColor,0.55); } + scale.vertical > marks.top { + margin-right: 6px; } + scale.vertical > marks.bottom { + margin-left: 6px; } + scale.vertical > marks indicator { + background-color: currentColor; + min-height: 1px; + min-width: 6px; } + scale.vertical > value.top { + margin-bottom: 9px; } + scale.vertical > value.bottom { + margin-top: 9px; } + scale.vertical.fine-tune > marks.top { + margin-left: 3px; } + scale.vertical.fine-tune > marks.bottom { + margin-right: 3px; } + scale.vertical.fine-tune > marks indicator { + min-height: 3px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-dark.png"), url("assets/slider-horz-scale-has-marks-above-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover-dark.png"), url("assets/slider-horz-scale-has-marks-above-hover-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active-dark.png"), url("assets/slider-horz-scale-has-marks-above-active-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-above-insensitive-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-dark.png"), url("assets/slider-horz-scale-has-marks-below-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-hover-dark.png"), url("assets/slider-horz-scale-has-marks-below-hover-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-active-dark.png"), url("assets/slider-horz-scale-has-marks-below-active-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-insensitive-dark.png"), url("assets/slider-horz-scale-has-marks-below-insensitive-dark@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-dark.png"), url("assets/slider-vert-scale-has-marks-above-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-hover-dark.png"), url("assets/slider-vert-scale-has-marks-above-hover-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-active-dark.png"), url("assets/slider-vert-scale-has-marks-above-active-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-above-insensitive-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-dark.png"), url("assets/slider-vert-scale-has-marks-below-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-hover-dark.png"), url("assets/slider-vert-scale-has-marks-below-hover-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-active-dark.png"), url("assets/slider-vert-scale-has-marks-below-active-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-insensitive-dark.png"), url("assets/slider-vert-scale-has-marks-below-insensitive-dark@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.color { + min-height: 0; + min-width: 0; } + scale.color > trough { + background-image: image(#0d0e11); + background-repeat: no-repeat; } + scale.color.horizontal { + padding: 0 0 15px 0; } + scale.color.horizontal > trough { + padding-bottom: 4px; + background-position: 0 -3px; + border-top-left-radius: 0; + border-top-right-radius: 0; } + scale.color.horizontal > trough > slider:dir(ltr):hover, scale.color.horizontal > trough > slider:dir(ltr):backdrop, scale.color.horizontal > trough > slider:dir(ltr):disabled, scale.color.horizontal > trough > slider:dir(ltr):backdrop:disabled, scale.color.horizontal > trough > slider:dir(ltr), scale.color.horizontal > trough > slider:dir(rtl):hover, scale.color.horizontal > trough > slider:dir(rtl):backdrop, scale.color.horizontal > trough > slider:dir(rtl):disabled, scale.color.horizontal > trough > slider:dir(rtl):backdrop:disabled, scale.color.horizontal > trough > slider:dir(rtl) { + margin-bottom: -15px; + margin-top: 6px; } + scale.color.vertical:dir(ltr) { + padding: 0 0 0 15px; } + scale.color.vertical:dir(ltr) > trough { + padding-left: 4px; + background-position: 3px 0; + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + scale.color.vertical:dir(ltr) > trough > slider:hover, scale.color.vertical:dir(ltr) > trough > slider:backdrop, scale.color.vertical:dir(ltr) > trough > slider:disabled, scale.color.vertical:dir(ltr) > trough > slider:backdrop:disabled, scale.color.vertical:dir(ltr) > trough > slider { + margin-left: -15px; + margin-right: 6px; } + scale.color.vertical:dir(rtl) { + padding: 0 15px 0 0; } + scale.color.vertical:dir(rtl) > trough { + padding-right: 4px; + background-position: -3px 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + scale.color.vertical:dir(rtl) > trough > slider:hover, scale.color.vertical:dir(rtl) > trough > slider:backdrop, scale.color.vertical:dir(rtl) > trough > slider:disabled, scale.color.vertical:dir(rtl) > trough > slider:backdrop:disabled, scale.color.vertical:dir(rtl) > trough > slider { + margin-right: -15px; + margin-left: 6px; } + scale.color.fine-tune.horizontal:dir(ltr), scale.color.fine-tune.horizontal:dir(rtl) { + padding: 0 0 12px 0; } + scale.color.fine-tune.horizontal:dir(ltr) > trough, scale.color.fine-tune.horizontal:dir(rtl) > trough { + padding-bottom: 7px; + background-position: 0 -6px; } + scale.color.fine-tune.horizontal:dir(ltr) > trough > slider, scale.color.fine-tune.horizontal:dir(rtl) > trough > slider { + margin-bottom: -15px; + margin-top: 6px; } + scale.color.fine-tune.vertical:dir(ltr) { + padding: 0 0 0 12px; } + scale.color.fine-tune.vertical:dir(ltr) > trough { + padding-left: 7px; + background-position: 6px 0; } + scale.color.fine-tune.vertical:dir(ltr) > trough > slider { + margin-left: -15px; + margin-right: 6px; } + scale.color.fine-tune.vertical:dir(rtl) { + padding: 0 12px 0 0; } + scale.color.fine-tune.vertical:dir(rtl) > trough { + padding-right: 7px; + background-position: -6px 0; } + scale.color.fine-tune.vertical:dir(rtl) > trough > slider { + margin-right: -15px; + margin-left: 6px; } + +/***************** + * Progress bars * + *****************/ +progressbar { + font-size: smaller; + color: rgba(238, 238, 236, 0.4); + font-feature-settings: "tnum"; } + progressbar.horizontal > trough { + min-width: 150px; } + progressbar.horizontal > trough, progressbar.horizontal > trough > progress { + min-height: 2px; } + progressbar.vertical > trough { + min-height: 80px; } + progressbar.vertical > trough, progressbar.vertical > trough > progress { + min-width: 2px; } + progressbar.horizontal > trough > progress { + margin: 0 -1px; } + progressbar.vertical > trough > progress { + margin: -1px 0; } + progressbar > trough > progress { + /* share most of scales' */ + /* override insensitive that is specific to progress */ + border-radius: 1.5px; } + progressbar > trough > progress:disabled { + background-color: #888a8d; + border-color: #888a8d; } + progressbar > trough > progress.left { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } + progressbar > trough > progress.right { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; } + progressbar > trough > progress.top { + border-top-right-radius: 5px; + border-top-left-radius: 5px; } + progressbar > trough > progress.bottom { + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; } + progressbar.osd { + min-width: 3px; + min-height: 3px; + background-color: transparent; } + progressbar.osd > trough { + border-style: none; + border-radius: 0; + background-color: transparent; + box-shadow: none; } + progressbar.osd > trough > progress { + border-style: none; + border-radius: 0; } + progressbar > trough.empty > progress { + all: unset; } + +/************* + * Level Bar * + *************/ +levelbar.horizontal trough > block { + min-height: 9px; + border-radius: 5px; } + levelbar.horizontal trough > block:dir(rtl) { + border-radius: 0 5px 5px 0; } + levelbar.horizontal trough > block:dir(ltr) { + border-radius: 5px 0 0 5px; } + levelbar.horizontal trough > block.empty, levelbar.horizontal trough > block.full { + border-radius: 5px; } + +levelbar.horizontal.discrete trough > block { + min-height: 2px; + margin: 1px; + min-width: 24px; + border-radius: 0; } + levelbar.horizontal.discrete trough > block:first-child { + border-radius: 2px 0 0 2px; } + levelbar.horizontal.discrete trough > block:last-child { + border-radius: 0 2px 2px 0; } + +levelbar.vertical trough > block { + min-width: 9px; + border-radius: 5px; } + +levelbar.vertical.discrete > trough > block { + min-width: 2px; + margin: 1px 0; + min-height: 32px; } + +levelbar > trough { + padding: 0; } + +levelbar > trough > block { + border: 1px solid; } + levelbar > trough > block.low { + border-color: #fd7d00; + background-color: #fd7d00; } + levelbar > trough > block.high, levelbar > trough > block:not(.empty) { + border-color: #2777ff; + background-color: #2777ff; } + levelbar > trough > block.full { + border-color: #308e63; + background-color: #308e63; } + levelbar > trough > block.empty { + background-color: #181a20; + border-color: #181a20; } + +/**************** + * Print dialog * +*****************/ +window.dialog.print drawing { + color: #eeeeec; + background: none; + border: none; + padding: 0; } + window.dialog.print drawing paper { + background: white; + color: #2e3436; + border: 1px solid #0d0e11; } + +window.dialog.print .dialog-action-box { + margin: 12px; } + +/********** + * Frames * + **********/ +frame, +.frame { + border: 1px solid #0d0e11; } + +frame { + border-radius: 8px; } + frame > label { + margin: 4px; } + +actionbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid #0d0e11; } + +scrolledwindow > overshoot.top { + background-image: radial-gradient(farthest-side at top, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at top, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 100% 3%, 100% 50%; + background-repeat: no-repeat; + background-position: top; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.bottom { + background-image: radial-gradient(farthest-side at bottom, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at bottom, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 100% 3%, 100% 50%; + background-repeat: no-repeat; + background-position: bottom; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.left { + background-image: radial-gradient(farthest-side at left, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at left, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 3% 100%, 50% 100%; + background-repeat: no-repeat; + background-position: left; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.right { + background-image: radial-gradient(farthest-side at right, black 85%, rgba(0, 0, 0, 0)), radial-gradient(farthest-side at right, rgba(238, 238, 236, 0.07), rgba(238, 238, 236, 0)); + background-size: 3% 100%, 50% 100%; + background-repeat: no-repeat; + background-position: right; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > junction { + background: #0d0e11, linear-gradient(to bottom, transparent 1px, #272a34 1px), linear-gradient(to right, transparent 1px, #272a34 1px); } + scrolledwindow > junction:dir(rtl) { + background: #0d0e11, linear-gradient(to bottom, transparent 1px, #272a34 1px), linear-gradient(to left, transparent 1px, #272a34 1px); } + +separator { + background: #181a20; + min-width: 1px; + min-height: 1px; } + +/********* + * Lists * + *********/ +listview, +list { + color: white; + background-color: #272a34; + border-color: #0d0e11; } + listview:backdrop, + list:backdrop { + color: #d4d5d7; + background-color: #292c37; + border-color: #16171d; } + listview > row, + list > row { + padding: 2px; } + listview > row.expander, + list > row.expander { + padding: 0px; } + listview > row.expander .row-header, + list > row.expander .row-header { + padding: 2px; } + listview.horizontal row.separator, listview.separators.horizontal > row:not(.separator), + list.horizontal row.separator, + list.separators.horizontal > row:not(.separator) { + border-left: 1px solid #4f5159; } + listview:not(.horizontal) row.separator, listview.separators:not(.horizontal) > row:not(.separator), + list:not(.horizontal) row.separator, + list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: 1px solid #4f5159; } + +row { + outline: 0 solid transparent; + outline-offset: 4px; } + +row:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +row.activatable.has-open-popup, row.activatable:hover { + background-color: rgba(238, 238, 236, 0.05); } + +row.activatable:active { + box-shadow: inset 0 2px 2px -2px rgba(0, 0, 0, 0.2); } + +row.activatable:selected:active { + box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.5); } + +row.activatable.has-open-popup:selected, row.activatable:selected:hover { + background-color: #3b83fd; } + +row:selected { + outline-color: rgba(255, 255, 255, 0.3); } + +columnview > listview > row { + padding: 0; } + columnview > listview > row > cell { + padding: 8px 6px; } + columnview > listview > row > cell:not(:first-child) { + border-left: 1px solid transparent; } + +columnview.column-separators > listview > row > cell { + border-left-color: #4f5159; } + +columnview.data-table > listview > row > cell { + padding-top: 2px; + padding-bottom: 2px; } + +treeexpander { + border-spacing: 4px; } + +/******************************************************** + * Data Tables * + * treeview like tables with individual focusable cells * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 * + ********************************************************/ +columnview row:not(:selected) cell editablelabel:not(.editing):focus-within { + outline: 2px solid rgba(39, 119, 255, 0.7); } + +columnview row:not(:selected) cell editablelabel.editing:focus-within { + outline: 2px solid #2777ff; } + +columnview row:not(:selected) cell editablelabel.editing text selection { + color: #ffffff; + background-color: #2777ff; } + +/******************************************************* + * Rich Lists * + * Large list usually containing lots of widgets * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/3073 * + *******************************************************/ +.rich-list { + /* rich lists usually containing other widgets than just labels/text */ } + .rich-list > row { + padding: 8px 12px; + min-height: 32px; + /* should be tall even when only containing a label */ } + .rich-list > row > box { + border-spacing: 12px; } + +/********************* + * App Notifications * + *********************/ +.app-notification { + padding: 10px; + border-spacing: 10px; + border-radius: 0 0 5px 5px; + background-color: #303340; + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), transparent 2px); + background-clip: padding-box; } + .app-notification border { + border: none; } + +/************* + * Expanders * + *************/ +expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + expander:disabled { + color: #888a8d; } + expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + +expander-widget > box > title { + outline: 0 solid transparent; + outline-offset: 4px; } + +expander-widget:focus:focus-visible > box > title { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: -2px; } + +expander-widget > box > title { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + border-radius: 5px; } + expander-widget > box > title:hover > expander { + color: white; } + +.navigation-sidebar:not(decoration):not(window):drop(active):focus, .navigation-sidebar:not(decoration):not(window):drop(active), +placessidebar:not(decoration):not(window):drop(active):focus, +placessidebar:not(decoration):not(window):drop(active), +stackswitcher:not(decoration):not(window):drop(active):focus, +stackswitcher:not(decoration):not(window):drop(active), +expander-widget:not(decoration):not(window):drop(active):focus, +expander-widget:not(decoration):not(window):drop(active) { + box-shadow: none; } + +/************ + * Calendar * + ***********/ +calendar { + color: white; + border: 1px solid #0d0e11; } + calendar > header { + border-bottom: 1px solid #0d0e11; } + calendar > header > button { + border: none; + box-shadow: none; + background: none; + border-radius: 0; } + calendar > header > button:backdrop { + background: none; } + calendar > grid > label.today { + box-shadow: inset 0px -2px #0d0e11; } + calendar > grid > label.today:selected { + box-shadow: none; } + calendar > grid > label:focus { + outline-color: rgba(39, 119, 255, 0.7); + outline-offset: -2px; + outline-width: 2px; + outline-style: solid; } + calendar > grid > label.day-number { + padding: 4px; } + calendar > grid > label.day-number:selected { + border-radius: 3px; } + calendar > grid > label.day-number.other-month { + color: alpha(currentColor,0.3); } + +/*********** + * Dialogs * + ***********/ +window.dialog.message .titlebar { + min-height: 20px; + background-image: none; + background-color: #23252e; + border-style: none; + border-top-left-radius: 7px; + border-top-right-radius: 7px; } + +window.dialog.message box.dialog-vbox.vertical { + border-spacing: 10px; } + +window.dialog.message label.title { + font-weight: 800; + font-size: 15pt; } + +window.dialog.message.csd.background { + border-bottom-left-radius: 9px; + border-bottom-right-radius: 9px; } + +window.dialog.message.csd .dialog-action-area button { + padding: 10px 14px; + border-radius: 0; + border-left-style: solid; + border-right-style: none; + border-bottom-style: none; } + window.dialog.message.csd .dialog-action-area button:first-child { + border-left-style: none; + border-bottom-left-radius: 7px; } + window.dialog.message.csd .dialog-action-area button:last-child { + border-bottom-right-radius: 7px; } + +filechooser .dialog-action-box { + border-top: 1px solid #0d0e11; } + +filechooser #pathbarbox { + border-bottom: 1px solid #23252e; } + +filechooserbutton > button > box { + border-spacing: 6px; } + +filechooserbutton:drop(active) { + box-shadow: none; + border-color: transparent; } + +/*********** + * Sidebar * + ***********/ +.sidebar { + background-color: #252831; } + .sidebar:not(separator):dir(ltr), .sidebar.left:not(separator), .sidebar.left:not(separator):dir(rtl) { + border-right: 1px solid #0d0e11; + border-left-style: none; } + .sidebar:not(separator):dir(rtl), .sidebar.right:not(separator) { + border-left: 1px solid #0d0e11; + border-right-style: none; } + .sidebar listview.view, + .sidebar list { + background-color: transparent; } + paned .sidebar.left, paned .sidebar.right, paned .sidebar.left:dir(rtl), paned .sidebar:dir(rtl), paned .sidebar:dir(ltr), paned .sidebar { + border-style: none; } + +stacksidebar list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: none; } + +stacksidebar row { + padding: 10px 4px; } + stacksidebar row > label { + padding-left: 6px; + padding-right: 6px; } + stacksidebar row.needs-attention > label { + background-size: 6px 6px, 0 0; } + stacksidebar row:selected { + background-color: #3b3e46; + border-radius: 5px; + color: #eeeeec; } + stacksidebar row:selected:hover:dir(ltr), stacksidebar row:selected:hover:dir(rtl) { + background-color: #2f3238; } + stacksidebar row:focus:focus-visible { + outline-width: 0; + background-color: #2777ff; + color: #ffffff; } + stacksidebar row.activatable:active, stacksidebar row.activatable:selected:active { + box-shadow: none; } + +separator.sidebar { + background-color: #0d0e11; } + +/********************** + * Navigation Sidebar * + **********************/ +.navigation-sidebar { + padding: 5px 0; } + .navigation-sidebar > separator { + margin: 5px; } + .navigation-sidebar > row { + min-height: 36px; + padding: 0 8px; + border-radius: 5px; + margin: 0 5px 2px; } + .navigation-sidebar > row:hover, .navigation-sidebar > row:focus-visible:focus-within { + background-color: #2f3238; } + .navigation-sidebar > row:selected { + background-color: #3b3e46; + color: inherit; } + .navigation-sidebar > row:selected:hover { + background-color: #2f3238; } + .navigation-sidebar > row:selected:focus-visible:focus-within { + outline-width: 0; + color: #ffffff; + background-color: #2777ff; } + .navigation-sidebar > row:selected:focus-visible:focus-within:hover { + background-color: #005af3; } + .navigation-sidebar > row:disabled { + color: #888a8d; } + +/**************** + * File chooser * + ****************/ +row image.sidebar-icon { + opacity: 0.7; } + +/* this should be more generic, only using .navigation-sidebar + https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 +*/ +placessidebar .navigation-sidebar > row { + padding: 0; } + placessidebar .navigation-sidebar > row > revealer { + padding: 0 14px; } + placessidebar .navigation-sidebar > row image.sidebar-icon:dir(ltr) { + padding-right: 8px; } + placessidebar .navigation-sidebar > row image.sidebar-icon:dir(rtl) { + padding-left: 8px; } + placessidebar .navigation-sidebar > row label.sidebar-label:dir(ltr) { + padding-right: 2px; } + placessidebar .navigation-sidebar > row label.sidebar-label:dir(rtl) { + padding-left: 2px; } + button.sidebar-button { + min-height: 26px; + min-width: 26px; + margin-top: 3px; + margin-bottom: 3px; + padding: 0; + border-radius: 100%; } + placessidebar .navigation-sidebar > row:selected:active { + box-shadow: none; } + placessidebar .navigation-sidebar > row.sidebar-placeholder-row { + padding: 0 8px; + min-height: 2px; + background-image: image(#19a187); + background-clip: content-box; } + placessidebar .navigation-sidebar > row.sidebar-new-bookmark-row { + color: #2777ff; } + placessidebar .navigation-sidebar > row:drop(active):not(:disabled) { + color: #19a187; + box-shadow: inset 0 1px #19a187, inset 0 -1px #19a187; } + placessidebar .navigation-sidebar > row:drop(active):not(:disabled):selected { + color: #ffffff; + background-color: #19a187; } + +placesview .server-list-button > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(0turn); } + +placesview .server-list-button:checked > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(-0.5turn); } + +placesview > actionbar > revealer > box > box { + border-spacing: 6px; } + +/********* + * Paned * + *********/ +paned > separator { + min-width: 1px; + min-height: 1px; + -gtk-icon-source: none; + border-style: none; + background-color: transparent; + background-image: image(#0d0e11); + background-size: 1px 1px; } + paned > separator:selected { + background-image: image(#2777ff); } + paned > separator.wide { + min-width: 5px; + min-height: 5px; + background-color: #23252e; + background-image: image(#0d0e11), image(#0d0e11); + background-size: 1px 1px, 1px 1px; } + +paned.horizontal > separator { + background-repeat: repeat-y; } + paned.horizontal > separator:dir(ltr) { + margin: 0 -8px 0 0; + padding: 0 8px 0 0; + background-position: left; } + paned.horizontal > separator:dir(rtl) { + margin: 0 0 0 -8px; + padding: 0 0 0 8px; + background-position: right; } + paned.horizontal > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-y, repeat-y; + background-position: left, right; } + +paned.vertical > separator { + margin: 0 0 -8px 0; + padding: 0 0 8px 0; + background-repeat: repeat-x; + background-position: top; } + paned.vertical > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-x, repeat-x; + background-position: bottom, top; } + +/************** + * GtkVideo * + **************/ +video { + background: black; } + video image.osd { + min-width: 64px; + min-height: 64px; + border-radius: 32px; } + +/************ + * Tooltips * + ************/ +tooltip { + padding: 6px 10px; + border-radius: 8px; + box-shadow: none; } + tooltip.background { + background-color: rgba(0, 0, 0, 0.8); + background-clip: padding-box; + border: 1px solid rgba(255, 255, 255, 0.1); + color: white; } + tooltip > box { + border-spacing: 6px; } + +/***************** + * Color Chooser * + *****************/ +colorswatch { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + colorswatch { + outline: 0 solid transparent; + outline-offset: 6px; } + colorswatch:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 4px; + outline-offset: -2px; } + colorswatch:drop(active), colorswatch { + border-style: none; } + colorswatch.top { + border-top-left-radius: 5.5px; + border-top-right-radius: 5.5px; } + colorswatch.top > overlay { + border-top-left-radius: 5px; + border-top-right-radius: 5px; } + colorswatch.bottom { + border-bottom-left-radius: 5.5px; + border-bottom-right-radius: 5.5px; } + colorswatch.bottom > overlay { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; } + colorswatch.left, colorswatch:first-child:not(.top) { + border-top-left-radius: 5.5px; + border-bottom-left-radius: 5.5px; } + colorswatch.left > overlay, colorswatch:first-child:not(.top) > overlay { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } + colorswatch.right, colorswatch:last-child:not(.bottom) { + border-top-right-radius: 5.5px; + border-bottom-right-radius: 5.5px; } + colorswatch.right > overlay, colorswatch:last-child:not(.bottom) > overlay { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; } + colorswatch.dark > overlay { + color: white; } + colorswatch.dark.activatable:hover > overlay { + border-color: #0d0e11; } + colorswatch.light > overlay { + color: black; } + colorswatch.light.activatable:hover > overlay { + border-color: #0d0e11; } + colorswatch:drop(active) { + box-shadow: none; } + colorswatch.light:drop(active) > overlay { + border-color: #19a187; + box-shadow: inset 0 0 0 2px #0d0e11, inset 0 0 0 1px #19a187; } + colorswatch.dark:drop(active) > overlay { + border-color: #19a187; + box-shadow: inset 0 0 0 2px #0d0e11, inset 0 0 0 1px #19a187; } + colorswatch > overlay { + border: 1px solid #0d0e11; } + colorswatch.activatable:hover > overlay { + box-shadow: inset 0 1px rgba(255, 255, 255, 0.4), inset 0 -1px rgba(0, 0, 0, 0.2); } + colorswatch#add-color-button { + border-radius: 5px 0 0 5px; } + colorswatch#add-color-button:only-child { + border-radius: 5px; } + colorswatch#add-color-button > overlay { + color: #eeeeec; + outline-color: rgba(39, 119, 255, 0.7); + border-color: #0d0e11; + background-image: linear-gradient(to top, #252831 2px, #272a34); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + colorswatch#add-color-button.activatable:hover > overlay { + color: #eeeeec; + border-color: #0d0e11; + background-image: linear-gradient(to top, #1e2128 20%, #20232b 90%); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.27); } + colorswatch:disabled { + opacity: 0.5; } + colorswatch:disabled > overlay { + border-color: rgba(0, 0, 0, 0.6); + box-shadow: none; } + row:selected colorswatch { + box-shadow: 0 0 0 2px #ffffff; } + colorswatch#editor-color-sample { + border-radius: 4px; } + colorswatch#editor-color-sample > overlay { + border-radius: 4.5px; } + +plane { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + plane { + outline: 0 solid transparent; + outline-offset: 6px; } + plane:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.7); + outline-width: 2px; + outline-offset: 2px; } + +colorchooser .popover.osd { + border-radius: 5px; } + +/******** + * Misc * + ********/ +.content-view { + background-color: #13151a; } + .content-view:hover { + -gtk-icon-filter: brightness(1.2); } + .content-view .tile { + margin: 2px; + background-color: black; + border-radius: 0; + padding: 0; } + .content-view .tile:active, .content-view .tile:selected { + background-color: #2777ff; } + .content-view .tile:disabled { + background-color: #242731; } + +.osd .scale-popup button.flat { + border-style: none; + border-radius: 5px; } + +.scale-popup button:hover { + background-color: rgba(238, 238, 236, 0.1); + border-radius: 5px; } + +/********************** + * Window Decorations * + *********************/ +window { + border-width: 0px; } + window.csd { + box-shadow: 0 3px 9px 1px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(13, 14, 17, 0.9); + margin: 0px; + border-radius: 8px 8px 0 0; } + window.csd:backdrop { + box-shadow: 0 3px 9px 1px transparent, 0 2px 6px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(13, 14, 17, 0.9); + transition: 200ms ease-out; } + window.csd.popup { + border-radius: 5px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(13, 14, 17, 0.8); } + window.csd.dialog.message { + border-radius: 8px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(13, 14, 17, 0.8); } + window.csd.solid-csd { + margin: 0; + padding: 0; + border: solid 1px #0d0e11; + border-radius: 0; + box-shadow: inset 0 0 0 3px #1c1e25, inset 0 1px rgba(238, 238, 236, 0.07); } + window.csd.solid-csd:backdrop { + box-shadow: inset 0 0 0 3px #23252e, inset 0 1px rgba(238, 238, 236, 0.07); } + window.maximized, window.fullscreen, window.tiled, window.tiled-top, window.tiled-left, window.tiled-right, window.tiled-bottom { + border-radius: 0; } + window.popup { + box-shadow: none; } + window.ssd { + box-shadow: 0 0 0 1px rgba(13, 14, 17, 0.9); } + +tooltip.csd { + border-radius: 5px; + box-shadow: none; } + +filechooser placessidebar.sidebar row.sidebar-row:selected, +.nautilus-window placessidebar.sidebar row.sidebar-row:selected, .view:selected:focus, .view:selected, +textview > text:selected:focus, +textview > text:selected, textview > text > selection:focus, textview > text > selection, iconview:selected:focus, iconview:selected, flowbox > flowboxchild:selected, gridview > child:selected, +entry > text > selection, modelbutton.flat:selected, spinbutton:not(.vertical) > text > selection, spinbutton.vertical > text > text > selection, spinbutton.vertical > text > selection, columnview.view:selected:focus, columnview.view:selected, +treeview.view:selected:focus, +treeview.view:selected, row:selected, calendar > grid > label.day-number:selected { + background-color: #2777ff; } + label:selected, filechooser placessidebar.sidebar row.sidebar-row:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected, .view:selected:focus, .view:selected, + textview > text:selected:focus, + textview > text:selected, textview > text > selection:focus, textview > text > selection, iconview:selected:focus, iconview:selected, flowbox > flowboxchild:selected, gridview > child:selected, + entry > text > selection, modelbutton.flat:selected, spinbutton:not(.vertical) > text > selection, spinbutton.vertical > text > text > selection, spinbutton.vertical > text > selection, columnview.view:selected:focus, columnview.view:selected, + treeview.view:selected:focus, + treeview.view:selected, row:selected, calendar > grid > label.day-number:selected { + color: #ffffff; } + label:disabled > selection, label:disabled:selected, filechooser placessidebar.sidebar row.sidebar-row:disabled:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:disabled:selected, .view:disabled:selected, + textview > text:disabled:selected:focus, + textview > text:disabled:selected, textview > text > selection:disabled, iconview:disabled:selected:focus, iconview:disabled:selected, flowbox > flowboxchild:disabled:selected, gridview > child:disabled:selected, + entry > text > selection:disabled, modelbutton.flat:disabled:selected, spinbutton:not(.vertical) > text > selection:disabled, spinbutton.vertical > text > text > selection:disabled, spinbutton.vertical > text > selection:disabled, columnview.view:disabled:selected, + treeview.view:disabled:selected, row:disabled:selected, calendar > grid > label.day-number:disabled:selected { + color: #93bbff; } + +.monospace { + font-family: monospace; } + +/********************** + * Touch Copy & Paste * + *********************/ +cursor-handle { + background-color: transparent; + background-image: none; + box-shadow: none; + border-style: none; + min-width: 20px; + min-height: 24px; + padding-left: 20px; + padding-right: 20px; + padding-top: 24px; + padding-bottom: 24px; } + cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-dark.png"), url("assets/text-select-start-dark@2.png")); } + cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-dark.png"), url("assets/text-select-end-dark@2.png")); } + cursor-handle.insertion-cursor:dir(ltr), cursor-handle.insertion-cursor:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-dark.png"), url("assets/slider-horz-scale-has-marks-above-dark@2.png")); } + cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover-dark.png"), url("assets/text-select-start-hover-dark@2.png")); } + cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover-dark.png"), url("assets/text-select-end-hover-dark@2.png")); } + cursor-handle.insertion-cursor:hover:dir(ltr), cursor-handle.insertion-cursor:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover-dark.png"), url("assets/slider-horz-scale-has-marks-above-hover-dark@2.png")); } + cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active-dark.png"), url("assets/text-select-start-active-dark@2.png")); } + cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active-dark.png"), url("assets/text-select-end-active-dark@2.png")); } + cursor-handle.insertion-cursor:active:dir(ltr), cursor-handle.insertion-cursor:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active-dark.png"), url("assets/slider-horz-scale-has-marks-above-active-dark@2.png")); } + +shortcuts-section { + margin: 20px; } + +.shortcuts-search-results { + margin: 20px; + border-spacing: 24px; } + +shortcut { + border-spacing: 6px; } + +shortcut > .keycap { + min-width: 20px; + min-height: 25px; + margin-top: 2px; + padding-bottom: 3px; + padding-left: 6px; + padding-right: 6px; + color: #eeeeec; + background-color: #272a34; + border: 1px solid; + border-color: #0d0e11; + border-radius: 5px; + box-shadow: inset 0 -3px #17191f; + font-size: smaller; } + +:not(decoration):not(window):drop(active):focus, +:not(decoration):not(window):drop(active) { + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; + caret-color: #19a187; } + +stackswitcher > button.text-button { + min-width: 100px; } + +stackswitcher.circular { + border-spacing: 12px; } + stackswitcher.circular > button.circular, + stackswitcher.circular > button.text-button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; } + +/************* + * App Icons * + *************/ +/* Outline for low res icons */ +.lowres-icon { + -gtk-icon-shadow: 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1); } + +/* Drapshadow for large icons */ +.icon-dropshadow { + -gtk-icon-shadow: 0 1px 12px rgba(0, 0, 0, 0.05), 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1); } + +/********* + * Emoji * + ********/ +popover.emoji-picker > contents { + padding: 0; } + +.emoji-searchbar { + padding: 6px; + border-spacing: 6px; + border-bottom: 1px solid #0d0e11; } + +.emoji-toolbar { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid #0d0e11; } + +button.emoji-section { + border-color: transparent; + border-width: 3px; + border-style: none none solid; + border-radius: 0; + padding: 3px 0 0; + min-width: 32px; + min-height: 28px; + /* reset props inherited from the button style */ + background: none; + box-shadow: none; + text-shadow: none; } + button.emoji-section:hover { + border-color: rgba(238, 238, 236, 0.1); } + button.emoji-section:checked { + border-color: #2777ff; } + +popover.emoji-picker emoji { + font-size: x-large; + padding: 6px; + border-radius: 6px; } + popover.emoji-picker emoji:focus, popover.emoji-picker emoji:hover { + background: #2777ff; } + +emoji-completion-row > box { + border-spacing: 10px; + padding: 2px 10px; } + +emoji-completion-row:focus, +emoji-completion-row:hover { + background-color: #2777ff; + color: #ffffff; } + +emoji-completion-row emoji:focus, +emoji-completion-row emoji:hover { + background-color: #3b3e46; } + +popover.entry-completion > contents { + padding: 0; } + +statusbar { + padding: 6px 10px 6px 10px; } + +/* Nautilus */ +@define-color disk_space_unknown #383c4a; +@define-color disk_space_used #2777ff; +@define-color disk_space_free white; +filechooser placessidebar.sidebar, +.nautilus-window placessidebar.sidebar { + box-shadow: inset 0 8px 4px -8px rgba(0, 0, 0, 0.3); } + filechooser placessidebar.sidebar:dir(ltr), + .nautilus-window placessidebar.sidebar:dir(ltr) { + background-image: linear-gradient(to right, #1a1c23 41px, #23252e 0); } + filechooser placessidebar.sidebar:dir(rtl), + .nautilus-window placessidebar.sidebar:dir(rtl) { + background-image: linear-gradient(to left, #1a1c23 41px, #23252e 0); } + filechooser placessidebar.sidebar:backdrop, + .nautilus-window placessidebar.sidebar:backdrop { + box-shadow: none; } + filechooser placessidebar.sidebar row.sidebar-row:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected { + margin-left: 6px; + margin-right: 6px; + border-radius: 5px; + box-shadow: 0 1px 4px rgba(39, 119, 255, 0.5); + transition: box-shadow 200ms ease-out; } + filechooser placessidebar.sidebar row.sidebar-row:selected:backdrop, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:backdrop { + box-shadow: none; } + filechooser placessidebar.sidebar row.sidebar-row:selected:dir(ltr), + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:dir(ltr) { + background-image: linear-gradient(to right, #005af3 35px, transparent 0); } + filechooser placessidebar.sidebar row.sidebar-row:selected:dir(rtl), + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:dir(rtl) { + background-image: linear-gradient(to left, #005af3 35px, transparent 0); } + filechooser placessidebar.sidebar row.sidebar-row:selected revealer, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer { + padding-left: 8px; + padding-right: 8px; } + filechooser placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-icon, filechooser placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-label, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-icon, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-label { + color: #ffffff; } + filechooser placessidebar.sidebar row.sidebar-row .sidebar-icon, + .nautilus-window placessidebar.sidebar row.sidebar-row .sidebar-icon { + padding-right: 20px; } + +.nautilus-window .floating-bar { + color: #ffffff; + background-color: #2777ff; + border-color: #00348d; + margin: 10px; + box-shadow: 0 1px 4px rgba(39, 119, 255, 0.5); + transition: background-color 200ms ease-out; } + .nautilus-window .floating-bar:backdrop { + color: inherit; + box-shadow: none; + border-color: #0d0e11; } + .nautilus-window .floating-bar.bottom.left, .nautilus-window .floating-bar.bottom.right { + border-radius: 5px; + border-style: solid; } + +.path-bar-box:backdrop { + border-color: #16171d; } + +/* XFCE4 PANEL */ +.xfce4-panel.background { + background: rgba(35, 37, 46, 0.8); } + +.xfce4-panel button { + border: 0; + border-radius: 0; + box-shadow: none; + text-shadow: none; + background: transparent; + color: #eeeeec; } + .xfce4-panel button:hover { + background: rgba(0, 0, 0, 0.2); } + .xfce4-panel button:not(#whiskermenu-button):checked, .xfce4-panel button:not(#whiskermenu-button):active { + box-shadow: inset 0 4px 0 #2777ff; + background: rgba(0, 0, 0, 0.2); } + +.xfce4-panel.vertical button:not(#whiskermenu-button):checked, .xfce4-panel.vertical button:not(#whiskermenu-button):active { + box-shadow: inset 4px 0 0 #2777ff; } + +/* XFCE4 NOTIFICATIONS */ +#XfceNotifyWindow { + background-color: #272a34; } + +/* Whisker menu */ +#whiskermenu-window entry { + border-radius: 100px; + border: 2px solid #2777ff; + box-shadow: none; } + +#whiskermenu-window button { + transition-duration: 0s; } + #whiskermenu-window button:hover { + color: white; + outline-color: rgba(39, 119, 255, 0.7); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border-color: transparent; + border-bottom-color: #1c1e25; } + #whiskermenu-window button:checked { + border-color: transparent; } + +#whiskermenu-window scrolledwindow.frame { + border: 0; + border-radius: 8px; + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3); + background: #1c1e25; + padding: 7px 10px; + margin: 0 5px; } + #whiskermenu-window scrolledwindow.frame treeview { + background: transparent; + border-radius: 5px; } + #whiskermenu-window scrolledwindow.frame treeview:hover, #whiskermenu-window scrolledwindow.frame treeview:active, #whiskermenu-window scrolledwindow.frame treeview:selected { + background-color: rgba(0, 0, 0, 0.27); + color: inherit; } + +/* XFCE4 panel action buttons */ +#XfcePanelWindowWrapper > widget > box > #xfce-panel-button > image { + -gtk-icon-style: symbolic; + -gtk-icon-transform: scale(0.7); } + +/* XFCE4 workspace switcher */ +wnck-pager { + background-color: #3d4251; } + wnck-pager:selected { + background-color: black; } + wnck-pager:hover { + background-color: black; } + +/* LightDM */ +.lightdm-gtk-greeter #panel_window { + background: rgba(35, 37, 46, 0.8); + color: #eeeeec; + text-shadow: none; + -gtk-icon-shadow: none; } + +.lightdm-gtk-greeter #login_window { + border: 0; + background-color: rgba(35, 37, 46, 0.8); + border-radius: 5px; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.15); } + .lightdm-gtk-greeter #login_window entry { + background: rgba(35, 37, 46, 0.4); + border-color: rgba(35, 37, 46, 0.3); + min-height: 32px; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.05), 0 1px 2px rgba(0, 0, 0, 0.4); } + .lightdm-gtk-greeter #login_window entry image { + margin: 0; } + .lightdm-gtk-greeter #login_window #buttonbox_frame { + padding-top: 20px; + background: #23252e; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 0 0 5px 5px; + box-shadow: inset 0 -4px rgba(0, 0, 0, 0.2), inset 0 1px 2px rgba(0, 0, 0, 0.27); } + .lightdm-gtk-greeter #login_window #buttonbox_frame button { + border: 0; + color: white; + text-shadow: none; } + .lightdm-gtk-greeter #login_window #buttonbox_frame #cancel_button { + background: rgba(0, 0, 0, 0.27); + box-shadow: none; + color: #eeeeec; } + .lightdm-gtk-greeter #login_window #buttonbox_frame #login_button { + background: #2777ff; + box-shadow: inset 0 -2px rgba(0, 0, 0, 0.2); } + +/* Thunar */ +.thunar .warning { + opacity: 0; + font-size: 0; + margin: -10px 0; } + +/* GTK NAMED COLORS + ---------------- + use responsibly! */ +/* +widget text/foreground color */ +@define-color theme_fg_color #eeeeec; +/* +text color for entries, views and content in general */ +@define-color theme_text_color white; +/* +widget base background color */ +@define-color theme_bg_color #23252e; +/* +text widgets and the like base background color */ +@define-color theme_base_color #272a34; +/* +base background color of selections */ +@define-color theme_selected_bg_color #2777ff; +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color #ffffff; +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color #242731; +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color #888a8d; +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color #272a34; +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color #888a8d; +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color white; +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #23252e; +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #292c37; +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color #2777ff; +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color #ffffff; +/* +insensitive color on backdrop windows*/ +@define-color unfocused_insensitive_color #43495a; +/* +widgets main borders color */ +@define-color borders #0d0e11; +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #16171d; +/* +these are pretty self explicative */ +@define-color warning_color #fd7d00; +@define-color error_color #bf1717; +@define-color success_color #308e63; +/* +these colors are exported for the window manager and shouldn't be used in applications, +read if you used those and something break with a version upgrade you're on your own... */ +@define-color wm_title shade(#eeeeec, 1.8); +@define-color wm_unfocused_title #888a8d; +@define-color wm_highlight rgba(0, 0, 0, 0); +@define-color wm_borders_edge rgba(238, 238, 236, 0.07); +@define-color wm_bg_a shade(#23252e, 1.2); +@define-color wm_bg_b #23252e; +@define-color wm_shadow alpha(black, 0.35); +@define-color wm_border alpha(black, 0.18); +@define-color wm_button_hover_color_a shade(#23252e, 1.3); +@define-color wm_button_hover_color_b #23252e; +@define-color wm_button_active_color_a shade(#23252e, 0.85); +@define-color wm_button_active_color_b shade(#23252e, 0.89); +@define-color wm_button_active_color_c shade(#23252e, 0.9); +/* content view background such as thumbnails view in Photos or Boxes */ +@define-color content_view_bg #272a34; +/* Very contrasty background for text views (@theme_text_color foreground) */ +@define-color text_view_bg #1a1c23; +.gedit-document-panel { + background-color: @sidebar_bg; +} + +.gedit-document-panel:backdrop { + color: #b0b2b2; +} + +.gedit-document-panel row:selected:backdrop { + background-color: #8b8e8f; +} + +.gedit-document-panel-group-row, +.gedit-document-panel-group-row:hover { + border-top: 1px solid alpha(currentColor, 0.3); +} + +.gedit-document-panel-group-row:first-child, +.gedit-document-panel-group-row:first-child:hover { + border-top: 0px; +} + +/* Try to look as the notebook tab close button */ +.gedit-document-panel row button.flat { + padding: 0; + margin-top: 8px; + margin-bottom: 8px; + min-width: 18px; + min-height: 18px; + color: alpha(currentColor,0.3); +} + +.gedit-document-panel row:hover button.flat { + color: alpha(currentColor,0.5); +} + +.gedit-document-panel row button.flat:hover { + color: @theme_fg_color; +} + +statusbar { + border-top: 1px solid @borders; +} + +.gedit-search-slider { + background-color: @theme_base_color; + padding: 6px; + border-color: @borders; + border-radius: 0 0 3px 3px; + border-width: 0 1px 1px 1px; + border-style: solid; +} + +.gedit-search-entry-occurrences-tag { + background-color: @theme_base_color; + background-image: none; + color: shade (@theme_unfocused_fg_color, 0.8); + border: 0px; + margin: 2px; + padding: 2px; +} +.nautilus-window, +.nautilus-window notebook, +.nautilus-window notebook > stack { + background: @theme_base_color; +} + +.nautilus-canvas-item { + border-radius: 5px; +} + +.nautilus-canvas-item.dim-label, +.nautilus-list-dim-label { + color: mix (@theme_fg_color, @theme_bg_color, 0.50); +} + +.nautilus-canvas-item.dim-label:selected, +.nautilus-list-dim-label:selected { + color: mix (@theme_selected_fg_color, @theme_selected_bg_color, 0.20); +} + +/* Toolbar */ + +/* Here we use the .button background-image colors from Adwaita, but ligthen them, + * since is not possible to use lighten () in common css. */ +@keyframes needs_attention_keyframes { + 0% {background-image: linear-gradient(to bottom, #fafafa, #ededed 40%, #e0e0e0); border-color: @borders; } + /* can't do animation-direction, so holding the color on two keyframes */ + 30% {background-image: linear-gradient(to bottom, @theme_base_color, @theme_base_color, @theme_base_color); border-color: @theme_fg_color; } + 90% {background-image: linear-gradient(to bottom, @theme_base_color, @theme_base_color, @theme_base_color); border-color: @theme_fg_color; } + 100% {background-image: linear-gradient(to bottom, #fafafa, #ededed 40%, #e0e0e0); border-color: @borders; } +} + +.nautilus-operations-button-needs-attention { + animation: needs_attention_keyframes 2s ease-in-out; +} +.nautilus-operations-button-needs-attention-multiple { + animation: needs_attention_keyframes 3s ease-in-out; + animation-iteration-count: 3; +} + +.disclosure-button { + padding-left: 4px; + padding-right: 4px; +} + +/* Path bar */ + +.path-bar-box { + border-radius: 5px; + border: 1px @borders solid; + background-color: @theme_bg_color; + padding-right: 6px; +} + +.nautilus-path-bar button { + margin: 0px; +} + +.nautilus-path-bar button:first-child { + border-width: 0px 1px 0px 0px; + border-radius: 3.5px 0px 0px 3.5px; +} + +.nautilus-path-bar button:not(:first-child) { + border-width: 0px 1px 0px 1px; + border-radius: 0px 0px 0px 0px; +} + +.nautilus-path-bar button:not(:checked) image { opacity: 0.8; } /* dim the icon when not checked */ + +/* Make the tags fit into the box */ +entry.search > * { + margin: 5px; +} + +/* Sidebar */ + +.nautilus-window .sidebar-row:selected { + background: mix(@theme_bg_color, @theme_fg_color, 0.07); +} + +.nautilus-window .sidebar-row:selected, +.nautilus-window .sidebar-row:selected image, +.nautilus-window .sidebar-row:selected label { + color: mix(@theme_fg_color, @theme_text_color, 0.5); +} + +.nautilus-window .sidebar-row:selected:backdrop { + background: mix(@theme_unfocused_bg_color, @theme_unfocused_fg_color, 0.07); +} + +.nautilus-window .sidebar-row:selected:backdrop, +.nautilus-window .sidebar-row:selected:backdrop label { + color: mix(@theme_unfocused_fg_color, @theme_unfocused_text_color, 0.15); +} + +/* Floating status bar */ +.floating-bar { + padding: 1px; + background-color: @theme_base_color; + border-width: 1px; + border-style: solid solid none; + border-color: @borders; + border-radius: 3px 3px 0 0; +} + +.floating-bar.bottom.left { /* axes left border and border radius */ + border-left-style: none; + border-top-left-radius: 0; +} +.floating-bar.bottom.right { /* axes right border and border radius */ + border-right-style: none; + border-top-right-radius: 0; +} + +.floating-bar:backdrop { + background-color: @theme_unfocused_base_color; + border-color: @unfocused_borders; +} + +.floating-bar button { + padding: 0px; +} + +@define-color disk_space_unknown #888a85; +@define-color disk_space_used #729fcf; +@define-color disk_space_free #eeeeec; + +.disk-space-display { + border-style: solid; + border-width: 2px; +} + +.disk-space-display.unknown { + background-color: @disk_space_unknown; + border-color: shade(@disk_space_unknown, 0.7); + color: @disk_space_unknown; +} +.disk-space-display.unknown.border { + color: shade(@disk_space_unknown, 0.7); +} + +.disk-space-display.used { + background-color: @disk_space_used; + border-color: shade(@disk_space_used, 0.7); + color: @disk_space_used; +} +.disk-space-display.used.border { + color: shade(@disk_space_used, 0.7); +} + +.disk-space-display.free { + background-color: @disk_space_free; + border-color: shade(@disk_space_free, 0.7); + color: @disk_space_free; +} +.disk-space-display.free.border { + color: shade(@disk_space_free, 0.7); +} + +/* View */ +.nautilus-list-view .view { + border-bottom: 1px solid @theme_bg_color; +} + +.search-information { + background-color: @theme_selected_bg_color; + color:white; + padding:2px; +} + +/* Hide superfluous treeview drop target indication */ +.nautilus-list-view .view.dnd { + border-style: none; +} + +@define-color conflict_bg #fef6b6; + +.conflict-row { + background: @conflict_bg; + color: black; +} + +.conflict-row:hover { + background-color: shade(@conflict_bg, 0.9); +} + +.conflict-row:selected { + background: @theme_selected_bg_color; + color: @theme_selected_fg_color; +} + +/* Icon view */ +flowboxchild:selected { + background-color:transparent; +} + +.icon-background { + background-color:black; + border-color:#4a90d9; + border-style:solid; + border-width:0px; +} + +flowboxchild > .icon-item-background { + padding:4px; +} +flowboxchild:selected > .icon-item-background { + padding:4px; + background-color:#4a90d9; + border-color:#4a90d9; + border-style:solid; + border-width:0px; + border-radius:4px 4px 4px 4px; +} diff --git a/share/themes/Kali-Light/gtk-4.0/gtk.css b/share/themes/Kali-Light/gtk-4.0/gtk.css new file mode 100644 index 00000000..039d5a6f --- /dev/null +++ b/share/themes/Kali-Light/gtk-4.0/gtk.css @@ -0,0 +1,4324 @@ +/*************************** + * Check and Radio buttons * + ***************************/ +/*************** + * Base States * + ***************/ +.background { + color: #5c616c; + background-color: #ffffff; } + .background:backdrop { + text-shadow: none; + -gtk-icon-shadow: none; } + +dnd { + color: #5c616c; } + +.normal-icons { + -gtk-icon-size: 16px; } + +.large-icons { + -gtk-icon-size: 32px; } + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Every time a wildcard is used a kitten dies, painfully. +*/ +spinner:disabled, +arrow:disabled, +scrollbar:disabled, +check:disabled, +radio:disabled, +treeview.expander:disabled { + -gtk-icon-filter: opacity(0.5); } + +.view, iconview, +textview > text { + color: black; + background-color: #fafafa; } + .view:disabled, iconview:disabled, + textview > text:disabled { + color: #aeb0b6; + background-color: #fdfdfd; } + .view:selected:focus, iconview:selected:focus, .view:selected, iconview:selected, + textview > text:selected:focus, + textview > text:selected { + border-radius: 3px; } + +textview:drop(active) { + caret-color: #19a187; } + +textview > border { + background-color: #fcfcfc; } + +iconview { + outline: 0 solid transparent; + outline-offset: 4px; } + +iconview:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + +iconview:drop(active) { + box-shadow: none; } + +iconview > dndtarget:drop(active) { + border-style: solid; + border-width: 1px; + border-color: #0051da; } + +rubberband, .content-view > rubberband, columnview.view > rubberband, +treeview.view > rubberband, gridview > rubberband, flowbox > rubberband { + border: 1px solid #005af3; + background-color: rgba(0, 90, 243, 0.2); } + +flowbox > flowboxchild { + padding: 3px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + flowbox > flowboxchild { + outline: 0 solid transparent; + outline-offset: 4px; } + flowbox > flowboxchild:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + flowbox > flowboxchild:selected { + outline-color: rgba(255, 255, 255, 0.8); } + +gridview > child { + padding: 3px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + gridview > child { + outline: 0 solid transparent; + outline-offset: 4px; } + gridview > child:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + gridview > child:selected { + outline-color: rgba(255, 255, 255, 0.8); } + gridview > child box { + border-spacing: 8px; + margin: 12px; } + +coverflow cover { + color: black; + background-color: #fafafa; + border: 1px solid black; } + +label { + outline: 0 solid transparent; + outline-offset: 4px; } + +label:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + +label > selection { + background-color: #2777ff; + color: #ffffff; } + +label:disabled { + color: #aeb0b6; } + button label:disabled { + color: inherit; } + +label.error { + color: #bf1717; } + label.error:disabled { + color: rgba(191, 23, 23, 0.5); } + +.dim-label, .titlebar:not(headerbar) .subtitle, +headerbar .subtitle, spinbutton.vertical > text > text > placeholder, spinbutton:not(.vertical) > text > placeholder, +entry > text > placeholder, label.separator { + opacity: 0.55; + text-shadow: none; } + +window.assistant .sidebar { + padding: 5px; + border-top: 1px solid #d9d9d9; } + +window.assistant.csd .sidebar { + border-top-style: none; } + +window.assistant .sidebar > label { + padding: 6px 12px; } + +window.assistant .sidebar > label.highlight { + background-color: #eaebec; + border-radius: 5px; } + +window.aboutdialog image.large-icons { + -gtk-icon-size: 128px; } + +.osd .scale-popup, .app-notification, .osd popover.background > arrow, +.osd popover.background > contents, popover.background.touch-selection > arrow, +popover.background.touch-selection > contents, popover.background.magnifier > arrow, +popover.background.magnifier > contents, +.osd { + color: white; + border: none; + background-color: #303340; + background-clip: padding-box; + -gtk-icon-shadow: 0 1px black; } + +/********************* + * Spinner Animation * + *********************/ +@keyframes spin { + to { + transform: rotate(1turn); } } + +spinner { + background: none; + opacity: 0; + -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); } + spinner:checked { + opacity: 1; + animation: spin 1s linear infinite; } + spinner:checked:disabled { + opacity: 0.5; } + +/********************** + * General Typography * + **********************/ +.large-title { + font-weight: 300; + font-size: 24pt; } + +.title-1 { + font-weight: 800; + font-size: 20pt; } + +.title-2 { + font-weight: 800; + font-size: 15pt; } + +.title-3 { + font-weight: 700; + font-size: 15pt; } + +.title-4 { + font-weight: 700; + font-size: 13pt; } + +.heading { + font-weight: 700; + font-size: 11pt; } + +.body { + font-weight: 400; + font-size: 11pt; } + +.caption-heading { + font-weight: 700; + font-size: 9pt; } + +.caption { + font-weight: 400; + font-size: 9pt; } + +/**************** + * Text Entries * + ****************/ +spinbutton.vertical > text, spinbutton:not(.vertical), +entry { + min-height: 32px; + padding-left: 8px; + padding-right: 8px; + border: 1px solid; + border-radius: 5px; + border-spacing: 6px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: black; + border-color: #d9d9d9; + background-color: #fafafa; } + spinbutton.vertical > text, spinbutton:not(.vertical), + entry { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text:focus-within, spinbutton:focus-within:not(.vertical), + entry:focus-within { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text > image.left, spinbutton:not(.vertical) > image.left, + entry > image.left { + margin-right: 6px; } + spinbutton.vertical > text > image.right, spinbutton:not(.vertical) > image.right, + entry > image.right { + margin-left: 6px; } + spinbutton.vertical > text > text > block-cursor, spinbutton:not(.vertical) > text > block-cursor, + entry > text > block-cursor { + color: #fafafa; + background-color: black; } + spinbutton.vertical > text.flat, spinbutton.flat:not(.vertical), + entry.flat:focus-within, + entry.flat:backdrop, + entry.flat:disabled, + entry.flat { + min-height: 0; + padding: 2px; + background-color: transparent; + border-color: transparent; + border-radius: 0; } + spinbutton.vertical > text:focus-within > placeholder, spinbutton:focus-within:not(.vertical) > placeholder, + entry:focus-within > placeholder { + opacity: 0; + /* We hide placeholders on focus */ } + spinbutton.vertical > text:disabled, spinbutton:disabled:not(.vertical), + entry:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-color: #fdfdfd; } + spinbutton.vertical > text.error, spinbutton.error:not(.vertical), + entry.error { + color: #bf1717; } + spinbutton.vertical > text.error, spinbutton.error:not(.vertical), + entry.error { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text.error:focus-within, spinbutton.error:focus-within:not(.vertical), + entry.error:focus-within { + outline-color: rgba(191, 23, 23, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text.error > selection, spinbutton.error:not(.vertical) > selection, + entry.error > selection { + background-color: #bf1717; } + spinbutton.vertical > text.warning, spinbutton.warning:not(.vertical), + entry.warning { + color: #fd7d00; } + spinbutton.vertical > text.warning, spinbutton.warning:not(.vertical), + entry.warning { + outline: 0 solid transparent; + outline-offset: 4px; } + spinbutton.vertical > text.warning:focus-within, spinbutton.warning:focus-within:not(.vertical), + entry.warning:focus-within { + outline-color: rgba(253, 125, 0, 0.5); + outline-width: 2px; + outline-offset: -2px; } + spinbutton.vertical > text.warning > selection, spinbutton.warning:not(.vertical) > selection, + entry.warning > selection { + background-color: #fd7d00; } + spinbutton.vertical > text > image, spinbutton:not(.vertical) > image, + entry > image { + color: #7c8088; } + spinbutton.vertical > text > image:hover, spinbutton:not(.vertical) > image:hover, + entry > image:hover { + color: #5c616c; } + spinbutton.vertical > text > image:active, spinbutton:not(.vertical) > image:active, + entry > image:active { + color: #2777ff; } + spinbutton.vertical > text.password image.caps-lock-indicator, spinbutton.password:not(.vertical) image.caps-lock-indicator, + entry.password image.caps-lock-indicator { + color: #bdbec3; } + spinbutton.vertical > text:drop(active), spinbutton:drop(active):not(.vertical), + entry:drop(active):focus-within, + entry:drop(active) { + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; } + .osd spinbutton.vertical > text, .osd spinbutton:not(.vertical), .osd entry { + color: white; + border-color: black; + background-color: rgba(0, 0, 0, 0.5); + background-clip: padding-box; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .osd spinbutton.vertical > text:focus-within, .osd spinbutton:focus-within:not(.vertical), .osd entry:focus-within { + color: white; + border-color: #2777ff; + background-color: rgba(0, 0, 0, 0.5); + background-clip: padding-box; } + .osd spinbutton.vertical > text:disabled, .osd spinbutton:disabled:not(.vertical), .osd entry:disabled { + color: #97999f; + border-color: black; + background-color: rgba(68, 72, 83, 0.5); + background-clip: padding-box; } + +spinbutton.vertical > text > progress, spinbutton:not(.vertical) > progress, +entry > progress { + margin-bottom: 2px; } + +spinbutton.vertical > text progress > trough > progress, spinbutton:not(.vertical) progress > trough > progress, +entry progress > trough > progress { + background-color: transparent; + background-image: none; + border-radius: 0; + border-width: 0 0 2px; + border-color: #2777ff; + border-style: solid; + box-shadow: none; } + +spinbutton.vertical.linked:not(.vertical) > text:drop(active) + text, spinbutton.vertical.linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + text, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + spinbutton:not(.vertical), spinbutton.vertical.linked:not(.vertical) > text:drop(active) + button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + menubutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + menubutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + dropdown > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + dropdown > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + colorbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + colorbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + fontbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + fontbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + filechooserbutton > button, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + filechooserbutton > button, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + combobox > box > button.combo, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + combobox > box > button.combo, spinbutton.vertical.linked:not(.vertical) > text:drop(active) + entry, .linked:not(.vertical) > spinbutton:drop(active):not(.vertical) + entry, .linked:not(.vertical) > entry:drop(active) + button, .linked:not(.vertical) > entry:drop(active) + menubutton > button, .linked:not(.vertical) > entry:drop(active) + dropdown > button, .linked:not(.vertical) > entry:drop(active) + colorbutton > button, .linked:not(.vertical) > entry:drop(active) + fontbutton > button, .linked:not(.vertical) > entry:drop(active) + filechooserbutton > button, .linked:not(.vertical) > entry:drop(active) + combobox > box > button.combo, spinbutton.vertical.linked:not(.vertical) > entry:drop(active) + text, .linked:not(.vertical) > entry:drop(active) + spinbutton:not(.vertical), .linked:not(.vertical) > entry:drop(active) + entry { + border-left-color: #19a187; } + +spinbutton.vertical.linked > text:not(:disabled) + entry:not(:disabled), .linked.vertical > spinbutton:not(:disabled):not(.vertical) + entry:not(:disabled), spinbutton.vertical.linked > text:not(:disabled) + text:not(:disabled), spinbutton.vertical.linked > spinbutton:not(:disabled):not(.vertical) + text:not(:disabled), spinbutton.vertical.linked > text:not(:disabled) + spinbutton:not(:disabled):not(.vertical), .linked.vertical > spinbutton:not(:disabled):not(.vertical) + spinbutton:not(:disabled):not(.vertical), .linked.vertical > entry:not(:disabled) + entry:not(:disabled), spinbutton.vertical.linked > entry:not(:disabled) + text:not(:disabled), .linked.vertical > entry:not(:disabled) + spinbutton:not(:disabled):not(.vertical) { + border-top-color: #f0f0f0; } + +spinbutton.vertical.linked > text:disabled + text:disabled, spinbutton.vertical.linked > spinbutton:disabled:not(.vertical) + text:disabled, spinbutton.vertical.linked > text:disabled + spinbutton:disabled:not(.vertical), .linked.vertical > spinbutton:disabled:not(.vertical) + spinbutton:disabled:not(.vertical), spinbutton.vertical.linked > text:disabled + entry:disabled, .linked.vertical > spinbutton:disabled:not(.vertical) + entry:disabled, spinbutton.vertical.linked > entry:disabled + text:disabled, .linked.vertical > entry:disabled + spinbutton:disabled:not(.vertical), .linked.vertical > entry:disabled + entry:disabled { + border-top-color: #f0f0f0; } + +spinbutton.vertical.linked > text + text:drop(active):not(:only-child), spinbutton.vertical.linked > spinbutton:not(.vertical) + text:drop(active):not(:only-child), spinbutton.vertical.linked > text + spinbutton:drop(active):not(:only-child):not(.vertical), .linked.vertical > spinbutton:not(.vertical) + spinbutton:drop(active):not(:only-child):not(.vertical), +spinbutton.vertical.linked > text + entry:drop(active):not(:only-child), +.linked.vertical > spinbutton:not(.vertical) + entry:drop(active):not(:only-child), spinbutton.vertical.linked > entry + text:drop(active):not(:only-child), .linked.vertical > entry + spinbutton:drop(active):not(:only-child):not(.vertical), +.linked.vertical > entry + entry:drop(active):not(:only-child) { + border-top-color: #19a187; } + +spinbutton.vertical.linked > text:drop(active):not(:only-child) + text, spinbutton.vertical.linked > spinbutton:drop(active):not(:only-child):not(.vertical) + text, spinbutton.vertical.linked > text:drop(active):not(:only-child) + spinbutton:not(.vertical), .linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + spinbutton:not(.vertical), +spinbutton.vertical.linked > text:drop(active):not(:only-child) + entry, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + entry, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + menubutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + menubutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + dropdown > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + dropdown > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + colorbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + colorbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + fontbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + fontbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + filechooserbutton > button, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + filechooserbutton > button, +spinbutton.vertical.linked > text:drop(active):not(:only-child) + combobox > box > button.combo, +.linked.vertical > spinbutton:drop(active):not(:only-child):not(.vertical) + combobox > box > button.combo, spinbutton.vertical.linked > entry:drop(active):not(:only-child) + text, .linked.vertical > entry:drop(active):not(:only-child) + spinbutton:not(.vertical), +.linked.vertical > entry:drop(active):not(:only-child) + entry, +.linked.vertical > entry:drop(active):not(:only-child) + button, +.linked.vertical > entry:drop(active):not(:only-child) + menubutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + dropdown > button, +.linked.vertical > entry:drop(active):not(:only-child) + colorbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + fontbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + filechooserbutton > button, +.linked.vertical > entry:drop(active):not(:only-child) + combobox > box > button.combo { + border-top-color: #19a187; } + +spinbutton.vertical > text.error, spinbutton.error:not(.vertical), +entry.error { + color: #bf1717; } + +treeview entry:focus-within:dir(rtl), treeview entry:focus-within:dir(ltr) { + background-color: #fafafa; + transition-property: color, background; } + +treeview entry.flat, treeview entry { + border-radius: 0; + background-image: none; + background-color: #fafafa; } + treeview entry.flat:focus-within, treeview entry:focus-within { + border-color: #2777ff; } + +/******************* + * Editable Labels * + *******************/ +editablelabel > stack > text { + color: black; + border-color: #d9d9d9; + background-color: #fafafa; } + +/*********** + * Buttons * + ***********/ +@keyframes needs_attention { + from { + background-image: radial-gradient(farthest-side, #2777ff 0%, rgba(39, 119, 255, 0) 0%); } + to { + background-image: radial-gradient(farthest-side, #2777ff 95%, rgba(39, 119, 255, 0)); } } + +notebook > header > tabs > arrow, windowcontrols button, +button { + min-height: 24px; + min-width: 16px; + padding: 4px 9px; + border: 1px solid; + border-radius: 5px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: #5c616c; + outline-color: rgba(39, 119, 255, 0.5); + border-color: #d9d9d9; + background-image: linear-gradient(to top, #fafafa 2px, white); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + notebook > header > tabs > arrow, windowcontrols button, + button { + outline: 0 solid transparent; + outline-offset: 4px; } + notebook > header > tabs > arrow:focus:focus-visible, + button:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + notebook > header > tabs > arrow:hover, + button:hover { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); + -gtk-icon-filter: brightness(1.2); } + notebook > header > tabs > arrow:active, notebook > header > tabs > arrow:checked, + button:active, + button:checked { + color: #5c616c; + border-color: #d9d9d9; + background-image: image(#dbdbdb); + box-shadow: none; + transition-duration: 50ms; } + notebook > header > tabs > arrow:checked:hover, + button:checked:hover { + color: #5c616c; + border-color: #d9d9d9; + background-image: image(#d1d1d1); + box-shadow: none; } + notebook > header > tabs > arrow:checked:active, + button:checked:active { + color: #5c616c; + border-color: #d9d9d9; + background-image: image(#c7c7c7); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop, + button.flat:backdrop, + button:backdrop { + color: #aeb0b6; + border-color: #e0e0e0; + background-image: image(#ffffff); + box-shadow: none; + transition: 200ms ease-out; + -gtk-icon-filter: none; } + notebook > header > tabs > arrow:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, + button.flat:backdrop:active, + button.flat:backdrop:checked, + button:backdrop:active, + button:backdrop:checked { + color: #aeb0b6; + border-color: #e0e0e0; + background-image: image(#eaeaea); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop:disabled, + button.flat:backdrop:disabled, + button:backdrop:disabled { + color: #d9d9d9; + border-color: #e0e0e0; + background-image: image(#fdfdfd); + box-shadow: none; } + notebook > header > tabs > arrow:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, + button.flat:backdrop:disabled:active, + button.flat:backdrop:disabled:checked, + button:backdrop:disabled:active, + button:backdrop:disabled:checked { + color: #d9d9d9; + border-color: #e0e0e0; + background-image: image(#eaeaea); + box-shadow: none; } + notebook > header > tabs > arrow:disabled, + button:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#fdfdfd); } + notebook > header > tabs > arrow:disabled:active, notebook > header > tabs > arrow:disabled:checked, + button:disabled:active, + button:disabled:checked { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#eaeaea); + box-shadow: none; } + button.sidebar-button, notebook > header > tabs > arrow, windowcontrols button, notebook > header > tabs > arrow.flat, + button.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + transition: none; } + button.sidebar-button:hover, notebook > header > tabs > arrow:hover, windowcontrols button:hover, + button.flat:hover { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #dbdbdb; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-duration: 500ms; } + button.sidebar-button:active, notebook > header > tabs > arrow:active, windowcontrols button:active, button.sidebar-button:checked, notebook > header > tabs > arrow:checked, windowcontrols button:checked, + button.flat:active, + button.flat:checked { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #cccccc; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + button.sidebar-button:backdrop, notebook > header > tabs > arrow:backdrop, windowcontrols button:backdrop, button.sidebar-button:disabled, notebook > header > tabs > arrow:disabled, windowcontrols button:disabled, + button.flat:backdrop, + button.flat:disabled, + button.flat:backdrop:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; } + notebook > header > tabs > arrow.image-button, + button.image-button { + min-width: 24px; + padding-left: 5px; + padding-right: 5px; } + notebook > header > tabs > arrow.text-button, + button.text-button { + padding-left: 16px; + padding-right: 16px; } + notebook > header > tabs > arrow.text-button.image-button, + button.text-button.image-button { + padding-left: 8px; + padding-right: 8px; } + notebook > header > tabs > arrow.text-button.image-button label, + button.text-button.image-button label { + padding-left: 8px; + padding-right: 8px; } + dropdown:drop(active) button.combo, + combobox:drop(active) button.combo, notebook > header > tabs > arrow:drop(active), + button:drop(active) { + color: #19a187; + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; } + +row:selected button { + border-color: #0051da; } + +row:selected button.sidebar-button:not(:active):not(:checked):not(:hover):not(disabled), row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled) { + color: #ffffff; + border-color: transparent; } + row:selected button.sidebar-button:not(:active):not(:checked):not(:hover):not(disabled):backdrop, row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop { + color: #f7f7f7; } + + +button.osd { + min-width: 26px; + min-height: 32px; + color: white; + border-radius: 5px; + color: white; + outline-color: rgba(39, 119, 255, 0.5); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border: none; + box-shadow: none; } + + button.osd.image-button { + min-width: 30px; } + + button.osd.image-button:only-child { + margin: 4px; + border-radius: 50%; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + + button.osd:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; + border: none; + box-shadow: none; } + + button.osd:active, + button.osd:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; + border: none; + box-shadow: none; } + +.app-notification button, popover.background.touch-selection button, popover.background.magnifier button, .osd button { + color: white; + outline-color: rgba(39, 119, 255, 0.5); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .app-notification button:hover, popover.background.touch-selection button:hover, popover.background.magnifier button:hover, .osd button:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .app-notification button:active, popover.background.touch-selection button:active, popover.background.magnifier button:active, .app-notification button:checked, popover.background.touch-selection button:checked, popover.background.magnifier button:checked, .osd button:active:backdrop, .osd button:active, .osd button:checked:backdrop, .osd button:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .app-notification button:disabled, popover.background.touch-selection button:disabled, popover.background.magnifier button:disabled, .osd button:disabled:backdrop, .osd button:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + .app-notification button.flat, popover.background.touch-selection button.flat, popover.background.magnifier button.flat, .osd button.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .app-notification button.flat:hover, popover.background.touch-selection button.flat:hover, popover.background.magnifier button.flat:hover, .osd button.flat:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .app-notification button.flat:disabled, popover.background.touch-selection button.flat:disabled, popover.background.magnifier button.flat:disabled, .osd button.flat:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; + background-image: none; + border-color: transparent; + box-shadow: none; } + .app-notification button.flat:active, popover.background.touch-selection button.flat:active, popover.background.magnifier button.flat:active, .app-notification button.flat:checked, popover.background.touch-selection button.flat:checked, popover.background.magnifier button.flat:checked, .osd button.flat:active, .osd button.flat:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + + +button.suggested-action { + color: white; + outline-color: rgba(255, 255, 255, 0.8); + border-color: #0047c0; + background-image: linear-gradient(to top, #1d71ff 2px, #2777ff); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + + button.suggested-action { + outline: 0 solid transparent; + outline-offset: 4px; } + + button.suggested-action:focus:focus-visible { + outline-color: rgba(255, 255, 255, 0.8); + outline-width: 2px; + outline-offset: -2px; } + + button.suggested-action.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #2777ff; } + + button.suggested-action:hover { + color: white; + border-color: #0051da; + background-image: linear-gradient(to top, #004fd4, #005efd 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + + button.suggested-action:active, + button.suggested-action:checked { + color: white; + border-color: #0051da; + background-image: image(#0053df); + box-shadow: none; } + + button.suggested-action.flat:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: rgba(39, 119, 255, 0.8); } + + button.suggested-action:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#fdfdfd); } + + button.suggested-action:disabled:active, + button.suggested-action:disabled:checked { + color: #a5c6ff; + border-color: #0051da; + background-image: image(#1e71fe); + box-shadow: none; } + .osd button.suggested-action { + color: white; + outline-color: rgba(255, 255, 255, 0.8); + border-color: black; + background-color: transparent; + background-image: image(rgba(39, 119, 255, 0.5)); + background-clip: padding-box; } + .osd button.suggested-action:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(rgba(39, 119, 255, 0.7)); + background-clip: padding-box; } + .osd button.suggested-action:active:backdrop, .osd button.suggested-action:active, .osd button.suggested-action:checked:backdrop, .osd button.suggested-action:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#2777ff); + background-clip: padding-box; + box-shadow: none; } + .osd button.suggested-action:disabled:backdrop, .osd button.suggested-action:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + + +button.destructive-action { + color: white; + outline-color: rgba(255, 255, 255, 0.8); + border-color: #790e0e; + background-image: linear-gradient(to top, #cb1818 2px, #d41919); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + + button.destructive-action { + outline: 0 solid transparent; + outline-offset: 4px; } + + button.destructive-action:focus:focus-visible { + outline-color: rgba(255, 255, 255, 0.8); + outline-width: 2px; + outline-offset: -2px; } + + button.destructive-action.flat { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #d41919; } + + button.destructive-action:hover { + color: white; + border-color: #901111; + background-image: linear-gradient(to top, #8b1010, #b01515 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + + button.destructive-action:active, + button.destructive-action:checked { + color: white; + border-color: #901111; + background-image: image(#941111); + box-shadow: none; } + + button.destructive-action.flat:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: rgba(212, 25, 25, 0.8); } + + button.destructive-action:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#fdfdfd); } + + button.destructive-action:disabled:active, + button.destructive-action:disabled:checked { + color: #e8a8a8; + border-color: #901111; + background-image: image(#c72626); + box-shadow: none; } + .osd button.destructive-action { + color: white; + outline-color: rgba(255, 255, 255, 0.8); + border-color: black; + background-color: transparent; + background-image: image(rgba(212, 25, 25, 0.5)); + background-clip: padding-box; } + .osd button.destructive-action:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(rgba(212, 25, 25, 0.7)); + background-clip: padding-box; } + .osd button.destructive-action:active:backdrop, .osd button.destructive-action:active, .osd button.destructive-action:checked:backdrop, .osd button.destructive-action:checked { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#d41919); + background-clip: padding-box; + box-shadow: none; } + .osd button.destructive-action:disabled:backdrop, .osd button.destructive-action:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + +stackswitcher > button > label { + padding: 0 6px; + margin: 0 -6px; } + +stackswitcher > button > image { + padding: 3px 6px; + margin: -3px -6px; } + + +button.font separator { + background-color: transparent; } + + +button.font > box { + border-spacing: 6px; } + + +button.font > box > box > label { + font-weight: bold; } + + +button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; + border-radius: 9999px; } + + button.circular label { + padding: 0; } + +stacksidebar row.needs-attention > label, stackswitcher > button.needs-attention > label, +stackswitcher > button.needs-attention > image { + animation: needs_attention 150ms ease-in; + background-image: radial-gradient(farthest-side, #2777ff 96%, rgba(39, 119, 255, 0)); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + background-position: right 3px, right 4px; } + stacksidebar row.needs-attention > label:backdrop, stackswitcher > button.needs-attention > label:backdrop, + stackswitcher > button.needs-attention > image:backdrop { + background-size: 6px 6px, 0 0; } + stacksidebar row.needs-attention > label:dir(rtl), stackswitcher > button.needs-attention > label:dir(rtl), + stackswitcher > button.needs-attention > image:dir(rtl) { + background-position: left 3px, left 4px; } + +.linked:not(.vertical) > filechooserbutton > combobox:dir(rtl):not(:last-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(rtl):not(:last-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(rtl):not(:last-child) > box > button.combo, .linked:not(.vertical) > filechooserbutton > combobox:dir(ltr):not(:first-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(ltr):not(:first-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(ltr):not(:first-child) > box > button.combo, dropdown.linked button:nth-child(2):dir(ltr), +combobox.linked button:nth-child(2):dir(ltr), .linked:not(.vertical) > menubutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > dropdown:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > colorbutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > fontbutton:dir(rtl):not(:last-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(rtl):not(:last-child) > button, .linked:not(.vertical) > menubutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > dropdown:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > colorbutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > fontbutton:dir(ltr):not(:first-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(ltr):not(:first-child) > button, spinbutton.vertical.linked:not(.vertical) > text:dir(rtl):not(:last-child), .linked:not(.vertical) > spinbutton:dir(rtl):not(:last-child):not(.vertical), .linked:not(.vertical) > entry:dir(rtl):not(:last-child), .linked:not(.vertical) > button:dir(rtl):not(:last-child), spinbutton.vertical.linked:not(.vertical) > text:dir(ltr):not(:first-child), .linked:not(.vertical) > spinbutton:dir(ltr):not(:first-child):not(.vertical), .linked:not(.vertical) > entry:dir(ltr):not(:first-child), .linked:not(.vertical) > button:dir(ltr):not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.linked:not(.vertical) > filechooserbutton > combobox:dir(rtl):not(:first-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(rtl):not(:first-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(rtl):not(:first-child) > box > button.combo, .linked:not(.vertical) > filechooserbutton > combobox:dir(ltr):not(:last-child) > box > button.combo, +.linked:not(.vertical) > appchooserbutton > combobox:dir(ltr):not(:last-child) > box > button.combo, +.linked:not(.vertical) > combobox:dir(ltr):not(:last-child) > box > button.combo, dropdown.linked button:nth-child(2):dir(rtl), +combobox.linked button:nth-child(2):dir(rtl), .linked:not(.vertical) > menubutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > dropdown:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > colorbutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > fontbutton:dir(rtl):not(:first-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(rtl):not(:first-child) > button, .linked:not(.vertical) > menubutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > dropdown:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > colorbutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > fontbutton:dir(ltr):not(:last-child) > button, +.linked:not(.vertical) > filechooserbutton:dir(ltr):not(:last-child) > button, spinbutton.vertical.linked:not(.vertical) > text:dir(rtl):not(:first-child), .linked:not(.vertical) > spinbutton:dir(rtl):not(:first-child):not(.vertical), .linked:not(.vertical) > entry:dir(rtl):not(:first-child), .linked:not(.vertical) > button:dir(rtl):not(:first-child), spinbutton.vertical.linked:not(.vertical) > text:dir(ltr):not(:last-child), .linked:not(.vertical) > spinbutton:dir(ltr):not(:last-child):not(.vertical), .linked:not(.vertical) > entry:dir(ltr):not(:last-child), .linked:not(.vertical) > button:dir(ltr):not(:last-child) { + border-right-style: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.linked.vertical > filechooserbutton > combobox:not(:first-child) > box > button.combo, +.linked.vertical > appchooserbutton > combobox:not(:first-child) > box > button.combo, +.linked.vertical > combobox:not(:first-child) > box > button.combo, .linked.vertical > menubutton:not(:first-child) > button, +.linked.vertical > dropdown:not(:first-child) > button, +.linked.vertical > colorbutton:not(:first-child) > button, +.linked.vertical > fontbutton:not(:first-child) > button, +.linked.vertical > filechooserbutton:not(:first-child) > button, spinbutton.vertical.linked > text:not(:first-child), .linked.vertical > spinbutton:not(:first-child):not(.vertical), .linked.vertical > entry:not(:first-child), .linked.vertical > button:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.linked.vertical > filechooserbutton > combobox:not(:last-child) > box > button.combo, +.linked.vertical > appchooserbutton > combobox:not(:last-child) > box > button.combo, +.linked.vertical > combobox:not(:last-child) > box > button.combo, .linked.vertical > menubutton:not(:last-child) > button, +.linked.vertical > dropdown:not(:last-child) > button, +.linked.vertical > colorbutton:not(:last-child) > button, +.linked.vertical > fontbutton:not(:last-child) > button, +.linked.vertical > filechooserbutton:not(:last-child) > button, spinbutton.vertical.linked > text:not(:last-child), .linked.vertical > spinbutton:not(:last-child):not(.vertical), .linked.vertical > entry:not(:last-child), .linked.vertical > button:not(:last-child) { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.scale-popup button:hover, button.link, button.link:hover, button.link:active, button.link:checked, popover.menu box.circular-buttons button.circular.image-button.model, +list > row button.image-button:not(.flat), .toolbar button, modelbutton.flat { + background-color: transparent; + background-image: none; + border-color: transparent; + box-shadow: inset 0 1px rgba(255, 255, 255, 0), 0 1px rgba(255, 255, 255, 0); + text-shadow: none; + -gtk-icon-shadow: none; } + +/* menu buttons */ +modelbutton.flat { + min-height: 26px; + padding-left: 5px; + padding-right: 5px; + border-radius: 5px; } + modelbutton.flat:hover { + background-color: #eaebec; } + modelbutton.flat:disabled { + color: #aeb0b6; } + +modelbutton.flat arrow { + background: none; + min-width: 16px; + min-height: 16px; + opacity: 0.3; } + modelbutton.flat arrow:hover { + background: none; } + modelbutton.flat arrow.left { + -gtk-icon-source: -gtk-icontheme("go-previous-symbolic"); } + modelbutton.flat arrow.right { + -gtk-icon-source: -gtk-icontheme("go-next-symbolic"); } + +/* oldstyle toolbar buttons */ +.toolbar button { + margin: 1px; } + .toolbar button:hover { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + .toolbar button:active { + color: #5c616c; + border-color: #d9d9d9; + background-image: image(#dbdbdb); + box-shadow: none; } + .toolbar button:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#fdfdfd); } + .toolbar button:backdrop { + color: #aeb0b6; + border-color: #e0e0e0; + background-image: image(#ffffff); + box-shadow: none; } + .toolbar button:backdrop:disabled { + color: #d9d9d9; + border-color: #e0e0e0; + background-image: image(#fdfdfd); + box-shadow: none; } + +button.color { + padding: 4px; } + button.color > colorswatch:only-child { + box-shadow: 0 1px rgba(0, 0, 0, 0.1); } + button.color > colorswatch:only-child, button.color > colorswatch:only-child > overlay { + border-radius: 0; } + .osd button.color > colorswatch:only-child { + box-shadow: none; } + .osd button.color:disabled colorswatch:only-child, .osd button.color:active colorswatch:only-child, .osd button.color:checked colorswatch:only-child, button.color:disabled colorswatch:only-child, button.color:active colorswatch:only-child, button.color:checked colorswatch:only-child { + box-shadow: none; } + +/* list buttons */ +/* tone down as per new designs, see issue #1473 */ +popover.menu box.circular-buttons button.circular.image-button.model, +list > row button.image-button:not(.flat) { + border: 1px solid rgba(217, 217, 217, 0.5); } + popover.menu box.circular-buttons button.circular.image-button.model:hover, + list > row button.image-button:not(.flat):hover { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + popover.menu box.circular-buttons button.circular.image-button.model:active, popover.menu box.circular-buttons button.circular.image-button.model:checked, + list > row button.image-button:not(.flat):active, + list > row button.image-button:not(.flat):checked { + color: #5c616c; + border-color: #d9d9d9; + background-image: image(#dbdbdb); + box-shadow: none; } + +/********* + * Links * + *********/ +button.link, +link { + color: #005af3; + text-decoration: underline; } + button.link:visited, + link:visited { + color: #0047c0; } + *:selected button.link:visited, *:selected link:visited { + color: #99b5e6; } + button.link:hover, + link:hover { + color: #2777ff; } + *:selected button.link:hover, *:selected link:hover { + color: #e9f1ff; } + button.link:active, + link:active { + color: #005af3; } + *:selected button.link:active, *:selected link:active { + color: #ccdefd; } + button.link:disabled, + link:disabled { + color: rgba(122, 122, 122, 0.8); } + button.link:selected, *:selected button.link, + link:selected, *:selected link { + color: #ccdefd; } + +link { + outline: 0 solid transparent; + outline-offset: 4px; } + +link:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + +button.link, button.link:hover, button.link:active, button.link:checked { + text-shadow: none; } + +button.link > label { + text-decoration: underline; } + +/***************** + * GtkSpinButton * + *****************/ +spinbutton { + font-feature-settings: "tnum"; } + spinbutton:not(.vertical) { + padding: 0; + border-spacing: 0; + /* :not here just to bump specificity above that of the list button styling */ } + .osd spinbutton:not(.vertical) > text, spinbutton:not(.vertical) > text { + min-width: 28px; + margin: 0; + background: none; + background-color: transparent; + border: none; + border-radius: 0; + box-shadow: none; + padding: 6px; } + .osd spinbutton:not(.vertical) > text:backdrop:disabled, spinbutton:not(.vertical) > text:backdrop:disabled { + background-color: transparent; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat), + spinbutton:not(.vertical) > button.image-button.down:not(.flat) { + min-height: 16px; + margin: 0; + padding-bottom: 0; + padding-top: 0; + color: #6c707a; + background-image: none; + border-style: none none none solid; + border-color: rgba(217, 217, 217, 0.3); + border-radius: 0; + box-shadow: none; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl), + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl) { + border-style: none solid none none; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):hover, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):hover { + color: #5c616c; + background-color: #f2f2f2; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):disabled, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):disabled { + color: rgba(174, 176, 182, 0.3); + background-color: transparent; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):active, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):active { + background-color: rgba(0, 0, 0, 0.1); + box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.2); } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(ltr):last-child, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(ltr):last-child { + border-radius: 0 5px 5px 0; } + spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl):first-child, + spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl):first-child { + border-radius: 5px 0 0 5px; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat), + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat) { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + border-style: none none none solid; + border-color: rgba(0, 0, 0, 0.7); + border-radius: 0; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl), + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl) { + border-style: none solid none none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):hover, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):hover { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + border-color: rgba(0, 0, 0, 0.5); + background-color: #1a1c23; + -gtk-icon-shadow: 0 1px black; + box-shadow: none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):disabled, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + color: #97999f; + border-color: rgba(0, 0, 0, 0.5); + -gtk-icon-shadow: none; + box-shadow: none; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(ltr):last-child, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(ltr):last-child { + border-radius: 0 5px 5px 0; } + .osd spinbutton:not(.vertical) > button.image-button.up:not(.flat):dir(rtl):first-child, + .osd spinbutton:not(.vertical) > button.image-button.down:not(.flat):dir(rtl):first-child { + border-radius: 5px 0 0 5px; } + spinbutton.vertical:disabled { + color: #aeb0b6; } + spinbutton.vertical:drop(active) { + border-color: transparent; + box-shadow: none; } + spinbutton.vertical > text { + min-height: 32px; + min-width: 32px; + padding: 0; + border-radius: 0; } + spinbutton.vertical > text > block-cursor { + color: #fafafa; + background-color: black; } + spinbutton.vertical > button { + min-height: 32px; + min-width: 32px; + padding: 0; } + spinbutton.vertical > button.up { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + spinbutton.vertical > button.down { + border-top-style: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + .osd spinbutton.vertical > button:first-child { + color: white; + outline-color: rgba(39, 119, 255, 0.5); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd spinbutton.vertical > button:first-child:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; } + .osd spinbutton.vertical > button:first-child:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .osd spinbutton.vertical > button:first-child:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + treeview spinbutton:not(.vertical) { + min-height: 0; + border-style: none; + border-radius: 0; } + treeview spinbutton:not(.vertical) > text { + min-height: 0; + padding: 1px 2px; } + +/************** + * ComboBoxes * + **************/ +dropdown > popover.menu.background > contents { + padding: 0; } + +dropdown > button > box { + border-spacing: 6px; } + +dropdown arrow, +combobox arrow { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); + min-height: 16px; + min-width: 16px; } + +dropdown > popover.menu > contents modelbutton, +combobox > popover.menu > contents modelbutton { + padding-left: 9px; + padding-right: 9px; } + +dropdown:drop(active), +combobox:drop(active) { + box-shadow: none; } + +dropdown popover, +combobox popover { + margin-top: 6px; + padding: 0; } + dropdown popover listview, + combobox popover listview { + margin: 8px 0; } + dropdown popover listview > row, + combobox popover listview > row { + padding: 8px; } + dropdown popover listview > row:selected, + combobox popover listview > row:selected { + outline-color: rgba(255, 255, 255, 0.8); + color: black; + background-color: #eaebec; } + dropdown popover .dropdown-searchbar, + combobox popover .dropdown-searchbar { + padding: 6px; + border-bottom: 1px solid #d9d9d9; } + +/************ + * Toolbars * + ************/ +searchbar > revealer > box, .toolbar, +toolbar { + padding: 4px; + border-spacing: 4px; + background-color: #ffffff; } + +.osd .toolbar, .osd toolbar { + background-color: transparent; } + +.toolbar.osd, +toolbar.osd { + padding: 13px; + border: none; + border-radius: 5px; + background-color: #303340; } + .toolbar.osd.left, .toolbar.osd.right, .toolbar.osd.top, .toolbar.osd.bottom, + toolbar.osd.left, + toolbar.osd.right, + toolbar.osd.top, + toolbar.osd.bottom { + border-radius: 0; } + +.toolbar.horizontal > separator, +toolbar.horizontal > separator { + margin: 4px 0; } + +.toolbar.vertical > separator, +toolbar.vertical > separator { + margin: 0 4px; } + +searchbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-width: 0 0 1px; } + +searchbar > revealer > box { + border-style: solid; + border-color: #d9d9d9; + background-color: #f4f4f4; } + searchbar > revealer > box:backdrop { + border-color: #e0e0e0; + background-color: #f4f4f4; + box-shadow: none; + transition: 200ms ease-out; } + +/************** + * GtkInfoBar * + **************/ +infobar > revealer > box { + padding: 8px; + border-spacing: 12px; } + +infobar.action:hover > revealer > box { + background-color: #f7e9d1; } + +infobar.info > revealer > box, infobar.question > revealer > box, infobar.warning > revealer > box, infobar.error > revealer > box { + border-bottom: 1px solid #e6e6e6; + background-color: #f5e5c8; } + +infobar .close, +searchbar .close { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + min-width: 16px; + min-height: 16px; + padding: 4px; + border-radius: 50%; } + infobar .close:hover, + searchbar .close:hover { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + +/***************** + * Title buttons * + *****************/ +windowcontrols { + border-spacing: 6px; } + windowcontrols.start:not(.empty):dir(ltr), windowcontrols.end:not(.empty):dir(rtl) { + margin-right: 7px; } + windowcontrols.start:not(.empty):dir(rtl), windowcontrols.end:not(.empty):dir(ltr) { + margin-left: 7px; } + windowcontrols button { + border-radius: 9999px; + padding: 6px; + margin: 0 2px; + min-width: 0; + min-height: 0; } + windowcontrols button:hover { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #cccccc; } + windowcontrols button:active, windowcontrols button:checked { + border-color: transparent; + background-image: none; + box-shadow: none; + background-color: #b3b3b3; } + +/*************** + * Header bars * + ***************/ +.titlebar:not(headerbar), +headerbar { + padding: 0 6px; + min-height: 46px; + border-width: 0 0 1px; + border-style: solid; + border-color: #c2c2c2; + border-radius: 0; + background: #e6e6e6 linear-gradient(to top, #e0e0e0, #e8e8e8); + /* Darken switchbuttons for headerbars. issue #1588 */ } + .titlebar:backdrop:not(headerbar), + headerbar:backdrop { + border-color: #e0e0e0; + background-color: #ffffff; + background-image: none; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.8); + transition: 200ms ease-out; } + .titlebar:not(headerbar) .title, + headerbar .title { + padding-left: 12px; + padding-right: 12px; + font-weight: bold; } + .titlebar:not(headerbar) .subtitle, + headerbar .subtitle { + font-size: smaller; + padding-left: 12px; + padding-right: 12px; } + .titlebar:not(headerbar) stackswitcher > button:checked, + .titlebar:not(headerbar) button.toggle:checked, + headerbar stackswitcher > button:checked, + headerbar button.toggle:checked { + background: image(#d4d4d4); + border-color: #d1d1d1; + border-top-color: #c4c4c4; } + .titlebar:not(headerbar) stackswitcher > button:checked:backdrop, + .titlebar:not(headerbar) button.toggle:checked:backdrop, + headerbar stackswitcher > button:checked:backdrop, + headerbar button.toggle:checked:backdrop { + color: #aeb0b6; + border-color: #e0e0e0; + background-image: image(#eaeaea); + box-shadow: none; } + .tiled .titlebar:not(headerbar), .tiled-top .titlebar:not(headerbar), .tiled-left .titlebar:not(headerbar), .tiled-right .titlebar:not(headerbar), .tiled-bottom .titlebar:not(headerbar), .maximized .titlebar:not(headerbar), .fullscreen .titlebar:not(headerbar), .tiled headerbar, .tiled-top headerbar, .tiled-left headerbar, .tiled-right headerbar, .tiled-bottom headerbar, .maximized headerbar, .fullscreen headerbar { + border-radius: 0; } + .default-decoration.titlebar:not(headerbar), + headerbar.default-decoration { + min-height: 28px; + padding: 4px; } + .default-decoration.titlebar:not(headerbar) windowcontrols button, + .default-decoration.titlebar:not(headerbar) windowcontrols menubutton, + headerbar.default-decoration windowcontrols button, + headerbar.default-decoration windowcontrols menubutton { + min-height: 26px; + min-width: 26px; + margin: 0; + padding: 0; } + .default-decoration.titlebar:not(headerbar) windowcontrols menubutton button, + headerbar.default-decoration windowcontrols menubutton button { + min-height: 20px; + min-width: 20px; + margin: 0; + padding: 4px; } + .solid-csd .titlebar:dir(rtl):not(headerbar), .solid-csd .titlebar:dir(ltr):not(headerbar), .solid-csd headerbar:backdrop:dir(rtl), .solid-csd headerbar:backdrop:dir(ltr), .solid-csd headerbar:dir(rtl), .solid-csd headerbar:dir(ltr) { + margin-left: -1px; + margin-right: -1px; + margin-top: -1px; + border-radius: 0; + box-shadow: none; } + +headerbar > windowhandle > box, +headerbar > windowhandle > box > box.start, +headerbar > windowhandle > box > box.end { + border-spacing: 6px; } + +headerbar entry, +headerbar spinbutton, +headerbar separator:not(.sidebar), +headerbar button, +headerbar menubutton { + margin-top: 6px; + margin-bottom: 6px; } + +headerbar menubutton > button { + margin-top: 0px; + margin-bottom: 0px; } + +headerbar switch { + margin-top: 10px; + margin-bottom: 10px; } + +headerbar.titlebar headerbar:not(.titlebar) { + background: none; + box-shadow: none; } + +window.csd > .titlebar:not(headerbar) { + padding: 0; + background-color: transparent; + background-image: none; + border-style: none; + border-color: transparent; + box-shadow: none; } + +.titlebar:not(headerbar) separator { + background-color: #d9d9d9; } + +window.devel headerbar.titlebar { + background: #ffffff cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, linear-gradient(to right, transparent 65%, rgba(39, 119, 255, 0.2)), linear-gradient(to top, #dedede, #e6e6e6 3px, whitesmoke); } + window.devel headerbar.titlebar:backdrop { + background: #ffffff cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, image(#ffffff); + /* background-color would flash */ } + +/************ + * Pathbars * + ************/ +pathbar > button.text-button, pathbar > button.image-button, pathbar > button { + padding-left: 4px; + padding-right: 4px; } + +pathbar > button.text-button.image-button label { + padding-left: 0; + padding-right: 0; } + +pathbar > button.text-button.image-button label:last-child, pathbar > button label:last-child { + padding-right: 8px; } + +pathbar > button.text-button.image-button label:first-child, pathbar > button label:first-child { + padding-left: 8px; } + +pathbar > button image { + padding-left: 4px; + padding-right: 4px; } + +pathbar > button.slider-button { + padding-left: 0; + padding-right: 0; } + +/************** + * Tree Views * + **************/ +columnview.view, +treeview.view { + border-left-color: #dfdfdf; + border-top-color: #dfdfdf; } + columnview.view, + treeview.view { + outline: 0 solid transparent; + outline-offset: 4px; } + columnview.view:focus:focus-visible, + treeview.view:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + columnview.view:selected:focus, columnview.view:selected, + treeview.view:selected:focus, + treeview.view:selected { + border-radius: 0; + outline-color: rgba(255, 255, 255, 0.8); } + columnview.view:disabled, + treeview.view:disabled { + color: #aeb0b6; } + columnview.view:disabled:selected, + treeview.view:disabled:selected { + color: #7dadff; } + columnview.view:disabled:selected:backdrop, + treeview.view:disabled:selected:backdrop { + color: #669efd; } + columnview.view.separator, + treeview.view.separator { + min-height: 2px; + color: #dfdfdf; } + columnview.view:backdrop, + treeview.view:backdrop { + border-left-color: #e5e5e5; + border-top: #e5e5e5; } + columnview.view:drop(active), + treeview.view:drop(active) { + box-shadow: none; } + columnview.view > dndtarget:drop(active), + treeview.view > dndtarget:drop(active) { + border-style: solid none; + border-width: 1px; + border-color: #0051da; } + columnview.view > dndtarget.after:drop(active), + treeview.view > dndtarget.after:drop(active) { + border-top-style: none; } + columnview.view > dndtarget.before:drop(active), + treeview.view > dndtarget.before:drop(active) { + border-bottom-style: none; } + columnview.view.expander, + treeview.view.expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); + color: #4b4b4b; } + columnview.view.expander:dir(rtl), + treeview.view.expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + columnview.view.expander:hover, + treeview.view.expander:hover { + color: black; } + columnview.view.expander:selected, + treeview.view.expander:selected { + color: #bed6ff; } + columnview.view.expander:selected:hover, + treeview.view.expander:selected:hover { + color: #ffffff; } + columnview.view.expander:checked, + treeview.view.expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + columnview.view.progressbar, + treeview.view.progressbar { + color: #fafafa; + background-color: #2777ff; + background-image: image(#2777ff); + box-shadow: none; } + columnview.view.progressbar:selected:focus, columnview.view.progressbar:selected, + treeview.view.progressbar:selected:focus, + treeview.view.progressbar:selected { + color: #2777ff; + background-image: image(#fafafa); } + columnview.view.progressbar:selected:focus:backdrop, columnview.view.progressbar:selected:backdrop, + treeview.view.progressbar:selected:focus:backdrop, + treeview.view.progressbar:selected:backdrop { + color: #2777ff; + background-color: #f7f7f7; } + columnview.view.trough, + treeview.view.trough { + background-color: rgba(92, 97, 108, 0.1); } + columnview.view.trough:selected:focus, columnview.view.trough:selected, + treeview.view.trough:selected:focus, + treeview.view.trough:selected { + background-color: rgba(255, 255, 255, 0.3); } + columnview.view > header > button, + treeview.view > header > button { + color: #abadb3; + background-color: #fafafa; + font-weight: bold; + text-shadow: none; + box-shadow: none; } + columnview.view > header > button:hover, + treeview.view > header > button:hover { + color: #848790; + box-shadow: none; + transition: none; } + columnview.view > header > button:active, + treeview.view > header > button:active { + color: #5c616c; + transition: none; } + columnview.view button.dnd:active, columnview.view button.dnd:selected, columnview.view button.dnd:hover, columnview.view button.dnd, + columnview.view header.button.dnd:active, + columnview.view header.button.dnd:selected, + columnview.view header.button.dnd:hover, + columnview.view header.button.dnd, + treeview.view button.dnd:active, + treeview.view button.dnd:selected, + treeview.view button.dnd:hover, + treeview.view button.dnd, + treeview.view header.button.dnd:active, + treeview.view header.button.dnd:selected, + treeview.view header.button.dnd:hover, + treeview.view header.button.dnd { + padding: 0 6px; + color: #fafafa; + background-image: none; + background-color: #2777ff; + border-style: none; + border-radius: 0; + box-shadow: inset 0 0 0 1px #fafafa; + text-shadow: none; + transition: none; } + columnview.view acceleditor > label, + treeview.view acceleditor > label { + background-color: #2777ff; } + +columnview.view > header > button, +treeview.view > header > button, columnview.view > header > button:hover, +treeview.view > header > button:hover, columnview.view > header > button:active, +treeview.view > header > button:active { + padding: 0 6px; + background-image: none; + border-style: none none solid solid; + border-color: #dfdfdf; + border-radius: 0; + text-shadow: none; } + columnview.view > header > button:disabled, + treeview.view > header > button:disabled { + border-color: #ffffff; + background-image: none; } + columnview.view > header > button:last-child, + treeview.view > header > button:last-child { + border-right-style: none; } + +/*************** + * Popovers * + ***************/ +popover.background { + background-color: transparent; + font: initial; } + popover.background > arrow, + popover.background > contents { + background-color: #fafafa; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.23); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } + popover.background:backdrop { + background-color: transparent; } + popover.background > contents { + padding: 8px; + border-radius: 9px; } + popover.background > contents > list, + popover.background > contents > .view, + popover.background > contents > iconview, + popover.background > contents > toolbar { + border-style: none; + background-color: transparent; } + popover.background > contents separator { + background-color: #e4e4e4; + margin: 3px; } + popover.background > contents list separator { + margin: 0; } + .osd popover.background, popover.background.touch-selection, popover.background.magnifier { + background-color: transparent; } + .osd popover.background > arrow, + .osd popover.background > contents, popover.background.touch-selection > arrow, + popover.background.touch-selection > contents, popover.background.magnifier > arrow, + popover.background.magnifier > contents { + border: 1px solid rgba(255, 255, 255, 0.1); + box-shadow: none; } + +magnifier { + background-color: #fafafa; } + +/********************** + * Popover Base Menus * + **********************/ +popover.menu { + padding: 0; } + popover.menu box.inline-buttons { + padding: 0 12px; } + popover.menu box.inline-buttons button.image-button.model { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + min-height: 30px; + min-width: 30px; + padding: 0; + border: none; + outline: none; + transition: none; } + popover.menu box.inline-buttons button.image-button.model:selected { + background: image(#eaebec); } + popover.menu box.circular-buttons { + padding: 12px 12px 6px; } + popover.menu box.circular-buttons button.circular.image-button.model { + padding: 11px; } + popover.menu box.circular-buttons button.circular.image-button.model:focus { + background-color: #eaebec; + border-color: #eaebec; } + popover.menu > arrow, popover.menu.background > contents { + background-color: #fafafa; + padding: 5px; } + popover.menu.background separator { + margin: 6px 0; } + popover.menu accelerator { + color: alpha(currentColor,0.55); } + popover.menu accelerator:dir(ltr) { + margin-left: 12px; } + popover.menu accelerator:dir(rtl) { + margin-right: 12px; } + popover.menu check, + popover.menu radio { + transform: scale(0.8); + border-width: 1.2px; + border-color: transparent; + box-shadow: none; + background-image: image(transparent); + color: black; } + popover.menu check:hover, + popover.menu radio:hover { + transform: scale(0.8); + border-width: 1.2px; + color: black; + box-shadow: none; + background-image: image(transparent); } + popover.menu check:active, + popover.menu radio:active { + transform: scale(0.8); + border-width: 1.2px; + color: black; + box-shadow: none; + background-image: image(transparent); } + popover.menu radio { + border-color: #d9d9d9; } + popover.menu radio:active { + border-color: rgba(217, 217, 217, 0.5); } + popover.menu arrow.left, + popover.menu radio.left, + popover.menu check.left { + margin-left: -2px; + margin-right: 6px; } + popover.menu arrow.right, + popover.menu radio.right, + popover.menu check.right { + margin-left: 6px; + margin-right: -2px; } + popover.menu modelbutton { + min-height: 30px; + min-width: 40px; + padding: 0 12px; + border-radius: 5px; } + popover.menu modelbutton:selected { + color: black; + background-color: #eaebec; } + popover.menu modelbutton:selected:active { + background-color: #dbdbdb; } + popover.menu label.title { + font-weight: bold; + padding: 4px 32px; } + +menubar { + padding: 0px; + box-shadow: inset 0 -1px rgba(0, 0, 0, 0.1); } + menubar > item { + min-height: 16px; + padding: 4px 8px; } + menubar > item:selected { + box-shadow: inset 0 -3px #2777ff; + color: #005af3; } + menubar > item:disabled { + color: #aeb0b6; + box-shadow: none; } + menubar > item popover.menu.background > contents { + padding: 5px; } + menubar > item popover.menu popover.menu { + padding: 0 0 4px 0; } + menubar > item popover.menu.background popover.menu.background > contents { + margin: 0; + border-radius: 9px; } + +/************* + * Notebooks * + *************/ +notebook > header > tabs > tab:checked { + outline: 0 solid transparent; + outline-offset: 4px; } + +notebook:focus:focus-visible > header > tabs > tab:checked { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + +notebook > header { + padding: 1px; + border-color: #d9d9d9; + border-width: 1px; + background-color: #f2f2f2; } + notebook > header > tabs { + margin: -1px; } + notebook > header.top { + border-bottom-style: solid; } + notebook > header.top > tabs { + margin-bottom: -2px; } + notebook > header.top > tabs > tab:hover { + box-shadow: inset 0 -4px #d9d9d9; } + notebook > header.top > tabs > tab:checked { + box-shadow: inset 0 -4px #2777ff; } + notebook > header.bottom { + border-top-style: solid; } + notebook > header.bottom > tabs { + margin-top: -2px; } + notebook > header.bottom > tabs > tab:hover { + box-shadow: inset 0 4px #d9d9d9; } + notebook > header.bottom > tabs > tab:checked { + box-shadow: inset 0 4px #2777ff; } + notebook > header.left { + border-right-style: solid; } + notebook > header.left > tabs { + margin-right: -2px; } + notebook > header.left > tabs > tab:hover { + box-shadow: inset -4px 0 #d9d9d9; } + notebook > header.left > tabs > tab:checked { + box-shadow: inset -4px 0 #2777ff; } + notebook > header.right { + border-left-style: solid; } + notebook > header.right > tabs { + margin-left: -2px; } + notebook > header.right > tabs > tab:hover { + box-shadow: inset 4px 0 #d9d9d9; } + notebook > header.right > tabs > tab:checked { + box-shadow: inset 4px 0 #2777ff; } + notebook > header.top > tabs > arrow { + border-top-style: none; } + notebook > header.bottom > tabs > arrow { + border-bottom-style: none; } + notebook > header.top > tabs > arrow, notebook > header.bottom > tabs > arrow { + margin-left: -5px; + margin-right: -5px; + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs > arrow.down, notebook > header.bottom > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + notebook > header.top > tabs > arrow.up, notebook > header.bottom > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + notebook > header.left > tabs > arrow { + border-left-style: none; } + notebook > header.right > tabs > arrow { + border-right-style: none; } + notebook > header.left > tabs > arrow, notebook > header.right > tabs > arrow { + margin-top: -5px; + margin-bottom: -5px; + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs > arrow.down, notebook > header.right > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } + notebook > header.left > tabs > arrow.up, notebook > header.right > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + notebook > header > tabs > arrow { + min-height: 16px; + min-width: 16px; + border-radius: 0; } + notebook > header > tabs > arrow:hover:not(:active):not(:backdrop) { + background-clip: padding-box; + background-image: none; + background-color: rgba(255, 255, 255, 0.3); + border-color: transparent; + box-shadow: none; } + notebook > header > tabs > arrow:disabled { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; } + notebook > header > tabs > tab { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + min-height: 30px; + min-width: 30px; + padding: 3px 12px; + color: #5c616c; + font-weight: normal; + border-width: 1px; + border-color: transparent; } + notebook > header > tabs > tab:hover { + color: #5c616c; + background-color: #e8e8e8; } + notebook > header > tabs > tab.reorderable-page:hover { + border-color: rgba(217, 217, 217, 0.3); + background-color: rgba(255, 255, 255, 0.2); } + notebook > header > tabs > tab:not(:checked) { + outline-color: transparent; } + notebook > header > tabs > tab:checked { + color: #5c616c; } + notebook > header > tabs > tab.reorderable-page:checked { + border-color: rgba(217, 217, 217, 0.5); + background-color: rgba(255, 255, 255, 0.5); } + notebook > header > tabs > tab.reorderable-page:checked:hover { + background-color: rgba(255, 255, 255, 0.7); } + notebook > header > tabs > tab button.flat { + color: alpha(currentColor,0.3); + padding: 0; + margin-top: 4px; + margin-bottom: 4px; + min-width: 20px; + min-height: 20px; } + notebook > header > tabs > tab button.flat:hover { + color: currentColor; } + notebook > header > tabs > tab button.flat:last-child { + margin-left: 4px; + margin-right: -4px; } + notebook > header > tabs > tab button.flat:first-child { + margin-left: -4px; + margin-right: 4px; } + notebook > header.top > tabs, notebook > header.bottom > tabs { + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs:not(:only-child), notebook > header.bottom > tabs:not(:only-child) { + margin-left: 3px; + margin-right: 3px; } + notebook > header.top > tabs:not(:only-child):first-child, notebook > header.bottom > tabs:not(:only-child):first-child { + margin-left: -1px; } + notebook > header.top > tabs:not(:only-child):last-child, notebook > header.bottom > tabs:not(:only-child):last-child { + margin-right: -1px; } + notebook > header.top > tabs > tab, notebook > header.bottom > tabs > tab { + margin-left: 4px; + margin-right: 4px; } + notebook > header.top > tabs > tab.reorderable-page, notebook > header.bottom > tabs > tab.reorderable-page { + border-style: none solid; } + notebook > header.left > tabs, notebook > header.right > tabs { + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs:not(:only-child), notebook > header.right > tabs:not(:only-child) { + margin-top: 3px; + margin-bottom: 3px; } + notebook > header.left > tabs:not(:only-child):first-child, notebook > header.right > tabs:not(:only-child):first-child { + margin-top: -1px; } + notebook > header.left > tabs:not(:only-child):last-child, notebook > header.right > tabs:not(:only-child):last-child { + margin-bottom: -1px; } + notebook > header.left > tabs > tab, notebook > header.right > tabs > tab { + margin-top: 4px; + margin-bottom: 4px; } + notebook > header.left > tabs > tab.reorderable-page, notebook > header.right > tabs > tab.reorderable-page { + border-style: solid none; } + notebook > header.top > tabs > tab { + padding-bottom: 4px; } + notebook > header.bottom > tabs > tab { + padding-top: 4px; } + +notebook > stack:not(:only-child) { + background-color: #fafafa; } + +/************** + * Scrollbars * + **************/ +scrollbar { + background-color: #fafafa; + transition: 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + scrollbar.top { + border-bottom: 1px solid #d9d9d9; } + scrollbar.bottom { + border-top: 1px solid #d9d9d9; } + scrollbar.left { + border-right: 1px solid #d9d9d9; } + scrollbar.right { + border-left: 1px solid #d9d9d9; } + scrollbar > range > trough > slider { + min-width: 6px; + min-height: 6px; + margin: -1px; + border: 4px solid transparent; + border-radius: 8px; + background-clip: padding-box; + background-color: #ced0d3; } + scrollbar > range > trough > slider:hover { + background-color: #c6c8cc; } + scrollbar > range > trough > slider:hover:active { + background-color: #2777ff; } + scrollbar > range > trough > slider:disabled { + background-color: transparent; } + scrollbar > range.fine-tune > trough > slider { + min-width: 4px; + min-height: 4px; } + scrollbar > range.fine-tune.horizontal > trough > slider { + border-width: 5px 4px; } + scrollbar > range.fine-tune.vertical > trough > slider { + border-width: 4px 5px; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + border-color: transparent; + opacity: 0.4; + background-color: transparent; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) > range > trough > slider { + margin: 0; + min-width: 3px; + min-height: 3px; + background-color: #5c616c; + border: 1px solid white; } + scrollbar.overlay-indicator.horizontal:not(.dragging):not(.hovering) > range > trough > slider { + margin: 0 2px; + min-width: 40px; } + scrollbar.overlay-indicator.vertical:not(.dragging):not(.hovering) > range > trough > slider { + margin: 2px 0; + min-height: 40px; } + scrollbar.overlay-indicator.dragging, scrollbar.overlay-indicator.hovering { + opacity: 0.8; } + scrollbar.horizontal > range > trough > slider { + min-width: 40px; } + scrollbar.vertical > range > trough > slider { + min-height: 40px; } + +treeview ~ scrollbar.vertical { + border-top: 1px solid #d9d9d9; + margin-top: -1px; } + +/********** + * Switch * + **********/ +switch { + font-weight: bold; + font-size: smaller; + border: 1px solid #d9d9d9; + border-radius: 14px; + color: #5c616c; + background-color: #f2f2f2; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + /* only show i / o for the accessible theme */ } + switch { + outline: 0 solid transparent; + outline-offset: 4px; } + switch:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: 0; } + headerbar switch { + background-color: #dedede; } + switch:checked { + color: #ffffff; + border-color: #0051da; + background-color: #2777ff; } + switch:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-color: #fdfdfd; + text-shadow: none; } + switch > slider { + color: #5c616c; + outline-color: rgba(39, 119, 255, 0.5); + border-color: #d9d9d9; + background-image: linear-gradient(to top, #fafafa 2px, white); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); + margin: -1px; + min-width: 24px; + min-height: 24px; + border: 1px solid; + border-color: #d9d9d9; + border-radius: 50%; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + switch > image { + color: transparent; } + switch:hover > slider { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + switch:checked > slider { + border: 1px solid #0051da; } + switch:disabled > slider { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#fdfdfd); } + row:selected switch { + outline-color: rgba(255, 255, 255, 0.8); + box-shadow: none; + border-color: #0051da; } + row:selected switch > slider:checked, row:selected switch > slider { + border-color: #0051da; } + +/************************* + * Check and Radio items * + *************************/ +.view.content-view.check:not(list), iconview.content-view.check:not(list), +.content-view .tile check:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:hover:not(list), iconview.content-view.check:hover:not(list), +.content-view .tile check:hover:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:active:not(list), iconview.content-view.check:active:not(list), +.content-view .tile check:active:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:backdrop:not(list), iconview.content-view.check:backdrop:not(list), +.content-view .tile check:backdrop:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: transparent; + background-color: #939393; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: none; + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:not(list), iconview.content-view.check:checked:not(list), +.content-view .tile check:checked:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:hover:not(list), iconview.content-view.check:checked:hover:not(list), +.content-view .tile check:checked:hover:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:checked:active:not(list), iconview.content-view.check:checked:active:not(list), +.content-view .tile check:checked:active:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: white; + background-color: #2777ff; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +.view.content-view.check:backdrop:checked:not(list), iconview.content-view.check:backdrop:checked:not(list), +.content-view .tile check:backdrop:checked:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: rgba(255, 255, 255, 0.8); + background-color: #939393; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: -gtk-icontheme('object-select-symbolic'); + -gtk-icon-shadow: none; } + +checkbutton { + border-spacing: 4px; + border-radius: 5px; + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + checkbutton { + outline: 0 solid transparent; + outline-offset: 4px; } + checkbutton:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + checkbutton.text-button { + padding: 4px; } + +check, +radio { + min-height: 14px; + min-width: 14px; + border: 1px solid; + -gtk-icon-source: none; } + check, + radio { + background-clip: padding-box; + background-image: linear-gradient(to bottom, white 20%, white 90%); + border-color: #c2c2c2; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:hover, + radio:hover { + background-image: image(#f2f2f2); } + check:active, + radio:active { + box-shadow: inset 0 1px rgba(0, 0, 0, 0.2); + background-image: image(#d9d9d9); } + check:disabled, + radio:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + check:checked, + radio:checked { + background-clip: border-box; + background-image: linear-gradient(to bottom, #4187ff 20%, #2777ff 90%); + border-color: #0047c0; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:checked:hover, + radio:checked:hover { + background-image: linear-gradient(to bottom, #5594ff 10%, #3b84ff 90%); } + check:checked:active, + radio:checked:active { + box-shadow: inset 0 1px rgba(0, 0, 0, 0.2); + background-image: image(#0e67ff); } + check:checked:disabled, + radio:checked:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + check:indeterminate, + radio:indeterminate { + background-clip: border-box; + background-image: linear-gradient(to bottom, #4187ff 20%, #2777ff 90%); + border-color: #0047c0; + box-shadow: 0 1px rgba(0, 0, 0, 0.05); + color: #ffffff; } + check:indeterminate:hover, + radio:indeterminate:hover { + background-image: linear-gradient(to bottom, #5594ff 10%, #3b84ff 90%); } + check:indeterminate:active, + radio:indeterminate:active { + box-shadow: inset 0 1px rgba(0, 0, 0, 0.2); + background-image: image(#0e67ff); } + check:indeterminate:disabled, + radio:indeterminate:disabled { + box-shadow: none; + color: rgba(255, 255, 255, 0.7); } + row:selected check, row:selected radio { + border-color: #0047c0; } + .osd check, .osd radio { + color: white; + outline-color: rgba(39, 119, 255, 0.5); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd check:hover, .osd radio:hover { + color: white; + outline-color: rgba(39, 119, 255, 0.5); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; } + .osd check:active, .osd radio:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; } + .osd check:disabled, .osd radio:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; } + + +check { + border-radius: 3px; + -gtk-icon-size: 14px; } + + check:checked { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/check-symbolic.symbolic.png")), -gtk-recolor(url("assets/check@2-symbolic.symbolic.png"))); } + + check:indeterminate { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } + +treeview.view radio:selected:focus, treeview.view radio:selected, +radio { + border-radius: 100%; + -gtk-icon-size: 14px; } + treeview.view radio:checked:selected, + radio:checked { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/bullet-symbolic.symbolic.png")), -gtk-recolor(url("assets/bullet@2-symbolic.symbolic.png"))); } + treeview.view radio:indeterminate:selected, + radio:indeterminate { + -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } + +treeview.view check:selected:focus, treeview.view check:selected, +treeview.view radio:selected:focus, +treeview.view radio:selected { + color: #ffffff; + border-color: #0051da; } + +/************ + * GtkScale * + ************/ +progressbar > trough, scale > trough > fill, scale > trough { + border: 1px solid #f2f2f2; + border-radius: 3px; + background-color: #f2f2f2; } + headerbar progressbar > trough, headerbar scale > trough > fill, headerbar scale > trough { + background-color: #dedede; } + progressbar > trough:disabled, scale > trough > fill:disabled, scale > trough:disabled { + background-color: #fdfdfd; + border-color: #d9d9d9; } + row:selected progressbar > trough, row:selected scale > trough > fill, row:selected scale > trough { + outline-color: rgba(255, 255, 255, 0.8); + border-color: #0051da; } + .osd progressbar > trough, .osd scale > trough > fill, .osd scale > trough { + border-color: black; + background-color: rgba(0, 0, 0, 0.8); } + .osd progressbar > trough:disabled, .osd scale > trough > fill:disabled, .osd scale > trough:disabled { + background-color: rgba(68, 72, 83, 0.5); } + +progressbar > trough > progress, scale > trough > highlight { + border: 1px solid #2777ff; + border-radius: 3px; + background-color: #2777ff; } + progressbar > trough > progress:disabled, scale > trough > highlight:disabled { + background-color: transparent; + border-color: transparent; } + row:selected progressbar > trough > progress, row:selected scale > trough > highlight { + border-color: #0051da; } + .osd progressbar > trough > progress, .osd scale > trough > highlight { + border-color: black; } + .osd progressbar > trough > progress:disabled, .osd scale > trough > highlight:disabled { + border-color: transparent; } + +scale { + min-height: 10px; + min-width: 10px; + padding: 12px; } + scale > trough { + outline: 0 solid transparent; + outline-offset: 16px; } + scale:focus:focus-visible > trough { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: 10px; } + scale > trough { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + scale > trough > fill, + scale > trough > highlight { + margin: -1px; } + scale > trough > slider { + min-height: 18px; + min-width: 18px; + margin: -9px; } + scale.fine-tune.horizontal { + padding-top: 9px; + padding-bottom: 9px; + min-height: 16px; } + scale.fine-tune.vertical { + padding-left: 9px; + padding-right: 9px; + min-width: 16px; } + scale.fine-tune > trough > slider { + margin: -6px; } + scale.fine-tune > trough > fill, + scale.fine-tune > trough > highlight, + scale.fine-tune > trough { + border-radius: 5px; } + scale > trough > fill:disabled { + border-color: transparent; + background-color: transparent; } + .osd scale > trough > fill { + background-color: #404040; } + .osd scale > trough > fill:disabled { + border-color: transparent; + background-color: transparent; } + scale > trough > slider { + color: #5c616c; + outline-color: rgba(39, 119, 255, 0.5); + border-color: #d9d9d9; + background-image: linear-gradient(to top, #fafafa 2px, white); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); + border-width: 1px; + border-style: solid; + border-radius: 100%; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-property: background, border, box-shadow; } + scale > trough > slider:hover { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + scale > trough > slider:active { + border-color: #0051da; } + scale > trough > slider:disabled { + color: #aeb0b6; + border-color: #d9d9d9; + background-image: image(#fdfdfd); } + row:selected scale > trough > slider:disabled, row:selected scale > trough > slider { + border-color: #0051da; } + .osd scale > trough > slider { + color: white; + outline-color: rgba(39, 119, 255, 0.5); + border-color: black; + background-color: transparent; + background-image: image(#303340); + background-clip: padding-box; + border-color: black; + background-color: #303340; } + .osd scale > trough > slider:hover { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#1a1c23); + background-clip: padding-box; + background-color: #303340; } + .osd scale > trough > slider:active { + color: white; + border-color: black; + background-color: transparent; + background-image: image(#040405); + background-clip: padding-box; + box-shadow: none; + background-color: #303340; } + .osd scale > trough > slider:disabled { + color: #97999f; + border-color: black; + background-color: transparent; + background-image: image(rgba(68, 72, 83, 0.5)); + background-clip: padding-box; + background-color: #303340; } + scale > value { + color: alpha(currentColor,0.55); + font-feature-settings: "tnum"; } + scale.horizontal > marks { + color: alpha(currentColor,0.55); } + scale.horizontal > marks.top { + margin-bottom: 6px; } + scale.horizontal > marks.bottom { + margin-top: 6px; } + scale.horizontal > marks indicator { + background-color: currentColor; + min-height: 6px; + min-width: 1px; } + scale.horizontal > value.left { + margin-right: 9px; } + scale.horizontal > value.right { + margin-left: 9px; } + scale.horizontal.fine-tune > marks.top { + margin-top: 3px; } + scale.horizontal.fine-tune > marks.bottom { + margin-bottom: 3px; } + scale.horizontal.fine-tune > marks indicator { + min-height: 3px; } + scale.vertical > marks { + color: alpha(currentColor,0.55); } + scale.vertical > marks.top { + margin-right: 6px; } + scale.vertical > marks.bottom { + margin-left: 6px; } + scale.vertical > marks indicator { + background-color: currentColor; + min-height: 1px; + min-width: 6px; } + scale.vertical > value.top { + margin-bottom: 9px; } + scale.vertical > value.bottom { + margin-top: 9px; } + scale.vertical.fine-tune > marks.top { + margin-left: 3px; } + scale.vertical.fine-tune > marks.bottom { + margin-right: 3px; } + scale.vertical.fine-tune > marks indicator { + min-height: 3px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above.png"), url("assets/slider-horz-scale-has-marks-above@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover.png"), url("assets/slider-horz-scale-has-marks-above-hover@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active.png"), url("assets/slider-horz-scale-has-marks-above-active@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-before:not(.marks-after) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-insensitive.png"), url("assets/slider-horz-scale-has-marks-above-insensitive@2.png")); + min-height: 26px; + min-width: 22px; + margin-top: -14px; + background-position: top; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -7px -10px; + margin-top: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below.png"), url("assets/slider-horz-scale-has-marks-below@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-hover.png"), url("assets/slider-horz-scale-has-marks-below-hover@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-active.png"), url("assets/slider-horz-scale-has-marks-below-active@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.horizontal.marks-after:not(.marks-before) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-insensitive.png"), url("assets/slider-horz-scale-has-marks-below-insensitive@2.png")); + min-height: 26px; + min-width: 22px; + margin-bottom: -14px; + background-position: bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.horizontal.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -7px -10px; + margin-bottom: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above.png"), url("assets/slider-vert-scale-has-marks-above@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-hover.png"), url("assets/slider-vert-scale-has-marks-above-hover@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-active.png"), url("assets/slider-vert-scale-has-marks-above-active@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-before:not(.marks-after) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-insensitive.png"), url("assets/slider-vert-scale-has-marks-above-insensitive@2.png")); + min-height: 22px; + min-width: 26px; + margin-left: -14px; + background-position: left bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-before.fine-tune:not(.marks-after) > trough > slider { + margin: -10px -7px; + margin-left: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below.png"), url("assets/slider-vert-scale-has-marks-below@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:hover { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-hover.png"), url("assets/slider-vert-scale-has-marks-below-hover@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:active { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-active.png"), url("assets/slider-vert-scale-has-marks-below-active@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.vertical.marks-after:not(.marks-before) > trough > slider:disabled { + margin: -10px; + border-style: none; + border-radius: 0; + background-color: transparent; + background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-insensitive.png"), url("assets/slider-vert-scale-has-marks-below-insensitive@2.png")); + min-height: 22px; + min-width: 26px; + margin-right: -14px; + background-position: right bottom; + background-repeat: no-repeat; + box-shadow: none; } + scale.vertical.marks-after.fine-tune:not(.marks-before) > trough > slider { + margin: -10px -7px; + margin-right: -11px; } + scale.color { + min-height: 0; + min-width: 0; } + scale.color > trough { + background-image: image(#d9d9d9); + background-repeat: no-repeat; } + scale.color.horizontal { + padding: 0 0 15px 0; } + scale.color.horizontal > trough { + padding-bottom: 4px; + background-position: 0 -3px; + border-top-left-radius: 0; + border-top-right-radius: 0; } + scale.color.horizontal > trough > slider:dir(ltr):hover, scale.color.horizontal > trough > slider:dir(ltr):backdrop, scale.color.horizontal > trough > slider:dir(ltr):disabled, scale.color.horizontal > trough > slider:dir(ltr):backdrop:disabled, scale.color.horizontal > trough > slider:dir(ltr), scale.color.horizontal > trough > slider:dir(rtl):hover, scale.color.horizontal > trough > slider:dir(rtl):backdrop, scale.color.horizontal > trough > slider:dir(rtl):disabled, scale.color.horizontal > trough > slider:dir(rtl):backdrop:disabled, scale.color.horizontal > trough > slider:dir(rtl) { + margin-bottom: -15px; + margin-top: 6px; } + scale.color.vertical:dir(ltr) { + padding: 0 0 0 15px; } + scale.color.vertical:dir(ltr) > trough { + padding-left: 4px; + background-position: 3px 0; + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + scale.color.vertical:dir(ltr) > trough > slider:hover, scale.color.vertical:dir(ltr) > trough > slider:backdrop, scale.color.vertical:dir(ltr) > trough > slider:disabled, scale.color.vertical:dir(ltr) > trough > slider:backdrop:disabled, scale.color.vertical:dir(ltr) > trough > slider { + margin-left: -15px; + margin-right: 6px; } + scale.color.vertical:dir(rtl) { + padding: 0 15px 0 0; } + scale.color.vertical:dir(rtl) > trough { + padding-right: 4px; + background-position: -3px 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + scale.color.vertical:dir(rtl) > trough > slider:hover, scale.color.vertical:dir(rtl) > trough > slider:backdrop, scale.color.vertical:dir(rtl) > trough > slider:disabled, scale.color.vertical:dir(rtl) > trough > slider:backdrop:disabled, scale.color.vertical:dir(rtl) > trough > slider { + margin-right: -15px; + margin-left: 6px; } + scale.color.fine-tune.horizontal:dir(ltr), scale.color.fine-tune.horizontal:dir(rtl) { + padding: 0 0 12px 0; } + scale.color.fine-tune.horizontal:dir(ltr) > trough, scale.color.fine-tune.horizontal:dir(rtl) > trough { + padding-bottom: 7px; + background-position: 0 -6px; } + scale.color.fine-tune.horizontal:dir(ltr) > trough > slider, scale.color.fine-tune.horizontal:dir(rtl) > trough > slider { + margin-bottom: -15px; + margin-top: 6px; } + scale.color.fine-tune.vertical:dir(ltr) { + padding: 0 0 0 12px; } + scale.color.fine-tune.vertical:dir(ltr) > trough { + padding-left: 7px; + background-position: 6px 0; } + scale.color.fine-tune.vertical:dir(ltr) > trough > slider { + margin-left: -15px; + margin-right: 6px; } + scale.color.fine-tune.vertical:dir(rtl) { + padding: 0 12px 0 0; } + scale.color.fine-tune.vertical:dir(rtl) > trough { + padding-right: 7px; + background-position: -6px 0; } + scale.color.fine-tune.vertical:dir(rtl) > trough > slider { + margin-right: -15px; + margin-left: 6px; } + +/***************** + * Progress bars * + *****************/ +progressbar { + font-size: smaller; + color: rgba(92, 97, 108, 0.4); + font-feature-settings: "tnum"; } + progressbar.horizontal > trough { + min-width: 150px; } + progressbar.horizontal > trough, progressbar.horizontal > trough > progress { + min-height: 2px; } + progressbar.vertical > trough { + min-height: 80px; } + progressbar.vertical > trough, progressbar.vertical > trough > progress { + min-width: 2px; } + progressbar.horizontal > trough > progress { + margin: 0 -1px; } + progressbar.vertical > trough > progress { + margin: -1px 0; } + progressbar > trough > progress { + /* share most of scales' */ + /* override insensitive that is specific to progress */ + border-radius: 1.5px; } + progressbar > trough > progress:disabled { + background-color: #aeb0b6; + border-color: #aeb0b6; } + progressbar > trough > progress.left { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } + progressbar > trough > progress.right { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; } + progressbar > trough > progress.top { + border-top-right-radius: 5px; + border-top-left-radius: 5px; } + progressbar > trough > progress.bottom { + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; } + progressbar.osd { + min-width: 3px; + min-height: 3px; + background-color: transparent; } + progressbar.osd > trough { + border-style: none; + border-radius: 0; + background-color: transparent; + box-shadow: none; } + progressbar.osd > trough > progress { + border-style: none; + border-radius: 0; } + progressbar > trough.empty > progress { + all: unset; } + +/************* + * Level Bar * + *************/ +levelbar.horizontal trough > block { + min-height: 9px; + border-radius: 5px; } + levelbar.horizontal trough > block:dir(rtl) { + border-radius: 0 5px 5px 0; } + levelbar.horizontal trough > block:dir(ltr) { + border-radius: 5px 0 0 5px; } + levelbar.horizontal trough > block.empty, levelbar.horizontal trough > block.full { + border-radius: 5px; } + +levelbar.horizontal.discrete trough > block { + min-height: 2px; + margin: 1px; + min-width: 24px; + border-radius: 0; } + levelbar.horizontal.discrete trough > block:first-child { + border-radius: 2px 0 0 2px; } + levelbar.horizontal.discrete trough > block:last-child { + border-radius: 0 2px 2px 0; } + +levelbar.vertical trough > block { + min-width: 9px; + border-radius: 5px; } + +levelbar.vertical.discrete > trough > block { + min-width: 2px; + margin: 1px 0; + min-height: 32px; } + +levelbar > trough { + padding: 0; } + +levelbar > trough > block { + border: 1px solid; } + levelbar > trough > block.low { + border-color: #fd7d00; + background-color: #fd7d00; } + levelbar > trough > block.high, levelbar > trough > block:not(.empty) { + border-color: #2777ff; + background-color: #2777ff; } + levelbar > trough > block.full { + border-color: #3db47e; + background-color: #3db47e; } + levelbar > trough > block.empty { + background-color: #f2f2f2; + border-color: #f2f2f2; } + +/**************** + * Print dialog * +*****************/ +window.dialog.print drawing { + color: #5c616c; + background: none; + border: none; + padding: 0; } + window.dialog.print drawing paper { + background: white; + color: #2e3436; + border: 1px solid #d9d9d9; } + +window.dialog.print .dialog-action-box { + margin: 12px; } + +/********** + * Frames * + **********/ +frame, +.frame { + border: 1px solid #d9d9d9; } + +frame { + border-radius: 8px; } + frame > label { + margin: 4px; } + +actionbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid #d9d9d9; } + +scrolledwindow > overshoot.top { + background-image: radial-gradient(farthest-side at top, #bfbfbf 85%, rgba(191, 191, 191, 0)), radial-gradient(farthest-side at top, rgba(92, 97, 108, 0.07), rgba(92, 97, 108, 0)); + background-size: 100% 3%, 100% 50%; + background-repeat: no-repeat; + background-position: top; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.bottom { + background-image: radial-gradient(farthest-side at bottom, #bfbfbf 85%, rgba(191, 191, 191, 0)), radial-gradient(farthest-side at bottom, rgba(92, 97, 108, 0.07), rgba(92, 97, 108, 0)); + background-size: 100% 3%, 100% 50%; + background-repeat: no-repeat; + background-position: bottom; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.left { + background-image: radial-gradient(farthest-side at left, #bfbfbf 85%, rgba(191, 191, 191, 0)), radial-gradient(farthest-side at left, rgba(92, 97, 108, 0.07), rgba(92, 97, 108, 0)); + background-size: 3% 100%, 50% 100%; + background-repeat: no-repeat; + background-position: left; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > overshoot.right { + background-image: radial-gradient(farthest-side at right, #bfbfbf 85%, rgba(191, 191, 191, 0)), radial-gradient(farthest-side at right, rgba(92, 97, 108, 0.07), rgba(92, 97, 108, 0)); + background-size: 3% 100%, 50% 100%; + background-repeat: no-repeat; + background-position: right; + background-color: transparent; + border: none; + box-shadow: none; } + +scrolledwindow > junction { + background: #d9d9d9, linear-gradient(to bottom, transparent 1px, #fafafa 1px), linear-gradient(to right, transparent 1px, #fafafa 1px); } + scrolledwindow > junction:dir(rtl) { + background: #d9d9d9, linear-gradient(to bottom, transparent 1px, #fafafa 1px), linear-gradient(to left, transparent 1px, #fafafa 1px); } + +separator { + background: #e6e6e6; + min-width: 1px; + min-height: 1px; } + +/********* + * Lists * + *********/ +listview, +list { + color: black; + background-color: #fafafa; + border-color: #d9d9d9; } + listview:backdrop, + list:backdrop { + color: #313131; + background-color: #f7f7f7; + border-color: #e0e0e0; } + listview > row, + list > row { + padding: 2px; } + listview > row.expander, + list > row.expander { + padding: 0px; } + listview > row.expander .row-header, + list > row.expander .row-header { + padding: 2px; } + listview.horizontal row.separator, listview.separators.horizontal > row:not(.separator), + list.horizontal row.separator, + list.separators.horizontal > row:not(.separator) { + border-left: 1px solid #dfdfdf; } + listview:not(.horizontal) row.separator, listview.separators:not(.horizontal) > row:not(.separator), + list:not(.horizontal) row.separator, + list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: 1px solid #dfdfdf; } + +row { + outline: 0 solid transparent; + outline-offset: 4px; } + +row:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + +row.activatable.has-open-popup, row.activatable:hover { + background-color: rgba(92, 97, 108, 0.05); } + +row.activatable:active { + box-shadow: inset 0 2px 2px -2px rgba(0, 0, 0, 0.2); } + +row.activatable:selected:active { + box-shadow: inset 0 2px 3px -1px rgba(0, 0, 0, 0.5); } + +row.activatable.has-open-popup:selected, row.activatable:selected:hover { + background-color: #2c75f0; } + +row:selected { + outline-color: rgba(255, 255, 255, 0.8); } + +columnview > listview > row { + padding: 0; } + columnview > listview > row > cell { + padding: 8px 6px; } + columnview > listview > row > cell:not(:first-child) { + border-left: 1px solid transparent; } + +columnview.column-separators > listview > row > cell { + border-left-color: #dfdfdf; } + +columnview.data-table > listview > row > cell { + padding-top: 2px; + padding-bottom: 2px; } + +treeexpander { + border-spacing: 4px; } + +/******************************************************** + * Data Tables * + * treeview like tables with individual focusable cells * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 * + ********************************************************/ +columnview row:not(:selected) cell editablelabel:not(.editing):focus-within { + outline: 2px solid rgba(39, 119, 255, 0.5); } + +columnview row:not(:selected) cell editablelabel.editing:focus-within { + outline: 2px solid #2777ff; } + +columnview row:not(:selected) cell editablelabel.editing text selection { + color: #ffffff; + background-color: #2777ff; } + +/******************************************************* + * Rich Lists * + * Large list usually containing lots of widgets * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/3073 * + *******************************************************/ +.rich-list { + /* rich lists usually containing other widgets than just labels/text */ } + .rich-list > row { + padding: 8px 12px; + min-height: 32px; + /* should be tall even when only containing a label */ } + .rich-list > row > box { + border-spacing: 12px; } + +/********************* + * App Notifications * + *********************/ +.app-notification { + padding: 10px; + border-spacing: 10px; + border-radius: 0 0 5px 5px; + background-color: #303340; + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), transparent 2px); + background-clip: padding-box; } + .app-notification border { + border: none; } + +/************* + * Expanders * + *************/ +expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + expander:disabled { + color: #aeb0b6; } + expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + +expander-widget > box > title { + outline: 0 solid transparent; + outline-offset: 4px; } + +expander-widget:focus:focus-visible > box > title { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: -2px; } + +expander-widget > box > title { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + border-radius: 5px; } + expander-widget > box > title:hover > expander { + color: #aaaeb7; } + +.navigation-sidebar:not(decoration):not(window):drop(active):focus, .navigation-sidebar:not(decoration):not(window):drop(active), +placessidebar:not(decoration):not(window):drop(active):focus, +placessidebar:not(decoration):not(window):drop(active), +stackswitcher:not(decoration):not(window):drop(active):focus, +stackswitcher:not(decoration):not(window):drop(active), +expander-widget:not(decoration):not(window):drop(active):focus, +expander-widget:not(decoration):not(window):drop(active) { + box-shadow: none; } + +/************ + * Calendar * + ***********/ +calendar { + color: black; + border: 1px solid #d9d9d9; } + calendar > header { + border-bottom: 1px solid #d9d9d9; } + calendar > header > button { + border: none; + box-shadow: none; + background: none; + border-radius: 0; } + calendar > header > button:backdrop { + background: none; } + calendar > grid > label.today { + box-shadow: inset 0px -2px #d9d9d9; } + calendar > grid > label.today:selected { + box-shadow: none; } + calendar > grid > label:focus { + outline-color: rgba(39, 119, 255, 0.5); + outline-offset: -2px; + outline-width: 2px; + outline-style: solid; } + calendar > grid > label.day-number { + padding: 4px; } + calendar > grid > label.day-number:selected { + border-radius: 3px; } + calendar > grid > label.day-number.other-month { + color: alpha(currentColor,0.3); } + +/*********** + * Dialogs * + ***********/ +window.dialog.message .titlebar { + min-height: 20px; + background-image: none; + background-color: #ffffff; + border-style: none; + border-top-left-radius: 7px; + border-top-right-radius: 7px; } + +window.dialog.message box.dialog-vbox.vertical { + border-spacing: 10px; } + +window.dialog.message label.title { + font-weight: 800; + font-size: 15pt; } + +window.dialog.message.csd.background { + border-bottom-left-radius: 9px; + border-bottom-right-radius: 9px; } + +window.dialog.message.csd .dialog-action-area button { + padding: 10px 14px; + border-radius: 0; + border-left-style: solid; + border-right-style: none; + border-bottom-style: none; } + window.dialog.message.csd .dialog-action-area button:first-child { + border-left-style: none; + border-bottom-left-radius: 7px; } + window.dialog.message.csd .dialog-action-area button:last-child { + border-bottom-right-radius: 7px; } + +filechooser .dialog-action-box { + border-top: 1px solid #d9d9d9; } + +filechooser #pathbarbox { + border-bottom: 1px solid #ffffff; } + +filechooserbutton > button > box { + border-spacing: 6px; } + +filechooserbutton:drop(active) { + box-shadow: none; + border-color: transparent; } + +/*********** + * Sidebar * + ***********/ +.sidebar { + background-color: #fcfcfc; } + .sidebar:not(separator):dir(ltr), .sidebar.left:not(separator), .sidebar.left:not(separator):dir(rtl) { + border-right: 1px solid #d9d9d9; + border-left-style: none; } + .sidebar:not(separator):dir(rtl), .sidebar.right:not(separator) { + border-left: 1px solid #d9d9d9; + border-right-style: none; } + .sidebar listview.view, + .sidebar list { + background-color: transparent; } + paned .sidebar.left, paned .sidebar.right, paned .sidebar.left:dir(rtl), paned .sidebar:dir(rtl), paned .sidebar:dir(ltr), paned .sidebar { + border-style: none; } + +stacksidebar list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: none; } + +stacksidebar row { + padding: 10px 4px; } + stacksidebar row > label { + padding-left: 6px; + padding-right: 6px; } + stacksidebar row.needs-attention > label { + background-size: 6px 6px, 0 0; } + stacksidebar row:selected { + background-color: #eaebec; + border-radius: 5px; + color: #5c616c; } + stacksidebar row:selected:hover:dir(ltr), stacksidebar row:selected:hover:dir(rtl) { + background-color: #dddee0; } + stacksidebar row:focus:focus-visible { + outline-width: 0; + background-color: #2777ff; + color: #ffffff; } + stacksidebar row.activatable:active, stacksidebar row.activatable:selected:active { + box-shadow: none; } + +separator.sidebar { + background-color: #d9d9d9; } + +/********************** + * Navigation Sidebar * + **********************/ +.navigation-sidebar { + padding: 5px 0; } + .navigation-sidebar > separator { + margin: 5px; } + .navigation-sidebar > row { + min-height: 36px; + padding: 0 8px; + border-radius: 5px; + margin: 0 5px 2px; } + .navigation-sidebar > row:hover, .navigation-sidebar > row:focus-visible:focus-within { + background-color: #dddee0; } + .navigation-sidebar > row:selected { + background-color: #eaebec; + color: inherit; } + .navigation-sidebar > row:selected:hover { + background-color: #dddee0; } + .navigation-sidebar > row:selected:focus-visible:focus-within { + outline-width: 0; + color: #ffffff; + background-color: #2777ff; } + .navigation-sidebar > row:selected:focus-visible:focus-within:hover { + background-color: #005af3; } + .navigation-sidebar > row:disabled { + color: #aeb0b6; } + +/**************** + * File chooser * + ****************/ +row image.sidebar-icon { + opacity: 0.7; } + +/* this should be more generic, only using .navigation-sidebar + https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 +*/ +placessidebar .navigation-sidebar > row { + padding: 0; } + placessidebar .navigation-sidebar > row > revealer { + padding: 0 14px; } + placessidebar .navigation-sidebar > row image.sidebar-icon:dir(ltr) { + padding-right: 8px; } + placessidebar .navigation-sidebar > row image.sidebar-icon:dir(rtl) { + padding-left: 8px; } + placessidebar .navigation-sidebar > row label.sidebar-label:dir(ltr) { + padding-right: 2px; } + placessidebar .navigation-sidebar > row label.sidebar-label:dir(rtl) { + padding-left: 2px; } + button.sidebar-button { + min-height: 26px; + min-width: 26px; + margin-top: 3px; + margin-bottom: 3px; + padding: 0; + border-radius: 100%; } + placessidebar .navigation-sidebar > row:selected:active { + box-shadow: none; } + placessidebar .navigation-sidebar > row.sidebar-placeholder-row { + padding: 0 8px; + min-height: 2px; + background-image: image(#19a187); + background-clip: content-box; } + placessidebar .navigation-sidebar > row.sidebar-new-bookmark-row { + color: #2777ff; } + placessidebar .navigation-sidebar > row:drop(active):not(:disabled) { + color: #19a187; + box-shadow: inset 0 1px #19a187, inset 0 -1px #19a187; } + placessidebar .navigation-sidebar > row:drop(active):not(:disabled):selected { + color: #ffffff; + background-color: #19a187; } + +placesview .server-list-button > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(0turn); } + +placesview .server-list-button:checked > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(-0.5turn); } + +placesview > actionbar > revealer > box > box { + border-spacing: 6px; } + +/********* + * Paned * + *********/ +paned > separator { + min-width: 1px; + min-height: 1px; + -gtk-icon-source: none; + border-style: none; + background-color: transparent; + background-image: image(#d9d9d9); + background-size: 1px 1px; } + paned > separator:selected { + background-image: image(#2777ff); } + paned > separator.wide { + min-width: 5px; + min-height: 5px; + background-color: #ffffff; + background-image: image(#d9d9d9), image(#d9d9d9); + background-size: 1px 1px, 1px 1px; } + +paned.horizontal > separator { + background-repeat: repeat-y; } + paned.horizontal > separator:dir(ltr) { + margin: 0 -8px 0 0; + padding: 0 8px 0 0; + background-position: left; } + paned.horizontal > separator:dir(rtl) { + margin: 0 0 0 -8px; + padding: 0 0 0 8px; + background-position: right; } + paned.horizontal > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-y, repeat-y; + background-position: left, right; } + +paned.vertical > separator { + margin: 0 0 -8px 0; + padding: 0 0 8px 0; + background-repeat: repeat-x; + background-position: top; } + paned.vertical > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-x, repeat-x; + background-position: bottom, top; } + +/************** + * GtkVideo * + **************/ +video { + background: black; } + video image.osd { + min-width: 64px; + min-height: 64px; + border-radius: 32px; } + +/************ + * Tooltips * + ************/ +tooltip { + padding: 6px 10px; + border-radius: 8px; + box-shadow: none; } + tooltip.background { + background-color: rgba(0, 0, 0, 0.8); + background-clip: padding-box; + border: 1px solid rgba(255, 255, 255, 0.1); + color: white; } + tooltip > box { + border-spacing: 6px; } + +/***************** + * Color Chooser * + *****************/ +colorswatch { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + colorswatch { + outline: 0 solid transparent; + outline-offset: 6px; } + colorswatch:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 4px; + outline-offset: -2px; } + colorswatch:drop(active), colorswatch { + border-style: none; } + colorswatch.top { + border-top-left-radius: 5.5px; + border-top-right-radius: 5.5px; } + colorswatch.top > overlay { + border-top-left-radius: 5px; + border-top-right-radius: 5px; } + colorswatch.bottom { + border-bottom-left-radius: 5.5px; + border-bottom-right-radius: 5.5px; } + colorswatch.bottom > overlay { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; } + colorswatch.left, colorswatch:first-child:not(.top) { + border-top-left-radius: 5.5px; + border-bottom-left-radius: 5.5px; } + colorswatch.left > overlay, colorswatch:first-child:not(.top) > overlay { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } + colorswatch.right, colorswatch:last-child:not(.bottom) { + border-top-right-radius: 5.5px; + border-bottom-right-radius: 5.5px; } + colorswatch.right > overlay, colorswatch:last-child:not(.bottom) > overlay { + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; } + colorswatch.dark > overlay { + color: white; } + colorswatch.dark.activatable:hover > overlay { + border-color: rgba(0, 0, 0, 0.8); } + colorswatch.light > overlay { + color: black; } + colorswatch.light.activatable:hover > overlay { + border-color: rgba(0, 0, 0, 0.5); } + colorswatch:drop(active) { + box-shadow: none; } + colorswatch.light:drop(active) > overlay { + border-color: #19a187; + box-shadow: inset 0 0 0 2px #14826d, inset 0 0 0 1px #19a187; } + colorswatch.dark:drop(active) > overlay { + border-color: #19a187; + box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.3), inset 0 0 0 1px #19a187; } + colorswatch > overlay { + border: 1px solid rgba(0, 0, 0, 0.3); } + colorswatch.activatable:hover > overlay { + box-shadow: inset 0 1px rgba(255, 255, 255, 0.4), inset 0 -1px rgba(0, 0, 0, 0.2); } + colorswatch#add-color-button { + border-radius: 5px 0 0 5px; } + colorswatch#add-color-button:only-child { + border-radius: 5px; } + colorswatch#add-color-button > overlay { + color: #5c616c; + outline-color: rgba(39, 119, 255, 0.5); + border-color: #d9d9d9; + background-image: linear-gradient(to top, #fafafa 2px, white); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + colorswatch#add-color-button.activatable:hover > overlay { + color: #5c616c; + border-color: #d9d9d9; + background-image: linear-gradient(to top, #d6d6d6, #ebebeb 1px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } + colorswatch:disabled { + opacity: 0.5; } + colorswatch:disabled > overlay { + border-color: rgba(0, 0, 0, 0.6); + box-shadow: none; } + row:selected colorswatch { + box-shadow: 0 0 0 2px #ffffff; } + colorswatch#editor-color-sample { + border-radius: 4px; } + colorswatch#editor-color-sample > overlay { + border-radius: 4.5px; } + +plane { + transition: outline-width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), outline-offset 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + plane { + outline: 0 solid transparent; + outline-offset: 6px; } + plane:focus:focus-visible { + outline-color: rgba(39, 119, 255, 0.5); + outline-width: 2px; + outline-offset: 2px; } + +colorchooser .popover.osd { + border-radius: 5px; } + +/******** + * Misc * + ********/ +.content-view { + background-color: #ededed; } + .content-view:hover { + -gtk-icon-filter: brightness(1.2); } + .content-view .tile { + margin: 2px; + background-color: transparent; + border-radius: 0; + padding: 0; } + .content-view .tile:active, .content-view .tile:selected { + background-color: transparent; } + .content-view .tile:disabled { + background-color: transparent; } + +.osd .scale-popup button.flat { + border-style: none; + border-radius: 5px; } + +.scale-popup button:hover { + background-color: rgba(92, 97, 108, 0.1); + border-radius: 5px; } + +/********************** + * Window Decorations * + *********************/ +window { + border-width: 0px; } + window.csd { + box-shadow: 0 3px 9px 1px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 0, 0, 0.23); + margin: 0px; + border-radius: 8px 8px 0 0; } + window.csd:backdrop { + box-shadow: 0 3px 9px 1px transparent, 0 2px 6px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.18); + transition: 200ms ease-out; } + window.csd.popup { + border-radius: 5px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); } + window.csd.dialog.message { + border-radius: 8px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); } + window.csd.solid-csd { + margin: 0; + padding: 0; + border: solid 1px #d9d9d9; + border-radius: 0; + box-shadow: inset 0 0 0 3px white, inset 0 1px rgba(255, 255, 255, 0.8); } + window.csd.solid-csd:backdrop { + box-shadow: inset 0 0 0 3px #ffffff, inset 0 1px rgba(255, 255, 255, 0.8); } + window.maximized, window.fullscreen, window.tiled, window.tiled-top, window.tiled-left, window.tiled-right, window.tiled-bottom { + border-radius: 0; } + window.popup { + box-shadow: none; } + window.ssd { + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.23); } + +tooltip.csd { + border-radius: 5px; + box-shadow: none; } + +filechooser placessidebar.sidebar row.sidebar-row:selected, +.nautilus-window placessidebar.sidebar row.sidebar-row:selected, .view:selected:focus, .view:selected, +textview > text:selected:focus, +textview > text:selected, textview > text > selection:focus, textview > text > selection, iconview:selected:focus, iconview:selected, flowbox > flowboxchild:selected, gridview > child:selected, +entry > text > selection, modelbutton.flat:selected, spinbutton:not(.vertical) > text > selection, spinbutton.vertical > text > text > selection, spinbutton.vertical > text > selection, columnview.view:selected:focus, columnview.view:selected, +treeview.view:selected:focus, +treeview.view:selected, row:selected, calendar > grid > label.day-number:selected { + background-color: #2777ff; } + label:selected, filechooser placessidebar.sidebar row.sidebar-row:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected, .view:selected:focus, .view:selected, + textview > text:selected:focus, + textview > text:selected, textview > text > selection:focus, textview > text > selection, iconview:selected:focus, iconview:selected, flowbox > flowboxchild:selected, gridview > child:selected, + entry > text > selection, modelbutton.flat:selected, spinbutton:not(.vertical) > text > selection, spinbutton.vertical > text > text > selection, spinbutton.vertical > text > selection, columnview.view:selected:focus, columnview.view:selected, + treeview.view:selected:focus, + treeview.view:selected, row:selected, calendar > grid > label.day-number:selected { + color: #ffffff; } + label:disabled > selection, label:disabled:selected, filechooser placessidebar.sidebar row.sidebar-row:disabled:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:disabled:selected, .view:disabled:selected, + textview > text:disabled:selected:focus, + textview > text:disabled:selected, textview > text > selection:disabled, iconview:disabled:selected:focus, iconview:disabled:selected, flowbox > flowboxchild:disabled:selected, gridview > child:disabled:selected, + entry > text > selection:disabled, modelbutton.flat:disabled:selected, spinbutton:not(.vertical) > text > selection:disabled, spinbutton.vertical > text > text > selection:disabled, spinbutton.vertical > text > selection:disabled, columnview.view:disabled:selected, + treeview.view:disabled:selected, row:disabled:selected, calendar > grid > label.day-number:disabled:selected { + color: #93bbff; } + +.monospace { + font-family: monospace; } + +/********************** + * Touch Copy & Paste * + *********************/ +cursor-handle { + background-color: transparent; + background-image: none; + box-shadow: none; + border-style: none; + min-width: 20px; + min-height: 24px; + padding-left: 20px; + padding-right: 20px; + padding-top: 24px; + padding-bottom: 24px; } + cursor-handle.top:dir(ltr), cursor-handle.bottom:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start.png"), url("assets/text-select-start@2.png")); } + cursor-handle.bottom:dir(ltr), cursor-handle.top:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end.png"), url("assets/text-select-end@2.png")); } + cursor-handle.insertion-cursor:dir(ltr), cursor-handle.insertion-cursor:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above.png"), url("assets/slider-horz-scale-has-marks-above@2.png")); } + cursor-handle.top:hover:dir(ltr), cursor-handle.bottom:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-hover.png"), url("assets/text-select-start-hover@2.png")); } + cursor-handle.bottom:hover:dir(ltr), cursor-handle.top:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-hover.png"), url("assets/text-select-end-hover@2.png")); } + cursor-handle.insertion-cursor:hover:dir(ltr), cursor-handle.insertion-cursor:hover:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover.png"), url("assets/slider-horz-scale-has-marks-above-hover@2.png")); } + cursor-handle.top:active:dir(ltr), cursor-handle.bottom:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-start-active.png"), url("assets/text-select-start-active@2.png")); } + cursor-handle.bottom:active:dir(ltr), cursor-handle.top:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/text-select-end-active.png"), url("assets/text-select-end-active@2.png")); } + cursor-handle.insertion-cursor:active:dir(ltr), cursor-handle.insertion-cursor:active:dir(rtl) { + -gtk-icon-source: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active.png"), url("assets/slider-horz-scale-has-marks-above-active@2.png")); } + +shortcuts-section { + margin: 20px; } + +.shortcuts-search-results { + margin: 20px; + border-spacing: 24px; } + +shortcut { + border-spacing: 6px; } + +shortcut > .keycap { + min-width: 20px; + min-height: 25px; + margin-top: 2px; + padding-bottom: 3px; + padding-left: 6px; + padding-right: 6px; + color: #5c616c; + background-color: #fafafa; + border: 1px solid; + border-color: #ececec; + border-radius: 5px; + box-shadow: inset 0 -3px #fefefe; + font-size: smaller; } + +:not(decoration):not(window):drop(active):focus, +:not(decoration):not(window):drop(active) { + border-color: #19a187; + box-shadow: inset 0 0 0 1px #19a187; + caret-color: #19a187; } + +stackswitcher > button.text-button { + min-width: 100px; } + +stackswitcher.circular { + border-spacing: 12px; } + stackswitcher.circular > button.circular, + stackswitcher.circular > button.text-button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; } + +/************* + * App Icons * + *************/ +/* Outline for low res icons */ +.lowres-icon { + -gtk-icon-shadow: 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1); } + +/* Drapshadow for large icons */ +.icon-dropshadow { + -gtk-icon-shadow: 0 1px 12px rgba(0, 0, 0, 0.05), 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1); } + +/********* + * Emoji * + ********/ +popover.emoji-picker > contents { + padding: 0; } + +.emoji-searchbar { + padding: 6px; + border-spacing: 6px; + border-bottom: 1px solid #d9d9d9; } + +.emoji-toolbar { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid #d9d9d9; } + +button.emoji-section { + border-color: transparent; + border-width: 3px; + border-style: none none solid; + border-radius: 0; + padding: 3px 0 0; + min-width: 32px; + min-height: 28px; + /* reset props inherited from the button style */ + background: none; + box-shadow: none; + text-shadow: none; } + button.emoji-section:hover { + border-color: #d9d9d9; } + button.emoji-section:checked { + border-color: #2777ff; } + +popover.emoji-picker emoji { + font-size: x-large; + padding: 6px; + border-radius: 6px; } + popover.emoji-picker emoji:focus, popover.emoji-picker emoji:hover { + background: #2777ff; } + +emoji-completion-row > box { + border-spacing: 10px; + padding: 2px 10px; } + +emoji-completion-row:focus, +emoji-completion-row:hover { + background-color: #2777ff; + color: #ffffff; } + +emoji-completion-row emoji:focus, +emoji-completion-row emoji:hover { + background-color: #eaebec; } + +popover.entry-completion > contents { + padding: 0; } + +statusbar { + padding: 6px 10px 6px 10px; } + +/* Nautilus */ +@define-color disk_space_unknown #383c4a; +@define-color disk_space_used #2777ff; +@define-color disk_space_free white; +filechooser placessidebar.sidebar, +.nautilus-window placessidebar.sidebar { + box-shadow: inset 0 8px 4px -8px rgba(0, 0, 0, 0.3); } + filechooser placessidebar.sidebar:dir(ltr), + .nautilus-window placessidebar.sidebar:dir(ltr) { + background-image: linear-gradient(to right, whitesmoke 41px, #ffffff 0); } + filechooser placessidebar.sidebar:dir(rtl), + .nautilus-window placessidebar.sidebar:dir(rtl) { + background-image: linear-gradient(to left, whitesmoke 41px, #ffffff 0); } + filechooser placessidebar.sidebar:backdrop, + .nautilus-window placessidebar.sidebar:backdrop { + box-shadow: none; } + filechooser placessidebar.sidebar row.sidebar-row:selected, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected { + margin-left: 6px; + margin-right: 6px; + border-radius: 5px; + box-shadow: 0 1px 4px rgba(39, 119, 255, 0.5); + transition: box-shadow 200ms ease-out; } + filechooser placessidebar.sidebar row.sidebar-row:selected:backdrop, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:backdrop { + box-shadow: none; } + filechooser placessidebar.sidebar row.sidebar-row:selected:dir(ltr), + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:dir(ltr) { + background-image: linear-gradient(to right, #005af3 35px, transparent 0); } + filechooser placessidebar.sidebar row.sidebar-row:selected:dir(rtl), + .nautilus-window placessidebar.sidebar row.sidebar-row:selected:dir(rtl) { + background-image: linear-gradient(to left, #005af3 35px, transparent 0); } + filechooser placessidebar.sidebar row.sidebar-row:selected revealer, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer { + padding-left: 8px; + padding-right: 8px; } + filechooser placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-icon, filechooser placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-label, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-icon, + .nautilus-window placessidebar.sidebar row.sidebar-row:selected revealer .sidebar-label { + color: #ffffff; } + filechooser placessidebar.sidebar row.sidebar-row .sidebar-icon, + .nautilus-window placessidebar.sidebar row.sidebar-row .sidebar-icon { + padding-right: 20px; } + +.nautilus-window .floating-bar { + color: #ffffff; + background-color: #2777ff; + border-color: #0051da; + margin: 10px; + box-shadow: 0 1px 4px rgba(39, 119, 255, 0.5); + transition: background-color 200ms ease-out; } + .nautilus-window .floating-bar:backdrop { + color: inherit; + box-shadow: none; + border-color: #d9d9d9; } + .nautilus-window .floating-bar.bottom.left, .nautilus-window .floating-bar.bottom.right { + border-radius: 5px; + border-style: solid; } + +.path-bar-box:backdrop { + border-color: #e0e0e0; } + +/* XFCE4 PANEL */ +.xfce4-panel.background { + background: rgba(255, 255, 255, 0.9); } + +.xfce4-panel button { + border: 0; + border-radius: 0; + box-shadow: none; + text-shadow: none; + background: transparent; + color: #454850; } + .xfce4-panel button:hover { + background: #ffffff; } + .xfce4-panel button:not(#whiskermenu-button):checked, .xfce4-panel button:not(#whiskermenu-button):active { + box-shadow: inset 0 4px 0 #2777ff; + background: #ffffff; } + +.xfce4-panel.vertical button:not(#whiskermenu-button):checked, .xfce4-panel.vertical button:not(#whiskermenu-button):active { + box-shadow: inset 4px 0 0 #2777ff; } + +/* XFCE4 NOTIFICATIONS */ +#XfceNotifyWindow { + background-color: #272a34; } + +/* Whisker menu */ +#whiskermenu-window entry { + border-radius: 100px; + border: 2px solid #2777ff; + box-shadow: none; } + +#whiskermenu-window button { + transition-duration: 0s; } + #whiskermenu-window button:checked { + border-color: transparent; } + +#whiskermenu-window scrolledwindow.frame { + border: 0; + border-radius: 8px; + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + background: #ffffff; + padding: 7px 10px; + margin: 0 5px; } + #whiskermenu-window scrolledwindow.frame treeview { + background: transparent; + border-radius: 5px; } + #whiskermenu-window scrolledwindow.frame treeview:hover, #whiskermenu-window scrolledwindow.frame treeview:active, #whiskermenu-window scrolledwindow.frame treeview:selected { + background-color: rgba(0, 0, 0, 0.07); + color: inherit; } + +/* XFCE4 panel action buttons */ +#XfcePanelWindowWrapper > widget > box > #xfce-panel-button > image { + -gtk-icon-style: symbolic; + -gtk-icon-transform: scale(0.7); } + +/* XFCE4 workspace switcher */ +wnck-pager { + background-color: white; } + wnck-pager:selected { + background-color: #cccccc; } + wnck-pager:hover { + background-color: #cccccc; } + +/* LightDM */ +.lightdm-gtk-greeter #panel_window { + background: rgba(255, 255, 255, 0.9); + color: #5c616c; + text-shadow: none; + -gtk-icon-shadow: none; } + +.lightdm-gtk-greeter #login_window { + border: 0; + background-color: rgba(255, 255, 255, 0.9); + border-radius: 5px; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.15); } + .lightdm-gtk-greeter #login_window entry { + background: rgba(255, 255, 255, 0.4); + border-color: rgba(255, 255, 255, 0.3); + min-height: 32px; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.05), 0 1px 2px rgba(0, 0, 0, 0.2); } + .lightdm-gtk-greeter #login_window entry image { + margin: 0; } + .lightdm-gtk-greeter #login_window #buttonbox_frame { + padding-top: 20px; + background: #ffffff; + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 0 0 5px 5px; + box-shadow: inset 0 -4px rgba(0, 0, 0, 0.2), inset 0 1px 2px rgba(0, 0, 0, 0.07); } + .lightdm-gtk-greeter #login_window #buttonbox_frame button { + border: 0; + color: white; + text-shadow: none; } + .lightdm-gtk-greeter #login_window #buttonbox_frame #cancel_button { + background: rgba(0, 0, 0, 0.07); + box-shadow: none; + color: #5c616c; } + .lightdm-gtk-greeter #login_window #buttonbox_frame #login_button { + background: #2777ff; + box-shadow: inset 0 -2px rgba(0, 0, 0, 0.2); } + +/* Thunar */ +.thunar .warning { + opacity: 0; + font-size: 0; + margin: -10px 0; } + +/* GTK NAMED COLORS + ---------------- + use responsibly! */ +/* +widget text/foreground color */ +@define-color theme_fg_color #5c616c; +/* +text color for entries, views and content in general */ +@define-color theme_text_color black; +/* +widget base background color */ +@define-color theme_bg_color #ffffff; +/* +text widgets and the like base background color */ +@define-color theme_base_color #fafafa; +/* +base background color of selections */ +@define-color theme_selected_bg_color #2777ff; +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color #ffffff; +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color #fdfdfd; +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color #aeb0b6; +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color #fafafa; +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color #aeb0b6; +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color black; +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #ffffff; +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #f7f7f7; +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color #2777ff; +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color #ffffff; +/* +insensitive color on backdrop windows*/ +@define-color unfocused_insensitive_color #d9d9d9; +/* +widgets main borders color */ +@define-color borders #d9d9d9; +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #e0e0e0; +/* +these are pretty self explicative */ +@define-color warning_color #fd7d00; +@define-color error_color #bf1717; +@define-color success_color #3db47e; +/* +these colors are exported for the window manager and shouldn't be used in applications, +read if you used those and something break with a version upgrade you're on your own... */ +@define-color wm_title shade(#5c616c, 1.8); +@define-color wm_unfocused_title #aeb0b6; +@define-color wm_highlight rgba(255, 255, 255, 0.8); +@define-color wm_borders_edge rgba(255, 255, 255, 0.8); +@define-color wm_bg_a shade(#ffffff, 1.2); +@define-color wm_bg_b #ffffff; +@define-color wm_shadow alpha(black, 0.35); +@define-color wm_border alpha(black, 0.18); +@define-color wm_button_hover_color_a shade(#ffffff, 1.3); +@define-color wm_button_hover_color_b #ffffff; +@define-color wm_button_active_color_a shade(#ffffff, 0.85); +@define-color wm_button_active_color_b shade(#ffffff, 0.89); +@define-color wm_button_active_color_c shade(#ffffff, 0.9); +/* content view background such as thumbnails view in Photos or Boxes */ +@define-color content_view_bg #fafafa; +/* Very contrasty background for text views (@theme_text_color foreground) */ +@define-color text_view_bg #fafafa; +.gedit-document-panel { + background-color: @sidebar_bg; +} + +.gedit-document-panel:backdrop { + color: #b0b2b2; +} + +.gedit-document-panel row:selected:backdrop { + background-color: #8b8e8f; +} + +.gedit-document-panel-group-row, +.gedit-document-panel-group-row:hover { + border-top: 1px solid alpha(currentColor, 0.3); +} + +.gedit-document-panel-group-row:first-child, +.gedit-document-panel-group-row:first-child:hover { + border-top: 0px; +} + +/* Try to look as the notebook tab close button */ +.gedit-document-panel row button.flat { + padding: 0; + margin-top: 8px; + margin-bottom: 8px; + min-width: 18px; + min-height: 18px; + color: alpha(currentColor,0.3); +} + +.gedit-document-panel row:hover button.flat { + color: alpha(currentColor,0.5); +} + +.gedit-document-panel row button.flat:hover { + color: @theme_fg_color; +} + +statusbar { + border-top: 1px solid @borders; +} + +.gedit-search-slider { + background-color: @theme_base_color; + padding: 6px; + border-color: @borders; + border-radius: 0 0 3px 3px; + border-width: 0 1px 1px 1px; + border-style: solid; +} + +.gedit-search-entry-occurrences-tag { + background-color: @theme_base_color; + background-image: none; + color: shade (@theme_unfocused_fg_color, 0.8); + border: 0px; + margin: 2px; + padding: 2px; +} +.nautilus-window, +.nautilus-window notebook, +.nautilus-window notebook > stack { + background: @theme_base_color; +} + +.nautilus-canvas-item { + border-radius: 5px; +} + +.nautilus-canvas-item.dim-label, +.nautilus-list-dim-label { + color: mix (@theme_fg_color, @theme_bg_color, 0.50); +} + +.nautilus-canvas-item.dim-label:selected, +.nautilus-list-dim-label:selected { + color: mix (@theme_selected_fg_color, @theme_selected_bg_color, 0.20); +} + +/* Toolbar */ + +/* Here we use the .button background-image colors from Adwaita, but ligthen them, + * since is not possible to use lighten () in common css. */ +@keyframes needs_attention_keyframes { + 0% {background-image: linear-gradient(to bottom, #fafafa, #ededed 40%, #e0e0e0); border-color: @borders; } + /* can't do animation-direction, so holding the color on two keyframes */ + 30% {background-image: linear-gradient(to bottom, @theme_base_color, @theme_base_color, @theme_base_color); border-color: @theme_fg_color; } + 90% {background-image: linear-gradient(to bottom, @theme_base_color, @theme_base_color, @theme_base_color); border-color: @theme_fg_color; } + 100% {background-image: linear-gradient(to bottom, #fafafa, #ededed 40%, #e0e0e0); border-color: @borders; } +} + +.nautilus-operations-button-needs-attention { + animation: needs_attention_keyframes 2s ease-in-out; +} +.nautilus-operations-button-needs-attention-multiple { + animation: needs_attention_keyframes 3s ease-in-out; + animation-iteration-count: 3; +} + +.disclosure-button { + padding-left: 4px; + padding-right: 4px; +} + +/* Path bar */ + +.path-bar-box { + border-radius: 5px; + border: 1px @borders solid; + background-color: @theme_bg_color; + padding-right: 6px; +} + +.nautilus-path-bar button { + margin: 0px; +} + +.nautilus-path-bar button:first-child { + border-width: 0px 1px 0px 0px; + border-radius: 3.5px 0px 0px 3.5px; +} + +.nautilus-path-bar button:not(:first-child) { + border-width: 0px 1px 0px 1px; + border-radius: 0px 0px 0px 0px; +} + +.nautilus-path-bar button:not(:checked) image { opacity: 0.8; } /* dim the icon when not checked */ + +/* Make the tags fit into the box */ +entry.search > * { + margin: 5px; +} + +/* Sidebar */ + +.nautilus-window .sidebar-row:selected { + background: mix(@theme_bg_color, @theme_fg_color, 0.07); +} + +.nautilus-window .sidebar-row:selected, +.nautilus-window .sidebar-row:selected image, +.nautilus-window .sidebar-row:selected label { + color: mix(@theme_fg_color, @theme_text_color, 0.5); +} + +.nautilus-window .sidebar-row:selected:backdrop { + background: mix(@theme_unfocused_bg_color, @theme_unfocused_fg_color, 0.07); +} + +.nautilus-window .sidebar-row:selected:backdrop, +.nautilus-window .sidebar-row:selected:backdrop label { + color: mix(@theme_unfocused_fg_color, @theme_unfocused_text_color, 0.15); +} + +/* Floating status bar */ +.floating-bar { + padding: 1px; + background-color: @theme_base_color; + border-width: 1px; + border-style: solid solid none; + border-color: @borders; + border-radius: 3px 3px 0 0; +} + +.floating-bar.bottom.left { /* axes left border and border radius */ + border-left-style: none; + border-top-left-radius: 0; +} +.floating-bar.bottom.right { /* axes right border and border radius */ + border-right-style: none; + border-top-right-radius: 0; +} + +.floating-bar:backdrop { + background-color: @theme_unfocused_base_color; + border-color: @unfocused_borders; +} + +.floating-bar button { + padding: 0px; +} + +@define-color disk_space_unknown #888a85; +@define-color disk_space_used #729fcf; +@define-color disk_space_free #eeeeec; + +.disk-space-display { + border-style: solid; + border-width: 2px; +} + +.disk-space-display.unknown { + background-color: @disk_space_unknown; + border-color: shade(@disk_space_unknown, 0.7); + color: @disk_space_unknown; +} +.disk-space-display.unknown.border { + color: shade(@disk_space_unknown, 0.7); +} + +.disk-space-display.used { + background-color: @disk_space_used; + border-color: shade(@disk_space_used, 0.7); + color: @disk_space_used; +} +.disk-space-display.used.border { + color: shade(@disk_space_used, 0.7); +} + +.disk-space-display.free { + background-color: @disk_space_free; + border-color: shade(@disk_space_free, 0.7); + color: @disk_space_free; +} +.disk-space-display.free.border { + color: shade(@disk_space_free, 0.7); +} + +/* View */ +.nautilus-list-view .view { + border-bottom: 1px solid @theme_bg_color; +} + +.search-information { + background-color: @theme_selected_bg_color; + color:white; + padding:2px; +} + +/* Hide superfluous treeview drop target indication */ +.nautilus-list-view .view.dnd { + border-style: none; +} + +@define-color conflict_bg #fef6b6; + +.conflict-row { + background: @conflict_bg; + color: black; +} + +.conflict-row:hover { + background-color: shade(@conflict_bg, 0.9); +} + +.conflict-row:selected { + background: @theme_selected_bg_color; + color: @theme_selected_fg_color; +} + +/* Icon view */ +flowboxchild:selected { + background-color:transparent; +} + +.icon-background { + background-color:black; + border-color:#4a90d9; + border-style:solid; + border-width:0px; +} + +flowboxchild > .icon-item-background { + padding:4px; +} +flowboxchild:selected > .icon-item-background { + padding:4px; + background-color:#4a90d9; + border-color:#4a90d9; + border-style:solid; + border-width:0px; + border-radius:4px 4px 4px 4px; +} diff --git a/src/themes/Kali/sass/Makefile b/src/themes/Kali/sass/Makefile index 088fd926..e1bbc23e 100644 --- a/src/themes/Kali/sass/Makefile +++ b/src/themes/Kali/sass/Makefile @@ -7,12 +7,17 @@ THEMES_DIR=../../../../share/themes/ build: $(patsubst %.scss, %.css, $(wildcard *.scss)) mkdir -p $(THEMES_DIR)Kali-Light/gtk-3.0/ mkdir -p $(THEMES_DIR)Kali-Dark/gtk-3.0/ + mkdir -p $(THEMES_DIR)Kali-Light/gtk-4.0/ + mkdir -p $(THEMES_DIR)Kali-Dark/gtk-4.0/ mkdir -p $(THEMES_DIR)Kali-Light/gnome-shell/ mkdir -p $(THEMES_DIR)Kali-Dark/gnome-shell/ cp gtk.css $(THEMES_DIR)Kali-Light/gtk-3.0/gtk.css cp gtk-dark.css $(THEMES_DIR)Kali-Light/gtk-3.0/gtk-dark.css cp gtk-dark.css $(THEMES_DIR)Kali-Dark/gtk-3.0/gtk.css + cp gtk-4.css $(THEMES_DIR)Kali-Light/gtk-4.0/gtk.css + cp gtk-4-dark.css $(THEMES_DIR)Kali-Light/gtk-4.0/gtk-dark.css + cp gtk-4-dark.css $(THEMES_DIR)Kali-Dark/gtk-4.0/gtk.css cp gnome-shell.css $(THEMES_DIR)Kali-Light/gnome-shell/gnome-shell.css cp gnome-shell-dark.css $(THEMES_DIR)Kali-Dark/gnome-shell/gnome-shell.css diff --git a/src/themes/Kali/sass/gtk-4-dark.scss b/src/themes/Kali/sass/gtk-4-dark.scss new file mode 100644 index 00000000..27aec71a --- /dev/null +++ b/src/themes/Kali/sass/gtk-4-dark.scss @@ -0,0 +1,15 @@ +// General guidelines: +// - very unlikely you want to edit something else than _common.scss +// - keep the number of defined colors to a minimum, use the color blending functions if +// you need a subtle shade +// - if you need to inverse a color function use the @if directive to match for dark $variant + +$variant: 'dark'; +$high-contrast:'false'; + +@import 'gtk-sass/_colors'; +@import 'gtk-sass/upstream-gtk-4/_drawing'; +@import 'gtk-sass/upstream-gtk-4/_common'; +//@import 'gtk-sass/_common-tweaks'; +@import 'gtk-sass/_applications'; +@import 'gtk-sass/upstream-gtk-4/_colors-public'; diff --git a/src/themes/Kali/sass/gtk-4.scss b/src/themes/Kali/sass/gtk-4.scss new file mode 100644 index 00000000..31b3f0e8 --- /dev/null +++ b/src/themes/Kali/sass/gtk-4.scss @@ -0,0 +1,15 @@ +// General guidelines: +// - very unlikely you want to edit something else than _common.scss +// - keep the number of defined colors to a minimum, use the color blending functions if +// you need a subtle shade +// - if you need to inverse a color function use the @if directive to match for dark $variant + +$variant: 'light'; +$high-contrast:'false'; + +@import 'gtk-sass/_colors'; +@import 'gtk-sass/upstream-gtk-4/_drawing'; +@import 'gtk-sass/upstream-gtk-4/_common'; +//@import 'gtk-sass/_common-tweaks'; +@import 'gtk-sass/_applications'; +@import 'gtk-sass/upstream-gtk-4/_colors-public'; diff --git a/src/themes/Kali/sass/gtk-sass/_colors.scss b/src/themes/Kali/sass/gtk-sass/_colors.scss index f6545b1a..948ab3a8 100644 --- a/src/themes/Kali/sass/gtk-sass/_colors.scss +++ b/src/themes/Kali/sass/gtk-sass/_colors.scss @@ -19,7 +19,9 @@ $link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), li $top_hilight: $borders_edge; $dark_fill: mix($borders_color, $bg_color, 35%); $headerbar_color: if($variant == 'light', lighten($bg_color, 5%), darken($bg_color, 3%)); +$headerbar_bg_color: $headerbar_color; $menu_color: if($variant == 'light', $base_color, mix($borders_color, $bg_color, 15%)); +$menu_selected_color: mix($fg_color, $base_color, 10%); $popover_bg_color: $menu_color; $popover_hover_color: lighten($menu_color, 5%); @@ -78,3 +80,8 @@ $progress_border_color: $selected_borders_color; $checkradio_bg_color: $selected_bg_color; $checkradio_fg_color: $selected_fg_color; $checkradio_borders_color: if($variant == 'light', darken($checkradio_bg_color,20%), darken($checkradio_bg_color,40%)); +$switch_bg_color: $selected_bg_color; +$switch_borders_color: if($variant == 'light',darken($switch_bg_color,15%),darken($switch_bg_color,30%)); +$focus_border_color: if($variant == 'light', transparentize($selected_bg_color, 0.5), transparentize($selected_bg_color, 0.3)); +$alt_focus_border_color: if($variant == 'light', transparentize(white, 0.2), transparentize(white,0.7)); +$dim_label_opacity: 0.55; diff --git a/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_colors-public.scss b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_colors-public.scss new file mode 100644 index 00000000..3b638e2b --- /dev/null +++ b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_colors-public.scss @@ -0,0 +1,119 @@ +//apps rely on some named colors to be exported +/* GTK NAMED COLORS + ---------------- + use responsibly! */ + +// Sass thinks we're using the colors in the variables as strings and may shoot +// warning, it's innocuous and can be defeated by using "" + $var +/* +widget text/foreground color */ +@define-color theme_fg_color #{"" +$fg_color}; + +/* +text color for entries, views and content in general */ +@define-color theme_text_color #{"" +$text_color}; + +/* +widget base background color */ +@define-color theme_bg_color #{"" +$bg_color}; + +/* +text widgets and the like base background color */ +@define-color theme_base_color #{"" +$base_color}; + +/* +base background color of selections */ +@define-color theme_selected_bg_color #{"" +$selected_bg_color}; + +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color #{"" +$selected_fg_color}; + +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color #{"" +$insensitive_bg_color}; + +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color #{"" +$insensitive_fg_color}; + +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color #{"" +$base_color}; + +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color #{"" +$backdrop_fg_color}; + +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color #{"" +$text_color}; + +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #{"" +$backdrop_bg_color}; + +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #{"" +$backdrop_base_color}; + +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color #{"" +$selected_bg_color}; + +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color #{"" + $selected_fg_color}; + +/* +insensitive color on backdrop windows*/ +@define-color unfocused_insensitive_color #{"" + $backdrop_insensitive_color}; + +/* +widgets main borders color */ +@define-color borders #{"" +$borders_color}; + +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #{"" +$backdrop_borders_color}; + +/* +these are pretty self explicative */ +@define-color warning_color #{"" +$warning_color}; +@define-color error_color #{"" +$error_color}; +@define-color success_color #{"" +$success_color}; +//@define-color destructive_color #{$destructive_color} + +//WM + +$_wm_highlight: if($variant=='light', $top_hilight, // Sass gets mad if this is + transparentize(black,1)); // done directly in the + // color definition + +/* +these colors are exported for the window manager and shouldn't be used in applications, +read if you used those and something break with a version upgrade you're on your own... */ +@define-color wm_title shade(#{$fg_color}, 1.8); +@define-color wm_unfocused_title #{$backdrop_fg_color}; +@define-color wm_highlight #{"" + $_wm_highlight}; +@define-color wm_borders_edge #{"" + $borders_edge}; + +@define-color wm_bg_a shade(#{$bg_color}, 1.2); +@define-color wm_bg_b #{$bg_color}; + +@define-color wm_shadow alpha(black, 0.35); +@define-color wm_border alpha(black, 0.18); + +@define-color wm_button_hover_color_a shade(#{$bg_color}, 1.3); +@define-color wm_button_hover_color_b #{$bg_color}; +@define-color wm_button_active_color_a shade(#{$bg_color}, 0.85); +@define-color wm_button_active_color_b shade(#{$bg_color}, 0.89); +@define-color wm_button_active_color_c shade(#{$bg_color}, 0.9); + +//FIXME this is really an API + +/* content view background such as thumbnails view in Photos or Boxes */ +@define-color content_view_bg #{"" + $base_color}; + +/* Very contrasty background for text views (@theme_text_color foreground) */ +@define-color text_view_bg #{"" + if($variant == 'light', $base_color, darken($base_color,6%))}; diff --git a/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_colors.scss b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_colors.scss new file mode 100644 index 00000000..825b1312 --- /dev/null +++ b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_colors.scss @@ -0,0 +1,74 @@ +// When color definition differs for dark and light variant +// it gets @if ed depending on $variant + +$base_color: if($variant == 'light', #ffffff, lighten(desaturate(#241f31, 100%), 2%)); +$text_color: if($variant == 'light', black, white); +$bg_color: if($variant == 'light', #f6f5f4, darken(desaturate(#3d3846, 100%), 4%)); +$fg_color: if($variant == 'light', #2e3436, #eeeeec); + +$selected_fg_color: #ffffff; +$selected_bg_color: if($variant == 'light', #3584e4, darken(#3584e4, 20%)); +$selected_borders_color: if($variant== 'light', darken($selected_bg_color, 15%), darken($selected_bg_color, 30%)); +$borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 10%)); +$alt_borders_color: if($variant == 'light', darken($bg_color, 24%), darken($bg_color, 18%)); +$borders_edge: if($variant == 'light', transparentize(white, 0.2), transparentize($fg_color, 0.93)); +$link_color: if($variant == 'light', darken($selected_bg_color, 10%), lighten($selected_bg_color, 20%)); +$link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), lighten($selected_bg_color, 10%)); +$top_hilight: $borders_edge; +$dark_fill: mix($borders_color, $bg_color, 50%); +$headerbar_bg_color: if($variant == 'light', lighten($bg_color, 5%), darken($bg_color, 3%)); +$menu_color: $base_color; +$menu_selected_color: if($variant == 'light', darken($bg_color, 6%), darken($bg_color, 8%)); + +$scrollbar_bg_color: if($variant == 'light', mix($bg_color, $fg_color, 80%), mix($base_color, $bg_color, 50%)); +$scrollbar_slider_color: mix($fg_color, $bg_color, 60%); +$scrollbar_slider_hover_color: mix($fg_color, $bg_color, 80%); +$scrollbar_slider_active_color: if($variant=='light', darken($selected_bg_color, 10%), lighten($selected_bg_color, 10%)); + +$warning_color: #f57900; +$error_color: #cc0000; +$success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%)); +$destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%)); + +$osd_fg_color: #eeeeec; +$osd_text_color: white; +$osd_bg_color: if($variant == 'light', transparentize(darken(desaturate(#3d3846, 100%), 4%),0.3), transparentize(darken(desaturate(#3d3846, 100%), 10%),0.3)); +$osd_insensitive_bg_color: transparentize(mix($osd_fg_color, opacify($osd_bg_color, 1), 10%), 0.5); +$osd_insensitive_fg_color: mix($osd_fg_color, opacify($osd_bg_color, 1), 50%); +$osd_borders_color: transparentize(black, 0.3); + +$sidebar_bg_color: mix($bg_color, $base_color, 50%); + +$tooltip_borders_color: transparentize(white, 0.9); +$shadow_color: transparentize(black, 0.9); + +$drop_target_color: if($variant == 'light', #2ec27e, #26a269); + +//insensitive state derived colors +$insensitive_fg_color: mix($fg_color, $bg_color, 50%); +$insensitive_bg_color: mix($bg_color, $base_color, 60%); +$insensitive_borders_color: mix($borders_color, $bg_color, 80%); + +//colors for the backdrop state, derived from the main colors. +$backdrop_base_color: if($variant == 'light', darken($base_color, 1%), lighten($base_color, 1%)); +$backdrop_text_color: mix($text_color, $backdrop_base_color, 80%); +$backdrop_bg_color: $bg_color; +$backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 50%); +$backdrop_insensitive_color: if($variant == 'light', darken($backdrop_bg_color, 15%), lighten($backdrop_bg_color, 15%)); +$backdrop_selected_fg_color: if($variant == 'light', $backdrop_base_color, $backdrop_text_color); +$backdrop_borders_color: mix($borders_color, $bg_color, 80%); +$backdrop_dark_fill: mix($backdrop_borders_color, $backdrop_bg_color, 35%); + +//special cased widget colors +$suggested_bg_color: $selected_bg_color; +$suggested_border_color: $selected_borders_color; +$progress_bg_color: $selected_bg_color; +$progress_border_color: $selected_borders_color; +$checkradio_bg_color: $selected_bg_color; +$checkradio_fg_color: $selected_fg_color; +$checkradio_borders_color: if($variant == 'light',darken($selected_bg_color,10%),darken($selected_bg_color,20%)); +$switch_bg_color: $selected_bg_color; +$switch_borders_color: if($variant == 'light',darken($switch_bg_color,15%),darken($switch_bg_color,30%)); +$focus_border_color: if($variant == 'light', transparentize($selected_bg_color, 0.5), transparentize($selected_bg_color, 0.3)); +$alt_focus_border_color: if($variant == 'light', transparentize(white, 0.2), transparentize(white,0.7)); +$dim_label_opacity: 0.55; diff --git a/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_common.scss b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_common.scss new file mode 100644 index 00000000..b5094c68 --- /dev/null +++ b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_common.scss @@ -0,0 +1,4305 @@ +@function gtkalpha($c,$a) { + @return unquote("alpha(#{$c},#{$a})"); +} + +$ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94); +$asset_suffix: if($variant=='dark', '-dark', ''); +$backdrop_transition: 200ms ease-out; +$button_transition: all 200ms $ease-out-quad; +$focus_transition: outline-width 200ms $ease-out-quad, outline-offset 200ms $ease-out-quad; +$button_radius: 5px; +$menu_radius: 5px; +$menu_margin: $menu_radius; //margin around menuitems & sidebar items +$window_radius: $button_radius + 3; +$popover_radius: $button_radius + 4; + +/*************** + * Base States * + ***************/ +.background { + color: $fg_color; + background-color: $bg_color; + + &:backdrop { + text-shadow: none; + -gtk-icon-shadow: none; + } +} + +dnd { + color: $fg-color; +} + +.normal-icons { + -gtk-icon-size: 16px; +} + +.large-icons { + -gtk-icon-size: 32px; +} + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Every time a wildcard is used a kitten dies, painfully. +*/ + +spinner:disabled, +arrow:disabled, +scrollbar:disabled, +check:disabled, +radio:disabled, +treeview.expander:disabled { -gtk-icon-filter: opacity(0.5); } + +.view, +%view { + color: $text_color; + background-color: $base_color; + + &:disabled { + color: $insensitive_fg_color; + background-color: $insensitive_bg_color; + } + + &:selected { + &:focus, & { + @extend %selected_items; + + border-radius: 3px; + } + } +} + +textview { + > text { + @extend %view; + + > selection { &:focus, & { @extend %selected_items; }} + } + + &:drop(active) { + caret-color: $drop_target_color; + } +} + +textview > border { background-color: mix($bg_color, $base_color, 50%); } + +iconview { + @extend .view; + + @include focus-ring(); + + &:drop(active) { + box-shadow: none; + } + + > dndtarget:drop(active) { + border-style: solid; + border-width: 1px; + border-color: $selected_borders_color; + } +} + +rubberband { + border: 1px solid darken($selected_bg_color, 10%); + background-color: transparentize(darken($selected_bg_color, 10%), 0.8); +} + +flowbox { + > rubberband { @extend rubberband; } + + > flowboxchild { + padding: 3px; + transition: $focus_transition; + + @include focus-ring(); + + &:selected { + outline-color: $alt_focus_border_color; + + @extend %selected_items; + } + } +} + +gridview { + > rubberband { @extend rubberband; } + + > child { + padding: 3px; + transition: $focus_transition; + + @include focus-ring(); + + &:selected { + outline-color: $alt_focus_border_color; + + @extend %selected_items; + } + + box { //cells + border-spacing: 8px; //label separation + margin: 12px; + } + } +} + +coverflow cover { + color: $text_color; + background-color: $base_color; + border: 1px solid black; +} + +label { + @include focus-ring(); + + &.separator { + @extend .dim-label; + } + + &:selected { @extend %nobg_selected_items; } + + > selection { + background-color: $selected_bg_color; + color: $selected_fg_color; + } + + &:disabled { + color: $insensitive_fg_color; + + button & { color: inherit; } + + > selection { @extend %selected_items_disabled; } + } + + &.error { + color: $error_color; + &:disabled { color: transparentize($error_color,0.5); } + } +} + +.dim-label { + opacity: $dim_label_opacity; + text-shadow: none; +} + +window.assistant { + .sidebar { + padding: $menu-margin; + border-top: 1px solid $borders_color; + } + + &.csd .sidebar { border-top-style: none; } + + .sidebar > label { padding: 6px 12px; } + + .sidebar > label.highlight { + background-color: $menu_selected_color; + border-radius: $menu-margin; + } +} + +window.aboutdialog image.large-icons { + -gtk-icon-size: 128px; +} + +%osd, +.osd { + color: $osd_fg_color; + border: none; + background-color: $osd_bg_color; + background-clip: padding-box; + -gtk-icon-shadow: 0 1px black; + +} + + +/********************* + * Spinner Animation * + *********************/ +@keyframes spin { + to { transform: rotate(1turn); } +} + +spinner { + background: none; + opacity: 0; // non spinning spinner makes no sense + -gtk-icon-source: -gtk-icontheme('process-working-symbolic'); + + &:checked { + opacity: 1; + animation: spin 1s linear infinite; + + &:disabled { opacity: 0.5; } + } +} + +/********************** + * General Typography * + **********************/ + +.large-title { + font-weight: 300; + font-size: 24pt; +} +.title-1 { + font-weight: 800; + font-size: 20pt; +} +.title-2 { + font-weight: 800; + font-size: 15pt; +} +.title-3 { + font-weight: 700; + font-size: 15pt; +} +.title-4 { + font-weight: 700; + font-size: 13pt; +} +.heading { + font-weight: 700; + font-size: 11pt; +} +.body { + font-weight: 400; + font-size: 11pt; +} +.caption-heading { + font-weight: 700; + font-size: 9pt; +} +.caption { + font-weight: 400; + font-size: 9pt; +} + +/**************** + * Text Entries * + ****************/ + +%entry, +entry { + %entry_basic, & { + min-height: 32px; + padding-left: 8px; + padding-right: 8px; + border: 1px solid; + border-radius: $button_radius; + border-spacing: 6px; + transition: all 200ms $ease-out-quad; + + @include entry(normal); + + @include focus-ring($focus-state: 'focus-within'); + + > image { // icons inside the entry + &.left { margin-right: 6px; } + &.right { margin-left: 6px; } + } + + > text > placeholder { + @extend .dim-label; + } + + > text > block-cursor { + @include entry(block_cursor); + } + + &.flat { + &:focus-within, &:backdrop, &:disabled, &:backdrop:disabled, & { + min-height: 0; + padding: 2px; + background-color: transparent; + border-color: transparent; + border-radius: 0; + } + } + + &:focus-within { + @include entry(focus); + > placeholder { + opacity: 0; /* We hide placeholders on focus */ + } + } + + &:disabled { @include entry(insensitive); } + + > text > selection { @extend %selected_items; } + + // entry error and warning style + @each $e_type, $e_color in (error, $error_color), + (warning, $warning_color) { + &.#{$e_type} { + color: $e_color; + + @include focus-ring($focus-state: 'focus-within', $fc: transparentize($e_color, 0.5)); + + &:focus-within { @include entry(focus, $e_color); } + + > selection { background-color: $e_color; } + } + } + + > image { // entry icons colors + color: mix($fg_color, $base_color, 80%); + + &:hover { color: $fg_color; } + + &:active { color: $selected_bg_color; } + + } + + &.password image.caps-lock-indicator { + color: mix($backdrop_fg_color, $backdrop_base_color, 80%); + } + + &:drop(active) { + &:focus-within, & { + border-color: $drop_target_color; + box-shadow: inset 0 0 0 1px $drop_target_color; + } + } + + .osd & { + @include entry(osd); + + &:focus-within { @include entry(osd-focus); } + + &:disabled { @include entry(osd-insensitive); } + } + } + + > progress { + margin-bottom: 2px; + } + + progress > trough > progress { + background-color: transparent; + background-image: none; + border-radius: 0; + border-width: 0 0 2px; + border-color: $selected_bg_color; + border-style: solid; + box-shadow: none; + + } + + // linked entries + .linked:not(.vertical) > & { @extend %linked; } + + .linked:not(.vertical) > &:drop(active) + &, + .linked:not(.vertical) > &:drop(active) + button, + .linked:not(.vertical) > &:drop(active) + menubutton > button, + .linked:not(.vertical) > &:drop(active) + dropdown > button, + .linked:not(.vertical) > &:drop(active) + colorbutton > button, + .linked:not(.vertical) > &:drop(active) + fontbutton > button, + .linked:not(.vertical) > &:drop(active) + filechooserbutton > button, + .linked:not(.vertical) > &:drop(active) + filechooserbutton > combobox > box > button.combo, + .linked:not(.vertical) > &:drop(active) + appchooserbutton > combobox > box > button.combo, + .linked:not(.vertical) > &:drop(active) + combobox > box > button.combo { border-left-color: $drop_target_color; } + + // Vertically linked entries + // FIXME: take care of "colored" entries + .linked.vertical > & { + @extend %linked_vertical; + + // brighter border between linked entries + &:not(:disabled) + entry:not(:disabled), + &:not(:disabled) + %entry:not(:disabled) { + border-top-color: mix($borders_color, $base_color, 30%); + } + + // brighter border between linked insensitive entries + &:disabled + %entry:disabled, + &:disabled + entry:disabled { border-top-color: mix($borders_color, $base_color, 30%); } + + + %entry:drop(active):not(:only-child), + + entry:drop(active):not(:only-child) { border-top-color: $drop_target_color; } + + &:drop(active):not(:only-child) { + + %entry, + + entry, + + button, + + menubutton > button, + + dropdown > button, + + colorbutton > button, + + fontbutton > button, + + filechooserbutton > button, + + filechooserbutton > combobox > box > button.combo, + + appchooserbutton > combobox > box > button.combo, + + combobox > box > button.combo { border-top-color: $drop_target_color; } + } + } + + &.error { color: $error_color; } +} + +treeview entry { + &:focus-within { + &:dir(rtl), &:dir(ltr) { // specificity bump hack + background-color: $base_color; + transition-property: color, background; + } + } + + &.flat, & { + border-radius: 0; + background-image: none; + background-color: $base_color; + + &:focus-within { border-color: $selected_bg_color; } + } +} + +/******************* + * Editable Labels * + *******************/ +editablelabel > stack > text { + @include entry(normal); +} + +/*********** + * Buttons * + ***********/ +// stuff for .needs-attention +$_dot_color: if($variant=='light', $selected_bg_color, + lighten($selected_bg_color,15%)); +@keyframes needs_attention { + from { background-image: radial-gradient(farthest-side, $_dot_color 0%, transparentize($_dot_color, 1) 0%); } + to { background-image: radial-gradient(farthest-side, $_dot_color 95%, transparentize($_dot_color, 1)); } +} + +%button, +button { + @at-root %button_basic, & { + + min-height: 24px; + min-width: 16px; + padding: 4px 9px; + border: 1px solid; + border-radius: $button_radius; + transition: $button_transition; + + @include button(normal); + + @include focus-ring(); + + &:hover { + @include button(hover); + -gtk-icon-filter: brightness(1.2); + } + + &:active, + &:checked { + @include button(active); + + transition-duration: 50ms; + } + + &:checked:hover { @include button(checked-hover); } + &:checked:active { @include button(checked-active); } + + &:backdrop { + &.flat, & { + @include button(backdrop); + + transition: $backdrop_transition; + -gtk-icon-filter: none; + + &:active, + &:checked { @include button(backdrop-active); } + + &:disabled { + @include button(backdrop-insensitive); + + &:active, + &:checked { @include button(backdrop-insensitive-active); } + } + } + } + + &:disabled { + @include button(insensitive); + + &:active, + &:checked { @include button(insensitive-active); } + } + + @at-root %button_basic_flat, + &.flat { + @include button(undecorated); + // to avoid adjacent buttons borders clashing when transitioning, the transition on the normal state is set + // to none, while it's added back in the hover state, so the button decoration will fade in on hover, but + // it won't fade out when the pointer leave the button allocation area. To make the transition more evident + // in this case the duration is increased. + transition: none; + + &:hover { + @include button(undecorated-hover); + transition: $button_transition; + transition-duration: 500ms; + } + &:active, + &:checked { + @include button(undecorated-active); + transition: $button_transition; + } + &:backdrop, &:disabled, &:backdrop:disabled { @include button(undecorated); } + } + + &.image-button { + min-width: 24px; + padding-left: 5px; + padding-right: 5px; + } + + &.text-button { + padding-left: 16px; + padding-right: 16px; + } + + &.text-button.image-button { + padding-left: 8px; + padding-right: 8px; + + label { + padding-left: 8px; + padding-right: 8px; + } + } + + @at-root %button_basic_drop_active, + &:drop(active) { + color: $drop_target_color; + border-color: $drop_target_color; + box-shadow: inset 0 0 0 1px $drop_target_color; + } + } + + @at-root %button_selected, & { + row:selected & { + @if $variant == 'light' { border-color: $selected_borders_color; } + } + + @at-root %button_selected_flat, &.flat { + row:selected & { + &:not(:active):not(:checked):not(:hover):not(disabled) { + color: $selected_fg_color; + border-color: transparent; + + &:backdrop { color: if($variant=='light', $backdrop_base_color, $backdrop_fg_color); } + } + } + } + } + + + // big standalone buttons like in Documents pager + &.osd { + min-width: 26px; + min-height: 32px; + + &.image-button { + min-width: 30px; + &:only-child { + margin: 4px; + border-radius: 50%; // completely round when it is a single button + box-shadow: 0 1px 2px transparentize(black, 0.8); // drop shadow for the only child + }; + } + + color: $osd_fg_color; + border-radius: 5px; + + @include button(osd); + + border: none; + box-shadow: none; + + &:hover { + @include button(osd-hover); + + border: none; + box-shadow: none; + } + + &:active, + &:checked { + @include button(osd-active); + + border: none; + box-shadow: none; + } + } + + //overlay / OSD style + @at-root %osd_button, + .osd & { + @include button(osd); + + &:hover { @include button(osd-hover); } + + &:active, + &:checked { &:backdrop, & { @include button(osd-active); }} + + &:disabled { &:backdrop, & { @include button(osd-insensitive); }} + + &.flat { + @include button(undecorated); + + box-shadow: none; + -gtk-icon-shadow: 0 1px black; + + &:hover { @include button(osd-hover); } + + &:disabled { + @include button(osd-insensitive); + background-image: none; + border-color: transparent; + box-shadow: none; + } + + &:active, + &:checked { @include button(osd-active); } + } + } + + // Suggested and Destructive Action buttons + @each $b_type, $b_color in (suggested-action, $selected_bg_color), + (destructive-action, $destructive_color) { + &.#{$b_type} { + @include button(normal, $b_color, white); + @include focus-ring($fc: $alt_focus_border_color); + + &.flat { + @include button(undecorated); + + color: $b_color; //FIXME: does it work on the dark variant? + } + + &:hover { @include button(hover, $b_color, white); } + + &:active, + &:checked { @include button(active, $b_color, white); } + + &.flat { + &:disabled { + @include button(undecorated); + + color: transparentize($b_color, 0.2); + } + } + + &:disabled { + @include button(insensitive); + + &:active, + &:checked { @include button(insensitive-active, $b_color, white); } + } + + .osd & { + @include button(osd, $b_color); + + &:hover { @include button(osd-hover, $b_color); } + + &:active, + &:checked { &:backdrop, & { @include button(osd-active, $b_color); }} + + &:disabled { &:backdrop, & { @include button(osd-insensitive, $b_color); }} + + } + } + } + + stackswitcher > & { + // to position the needs attention dot, padding is added to the button + // child, a label needs just lateral padding while an icon needs vertical + // padding added too. + + > label { + padding: 0 6px; + margin: 0 -6px; + } + + > image { + padding: 3px 6px; + margin: -3px -6px; + } + + &.needs-attention { + > label, + > image { @extend %needs_attention; } + } + } + + // hide separators + &.font{ + separator { background-color: transparent; } + > box { border-spacing: 6px; } + > box > box > label { font-weight: bold; } + } + + .linked:not(.vertical) > & { @extend %linked; } + + .linked.vertical > & { @extend %linked_vertical; } + + &.circular { // force circular button shape + min-width: 32px; + min-height: 32px; + padding: 0; + border-radius: 9999px; + + label { padding: 0; } + } +} + +%needs_attention { + // the dot is drawn by using two radial gradient, the first one is the actual dot, the other + // simulates the shadow labels and icons normally have in buttons. + animation: needs_attention 150ms ease-in; + + background-image: radial-gradient(farthest-side, $_dot_color 96%, transparentize($_dot_color,1 )); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + + @if $variant == 'light' { background-position: right 3px, right 4px; } + + @else { background-position: right 3px, right 2px; } + + &:backdrop { background-size: 6px 6px, 0 0;} + + &:dir(rtl) { + @if $variant == 'light' { background-position: left 3px, left 4px; } + + @else { background-position: left 3px, left 2px; } + } +} + + +%linked_not_left { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +%linked_not_right { + border-right-style: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +// 1st/last child are at text start/end +%linked { + &:dir(ltr) { + &:not(:first-child) { @extend %linked_not_left; } + &:not(:last-child) { @extend %linked_not_right; } + } + + &:dir(rtl) { + &:not(:first-child) { @extend %linked_not_right; } + &:not(:last-child) { @extend %linked_not_left; } + } +} + +%linked_not_top { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +%linked_not_bottom { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +%linked_vertical { + &:not(:first-child) { @extend %linked_not_top; } + + &:not(:last-child) { @extend %linked_not_bottom; } +} + +%undecorated_button { + background-color: transparent; + background-image: none; + border-color: transparent; + box-shadow: inset 0 1px transparentize(white, 1), + 0 1px transparentize(white, 1); + text-shadow: none; + -gtk-icon-shadow: none; +} + +.linked:not(.vertical) > menubutton, +.linked:not(.vertical) > dropdown, +.linked:not(.vertical) > colorbutton, +.linked:not(.vertical) > fontbutton, +.linked:not(.vertical) > filechooserbutton { + &:dir(ltr) { + &:not(:first-child) > button { @extend %linked_not_left; } + &:not(:last-child) > button { @extend %linked_not_right; } + } + + &:dir(rtl) { + &:not(:first-child) > button { @extend %linked_not_right; } + &:not(:last-child) > button { @extend %linked_not_left; } + } +} + +.linked.vertical > menubutton, +.linked.vertical > dropdown, +.linked.vertical > colorbutton, +.linked.vertical > fontbutton, +.linked.vertical > filechooserbutton { + &:not(:first-child) > button { @extend %linked_not_top; } + &:not(:last-child) > button { @extend %linked_not_bottom; } +} + +/* menu buttons */ +modelbutton.flat { + min-height: 26px; + padding-left: 5px; + padding-right: 5px; + border-radius: $button_radius; + + @extend %undecorated_button; + + &:hover { background-color: $menu_selected_color; } + + &:disabled { + color: $insensitive_fg_color; + + + } + + &:selected { @extend %selected_items; } +} + +modelbutton.flat arrow { + background: none; + min-width: 16px; + min-height: 16px; + opacity: 0.3; //dim icon + + &:hover { background: none; } + + &.left { -gtk-icon-source: -gtk-icontheme("go-previous-symbolic"); } + + &.right { -gtk-icon-source: -gtk-icontheme("go-next-symbolic"); } +} + +/* oldstyle toolbar buttons */ + +.toolbar button { + margin: 1px; + @extend %undecorated_button; + + &:hover { @include button('hover'); } + &:active { @include button('active'); } + &:disabled { @include button('insensitive'); } + &:backdrop { @include button('backdrop'); } + &:backdrop:disabled { @include button('backdrop-insensitive'); } +} + +button.color { + padding: 4px; + + > colorswatch:only-child { + &, > overlay { border-radius: 0; } + + @if $variant == 'light' { + box-shadow: 0 1px $shadow_color; + + .osd & { box-shadow: none; } + } + } + + @if $variant == 'light' { + .osd &, & { + &:disabled, + &:active, + &:checked { colorswatch:only-child { box-shadow: none; }} + } + } +} + +/* list buttons */ +/* tone down as per new designs, see issue #1473 */ +%list_button, +list > row button.image-button:not(.flat) { + @extend %undecorated_button; + border: 1px solid transparentize($borders_color, .5); + &:hover { @include button(hover); } + &:active, + &:checked { @include button(active); } +} + +/********* + * Links * + *********/ + +%link, +link { + color: $link_color; + text-decoration: underline; + + &:visited { + color: $link_visited_color; + + *:selected & { color: mix($selected_fg_color, $link_visited_color, 60%); } + } + + &:hover { + $_fg: lighten($link_color, 10%); + color: $_fg; + + *:selected & { color: mix($selected_fg_color, $_fg, 90%); } + } + + &:active { + color: $link_color; + + *:selected & { color: mix($selected_fg_color, $link_color, 80%); } + } + + &:disabled { color: transparentize(desaturate($link_color, 100%), 0.2); } + + @at-root %link_selected, + &:selected, + *:selected & { color: mix($selected_fg_color, $link_color, 80%); } +} + +link { + @include focus-ring(); +} + +button.link { + @extend %link; + + &, + &:hover, + &:active, + &:checked { + @extend %undecorated_button; + + text-shadow: none; + } + + > label { + text-decoration: underline; + } +} + + +/***************** + * GtkSpinButton * + *****************/ +spinbutton { + &:not(.vertical) { + // in this horizontal configuration, the whole spinbutton + // behaves as the entry, so we extend the entry styling + // and nuke the style on the internal entry + @extend %entry; + + padding: 0; + border-spacing: 0; + + %spinbutton_horz_entry { + min-width: 28px; + // reset all the other props since the spinbutton node is styled here + margin: 0; + background: none; + background-color: transparent; + border: none; + border-radius: 0; + box-shadow: none; + padding: 6px; + + &:backdrop:disabled { background-color: transparent; } + } + + > text { + @extend %spinbutton_horz_entry; + } + + /* :not here just to bump specificity above that of the list button styling */ + > button.image-button.up:not(.flat), + > button.image-button.down:not(.flat) { + min-height: 16px; + margin: 0; + padding-bottom: 0; + padding-top: 0; + color: mix($fg_color, $base_color, 90%); + background-image: none; + border-style: none none none solid; + border-color: transparentize($borders_color, 0.7); + border-radius: 0; + box-shadow: none; + + &:dir(rtl) { border-style: none solid none none; } + + &:hover { + color: $fg_color; + background-color: darken($bg_color,5%); + } + + &:disabled { + color: transparentize($insensitive_fg_color, 0.7); + background-color: transparent; + } + + &:active { + background-color: transparentize(black, 0.9); + box-shadow: inset 0 2px 3px -1px transparentize(black, 0.8); + } + + &:dir(ltr):last-child { border-radius: 0 $button_radius $button_radius 0; } + + &:dir(rtl):first-child { border-radius: $button_radius 0 0 $button_radius; } + } + } + + // OSD horizontal + .osd &:not(.vertical) { + > text { + @extend %spinbutton_horz_entry; + } + + > button.image-button.up:not(.flat), + > button.image-button.down:not(.flat) { + @include button(undecorated); + + color: $osd_fg_color; + border-style: none none none solid; + border-color: transparentize($osd_borders_color, 0.3); + border-radius: 0; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; + + &:dir(rtl) { border-style: none solid none none; } + + &:hover { + @include button(undecorated); + + color: $osd_fg_color; + border-color: transparentize(opacify($osd_borders_color, 1), 0.5); + background-color: darken($osd_bg_color,10%); + -gtk-icon-shadow: 0 1px black; + box-shadow: none; + } + + &:disabled { + @include button(undecorated); + + color: $osd_insensitive_fg_color; + border-color: transparentize(opacify($osd_borders_color, 1), 0.5); + -gtk-icon-shadow: none; + box-shadow: none; + } + + &:dir(ltr):last-child { border-radius: 0 $button_radius $button_radius 0; } + + &:dir(rtl):first-child { border-radius: $button_radius 0 0 $button_radius; } + } + } + + // Vertical + &.vertical { + // in the vertical configuration, we treat the spinbutton + // as a box, and tweak the style of the entry in the middle + // so that it's linked + + // FIXME: this should not be set at all, but otherwise it gets the wrong + // color + &:disabled { color: $insensitive_fg_color; } + + &:drop(active) { + border-color: transparent; + box-shadow: none; + } + + > text { + @extend %entry; + + min-height: 32px; + min-width: 32px; + padding: 0; + border-radius: 0; + + > selection { @extend %selected_items; } + > block-cursor { @include entry(block_cursor); } + } + + > button { + min-height: 32px; + min-width: 32px; + padding: 0; + + &.up { @extend %top_button; } + + &.down { @extend %bottom_button; } + } + + %top_button { + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + + %bottom_button { + border-top-style: none; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + } + + // OSD vertical + .osd &.vertical > button:first-child { + @include button(osd); + + &:hover { @include button(osd-hover);} + + &:active { @include button(osd-active); } + + &:disabled { @include button(osd-insensitive); } + } + + // Misc + treeview &:not(.vertical) { + min-height: 0; + border-style: none; + border-radius: 0; + + > text { + min-height: 0; + padding: 1px 2px; + } + } + + font-feature-settings: "tnum"; +} + + +/************** + * ComboBoxes * + **************/ +dropdown > popover.menu.background > contents { padding: 0; } //allow search entries with no margin + +dropdown > button > box { + border-spacing: 6px; +} + +dropdown, +combobox { + arrow { + -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); + min-height: 16px; + min-width: 16px; + } + + // align menu labels with the button label + > popover.menu > contents modelbutton { + padding-left: 9px; + padding-right: 9px; + } + + &.linked { + button:nth-child(2) { + &:dir(ltr) { @extend %linked_not_left; } + &:dir(rtl) { @extend %linked_not_right; } + } + } + + &:drop(active) { // FIXME: untested + box-shadow: none; + + button.combo { @extend %button_basic_drop_active; } + } + + // newstyle + popover { + margin-top: 6px; + padding: 0; + + listview { + + margin: 8px 0; + + &>row { + padding: 8px; + + &:selected { + outline-color: $alt_focus_border_color; + color: $text-color; + background-color: $menu_selected_color; + } + } + } + + // drodowns with searchboxes on top + .dropdown-searchbar { + padding: 6px; + border-bottom: 1px solid $borders_color; + } + } +} + + +// the combo is a composite widget so the way we do button linking doesn't +// work, special case needed. See +// https://bugzilla.gnome.org/show_bug.cgi?id=733979 + +.linked:not(.vertical) > filechooserbutton > combobox, +.linked:not(.vertical) > appchooserbutton > combobox, +.linked:not(.vertical) > combobox { + &:dir(ltr) { + &:not(:first-child) > box > button.combo { @extend %linked_not_left; } + &:not(:last-child) > box > button.combo { @extend %linked_not_right; } + } + + &:dir(rtl) { + &:not(:first-child) > box > button.combo { @extend %linked_not_right; } + &:not(:last-child) > box > button.combo { @extend %linked_not_left; } + } +} + +.linked.vertical > filechooserbutton > combobox, +.linked.vertical > appchooserbutton > combobox, +.linked.vertical > combobox { + &:not(:first-child) > box > button.combo { @extend %linked_not_top; } + &:not(:last-child) > box > button.combo { @extend %linked_not_bottom; } +} + + +/************ + * Toolbars * + ************/ +%toolbar { + padding: 4px; + border-spacing: 4px; + background-color: $bg_color; +} + +.toolbar, +toolbar { + @extend %toolbar; + + // on OSD + .osd & { background-color: transparent; } + + // stand-alone OSD toolbars + &.osd { + padding: 13px; + border: none; + border-radius: 5px; + background-color: $osd_bg_color; + + &.left, + &.right, + &.top, + &.bottom { border-radius: 0; } // positional classes for `attached` osd toolbars + } + + // toolbar separators + &.horizontal > separator { margin: 4px 0; } + &.vertical > separator { margin: 0 4px; } +} + +//searchbar & location-bar +searchbar > revealer > box { + padding: 6px; + border-spacing: 6px; + @extend %toolbar; + + @extend %darkbar; + + border-width: 0 0 1px; +} + +%darkbar { + border-style: solid; + border-color: $borders_color; + $_bg: mix($bg_color, $borders_color, 70%); + background-color: $_bg; + + &:backdrop { + border-color: $backdrop_borders_color; + background-color: $backdrop_dark_fill; + box-shadow: none; + transition: $backdrop_transition; + } +} + +/************** + * GtkInfoBar * + **************/ +infobar { + > revealer > box { + padding: 8px; + border-spacing: 12px; + } + + &.action:hover > revealer > box { + background-color: if($variant == 'light', desaturate(lighten(invert($selected_bg_color), 47%), 30%), + desaturate(darken(invert($selected_bg_color), 42%), 70%)); + } + + &.info, + &.question, + &.warning, + &.error { + > revealer > box { + border-bottom: 1px solid lighten($borders_color, 5%); + background-color: if($variant == 'light', desaturate(lighten(invert($selected_bg_color), 45%), 30%), + desaturate(darken(invert($selected_bg_color), 40%), 70%)); + } + } +} + + //close button for info and searchbar (#3215) + + infobar .close, + searchbar .close { + @include button(undecorated); + min-width: 16px; + min-height: 16px; + padding: 4px; + border-radius: 50%; + + &:hover { @include button(hover); } + } + + +/***************** + * Title buttons * + *****************/ + +windowcontrols { + border-spacing: 6px; + + &:not(.empty) { + &.start:dir(ltr), + &.end:dir(rtl) { + margin-right: 7px; + } + + &.start:dir(rtl), + &.end:dir(ltr) { + margin-left: 7px; + } + } + + button { + @extend %button_basic; + + @extend %button_basic_flat; + + + border-radius: 9999px; + padding: 6px; + margin: 0 2px; + min-width: 0; + min-height: 0; + &:hover { + //special case hover colors inside a headerbar + @include button(undecorated-hover,$c:darken($headerbar_bg_color,6%)); + } + &:active, + &:checked { @include button(undecorated-active,$c:darken($headerbar_bg_color,10%)); } + } +} + + +/*************** + * Header bars * + ***************/ +%titlebar, +headerbar { + padding: 0 6px; + min-height: 46px; + border-width: 0 0 1px; + border-style: solid; + border-color: $alt_borders_color; + border-radius: 0; + + @include headerbar_fill(darken($bg_color, 10%)); + + &:backdrop { + border-color: $backdrop_borders_color; + background-color: $bg_color; + background-image: none; + box-shadow: inset 0 1px $top_hilight; + + transition: $backdrop_transition; + } + + .title { + padding-left: 12px; + padding-right: 12px; + font-weight: bold; + } + + .subtitle { + font-size: smaller; + padding-left: 12px; + padding-right: 12px; + + @extend .dim-label; + } + + /* Darken switchbuttons for headerbars. issue #1588 */ + stackswitcher > button:checked, + button.toggle:checked { + + background: if($variant == 'light', image(darken($bg_color, 17%)), image(darken($bg_color, 9%))); + border-color: darken($borders_color, 3%); + border-top-color: darken($borders_color, 8%); + &:backdrop { + @include button(backdrop-active); + } + } + + // squared corners when the window is maximized, tiled, or fullscreen + .tiled &, + .tiled-top &, + .tiled-left &, + .tiled-right &, + .tiled-bottom &, + .maximized &, + .fullscreen & { + &:backdrop, & { + border-radius: 0; + } + } + + &.default-decoration { + min-height: 28px; + padding: 4px; + + windowcontrols { + button, + menubutton { + min-height: 26px; + min-width: 26px; + margin: 0; + padding: 0; + } + + menubutton button { + min-height: 20px; + min-width: 20px; + margin: 0; + padding: 4px; + } + } + } + + .solid-csd & { + &:backdrop, & { + &:dir(rtl), &:dir(ltr) { // specificity bump + margin-left: -1px; + margin-right: -1px; + margin-top: -1px; + border-radius: 0; + box-shadow: none; + } + } + } +} + +headerbar { + > windowhandle > box { + &, + > box.start, + > box.end { + border-spacing: 6px; + } + } + + // add vertical margins to common widget on the headerbar to avoid them spanning the whole height + entry, + spinbutton, + separator:not(.sidebar), + button, + menubutton { + margin-top: 6px; + margin-bottom: 6px; + } + + // Reset margins for buttons inside menubutton + menubutton > button { + margin-top: 0px; + margin-bottom: 0px; + } + + switch { + margin-top: 10px; + margin-bottom: 10px; + } + + &.titlebar headerbar:not(.titlebar) { + // Drop the background of non-titlebar nested headerbars. This is needed to + // work around headerbar sliding animation issues without refactoring + // Adwaita's support of titlebars and headerbars as it may break + // applications. + // See https://gitlab.gnome.org/GNOME/gtk/issues/1264 for more information. + background: none; + box-shadow: none; + } +} + + +.titlebar:not(headerbar) { + window.csd > & { + // in csd we assume every titlebar is a headerbar so reset anything, this is needed for split toolbars cases + padding: 0; + background-color: transparent; + background-image: none; + border-style: none; + border-color: transparent; + box-shadow: none; + } + + separator { background-color: $borders_color; } // FIXME: use darker border? + + @extend %titlebar; +} + +// Development versions of apps to use a differently styled headerbar + +window.devel { + headerbar.titlebar { + $c: darken($bg_color, 10%); + $gradient: cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, + linear-gradient(to right, transparent 65%, transparentize($selected_bg_color, 0.8)), + linear-gradient(to top, darken($c, 3%), $c 3px, lighten($c, 6%)); + @if $variant == 'dark' { + $gradient: cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, + linear-gradient(to right, transparent 65%, transparentize($selected_bg_color, 0.9)), + linear-gradient(to top, lighten($c, 3%) 3px, lighten($c, 5%)); + } + + background: $bg_color $gradient; + + &:backdrop { + background: $bg_color cross-fade(10% -gtk-icontheme("system-run-symbolic"), image(transparent)) 90% 0/256px 256px no-repeat, + image($bg_color); /* background-color would flash */ + } + } +} + +/************ + * Pathbars * + ************/ + +pathbar > button { + &.text-button, &.image-button, & { + padding-left: 4px; + padding-right: 4px; + } + + &.text-button.image-button label { + padding-left: 0; + padding-right: 0; + } + + &.text-button.image-button, & { + label:last-child { padding-right: 8px; } + label:first-child { padding-left: 8px; } + } + + image { + padding-left: 4px; + padding-right: 4px; + } + + &.slider-button { + padding-left: 0; + padding-right: 0; + } +} + + +/************** + * Tree Views * + **************/ + +$_treeview_borders_color: if($variant=='light',mix($borders_color, $base_color,80%),mix($fg_color, $base_color, 20%)); +$_treeview_backdrop_borders_color: if($variant=='light',mix($backdrop_borders_color, $base_color, 80%),mix($backdrop_fg_color, $base_color, 20%)); +columnview.view, +treeview.view { + border-left-color: $_treeview_borders_color; // this is actually the tree lines color, + border-top-color: $_treeview_borders_color; // while this is the grid lines color, better then nothing + + @include focus-ring(); + + > rubberband { @extend rubberband; } // to avoid borders being overridden by the previously set props + + &:selected { + &:focus, & { + border-radius: 0; + outline-color: $alt_focus_border_color; + + @extend %selected_items; + } + } + + &:disabled { + color: $insensitive_fg_color; + + &:selected { + color: mix($selected_fg_color, $selected_bg_color, 40%); + &:backdrop { color: mix($backdrop_selected_fg_color, $selected_bg_color, 30%); } + } + } + + &.separator { + min-height: 2px; + color: $_treeview_borders_color; + } + + &:backdrop { + border-left-color: $_treeview_backdrop_borders_color; + border-top: $_treeview_backdrop_borders_color; + } + + &:drop(active) { + box-shadow: none; + } + + > dndtarget:drop(active) { + border-style: solid none; + border-width: 1px; + border-color: $selected_borders_color; + + &.after { border-top-style: none; } + + &.before { border-bottom-style: none; } + } + + &.expander { + // GtkTreeView uses the larger of the expander’s min-width and min-height + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); + + &:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl'); } + + color: mix($text_color, $base_color, 70%); + + &:hover { color: $text_color; } + + &:selected { + color: mix($selected_fg_color, $selected_bg_color, 70%); + + &:hover { color: $selected_fg_color; } + } + + &:checked { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); } + } + + &.progressbar { // progress bar in treeviews + @if $variant == light { color: $base_color; } + + background-color: $selected_bg_color; + background-image: image($selected_bg_color); + box-shadow: none; + + &:selected { + &:focus, & { + + @if $variant == 'light' { + color: $selected_bg_color; + + } + + @else { box-shadow: inset 0 1px transparentize(white, 0.95); } + + background-image: image($base_color); + + &:backdrop { + @if $variant == 'light' { + color: $selected_bg_color; + } + background-color: $backdrop_base_color; + } + } + } + } + + &.trough { // progress bar trough in treeviews + background-color: transparentize($fg_color,0.9); + + &:selected { + &:focus, & { + background-color: if($variant == 'light', + transparentize($selected_fg_color, 0.7), + darken($selected_bg_color, 10%)); + + } + } + } + + > header { + > button { + $_column_header_color: mix($fg_color, $base_color, 50%); + + @extend %column_header_button; + + color: $_column_header_color; + background-color: $base_color; + font-weight: bold; + text-shadow: none; + box-shadow: none; + + &:hover { + @extend %column_header_button; + + color: mix($_column_header_color, $fg_color, 50%); + box-shadow: none; + transition: none; //I shouldn't need this + } + + &:active { + @extend %column_header_button; + + color: $fg_color; + transition: none; //I shouldn't need this + } + } + } + + button.dnd, + header.button.dnd { // for treeview-like derive widgets + &:active, &:selected, &:hover, & { + padding: 0 6px; + color: $base_color; + background-image: none; + background-color: $selected_bg_color; + border-style: none; + border-radius: 0; + box-shadow: inset 0 0 0 1px $base_color; + text-shadow: none; + transition: none; + } + } + + acceleditor > label { background-color: $selected_bg_color; } // see tests/testaccel to test +} + +%column_header_button { + padding: 0 6px; + background-image: none; + border-style: none none solid solid; + border-color: $_treeview_borders_color; + border-radius: 0; + text-shadow: none; + + &:disabled { + border-color: $bg_color; + background-image: none; + } + + &:last-child { &:backdrop, & { border-right-style: none; }} +} + +/*************** + * Popovers * + ***************/ + +popover.background { + background-color: transparent; + font: initial; // Decouple the font of popovers from their entry/textview + + > arrow, + > contents { + $_popover_border: if($variant=='light', transparentize(black, 0.77), transparentize($borders_color, 0.1)); + + background-color: $menu_color; + background-clip: padding-box; + border: 1px solid $_popover_border; + box-shadow: 0 1px 2px transparentize(black, 0.7); + } + + &:backdrop { + background-color: transparent; + } + + > contents { + padding: 8px; + border-radius: $popover_radius; + + > list, + > .view, + > toolbar { + border-style: none; + background-color: transparent; + } + + separator { + background-color: mix($bg_color, $borders_color, 30%); + margin: 3px; + } + + list separator { margin: 0; } + } + + .osd &, + &.touch-selection, + &.magnifier { + background-color: transparent; + + > arrow, + > contents { + @extend %osd; + + border: 1px solid transparentize(white, 0.9); + box-shadow: none; + } + } + + &.touch-selection, + &.magnifier { + button { @extend %osd_button; } + } +} + +magnifier { + background-color: $base_color; +} + +/********************** + * Popover Base Menus * + **********************/ + +$_menu-padding: 12px; //inner menuitem padding +//global $menu-margin for outside menuitems + +popover.menu { + padding: 0; + + box.inline-buttons { + padding: 0 $_menu-padding; + + button.image-button.model { + @include button(undecorated); + + min-height: 30px; + min-width: 30px; + padding: 0; + border: none; + outline: none; + transition: none; + + &:selected { background: image($menu_selected_color); } + } + } + + box.circular-buttons { + padding: $_menu-padding $_menu-padding 6px; + + button.circular.image-button.model { + @extend %list_button; + + padding: 11px; + &:focus { + background-color: $menu_selected_color; + border-color: $menu_selected_color; + } + } + } + + & > arrow, + &.background > contents { + background-color: $menu_color; + padding: $menu-margin; + } + + &.background separator { + margin: 6px 0; + } + + accelerator { + color: gtkalpha(currentColor,0.55); + + &:dir(ltr) { margin-left: $_menu-padding; } + &:dir(rtl) { margin-right: $_menu-padding; } + } + + check, + radio { + @include check('menu', 'transparent', $text_color); + + &:hover { @include check('menu-active', 'transparent', $text_color); } + &:active { @include check('menu-active', 'transparent', $text_color); } + } + + //only menu radios have a border + radio { border-color: $borders_color; + &:active { border-color: transparentize($borders_color,0.5); } + } + + arrow.left, + radio.left, + check.left { + margin-left: -2px; + margin-right: 6px; + } + + arrow.right, + radio.right, + check.right { + margin-left: 6px; + margin-right: -2px; + } + + modelbutton { + min-height: 30px; + min-width: 40px; + padding: 0 $_menu-padding; + border-radius: $menu-margin; + + &:selected { + color: $text-color; + background-color: $menu_selected_color; + } + &:selected:active { + //@extend %selected_items; + //color: $selected_fg_color; + background-color: darken($bg_color,14%); // matching buttons + } + } + + label.title { + font-weight: bold; + padding: 4px ($_menu-padding + 20px); //this will fall apart with font sizing + } +} + +// initial styling for popover menu and bar +menubar { + padding: 0px; + box-shadow: inset 0 -1px transparentize(black, 0.9); + + > item { + min-height: 16px; + padding: 4px 8px; + + &:selected { //Seems like it :hover even with keyboard focus + box-shadow: inset 0 -3px $selected_bg_color; + color: $link_color; + } + + &:disabled { + color: $insensitive_fg_color; + box-shadow: none; + } + } + + & > item popover.menu.background > contents { + padding: $menu-margin; + } + //nested submenus + & > item popover.menu popover.menu { + padding: 0 0 4px 0; + } + & > item popover.menu.background popover.menu.background > contents { + margin: 0; + border-radius: $popover_radius; //including top + } +} + + +/************* + * Notebooks * + *************/ +notebook { + @include focus-ring("> header > tabs > tab:checked", $offset: -2px, $focus-state: 'focus:focus-visible'); + + > header { + padding: 1px; + border-color: $borders_color; + border-width: 1px; + background-color: $dark_fill; + + > tabs { margin: -1px; } + + &.top { + border-bottom-style: solid; + > tabs { + margin-bottom: -2px; + > tab { + &:hover { box-shadow: inset 0 -4px $borders_color; } + + + &:checked { box-shadow: inset 0 -4px $selected_bg_color; } + } + } + } + + &.bottom { + border-top-style: solid; + > tabs { + margin-top: -2px; + > tab { + &:hover { box-shadow: inset 0 4px $borders_color; } + + &:checked { box-shadow: inset 0 4px $selected_bg_color; } + } + } + } + + &.left { + border-right-style: solid; + > tabs { + margin-right: -2px; + > tab { + &:hover { box-shadow: inset -4px 0 $borders_color; } + + &:checked { box-shadow: inset -4px 0 $selected_bg_color; } + } + } + } + + &.right { + border-left-style: solid; + > tabs { + margin-left: -2px; + > tab { + &:hover { box-shadow: inset 4px 0 $borders_color; } + + &:checked { box-shadow: inset 4px 0 $selected_bg_color; } + } + } + } + + &.top > tabs > arrow { + @extend %notebook_vert_arrows; + + border-top-style: none; + } + + &.bottom > tabs > arrow { + @extend %notebook_vert_arrows; + + border-bottom-style: none; + } + + @at-root %notebook_vert_arrows { + margin-left: -5px; + margin-right: -5px; + padding-left: 4px; + padding-right: 4px; + + &.down { -gtk-icon-source: -gtk-icontheme('pan-start-symbolic'); } + + &.up { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); } + } + + &.left > tabs > arrow { + @extend %notebook_horz_arrows; + + border-left-style: none; + } + + &.right > tabs > arrow { + @extend %notebook_horz_arrows; + + border-right-style: none; + } + + @at-root %notebook_horz_arrows { + margin-top: -5px; + margin-bottom: -5px; + padding-top: 4px; + padding-bottom: 4px; + + &.down { -gtk-icon-source: -gtk-icontheme('pan-up-symbolic'); } + + &.up { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); } + } + + > tabs > arrow { + @extend %button_basic; + + @extend %button_basic_flat; + + min-height: 16px; + min-width: 16px; + border-radius: 0; + + &:hover:not(:active):not(:backdrop) { + background-clip: padding-box; + background-image: none; + background-color: transparentize(white, 0.7); + border-color: transparent; + box-shadow: none; + } + + &:disabled { @include button(undecorated); } + } + + > tabs > tab { + transition: $focus_transition; + min-height: 30px; + min-width: 30px; + padding: 3px 12px; + + color: $fg_color; + font-weight: normal; + + border-width: 1px; // for reorderable tabs + border-color: transparent; // + + &:hover { + color: $fg_color; + background-color: darken($dark_fill,4%); + + &.reorderable-page { + border-color: transparentize($borders_color, 0.7); + background-color: transparentize($bg_color, 0.8); + } + } + + &:not(:checked) { + outline-color: transparent; + } + + &:checked { + color: $fg_color; + &.reorderable-page { + border-color: transparentize($borders_color, 0.5); + background-color: transparentize($bg_color, 0.5); + + &:hover { background-color: transparentize($bg_color, 0.3); } + } + } + + // colors the button like the label, overridden otherwise + button.flat { + color: gtkalpha(currentColor, 0.3); + &:hover { color: currentColor; } + + padding: 0; + margin-top: 4px; + margin-bottom: 4px; + // FIXME: generalize .small-button? + min-width: 20px; + min-height: 20px; + + &:last-child { + margin-left: 4px; + margin-right: -4px; + } + + &:first-child { + margin-left: -4px; + margin-right: 4px; + } + } + } + + &.top, + &.bottom { + > tabs { + padding-left: 4px; + padding-right: 4px; + + &:not(:only-child) { + margin-left: 3px; + margin-right: 3px; + + &:first-child { margin-left: -1px; } + &:last-child { margin-right: -1px; } + } + + > tab { + margin-left: 4px; + margin-right: 4px; + + &.reorderable-page { border-style: none solid; } + } + } + } + + &.left, + &.right { + > tabs { + padding-top: 4px; + padding-bottom: 4px; + + &:not(:only-child) { + margin-top: 3px; + margin-bottom: 3px; + + &:first-child { margin-top: -1px; } + &:last-child { margin-bottom: -1px; } + } + + > tab { + margin-top: 4px; + margin-bottom: 4px; + + &.reorderable-page { border-style: solid none; } + } + } + } + + &.top > tabs > tab { padding-bottom: 4px; } + &.bottom > tabs > tab { padding-top: 4px; } + } + + > stack:not(:only-child) { // the :not(:only-child) is for "hidden" notebooks + background-color: $base_color; + } +} + + +/************** + * Scrollbars * + **************/ +scrollbar { + $_slider_min_length: 40px; + + background-color: $scrollbar_bg_color; + transition: 300ms $ease-out-quad; + + // scrollbar border + &.top { border-bottom: 1px solid $borders_color; } + &.bottom { border-top: 1px solid $borders_color; } + &.left { border-right: 1px solid $borders_color; } + &.right { border-left: 1px solid $borders_color; } + + > range > trough > slider { + min-width: 6px; + min-height: 6px; + margin: -1px; + border: 4px solid transparent; + border-radius: 8px; + background-clip: padding-box; + background-color: $scrollbar_slider_color; + + &:hover { background-color: $scrollbar_slider_hover_color; } + + &:hover:active { background-color: $scrollbar_slider_active_color; } + + &:disabled { background-color: transparent; } + } + + > range.fine-tune { + > trough > slider { + min-width: 4px; + min-height: 4px; + } + + &.horizontal > trough > slider { border-width: 5px 4px; } + &.vertical > trough > slider { border-width: 4px 5px; } + } + + &.overlay-indicator { + &:not(.dragging):not(.hovering) { + border-color: transparent; + opacity: 0.4; + background-color: transparent; + + > range > trough > slider { + margin: 0; + min-width: 3px; + min-height: 3px; + background-color: $fg_color; + border: 1px solid if($variant == 'light', white, black); + } + + &.horizontal { + > range > trough > slider { + margin: 0 2px; + min-width: $_slider_min_length; + } + } + + &.vertical { + > range > trough > slider { + margin: 2px 0; + min-height: $_slider_min_length; + } + } + } + + &.dragging, + &.hovering { opacity: 0.8; } + } + + &.horizontal > range > trough > slider { min-width: $_slider_min_length; } + &.vertical > range > trough > slider { min-height: $_slider_min_length; } +} + +treeview ~ scrollbar.vertical { + border-top: 1px solid $borders_color; + margin-top: -1px; +} + +/********** + * Switch * + **********/ +switch { + font-weight: bold; + font-size: smaller; + + // similar to the .scale + border: 1px solid $borders_color; + border-radius: 14px; + color: $fg_color; + background-color: $dark_fill; + transition: $focus_transition; + + @include focus-ring($offset: 0, $outer: true); + + headerbar & { background-color: darken($dark_fill,8%); } //3504 + + &:checked { + color: $selected_fg_color; + border-color: $switch_borders_color; + background-color: $switch_bg_color; + } + + &:disabled { + color: $insensitive_fg_color; + border-color: $borders_color; + background-color: $insensitive_bg_color; + text-shadow: none; + } + + > slider { + @include button(normal); + + margin: -1px; + min-width: 24px; + min-height: 24px; + border: 1px solid; + border-color: $borders_color; + border-radius: 50%; + transition: $button_transition; + } + + > image { color: transparent; } /* only show i / o for the accessible theme */ + + &:hover > slider { + @include button(hover); + } + + &:checked > slider { border: 1px solid $switch_borders_color; } + + &:disabled > slider { @include button(insensitive); } + + + row:selected & { + outline-color: $alt_focus_border_color; + + @if $variant == 'light' { + box-shadow: none; + border-color: $switch_borders_color; + + > slider { &:checked, & { border-color: $switch_borders_color; } } + } + } +} + + +/************************* + * Check and Radio items * + *************************/ +// draw regular check and radio items using our PNG assets +// all assets are rendered from assets.svg. never add pngs directly + + +//selection-mode +@each $check_state, $check_icon, $check_color, $check_background in + ('', 'none', 'transparent', $checkradio_bg_color), + (':hover', 'none', 'transparent', $checkradio_bg_color), + (':active', 'none', 'transparent', $checkradio_bg_color), + (':backdrop', 'none', 'transparent', '#{desaturate($checkradio_bg_color, 100%)}'), + (':checked', '-gtk-icontheme(\'object-select-symbolic\')', $osd_fg_color, $checkradio_bg_color), + (':checked:hover', '-gtk-icontheme(\'object-select-symbolic\')', $osd_fg_color, $checkradio_bg_color), + (':checked:active', '-gtk-icontheme(\'object-select-symbolic\')', $osd_fg_color, $checkradio_bg_color), + (':backdrop:checked', '-gtk-icontheme(\'object-select-symbolic\')', '#{transparentize($osd_fg_color, 0.2)}', '#{desaturate($checkradio_bg_color, 100%)}'), { + + .view.content-view.check#{$check_state}:not(list), + .content-view .tile check#{$check_state}:not(list) { + margin: 4px; + min-width: 32px; + min-height: 32px; + color: #{$check_color}; + background-color: #{$check_background}; + border-radius: 5px; + background-image: none; + transition: 200ms; + box-shadow: none; + border-width: 0; + -gtk-icon-source: #{$check_icon}; + -gtk-icon-shadow: none; + } +} + +checkbutton { + border-spacing: 4px; + border-radius: $button_radius; + transition: $focus_transition; + + @include focus-ring(); + + &.text-button { + // this is for a nice focus on check and radios text + padding: 4px; + } +} + +check, +radio { + min-height: 14px; + min-width: 14px; + border: 1px solid; + -gtk-icon-source: none; + + & { + // for unchecked + $_c: if($variant=='light', white, $bg_color); + + @each $state, $t in ("", "normal"), + (":hover", "hover"), + (":active", "active"), + (":disabled", "insensitive") { + &#{$state} { + @include check($t, $_c); + } + } + } + + & { + // for checked + @each $t in (':checked'), (':indeterminate') { + &#{$t} { + @each $state, $t in ("", "normal"), + (":hover", "hover"), + (":active", "active"), + (":disabled", "insensitive") { + &#{$state} { + @include check($t, $checkradio_bg_color, $checkradio_fg_color, $checked: true); + } + } + } + } + } + + @if $variant == 'light' { + // the borders of the light variant versions of checks and radios are too similar in luminosity to the selected background + // color, hence we need special casing. + row:selected & { border-color: $checkradio_borders_color; } + } + + .osd & { + @include button(osd); + + &:hover { @include button(osd); } + &:active { @include button(osd-active); } + &:disabled { @include button(osd-insensitive); } + } +} + +%check, +check { + border-radius: 3px; + -gtk-icon-size: 14px; + + &:checked { -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/check-symbolic.symbolic.png")), + -gtk-recolor(url("assets/check@2-symbolic.symbolic.png"))); } + + &:indeterminate { -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), + -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } +} + +%radio, +radio { + border-radius: 100%; + -gtk-icon-size: 14px; + + &:checked { -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/bullet-symbolic.symbolic.png")), + -gtk-recolor(url("assets/bullet@2-symbolic.symbolic.png"))); } + + &:indeterminate { -gtk-icon-source: -gtk-scaled(-gtk-recolor(url("assets/dash-symbolic.symbolic.png")), + -gtk-recolor(url("assets/dash@2-symbolic.symbolic.png"))); } +} + +treeview.view check, +treeview.view radio { + &:selected { + &:focus, & { + color: $checkradio_fg_color; + + @if $variant == 'light' { border-color: $selected_borders_color; } + } + } +} + +treeview.view radio:selected { &:focus, & { @extend %radio; }} // This is a workaround + + +/************ + * GtkScale * + ************/ +%scale_trough { + border: 1px solid $dark_fill; + border-radius: 3px; + background-color: $dark_fill; + + headerbar & { background-color: darken($dark_fill,8%); } //3504 + + &:disabled { + background-color: $insensitive_bg_color; + border-color: $insensitive_borders_color; + } + + // ...on selected list rows + row:selected & { + &:disabled, & { + outline-color: $alt_focus_border_color; + border-color: $selected_borders_color; + } + } + + // OSD + .osd & { + border-color: $osd_borders_color; + background-color: transparentize($osd_borders_color, 0.2); + + &:disabled { background-color: $osd_insensitive_bg_color; } + } +} + +%scale_highlight { + border: 1px solid $selected_bg_color; + border-radius: 3px; + background-color: $selected_bg_color; + + &:disabled { + background-color: transparent; + border-color: transparent; + } + + // ...on selected list rows + row:selected & { &:disabled, & { border-color: $selected_borders_color; }} + + // OSD + .osd & { + border-color: $osd_borders_color; + + &:disabled { border-color: transparent; } + } +} + +scale { + // sizing + $_marks_length: 6px; + $_marks_distance: 6px; + + min-height: 10px; + min-width: 10px; + padding: 12px; + + @include focus-ring("> trough", $offset: 10px); + + // those are inside the trough node, I need them to show their own border over the trough one, so negative margin + > trough { + transition: $focus_transition; + + > fill, + > highlight { margin: -1px; } + + // the slider is inside the trough, so to have make it bigger there's a negative margin + + > slider { + min-height: 18px; + min-width: 18px; + margin: -9px; + } + } + + // click-and-hold the slider to activate + &.fine-tune { + &.horizontal { + padding-top: 9px; + padding-bottom: 9px; + min-height: 16px; + } + + &.vertical { + padding-left: 9px; + padding-right: 9px; + min-width: 16px; + } + + // to make the trough grow in fine-tune mode + > trough > slider { margin: -6px; } + + > trough > fill, + > trough > highlight, + > trough { + border-radius: 5px; + } + } + + // the backing bit + > trough { + @extend %scale_trough; + } + + // the colored part of the backing bit + > trough > highlight { @extend %scale_highlight; } + + // this is another differently styled part of the backing bit, the most relevant use case is for example + // in media player to indicate how much video stream as been cached + > trough > fill { + @extend %scale_trough; + + + &:disabled { + border-color: transparent; + background-color: transparent; + } + + // OSD + .osd & { + background-color: mix($osd_fg_color, $osd_borders_color, 25%); + + &:disabled { + border-color: transparent; + background-color: transparent; + } + } + } + + > trough > slider { + @include button(normal); + border-width: 1px; + border-style: solid; + border-radius: 100%; + transition: $button_transition; + transition-property: background, border, box-shadow; + + &:hover { @include button(hover); } + + &:active { border-color: $selected_borders_color; } + + &:disabled { @include button(insensitive); } + + // ...on selected list rows + row:selected & { &:disabled, & { border-color: $selected_borders_color; } } + + // OSD + .osd & { + @include button(osd); + border-color: darken($osd_borders_color, 3%); + background-color: opacify($osd_bg_color, 1); // solid background needed here + + &:hover { + @include button(osd-hover); + background-color: opacify($osd_bg_color, 1); // solid background needed here + } + + &:active { + @include button(osd-active); + background-color: opacify($osd_bg_color, 1); // solid background needed here + } + + &:disabled { + @include button(osd-insensitive); + background-color: opacify($osd_bg_color, 1); // solid background needed here + } + } + } + + > value { + color: gtkalpha(currentColor, 0.55); + font-feature-settings: "tnum"; + } + + &.horizontal { + > marks { + color: gtkalpha(currentColor, 0.55); + &.top { margin-bottom: $_marks_distance; } + &.bottom { margin-top: $_marks_distance; } + + indicator { + background-color: currentColor; + min-height: $_marks_length; + min-width: 1px; + } + } + + > value.left { margin-right: 9px; } + > value.right { margin-left: 9px; } + + &.fine-tune >marks { + &.top { margin-top: 3px; } + &.bottom { margin-bottom: 3px; } + + indicator { min-height: ($_marks_length - 3px); } + } + } + + &.vertical { + > marks { + color: gtkalpha(currentColor, 0.55); + &.top { margin-right: $_marks_distance; } + &.bottom { margin-left: $_marks_distance; } + + indicator { + background-color: currentColor; + min-height: 1px; + min-width: $_marks_length; + } + } + + > value.top { margin-bottom: 9px; } + > value.bottom { margin-top: 9px; } + + &.fine-tune >marks { + &.top { margin-left: 3px; } + &.bottom { margin-right: 3px; } + + indicator { min-height: ($_marks_length - 3px); } + } + } + + // *WARNING* scale with marks madness following + + // FIXME: OSD and selected list rows missing, I don't feel like adding the other 144 assets needed for those... + $suffix: if($variant == 'light', '', '-dark'); + + @each $dir_class, $dir_infix in ('horizontal', 'horz'), + ('vertical', 'vert') { + @each $marks_infix, $marks_class in ('scale-has-marks-above', 'marks-before:not(.marks-after)'), + ('scale-has-marks-below', 'marks-after:not(.marks-before)') { + @each $state, $state_infix in ('', ''), + (':hover', '-hover'), + (':active', '-active'), + (':disabled', '-insensitive') { + &.#{$dir_class}.#{$marks_class} { + + > trough > slider { + &#{$state} { + // an asymmetric slider asset is used here, so the margins are uneven, the smaller + // margin is set on the point side. + margin: -10px; + $_scale_asset: 'assets/slider-#{$dir_infix}-#{$marks_infix}#{$state_infix}#{$suffix}'; + border-style: none; + border-radius: 0; + + background-color: transparent; + background-image: -gtk-scaled(url('#{$_scale_asset}.png'), url('#{$_scale_asset}@2.png')); + + $_scale_slider_bg_pos: bottom; + + @if $dir_class == 'horizontal' { + min-height: 26px; + min-width: 22px; + + @if $marks_infix == 'scale-has-marks-above' { + margin-top: -14px; + + $_scale_slider_bg_pos: top; + } + + @else { margin-bottom: -14px; } + } + + @else { + min-height: 22px; + min-width: 26px; + + @if $marks_infix == 'scale-has-marks-above' { + margin-left: -14px; + + $_scale_slider_bg_pos: left bottom; + } + + @else { + margin-right: -14px; + + $_scale_slider_bg_pos: right bottom; + } + } + + background-position: $_scale_slider_bg_pos; + background-repeat: no-repeat; + box-shadow: none; + } + } + + &.fine-tune > trough > slider { + @if $dir_class == 'horizontal' { + // bigger negative margins to make the trough grow here as well + margin: -7px -10px; + + @if $marks_infix == 'scale-has-marks-above' { margin-top: -11px; } + + @else { margin-bottom: -11px; } + } + + @else { + margin: -10px -7px; + + @if $marks_infix == 'scale-has-marks-above' { margin-left: -11px; } + + @else { margin-right: -11px; } + } + } + } + } + } + } + + &.color { + min-height: 0; + min-width: 0; + + > trough { + background-image: image($borders_color); + background-repeat: no-repeat; + } + + &.horizontal { + padding: 0 0 15px 0; + + > trough { + padding-bottom: 4px; + background-position: 0 -3px; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + > trough > slider { + &:dir(ltr), &:dir(rtl) { // specificity bump + &:hover, &:backdrop, &:disabled, &:backdrop:disabled, & { + margin-bottom: -15px; + margin-top: 6px; + } + } + } + } + + &.vertical { + &:dir(ltr) { + padding: 0 0 0 15px; + + > trough { + padding-left: 4px; + background-position: 3px 0; + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + + > trough > slider { + &:hover, &:backdrop, &:disabled, &:backdrop:disabled, & { + margin-left: -15px; + margin-right: 6px; + } + } + } + + &:dir(rtl) { + padding: 0 15px 0 0; + + > trough { + padding-right: 4px; + background-position: -3px 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + > trough > slider { + &:hover, &:backdrop, &:disabled, &:backdrop:disabled, & { + margin-right: -15px; + margin-left: 6px; + } + } + } + } + + &.fine-tune { + &.horizontal { + &:dir(ltr), &:dir(rtl) { // specificity bump + padding: 0 0 12px 0; + + > trough { + padding-bottom: 7px; + background-position: 0 -6px; + } + + > trough > slider { + margin-bottom: -15px; + margin-top: 6px; + } + } + } + + &.vertical { + &:dir(ltr) { + padding: 0 0 0 12px; + + > trough { + padding-left: 7px; + background-position: 6px 0; + } + + > trough > slider { + margin-left: -15px; + margin-right: 6px; + } + } + + &:dir(rtl) { + padding: 0 12px 0 0; + + > trough { + padding-right: 7px; + background-position: -6px 0; + } + + > trough > slider { + margin-right: -15px; + margin-left: 6px; + } + } + } + } + } +} + + +/***************** + * Progress bars * + *****************/ +progressbar { + // sizing + &.horizontal { + > trough { + min-width: 150px; + &, > progress { min-height: 2px; } + } + } + + &.vertical { + > trough { + min-height: 80px; + &, > progress { min-width: 2px; } + } + } + + &.horizontal > trough > progress { margin: 0 -1px; } // the progress node is positioned after the trough border + &.vertical > trough > progress { margin: -1px 0; } // this moves it over it. + + + // FIXME: insensitive state missing and some other state should be set probably + font-size: smaller; + color: transparentize($fg_color, 0.6); + font-feature-settings: "tnum"; + + > trough { @extend %scale_trough; } + + > trough > progress { + @extend %scale_highlight; /* share most of scales' */ + /* override insensitive that is specific to progress */ + &:disabled { + background-color: $insensitive_fg_color; + border-color: $insensitive_fg_color; + } + + border-radius: 1.5px; + $_progress-radius: 5px; + &.left { + border-top-left-radius: $_progress-radius; + border-bottom-left-radius: $_progress-radius; + } + + &.right { + border-top-right-radius: $_progress-radius; + border-bottom-right-radius: $_progress-radius; + } + + &.top { + border-top-right-radius: $_progress-radius; + border-top-left-radius: $_progress-radius; + } + + &.bottom { + border-bottom-right-radius: $_progress-radius; + border-bottom-left-radius: $_progress-radius; + } + } + + &.osd { // progressbar.osd used for epiphany page loading progress + min-width: 3px; + min-height: 3px; + background-color: transparent; + + > trough { + border-style: none; + border-radius: 0; + background-color: transparent; + box-shadow: none; + + > progress { + border-style: none; + border-radius: 0; + } + } + } + + > trough.empty > progress { all: unset; } // makes the progress indicator disappear, when the fraction is 0 +} + +/************* + * Level Bar * + *************/ + +$_levelbar_size: 9px; +$_levelbar_border_radius: 5px; + +levelbar { + &.horizontal { + trough > block { + min-height: $_levelbar_size; + border-radius: $_levelbar_border_radius; + + &:dir(rtl) { + border-radius: 0 $_levelbar_border_radius $_levelbar_border_radius 0; + } + + &:dir(ltr) { + border-radius: $_levelbar_border_radius 0 0 $_levelbar_border_radius; + } + + &.empty,&.full { + border-radius: $_levelbar_border_radius; + } + } + + // segmented level bar + &.discrete { + trough > block { + min-height: 2px; + margin: 1px; + min-width: 24px; + border-radius:0; + &:first-child {border-radius: 2px 0 0 2px;} + &:last-child { + border-radius: 0 2px 2px 0; + } + } + } + } + + &.vertical { + trough > block { + min-width: $_levelbar_size; + border-radius: $_levelbar_border_radius; + } + + &.discrete > trough > block { + min-width: $_levelbar_size - 7px; + margin: 1px 0; + min-height: 32px; + } + } + + > trough { + padding: 0; + } + + // level bar colours + > trough > block { + border: 1px solid; + + &.low { + border-color: $warning_color; + background-color: $warning_color; + } + + &.high, + &:not(.empty) { + border-color: $selected_bg_color; + background-color: $selected_bg_color; + } + + &.full { + border-color: $success_color; + background-color: $success_color; + } + + &.empty { + background-color: darken($bg_color, 5%); + border-color: darken($bg_color, 5%); + } + } +} + + +/**************** + * Print dialog * +*****************/ +window.dialog.print { + drawing { + color: $fg_color; + background: none; + border: none; + padding: 0; + + paper { + background: white; + color: #2e3436; + border: 1px solid $borders_color; + } + + } + + .dialog-action-box { margin: 12px; } +} + + +/********** + * Frames * + **********/ +frame, +.frame { + border: 1px solid $borders_color; +} + +frame { + border-radius: $window_radius; + + > label { + margin: 4px; + } +} + +actionbar > revealer > box { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid $borders_color; +} + +scrolledwindow { + // This is used when content is touch-dragged past boundaries. + // draws a box on top of the content, the size changes programmatically. + > overshoot { + &.top { + @include overshoot(top); + } + + &.bottom { + @include overshoot(bottom); + } + + &.left { + @include overshoot(left); + } + + &.right { + @include overshoot(right); + } + } + + > junction { // the small square between two scrollbars + // Only color the top-left (or top right in RTL) pixel, to visually connect + // the borders of the two scrollbars. + + background: $borders_color, + linear-gradient(to bottom, transparent 1px, $scrollbar_bg_color 1px), + linear-gradient(to right, transparent 1px, $scrollbar_bg_color 1px); + + &:dir(rtl) { + background: $borders_color, + linear-gradient(to bottom, transparent 1px, $scrollbar_bg_color 1px), + linear-gradient(to left, transparent 1px, $scrollbar_bg_color 1px); + } + } +} + +//vbox and hbox separators +separator { + background: lighten($borders_color, 5%); + min-width: 1px; + min-height: 1px; +} + + +/********* + * Lists * + *********/ +listview, +list { + color: $text_color; + background-color: $base_color; + border-color: $borders_color; + + &:backdrop { + color: $backdrop_text_color; + background-color: $backdrop_base_color; + border-color: $backdrop_borders_color; + } + + > row { padding: 2px; } + > row.expander { padding: 0px; } + > row.expander .row-header { padding: 2px; } + + &.horizontal row.separator, + &.separators.horizontal > row:not(.separator) { + border-left: 1px solid $_treeview_borders_color; + } + &:not(.horizontal) row.separator, + &.separators:not(.horizontal) > row:not(.separator) { + border-bottom: 1px solid $_treeview_borders_color; + } +} + +row { + @include focus-ring(); + + &.activatable { + &.has-open-popup, // this is for indicathing which row generated a popover see https://bugzilla.gnome.org/show_bug.cgi?id=754411 + + &:hover { background-color: if(variant == light, transparentize($fg_color, 0.9), transparentize($fg_color, 0.95)); } + + &:active { box-shadow: inset 0 2px 2px -2px transparentize(black, 0.8); } + + &:selected { + &:active { box-shadow: inset 0 2px 3px -1px transparentize(black, 0.5); } + + &.has-open-popup, + &:hover { background-color: mix($fg_color, $selected_bg_color, 10%); } + } + } + + &:selected { + outline-color: $alt_focus_border_color; + + @extend %selected_items; + } +} + +columnview { + // move padding to child cells + > listview > row { + padding: 0; + + // align horizontal sizing with header buttons + > cell { + padding: 8px 6px; + + &:not(:first-child) { + border-left: 1px solid transparent; + } + } + } + + // make column separators visible when :show-column-separators is true + &.column-separators > listview > row > cell { + border-left-color: $_treeview_borders_color; + } + + // shrink vertically for .data-table + &.data-table > listview > row > cell { + padding-top: 2px; + padding-bottom: 2px; + } +} + +treeexpander { + border-spacing: 4px; +} + +/******************************************************** + * Data Tables * + * treeview like tables with individual focusable cells * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 * + ********************************************************/ + +columnview row:not(:selected) cell editablelabel:not(.editing):focus-within { + outline: 2px solid $focus_border_color; +} + +columnview row:not(:selected) cell editablelabel.editing:focus-within { + outline: 2px solid $selected_bg_color; +} + +columnview row:not(:selected) cell editablelabel.editing text selection { + color: $selected_fg_color; + background-color: $selected_bg_color; +} + +/******************************************************* + * Rich Lists * + * Large list usually containing lots of widgets * + * https://gitlab.gnome.org/GNOME/gtk/-/issues/3073 * + *******************************************************/ + + +.rich-list { /* rich lists usually containing other widgets than just labels/text */ + & > row { + padding: 8px 12px; + min-height: 32px; /* should be tall even when only containing a label */ + + & > box { + border-spacing: 12px; + } + } +} + +/********************* + * App Notifications * + *********************/ +.app-notification { + @extend %osd; + + padding: 10px; + border-spacing: 10px; + border-radius: 0 0 5px 5px; + background-color: $osd_bg_color; + background-image: linear-gradient(to bottom, transparentize(black, 0.8), + transparent 2px); + background-clip: padding-box; + + button { @extend %osd_button; } + + border { border: none; } +} + + +/************* + * Expanders * + *************/ +expander { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); + &:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl'); } + + &:disabled { color: $insensitive_fg_color; } + + &:checked { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); } +} + +expander-widget { + @include focus-ring("> box > title"); + + > box > title { + transition: $focus_transition; + border-radius: $button_radius; + + &:hover > expander { + color: lighten($fg_color,30%); //only lightens the icon + } + } +} + +.navigation-sidebar, +placessidebar, +stackswitcher, +expander-widget { + &:not(decoration):not(window):drop(active):focus, + &:not(decoration):not(window):drop(active) { + box-shadow: none; + } +} + + +/************ + * Calendar * + ***********/ +calendar { + color: $text_color; + border: 1px solid $borders_color; + + > header { + border-bottom: 1px solid $borders_color; + + > button { + border: none; + box-shadow: none; + background: none; + border-radius: 0; + } + > button:backdrop { + background: none; + } + } + + > grid { + > label.day-name { + } + + > label.week-number { + } + + > label.today { + box-shadow: inset 0px -2px $borders_color; + + &:selected { + box-shadow: none; + } + } + + > label:focus { + outline-color: $focus_border_color; + outline-offset: -2px; + outline-width: 2px; + outline-style: solid; + } + + > label.day-number { + padding: 4px; + + &:selected{ + @extend %selected_items; + border-radius: 3px; + } + } + + > label.day-number.other-month { + color: gtkalpha(currentColor, 0.3); + } + } + +} + + +/*********** + * Dialogs * + ***********/ +window.dialog.message { // Message Dialog styling + .titlebar { + min-height: 20px; + background-image: none; + background-color: $bg_color; + border-style: none; + border-top-left-radius: 7px; + border-top-right-radius: 7px; + } + + box.dialog-vbox.vertical { + border-spacing: 10px; + } + + & label.title { + font-weight: 800; + font-size: 15pt; + } + + &.csd { // rounded bottom border styling for csd version + &.background { + // bigger radius for better antialiasing + border-bottom-left-radius: $window_radius+1; + border-bottom-right-radius: $window_radius+1; + } + + .dialog-action-area button { + padding: 10px 14px; // labels are not vertically centered on message dialog, this is a workaround + border-radius: 0; + border-left-style: solid; + border-right-style: none; + border-bottom-style: none; + + &:first-child{ + border-left-style: none; + border-bottom-left-radius: 7px; + } + + &:last-child { + border-bottom-right-radius: 7px; + } + } + } +} + +filechooser { + .dialog-action-box { + border-top: 1px solid $borders_color; + } + + #pathbarbox { border-bottom: 1px solid $bg_color; } +} + + +filechooserbutton>button>box { + border-spacing: 6px; +} +filechooserbutton:drop(active) { + box-shadow: none; + border-color: transparent; +} + + +/*********** + * Sidebar * + ***********/ +.sidebar { + background-color: mix($bg_color, $base_color, 50%); + + &:not(separator) { + @at-root %sidebar_left, + &:dir(ltr), + &.left, + &.left:dir(rtl) { + border-right: 1px solid $borders_color; + border-left-style: none; + } + + @at-root %sidebar_right, + &:dir(rtl), + &.right { + border-left: 1px solid $borders_color; + border-right-style: none; + } + } + + listview.view, + list { background-color: transparent; } + + paned & { &.left, &.right, &.left:dir(rtl), &:dir(rtl), &:dir(ltr), & { border-style: none; }} +} + +stacksidebar { + //not a regular list + list.separators:not(.horizontal) > row:not(.separator) { + border-bottom: none; + } + row { + padding: 10px 4px; + + > label { + padding-left: 6px; + padding-right: 6px; + } + + &.needs-attention > label { + @extend %needs_attention; + background-size: 6px 6px, 0 0; + } + &:selected { + background-color: $menu_selected_color; + border-radius: $menu_radius; + color: $fg_color; + } + &:selected:hover:dir(ltr), &:selected:hover:dir(rtl) { + background-color: darken($menu_selected_color,5%); + } + &:focus:focus-visible { + outline-width: 0; + background-color: $selected_bg_color; + color: $selected_fg_color; + } + &.activatable:active, &.activatable:selected:active { + box-shadow: none; // #3413 + } + } +} + +separator.sidebar { + background-color: $borders_color; +} + + +/********************** + * Navigation Sidebar * + **********************/ + +.navigation-sidebar { + padding: $menu-margin 0; //only vertical padding. horizontal row size would clip + + > separator { + margin: $menu-margin; + } + + > row { + min-height: 36px; + padding: 0 8px; + border-radius: $menu-margin; + margin: 0 $menu-margin 2px; + + &:hover, + &:focus-visible:focus-within { + background-color: darken($menu_selected_color, 5%); + } + + &:selected { + background-color: $menu_selected_color; + color: inherit; + + &:hover { + background-color: darken($menu_selected_color,5%); + } + + &:focus-visible:focus-within { + outline-width: 0; + color: $selected_fg_color; + background-color: $selected_bg_color; + &:hover { background-color: darken($selected_bg_color,10%); } + } + } + + &:disabled { color: $insensitive_fg_color; } + } +} + + +/**************** + * File chooser * + ****************/ + +$_placesidebar_icons_opacity: 0.7; + +row image.sidebar-icon { opacity: $_placesidebar_icons_opacity; } // dim the sidebar icons + // see bug #786613 for details + // on this oddity + +/* this should be more generic, only using .navigation-sidebar + https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 +*/ + +placessidebar { + .navigation-sidebar > row { + // Needs overriding of the `.navigation-sidebar > row` padding + padding: 0; + + // Using margins/padding directly in the SidebarRow + // will make the animation of the new bookmark row jump + > revealer { padding: 0 14px; } + + image.sidebar-icon { + &:dir(ltr) { padding-right: 8px; } + &:dir(rtl) { padding-left: 8px; } + } + + label.sidebar-label { + &:dir(ltr) { padding-right: 2px; } + &:dir(rtl) { padding-left: 2px; } + } + + @at-root button.sidebar-button { + @extend %button_basic_flat; + + @extend %button_selected_flat; + min-height: 26px; + min-width: 26px; + margin-top: 3px; + margin-bottom: 3px; + padding: 0; + border-radius: 100%; + } + + // in the sidebar case it makes no sense to click the selected row + &:selected:active { box-shadow: none; } + + &.sidebar-placeholder-row { + padding: 0 8px; + min-height: 2px; + background-image: image($drop_target_color); + background-clip: content-box; + } + + &.sidebar-new-bookmark-row { color: $selected_bg_color; } + + &:drop(active):not(:disabled) { + color: $drop_target_color; + box-shadow: inset 0 1px $drop_target_color, + inset 0 -1px $drop_target_color; + + &:selected { + color: $selected_fg_color; + background-color: $drop_target_color; + } + } + } +} + +placesview { + .server-list-button > image { + transition: 200ms $ease-out-quad; + -gtk-icon-transform: rotate(0turn); + } + + .server-list-button:checked > image { + transition: 200ms $ease-out-quad; + -gtk-icon-transform: rotate(-0.5turn); + } + + row.activatable:hover { } + + > actionbar > revealer > box > box{ + border-spacing: 6px; + } +} + + +/********* + * Paned * + *********/ +paned { + > separator { + min-width: 1px; + min-height: 1px; + -gtk-icon-source: none; // defeats the ugly default handle decoration + border-style: none; // just to be sure + background-color: transparent; + // workaround, using background instead of a border since the border will get rendered twice (?) + background-image: image($borders_color); + background-size: 1px 1px; + + &:selected { background-image: image($selected_bg_color); } // FIXME is this needed? + + &.wide { + min-width: 5px; + min-height: 5px; + background-color: $bg_color; + background-image: image($borders_color), image($borders_color); + background-size: 1px 1px, 1px 1px; + } + } + + &.horizontal > separator { + background-repeat: repeat-y; + + &:dir(ltr) { + margin: 0 -8px 0 0; + padding: 0 8px 0 0; + background-position: left; + } + &:dir(rtl) { + margin: 0 0 0 -8px; + padding: 0 0 0 8px; + background-position: right; + } + + &.wide { + margin: 0; + padding: 0; + background-repeat: repeat-y, repeat-y; + background-position: left, right; + } + } + + &.vertical > separator { + margin: 0 0 -8px 0; + padding: 0 0 8px 0; + background-repeat: repeat-x; + background-position: top; + + &.wide { + margin: 0; + padding: 0; + background-repeat: repeat-x, repeat-x; + background-position: bottom, top; + } + } +} + + +/************** + * GtkVideo * + **************/ + +video { + & image.osd { + min-width: 64px; + min-height: 64px; + border-radius: 32px; + } + background: black; +} + +/************ + * Tooltips * + ************/ +tooltip { + &.background { + // background-color needs to be set this way otherwise it gets drawn twice + // see https://bugzilla.gnome.org/show_bug.cgi?id=736155 for details. + background-color: transparentize(black, 0.2); + background-clip: padding-box; + border: 1px solid $tooltip_borders_color; // this subtle border is meant to + // not make the tooltip melt with + // very dark backgrounds + color: white; + } + + padding: 6px 10px; + border-radius: $window_radius; + box-shadow: none; // otherwise it gets inherited by windowframe.csd + + > box { + border-spacing: 6px; + } +} + + +/***************** + * Color Chooser * + *****************/ +colorswatch { + // This widget is made of two boxes one on top of the other, the lower box is colorswatch {} the other one + // is colorswatch overlay {}, colorswatch has the programmatically set background, so most of the style is + // applied to the overlay box. + + transition: $focus_transition; + + @include focus-ring($width: 4px, $offset: -2px); + + &:drop(active), & { border-style: none; } // FIXME: implement a proper drop(active) state + + $_colorswatch_radius: 5px; + + // base color corners rounding + // to avoid the artifacts caused by rounded corner anti-aliasing the base color + // sports a bigger radius. + // nth-child is needed by the custom color strip. + + &.top { + border-top-left-radius: $_colorswatch_radius + 0.5px; + border-top-right-radius: $_colorswatch_radius + 0.5px; + + > overlay { + border-top-left-radius: $_colorswatch_radius; + border-top-right-radius: $_colorswatch_radius; + } + } + + &.bottom { + border-bottom-left-radius: $_colorswatch_radius + 0.5px; + border-bottom-right-radius: $_colorswatch_radius + 0.5px; + + > overlay { + border-bottom-left-radius: $_colorswatch_radius; + border-bottom-right-radius: $_colorswatch_radius; + } + } + + &.left, + &:first-child:not(.top) { + border-top-left-radius: $_colorswatch_radius + 0.5px; + border-bottom-left-radius: $_colorswatch_radius + 0.5px; + + > overlay { + border-top-left-radius: $_colorswatch_radius; + border-bottom-left-radius: $_colorswatch_radius; + } + } + + &.right, + &:last-child:not(.bottom) { + border-top-right-radius: $_colorswatch_radius + 0.5px; + border-bottom-right-radius: $_colorswatch_radius + 0.5px; + + > overlay { + border-top-right-radius: $_colorswatch_radius; + border-bottom-right-radius: $_colorswatch_radius; + } + } + + &.dark { + > overlay { + color: white; + } + + &.activatable:hover > overlay { + border-color: if($variant == 'light', transparentize(black, 0.2), $borders_color); + } + } + + &.light { + > overlay { + color: black; + } + + &.activatable:hover > overlay { + border-color: if($variant == 'light', transparentize(black, 0.5), $borders_color); + } + } + + &:drop(active) { + box-shadow: none; + + &.light > overlay { + border-color: $drop_target_color; + box-shadow: inset 0 0 0 2px if($variant == 'light', darken($drop_target_color, 7%), $borders_color), + inset 0 0 0 1px $drop_target_color; + } + + &.dark > overlay { + border-color: $drop_target_color; + box-shadow: inset 0 0 0 2px if($variant == 'light', transparentize(black, 0.7), $borders_color), + inset 0 0 0 1px $drop_target_color; + } + } + + > overlay { + border: 1px solid if($variant == 'light', transparentize(black, 0.7), $borders_color); + } + + &.activatable:hover > overlay { + box-shadow: inset 0 1px transparentize(white, 0.6), + inset 0 -1px transparentize(black, 0.8); + } + + &#add-color-button { + border-radius: $_colorswatch_radius 0 0 $_colorswatch_radius; + + &:only-child { border-radius: $_colorswatch_radius; } + + > overlay { + @include button(normal); + } + + &.activatable:hover > overlay { + @include button(hover); + } + } + + &:disabled { + opacity: 0.5; + + > overlay { + border-color: transparentize(black, 0.4); + box-shadow: none; + } + } + + row:selected & { box-shadow: 0 0 0 2px $selected_fg_color; } + + &#editor-color-sample { + border-radius: 4px; + + > overlay { border-radius: 4.5px; } + } +} + +plane { + transition: $focus_transition; + + @include focus-ring($offset: 2px, $outer: true); +} + +// colorscale popup +colorchooser .popover.osd { border-radius: 5px; } + +/******** + * Misc * + ********/ +.content-view { + background-color: darken($bg_color,7%); + + &:hover { -gtk-icon-filter: brightness(1.2); } + + .tile { + margin: 2px; + background-color: if($variant=='light', transparent, black); + border-radius: 0; + padding: 0; + + &:active, &:selected { background-color: if($variant=='light', transparent, $selected_bg_color); } + &:disabled { background-color: if($variant=='light', transparent, $insensitive_bg_color); } +} + + > rubberband { @extend rubberband; } + +} + +.scale-popup { + .osd & { @extend %osd; } + + .osd & button.flat { //FIXME: quick hack, redo properly + border-style: none; + border-radius: 5px; + } + + button { // +/- buttons on GtkVolumeButton popup + &:hover { + @extend %undecorated_button; + background-color: transparentize($fg_color,0.9); + border-radius: 5px; + } + } +} + + +/********************** + * Window Decorations * + *********************/ +window { + // lamefun trick to get rounded borders regardless of CSD use + border-width: 0px; + + // this needs to be transparent + // see bug #722563 + $_wm_border: if($variant=='light', transparentize(black, 0.77), transparentize($borders_color, 0.1)); + $_wm_border_backdrop: if($variant=='light', transparentize(black, 0.82), transparentize($borders_color, 0.1)); + + &.csd { + box-shadow: 0 3px 9px 1px transparentize(black, 0.5), + 0 0 0 1px $_wm_border; //doing borders with box-shadow + margin: 0px; + border-radius: $window_radius $window_radius 0 0; + &:backdrop { + // the transparent shadow here is to enforce that the shadow extents don't + // change when we go to backdrop, to prevent jumping windows. + // The biggest shadow should be in the same order then in the active state + // or the jumping will happen during the transition. + box-shadow: 0 3px 9px 1px transparent, + 0 2px 6px 2px transparentize(black, 0.8), + 0 0 0 1px $_wm_border_backdrop; + transition: $backdrop_transition; + } + + &.popup { + border-radius: $menu_radius; + box-shadow: 0 1px 2px transparentize(black, 0.8), + 0 0 0 1px transparentize($_wm_border, 0.1); + } + + &.dialog.message { + border-radius: $window_radius; + box-shadow: 0 1px 2px transparentize(black, 0.8), + 0 0 0 1px transparentize($_wm_border, 0.1); + } + + &.solid-csd { + margin: 0; + padding: 0; + border: solid 1px $borders_color; + border-radius: 0; + box-shadow: inset 0 0 0 3px $headerbar_bg_color, inset 0 1px $top_hilight; + + &:backdrop { box-shadow: inset 0 0 0 3px $backdrop_bg_color, inset 0 1px $top_hilight; } + } + } + + &.maximized, + &.fullscreen, + &.tiled, + &.tiled-top, + &.tiled-left, + &.tiled-right, + &.tiled-bottom { border-radius: 0; } + + &.popup { box-shadow: none; } + + // server-side decorations as used by mutter + &.ssd { box-shadow: 0 0 0 1px $_wm_border; } //just doing borders, wm draws actual shadows + +} + +tooltip.csd { + border-radius: 5px; + box-shadow: none; +} + +// catch all extend :) + +%selected_items { + background-color: $selected_bg_color; + + @at-root %nobg_selected_items, & { + color: $selected_fg_color; + + @at-root %selected_items_disabled, + &:disabled { color: mix($selected_fg_color, $selected_bg_color, 50%); } + + } +} + +.monospace { font-family: monospace; } + + +/********************** + * Touch Copy & Paste * + *********************/ +//touch selection handlebars for the Popover.osd above +cursor-handle { + background-color: transparent; + background-image: none; + box-shadow: none; + border-style: none; + min-width: 20px; + min-height: 24px; + padding-left: 20px; + padding-right: 20px; + padding-top: 24px; + padding-bottom: 24px; + + @each $s,$as in ('',''), + (':hover','-hover'), + (':active','-active') { //no need for insensitive and backdrop + &.top#{$s}:dir(ltr), &.bottom#{$s}:dir(rtl) { + $_url: 'assets/text-select-start#{$as}#{$asset_suffix}'; + -gtk-icon-source: -gtk-scaled(url('#{$_url}.png'), + url('#{$_url}@2.png')); + } + + &.bottom#{$s}:dir(ltr), &.top#{$s}:dir(rtl) { + $_url: 'assets/text-select-end#{$as}#{$asset_suffix}'; + -gtk-icon-source: -gtk-scaled(url('#{$_url}.png'), + url('#{$_url}@2.png')); + } + + &.insertion-cursor#{$s}:dir(ltr), &.insertion-cursor#{$s}:dir(rtl) { + $_url: 'assets/slider-horz-scale-has-marks-above#{$as}#{$asset_suffix}'; + -gtk-icon-source: -gtk-scaled(url('#{$_url}.png'), + url('#{$_url}@2.png')); + } + } +} + +shortcuts-section { + margin: 20px; +} + +.shortcuts-search-results { + margin: 20px; + border-spacing: 24px; +} + +// shortcut window keys +shortcut { + border-spacing: 6px; +} + +shortcut > .keycap { + min-width: 20px; + min-height: 25px; + margin-top: 2px; + padding-bottom: 3px; + padding-left: 6px; + padding-right: 6px; + + color: $fg_color; + background-color: $base_color; + border: 1px solid; + border-color: if($variant == 'light', mix($borders_color, $bg_color, 50%), $borders_color); + border-radius: 5px; + box-shadow: if($variant == 'light', inset 0 -3px mix($base_color, $bg_color, 20%), inset 0 -3px mix($borders_color, $base_color, 60%)); + font-size: smaller; + +} + +:not(decoration):not(window):drop(active):focus, +:not(decoration):not(window):drop(active) { // FIXME needs to be done widget by widget, this wildcard should really die + border-color: $drop_target_color; + box-shadow: inset 0 0 0 1px $drop_target_color; + caret-color: $drop_target_color; +} + +stackswitcher > button.text-button { min-width: 100px; } // FIXME aggregate with buttons + +stackswitcher.circular { + border-spacing: 12px; + + // FIXME aggregate with buttons + > button.circular, + > button.text-button.circular { + min-width: 32px; + min-height: 32px; + padding: 0; + } +} +/************* + * App Icons * + *************/ +/* Outline for low res icons */ +.lowres-icon { + -gtk-icon-shadow: 0 -1px rgba(0,0,0,0.05), + 1px 0 rgba(0,0,0,0.1), + 0 1px rgba(0,0,0,0.3), + -1px 0 rgba(0,0,0,0.1); +} + +/* Drapshadow for large icons */ +.icon-dropshadow { + -gtk-icon-shadow: 0 1px 12px rgba(0,0,0,0.05), + 0 -1px rgba(0,0,0,0.05), + 1px 0 rgba(0,0,0,0.1), + 0 1px rgba(0,0,0,0.3), + -1px 0 rgba(0,0,0,0.1); +} + +/********* + * Emoji * + ********/ + +popover.emoji-picker > contents { + padding: 0; +} + +.emoji-searchbar { + padding: 6px; + border-spacing: 6px; + border-bottom: 1px solid $borders_color; +} + +.emoji-toolbar { + padding: 6px; + border-spacing: 6px; + border-top: 1px solid $borders_color; +} + +button.emoji-section { + border-color: transparent; + border-width: 3px; + border-style: none none solid; + border-radius: 0; + + padding: 3px 0 0; + min-width: 32px; + min-height: 28px; + + /* reset props inherited from the button style */ + background: none; + box-shadow: none; + text-shadow: none; + + &:hover { border-color: if($variant == 'light', $borders_color, transparentize($fg_color, .9)); } + &:checked { border-color: $selected_bg_color; } +} + +popover.emoji-picker emoji { + font-size: x-large; + padding: 6px; + border-radius: 6px; + + &:focus, + &:hover { + background: $selected_bg_color; + } +} + +emoji-completion-row > box { + border-spacing: 10px; + padding: 2px 10px; +} + +emoji-completion-row:focus, +emoji-completion-row:hover { + background-color: $selected_bg_color; + color: $selected_fg_color; +} + +emoji-completion-row emoji:focus, +emoji-completion-row emoji:hover { + background-color: $menu_selected_color; +} + +popover.entry-completion > contents { + padding: 0; +} + +statusbar { + padding: 6px 10px 6px 10px; +} diff --git a/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_drawing.scss b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_drawing.scss new file mode 100644 index 00000000..b8fed6ea --- /dev/null +++ b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/_drawing.scss @@ -0,0 +1,505 @@ +// Drawing mixins + +// generic drawing of more complex things + +// +// Helper mixin for drawing visible focus rings +// +// If $target is specified, the focus ring is applied to the specified child element. +// If $outer is true, the focus ring extends outward. Otherwise, it extends inward. +// If $within is true, use focus-within instead of focus:focus-visible +// +@mixin focus-ring($target: null, $width: 2px, $offset: -$width, $outer: false, $focus-state: 'focus:focus-visible', $fc: $focus_border_color) { + & #{$target} { + outline: 0 solid transparent; + outline-offset: if($outer, $offset + 4px, $offset + $width + 4px); + } + + &:#{$focus-state} #{$target} { + outline-color: $fc; + outline-width: $width; + outline-offset: $offset; + } +} + +@mixin _shadows($list...) { +// +// Helper mixin to stack up to box-shadows; +// + $shadows: null; + + @each $shadow in $list { + @if $shadow!=none { $shadows: $shadows, $shadow; } + } + + box-shadow: $shadows; +} + +// entries + +@mixin entry($t, $fc:$focus_border_color) { +// +// Entries drawing function +// +// $t: entry type +// $fc: focus color +// +// possible $t values: +// normal, focus, insensitive, backdrop, backdrop-insensitive, osd, osd-focus, osd-backdrop, block_cursor; +// + + @if $t==normal { + color: $text_color; + border-color: $borders_color; + background-color: $base_color; + // for the transition to work the number of shadows in different states needs to match, hence the transparent shadow here. + } + @if $t==insensitive { + color: $insensitive_fg_color; + border-color: $borders_color; + background-color: $insensitive_bg_color; + } + @if $t==backdrop { + color: $backdrop_text_color; + border-color: $backdrop_borders_color; + background-color: $backdrop_base_color; + } + @if $t==backdrop-insensitive { + color: $backdrop_insensitive_color; + border-color: $backdrop_borders_color; + background-color: $insensitive_bg_color; + } + @if $t==osd { + color: $osd_text_color; + border-color: $osd_borders_color; + background-color: transparentize(opacify($osd_borders_color, 1), 0.5); + background-clip: padding-box; + box-shadow: none; + -gtk-icon-shadow: 0 1px black; + } + @if $t==osd-focus { + color: $osd_text_color; + border-color: $selected_bg_color; + background-color: transparentize(opacify($osd_borders_color, 1), 0.5); + background-clip: padding-box; + } + @if $t==osd-insensitive { + color: $osd_insensitive_fg_color; + border-color: $osd_borders_color; + background-color: $osd_insensitive_bg_color; + background-clip: padding-box; + } + @if $t==osd-backdrop { + color: $osd_text_color; + border-color: $osd_borders_color; + background-color: transparentize(opacify($osd_borders_color, 1), 0.5); + background-clip: padding-box; + } + @if $t==block_cursor { + color: $base_color; + background-color: $text_color; + } +} + +// buttons + +@function _border_color($c, $darker: false) { + @if $darker == true { @return darken($c, 20%); } + @else { @return darken($c, 15%); } +} + +$_default_button_c: lighten($bg_color,2%); +@mixin button($t, $c:$_default_button_c, $tc:$fg_color) { +// +// Button drawing function +// +// $t: button type, +// $c: base button color for colored* types +// $tc: optional text color for colored* types +// +// possible $t values: +// normal, hover, active, checked-hover, checked-active, insensitive, insensitive-active, +// backdrop, backdrop-active, backdrop-insensitive, backdrop-insensitive-active, +// osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated +// + $_button_shadow: 0 1px 2px transparentize($shadow_color, 0.03); + + @if $t==normal { + // + // normal button + // + color: $tc; + outline-color: if($c != $_default_button_c, $alt_focus_border_color, $focus_border_color); + border-color: if($c!=$_default_button_c, _border_color($c, true), $borders_color); //tint if not default button color + background-image: if($variant == 'light', linear-gradient(to top, darken($c, 2%) 2px, $c), + linear-gradient(to top, darken($c,1%) 2px, $c)); + @include _shadows($_button_shadow); + } + + @else if $t==hover { + // + // hovered button + // + color: $tc; + border-color: if($c != $_default_button_c, _border_color($c), $borders_color); + @if $variant == 'light' { + background-image: linear-gradient(to top, darken($c,16%), darken($c,8%) 1px); + @include _shadows($_button_shadow); + } + @else { + background-image: linear-gradient(to top, darken($c,4%) 20%, darken($c, 3%) 90%); + @include _shadows($_button_shadow); + } + } + + @else if $t==active { + // + // pushed button + // + color: $tc; + border-color: if($c != $_default_button_c, _border_color($c), $borders_color); + background-image: if($variant == 'light', image(darken($c, 14%)), image(darken($c, 9%))); + box-shadow: none; + } + + @else if $t==checked-hover { + // + // pushed togglebutton hover + // + color: $tc; + border-color: if($c != $_default_button_c, _border_color($c), $borders_color); + background-image: if($variant == 'light', image(darken($c, 18%)), image(darken($c, 12%))); + box-shadow: none; + } + + @else if $t==checked-active { + // + // pushed togglebutton pushed further :) + // + color: $tc; + border-color: if($c != $_default_button_c, _border_color($c), $borders_color); + background-image: if($variant == 'light', image(darken($c, 22%)), image(darken($c, 14%))); + box-shadow: none; + } + + @else if $t==insensitive { + // + // insensitive button + // + $_bg: if($c != $_default_button_c, mix($c, $base_color, 85%), $insensitive_bg_color); + + color: if($tc != $fg_color, mix($tc, $_bg, 50%), $insensitive_fg_color); + border-color: if($c != $_default_button_c, _border_color($c), $insensitive_borders_color); + background-image: image($_bg); + } + + @else if $t==insensitive-active { + // + // insensitive pushed button + // + $_bg: if($variant == 'light', darken(mix($c, $base_color, 85%), 8%), darken(mix($c, $base_color, 85%), 6%)); + $_bc: if($c != $_default_button_c, _border_color($c), $insensitive_borders_color); + + color: if($c != $_default_button_c, mix($tc, $_bg, 60%), $insensitive_fg_color); + border-color: $_bc; + background-image: image($_bg); + box-shadow: none; + } + + @else if $t==backdrop { + // + // backdrop button + // + $_bg: if($c != $_default_button_c, $c, $backdrop_bg_color); + $_bc: if($variant == 'light', $c, _border_color($c)); + + color: if($tc != $fg_color, mix($tc, $_bg, 80%), $backdrop_fg_color); + border-color: if($c != $_default_button_c, $_bc, $backdrop_borders_color); + background-image: image($_bg); + box-shadow: none; + } + + @else if $t==backdrop-active { + // + // backdrop pushed button + // + $_bg: if($variant == 'light', darken(mix($c, $base_color, 85%), 8%), darken(mix($c, $base_color, 85%), 4%)); + $_bc: if($variant == 'light', $_bg ,_border_color($c)); + + color: if($tc != $fg_color, mix($tc, $_bg, 80%), $backdrop_fg_color); + border-color: if($c != $_default_button_c, $_bc, $backdrop_borders_color); + background-image: image($_bg); + box-shadow: none; + } + + @else if $t==backdrop-insensitive { + // + // backdrop insensitive button + // + + $_bg: if($c != $_default_button_c, mix($c, $base_color, 85%), $insensitive_bg_color); + $_bc: if($variant == 'light', $_bg,_border_color($c)); + + color: if($c != $_default_button_c, mix($tc, $_bg, 35%), $backdrop_insensitive_color); + border-color: if($c != $_default_button_c, $_bc, $backdrop_borders_color); + background-image: image($_bg); + box-shadow: none; + } + + @else if $t==backdrop-insensitive-active { + // + // backdrop insensitive pushed button + // + + $_bg: if($variant == 'light', darken(mix($c, $base_color, 85%), 8%), darken(mix($c, $base_color, 85%), 4%)); + $_bc: if($variant == 'light', $_bg, _border_color($c)); + + color: if($c != $_default_button_c, mix($tc, $_bg, 35%), $backdrop_insensitive_color); + border-color: if($c != $_default_button_c, $_bc, $backdrop_borders_color); + background-image: image($_bg); + box-shadow: none; + } + + @else if $t==osd { + // + // normal osd button + // + $_bg: if($c != $_default_button_c, transparentize($c, 0.5), $osd_bg_color); + + color: $osd_fg_color; + outline-color: if($c != $_default_button_c, $alt_focus_border_color, $focus_border_color); + border-color: $osd_borders_color; + background-color: transparent; + background-image: image($_bg); + background-clip: padding-box; + } + + @else if $t==osd-hover { + // + // active osd button + // + $_bg: if($c != $_default_button_c, transparentize($c, 0.3), darken($osd_bg_color, 10%)); + + color: white; + border-color: $osd_borders_color; + background-color: transparent; + background-image: image($_bg); + background-clip: padding-box; + } + + @else if $t==osd-active { + // + // active osd button + // + $_bg: if($c != $_default_button_c, $c, darken($osd_bg_color, 20%)); + + color: white; + border-color: $osd_borders_color; + background-color: transparent; + background-image: image($_bg); + background-clip: padding-box; + box-shadow: none; + } + + @else if $t==osd-insensitive { + // + // insensitive osd button + // + color: $osd_insensitive_fg_color; + border-color: $osd_borders_color; + background-color: transparent; + background-image: image($osd_insensitive_bg_color); + background-clip: padding-box; + } + + @else if $t==osd-backdrop { + // + // backdrop osd button + // + $_bg: if($c != $_default_button_c, transparentize($c, 0.5), $osd_bg_color); + + color: $osd_fg_color; + border-color: $osd_borders_color; + background-color: transparent; + background-image: image($_bg); + background-clip: padding-box; + } + + @else if $t==undecorated { + // + // reset + // + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + } + @else if $t==undecorated-hover { + border-color: transparent; + background-image: none; + box-shadow: none; + @if $variant == 'light' { + background-color: darken($c,14%); + } @else { + background-color: darken($c,1%); + } + } + @else if $t==undecorated-active { + border-color: transparent; + background-image: none; + box-shadow: none; + @if $variant == 'light' { + background-color: darken($c,20%); + } + @else { + background-color: darken($c,5%); + } + } +} + +@mixin headerbar_fill($c:$headerbar_bg_color, $ov: none) { +// +// headerbar fill +// +// $c: base color +// $ov: a background layer for background shorthand (hence no commas!) +// + $gradient: linear-gradient(to top, darken($c, 2%), lighten($c, 1%)); + + @if $variant == 'dark' { $gradient: linear-gradient(to top, lighten($c, 4%), lighten($c, 6%)); } + + @if $ov != none { background: $c $ov, $gradient; } + @else { background: $c $gradient; } + +} + +@mixin overshoot($p, $t:normal, $c:$fg_color) { +// +// overshoot +// +// $p: position +// $t: type +// $c: base color +// +// possible $p values: +// top, bottom, right, left +// +// possible $t values: +// normal, backdrop +// + + $_small_gradient_length: 3%; + $_big_gradient_length: 50%; + + $_small_gradient_size: 100% $_small_gradient_length; + $_big_gradient_size: 100% $_big_gradient_length; + + @if $p==right or $p==left { + $_small_gradient_size: $_small_gradient_length 100%; + $_big_gradient_size: $_big_gradient_length 100%; + } + + $_small_gradient_color: $c; + $_big_gradient_color: transparentize($c, 0.93); + + @if $c==$fg_color { + $_small_gradient_color: darken($borders_color, 10%); + $_big_gradient_color: transparentize($fg_color, 0.93); + + @if $t==backdrop { $_small_gradient_color: $backdrop_borders_color; } + } + + $_small_gradient: radial-gradient(farthest-side at $p, + $_small_gradient_color 85%, + transparentize($_small_gradient_color, 1)); + + $_big_gradient: radial-gradient(farthest-side at $p, + $_big_gradient_color, + transparentize($_big_gradient_color, 1)); + + @if $t==normal { + background-image: $_small_gradient, $_big_gradient; + background-size: $_small_gradient_size, $_big_gradient_size; + } + + @else if $t==backdrop { + background-image: $_small_gradient; + background-size: $_small_gradient_size; + } + + background-repeat: no-repeat; + background-position: $p; + + background-color: transparent; // reset some properties to be sure to not inherit them somehow + border: none; // + box-shadow: none; // +} + +/*************************** + * Check and Radio buttons * + ***************************/ + + @mixin check($t, $c:$checkradio_bg_color, $tc:$checkradio_fg_color, $checked: false) { + // Check/Radio drawing function + // + // $t: check/radio type, + // $c: base button color for colored* types + // $tc: optional text color for colored* types + // $checked: bool to chose between checked/unchecked + // + // possible $t values: + // normal, hover, active, insensitive, backdrop, backdrop-insensitive, menu + + $_border_color: if($c==$checkradio_bg_color, $checkradio_borders_color, $alt_borders_color); + $_dim_border_color: transparentize($_border_color, if($variant == 'light', 0.3, 0.7)); + + @if $t==normal { + background-clip: if($checked, border-box, padding-box); + background-image: linear-gradient(to bottom, lighten($c, 5%) 20%, $c 90%); + border-color: $_border_color; + box-shadow: 0 1px transparentize(black, 0.95); + color: $tc; + } + + @if $t==hover { + background-image: if($c == white, image(darken($c, 5%)), linear-gradient(to bottom, lighten($c, 9%) 10%, lighten($c, 4%) 90%)); + } + + @if $t==active { + box-shadow: inset 0 1px if($variant == 'light', rgba(0, 0, 0, 0.2), black); + background-image: if($c == white, image(darken($c, 15%)), image(darken($c, 5%))); + } + + @if $t==insensitive { + box-shadow: none; + color: transparentize($tc, 0.3); + } + + @if $t==backdrop { + background-image: image($c); + box-shadow: none; + color: $tc; + } + + @if $t==backdrop-insensitive { + box-shadow: none; + color: transparentize($tc, 0.3); + } + + @if $t==menu { + transform: scale(0.8); + border-width: 1.2px; + border-color: transparent; + box-shadow: none; + background-image: image(transparent); + color: $tc; + } + + @if $t==menu-active { + transform: scale(0.8); + border-width: 1.2px; + color: $tc; + box-shadow: none; + background-image: image(transparent); + } +} diff --git a/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/sync.sh b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/sync.sh new file mode 100755 index 00000000..4633ff87 --- /dev/null +++ b/src/themes/Kali/sass/gtk-sass/upstream-gtk-4/sync.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +RESET='\033[0m' + +VERSION=4.0.2 + +echo +printf " $YELLOW[ i ]$RESET Upstream version $VERSION\n" +echo + +while read file; +do + echo + printf " $GREEN[ * ]$RESET Downloading file $file\n" + wget https://gitlab.gnome.org/GNOME/gtk/raw/$VERSION/gtk/theme/Adwaita/$file --timestamping --quiet + + if [ -f $file.patch ] + then + printf " $YELLOW[ ~ ]$RESET Apply patch\n" + patch $file $file.patch --quiet + fi +done <<- EOF + _colors.scss + _common.scss + _drawing.scss + _colors-public.scss +EOF +