/***************
* Gnome panel *
***************/
PanelWidget,
PanelApplet,
PanelToplevel {
// Always use dark-color of dark variant
color: $inverted_secondary_fg_color;
background-color: $panel_bg_color;
box-shadow: none;
}
PanelSeparator {
border-width: 0;
background: none;
background-image: none;
}
.gnome-panel-menu-bar,
PanelMenuButton,
PanelApplet > GtkMenuBar.menubar,
ClockBox {
color: $inverted_secondary_fg_color;
background-color: transparent;
box-shadow: none;
font-weight: 700;
.label:backdrop,
&:backdrop { opacity: 1.0; }
}
.gnome-panel-menu-bar,
PanelApplet > GtkMenuBar.menubar {
box-shadow: none;
& .menuitem {
color: $inverted_secondary_fg_color;
background-color: transparent;
&:hover {
color: $selected_fg_color;
box-shadow: inset 0 -2px $selected_bg_color;
}
&:backdrop { opacity: 1.0; }
}
.menu {
font: regular;
.menuitem {
color: $secondary_fg_color;
background-color: $base_color;
&:hover {
color: $fg_color;
background-color: gtkalpha(currentColor, 0.1);
box-shadow: none;
}
&:backdrop { opacity: 1.0; }
}
.separator { color: $borders_color; }
}
}
PanelAppletFrame {
border-width: 0;
background-color: transparent;
background-image: none;
}
PanelApplet {
GtkButton {
&#tasklist-button,
&#clock-applet-button,
&#showdesktop-button {
@include button(flat-normal);
padding: 0px 4px;
color: $inverted_secondary_fg_color;
background-color: transparent;
border: none;
border-radius: 0;
&:hover {
color: $selected_fg_color;
background-color: transparent;
box-shadow: inset 0 -2px $track_color;
}
&:checked,
&:hover:checked,
&:insensitive:checked { // 'checked' = 'active'
color: $selected_fg_color;
background-color: transparent;
box-shadow: inset 0 -2px $selected_bg_color;
}
.label:backdrop,
&:backdrop { opacity: 1.0; }
}
}
}
// FIXME: w.i.p
TaskList TaskItem {
@include button(flat-normal);
padding: 0px 4px;
color: $inverted_secondary_fg_color;
background-color: transparent;
border: none;
border-radius: 0;
&:hover {
color: $selected_fg_color;
background-color: transparent;
box-shadow: inset 0 -2px $track_color;
}
&:checked,
&:hover:checked,
&:insensitive:checked { // 'checked' = 'active'
color: $selected_fg_color;
background-color: transparent;
box-shadow: inset 0 -2px $selected_bg_color;
}
.label:backdrop,
&:backdrop { opacity: 1.0; }
}
WpTaskTitle {
background-color: transparent;
.label { color: $inverted_secondary_fg_color; }
}
WnckPager {
&:selected { box-shadow: inset 0 -2px $selected_bg_color; }
&:backdrop { opacity: 1.0; }
}
NaTrayApplet {
-NaTrayApplet-icon-padding: 2;
-NaTrayApplet-icon-size: 16;
}
/**************
* Tweak-tool *
**************/
// sidebar
.tweak-categories.list {
background-color: $secondary_dark_color;
color: $secondary_fg_color;
&:dir(ltr) { box-shadow: if($variant == 'light', $sidebar-light-ltr,
$sidebar-dark-ltr);
}
&:dir(rtl) { box-shadow: if($variant == 'light', $sidebar-light-rtl,
$sidebar-dark-rtl);
}
.separator { -GtkWidget-wide-separators: true; }
}
.tweak-category {
@extend .list-row;
color: $secondary_fg_color;
font-weight: 500;
&:hover { color: $fg_color; }
&:selected {
color: $selected_bg_color;
background-color: transparent;
}
}
// container and tweaks in a group
.tweak-group {
padding: 6px;
background-color: $base_color;
}
.tweak {
background-color: $base_color;
&:hover { background-color: transparent; }
}
.tweak-group-white,
.tweak-white {
background-color: $base_color;
}
/*******************
* Gnome-Flashback *
*******************/
// use message-dialog style for popup osd windows
FlashbackOsdWindow,
GfPopupWindow {
border-radius: 2px;
border: 1px solid $borders_color;
opacity: 0.9;
&.background {
background-color: $inverted_dark_color;
color: $inverted_fg_color;
}
}
GfInputSourcePopup {
#input-source {
color: $inverted_fg_color;
font-size: 2em;
font-weight: 700;
&:selected {
border-radius: 2px;
background-color: $track_color;
color: $accent_color;
}
}
}
FlashbackLabelWindow {
font-size: 4em;
}
// popup for inpu-source candidates
GfCandidatePopup {
&, &.solid {
border-radius: 2px;
border: 1px solid $borders_color;
color: $inverted_fg_color;
}
GfCandidateBox {
transition: none;
.label { padding: 0.2em 0.2em 0.3em; } // half of .menuitem
&:last-child { padding-left: 0; }
&:hover,
&:selected {
border-radius: 0;
background-color: $track_color;
color: $selected_fg_color;
}
}
.button,
.linked > .button { // page-up&down buttons
&,
&:first-child,
&:last-child {
@extend .button.flat;
border-radius: 0;
border: none;
background-color: transparent;
color: $secondary_accent_color;
box-shadow: none;
}
}
}
/************
* Nautilus *
************/
EelEditableLabel {
// Workaround for invisible text in rename entry in Nautilus 3.14.x
// Copied from arc-theme:
// 966778df08c2ee94dfdf55c9281791b0b2121497
&.entry { transition: none; }
}
.nautilus-desktop-window,
.nautilus-desktop-window .notebook,
.nautilus-desktop-window .notebook > GtkStack {
background: transparent;
}
.nautilus-desktop.nautilus-canvas-item {
color: $selected_fg_color;
}
.nautilus-canvas-item {
border-radius: 2px;
}
.nautilus-circular-button {
border-radius: 100px;
outline-radius: 100px;
}
NautilusTrashBar {
@extend GtkInfoBar;
}
.disk-space-display {
border: 0 none transparent;
&.free {
background-color: $track_color;
color: $insensitive_fg_color;
}
&.used { background-color: $selected_bg_color; }
&.unknown { background-color: $warning_color; }
}
/*********
* Geary *
*********/
// Geary is the most ugly app for theming.
.geary-titlebar-left {
// remove unexpected "hardcoded" vertical separator
.separator { opacity: 0; }
}
.geary-titlebar-right {
// stop double-shadows on right paned header-bar
box-shadow: none;
}
/************
* Epiphany *
************/
// reset inverted foreground colour
EphyWindow {
.floating-bar { color: $secondary_fg_color; }
.search-bar {
// sset same padding with GtkEntry
.linked > .button { padding: 0.7em 1em 0.8em; }
// force using circle-button
.button.flat.close.raised {
padding: 0.75em;
border-radius: 100px;
outline-radius: 100px;
}
}
}
/************
* Seahorse *
************/
// remove weird borders
SeahorseKeyManager {
.sidebar,
.pane-separator {
&, &:backdrop {
border-width: 0;
border-style: none;
border-color: transparent;
}
}
}
/**********
* Polari *
**********/
.polari-input-area {
border-top: 1px solid $borders_color;
box-shadow: if($variant == 'light', $inline-shadow-light,
$inline-shadow-dark);
}
.polari-room-list { // override labels
.list-row {
font-weight: 700;
&:not(:hover):not(:active):not(:selected) {
.label,
GtkImage { opacity: 1.0; }
}
&.inactive {
&:not(:hover):not(:active):not(:selected) {
.label,
GtkImage { opacity: 0.65; }
}
}
}
}
.polari-nick-entry {
border-image: none;
font-weight: 700;
}
// Why GtkLabel was needed, crazy...
GtkBox > .header-bar > .label.polari-titlebar-separator {
border: none;
opacity: 0;
}
/*************
* RhythmBox *
*************/
// add top-border to inline-toolbar
.inline-toolbar.toolbar.horizontal.sidebar-toolbar {
@if $variant == 'light' {
box-shadow: inset 0 1px $solid_light_borders_color,
inset 0 2px 2px rgba(0, 0, 0, 0.05),
inset -2px 0 2px -2px rgba(0, 0, 0, 0.03),
inset -3px 0 3px -2px rgba(0, 0, 0, 0.03);
}
@else {
box-shadow: inset 0 1px $solid_light_borders_color,
inset 0 2px 2px rgba(0, 0, 0, 0.05),
inset -2px 0 1px -2px rgba(0, 0, 0, 0.02),
inset -3px 0 3px -2px rgba(0, 0, 0, 0.04);
}
&:dir(rtl) {
@if $variant == 'light' {
box-shadow: inset 0 1px $solid_light_borders_color,
inset 0 2px 2px rgba(0, 0, 0, 0.05),
inset 2px 0 2px -2px rgba(0, 0, 0, 0.03),
inset 3px 0 3px -2px rgba(0, 0, 0, 0.03);
}
@else {
box-shadow: inset 0 1px $solid_light_borders_color,
inset 0 2px 2px rgba(0, 0, 0, 0.05),
inset 2px 0 1px -2px rgba(0, 0, 0, 0.02),
inset 3px 0 3px -2px rgba(0, 0, 0, 0.04);
}
}
}
// fix sidebar background colour
.sidebar-paned GtkStack RBDisplayPageTree {
.sidebar {
background-color: if($variant == 'light', rgba(12, 18, 0, 0.01),
rgba(18, 22, 0, 0.04));
}
}
// stop drawing fake-shadows when enabling header-bar extension
GtkBox.vertical > GtkBox.vertical > .toolbar {
box-shadow: none;
}
/**************
* Calculator *
**************/
MathWindow {
& :not(.titlebar),
& :not(.header-bar) {
.button:not(.flat):not(.titlebutton) {
@extend .button.flat;
padding: 0.75em 1em 0.75em; // FIXME: broken in 12pt fonts?
border: 0.75em solid transparent;
border-radius: 2px;
font-weight: 700;
&.suggested-action { // '=' button
color: transparent;
font-size: 0;
@each $s,$as in ('',''),
(':hover','-hover'),
(':active','-active'),
(':insensitive','-insensitive') {
&#{$s} {
$_url: 'assets/equal#{$as}#{$asset_suffix}';
@include button(normal#{$as});
border-style: none;
border-radius: 100px;
background-color: transparent;
background-image: -gtk-scaled(url('#{$_url}.png'),
url('#{$_url}@2.png'));
background-size: 32px;
background-repeat: no-repeat;
background-position: center;
box-shadow: none;
transition-duration: 0.2s;
animation: none; // FIXME: animation breaks padding.
}
}
}
}
}
}
/*********
* Gedit *
*********/
GeditViewFrame {
.gedit-search-slider {
@extend .osd.toolbar;
padding: 3px;
border-radius: 2px;
border-width: 9px;
border-image: -gtk-scaled(url("assets/osd-shadow#{$asset_suffix}.png"),
url("assets/osd-shadow#{$asset_suffix}@2.png"))
10 / 10px stretch;
color: $inverted_fg_color;
opacity: 0.9;
.entry,
.linked > .entry {
&,
&.error,
&.warning {
color: $inverted_fg_color;
&:focus { color: $selected_fg_color; }
&:insensitive { color: $insensitive_inverted_fg_color; }
}
}
}
}
.gedit-titlebar-left {
.button.flat { // left-pane header button
border-radius: 2px;
outline-radius: 2px;
}
}
GeditViewHolder GtkScrolledWindow {
.undershoot { // remove undershoot
&.top,
&.bottom,
&.left,
&.right { background-image: none; }
}
}
/***********
* Builder *
***********/
// pane header styling
GbViewStack GtkBox.header.notebook,
GbEditorWorkspace > GtkPaned > GtkBox > GtkBox.header.notebook,
GbWorkspacePane GtkBox.header.notebook {
border-bottom: 1px solid $borders_color;
background-color: transparent;
}
GbWorkspacePane {
GtkStackSwitcher .button { padding: 1em; }
.pane-separator { background-color: $solid_light_borders_color; }
}
// remove unwanted border
GtkScrolledWindow.gb-linked-scroller {
border-top: none;
}
// force using fixed-width font
GbSourceStyleSchemeWidget GtkSourceView,
GtkEntry.gb-command-bar-entry {
font-family: Monospace;
}
GbTerminalView > GtkPaned > GtkScrolledWindow {
&, & > VteTerminal {
font-family: Monospace;
font-weight: 500;
font-size: 1em;
}
}
GbTerminalView { // always use dark variant
background-color: $inverted_dark_color;
color: $inverted_fg_color;
}
// Disable various animations that are enabled by default and really annoying
// to the overall flow of Builder.
GbSearchDisplayGroup GtkListBox .list-row { transition: none; }
// remove undershoot from main editor pane
GbEditorFrame GtkScrolledWindow {
.undershoot {
&.top,
&.bottom,
&.left,
&.right { background-image: none; }
}
}
/***************
* Gnome-music *
***************/
// side-bar styling
// FIXME: it doesn't work properly
GdMainView,
.side-panel {
&:dir(ltr) { border-right: 1px solid $borders_color; }
&:dir(rtl) { border-left: 1px solid $borders_color; }
.view {
background-color: $secondary_dark_color;
box-shadow: none;
&, &.list-row.activatable {
padding: 0;
background-color: transparent;
color: $secondary_fg_color;
font-weight: 500;
box-shadow: none;
&:hover { color: $fg_color; }
&:hover:selected,
&:selected { @extend %selected_items; }
}
}
}
// player-bar
// FIXME: it doesn't work properly
.action-bar {
&, &.frame { background-color: $secondary_dark_color; }
box-shadow: if($variant == 'light', $inline-shadow-light,
$inline-shadow-dark);
padding: 0.4em;
.button,
.linked > .button.image-button {
@extend .button.flat;
border-radius: 100px;
outline-radius: 100px;
box-shadow: none;
border-image: -gtk-gradient(radial,
center bottom, 0,
center bottom, 0.001,
to($track_color),
to(transparent))
0 0 0 / 0 0 0px;
color: $secondary_fg_color;
&:hover {
box-shadow: none;
border-image: none;
color: $fg_color;
}
&:checked {
box-shadow: none;
border-image: -gtk-gradient(radial,
center bottom, 0,
center bottom, 0.5,
to($selected_bg_color),
to(transparent))
0 0 2 / 0 0 2px;
background-color: transparent;
color: $fg_color;
&:insensitive {
box-shadow: none;
background-color: transparent;
color: $insensitive_fg_color;
border-image: none;
> .label { color: inherit; }
}
}
&:insensitive {
box-shadow: none;
background-color: transparent;
color: $insensitive_secondary_fg_color;
border-image: none;
}
}
}
/******************
* Gnome-contacts *
******************/
ContactsWindow {
// side-bar styling
ContactsListPane ContactsView { // = '.list'
&:dir(ltr) { box-shadow: if($variant == 'light', $sidebar-light-ltr,
$sidebar-dark-ltr);
}
&:dir(rtl) { box-shadow: if($variant == 'light', $sidebar-light-rtl,
$sidebar-dark-rtl);
}
.list-row.activatable {
color: $secondary_fg_color;
background-color: if($variant == 'light', rgba(12, 18, 0, 0.01),
rgba(18, 22, 0, 0.04));
&:hover { color: $fg_color; }
&:selected {
color: $selected_bg_color;
background-color: if($variant == 'light', rgba(12, 18, 0, 0.01),
rgba(18, 22, 0, 0.04));
}
&:backdrop { opacity: 1.0; }
}
// hide horizontal separator
.separator { -GtkWidget-wide-separators: true; }
}
ContactsListPane GtkScrolledWindow {
.undershoot {
&.top { @include undershoot(top, $secondary_dark_color); }
&.bottom { @include undershoot(bottom, $secondary_dark_color); }
&.left { @include undershoot(left, $secondary_dark_color); }
&.right { @include undershoot(right, $secondary_dark_color); }
}
}
}
/******************
* Gnome-Terminal *
******************/
TerminalScreen,
TerminalWindow.background { // dark variant as default
background-color: $inverted_dark_color;
color: $selected_fg_color;
}
TerminalWindow {
.scrollbar {
.slider { // always use dark variant
background-color: gtkopacity($inverted_tertiary_fg_color, 0.55);
&:hover { background-color: gtkopacity($inverted_secondary_fg_color, 0.55); }
&:active { background-color: $inverted_fg_color; }
&:insensitive { opacity: 0.4; }
}
.trough { // hide trough
background-color: transparent;
border: 1px none transparent;
}
}
}
/**********
* Evince *
**********/
EvAnnotationWindow {
padding: 0.4em;
GtkBox {
> GtkLabel {
color: $fixed_fg_color;
font-weight: 700;
}
> GtkBox > .button.flat {
padding: 1em;
border: none;
border-radius: 100px;
outline-radius: 100px;
color: $fixed_fg_color;
}
}
}