@import "entry"; @mixin menu_calendar($bg, $fg) { color: $fg; &.header { border-bottom: 1px solid shade($bg, ($contrast + .1)); border-radius: 0; &:backdrop { border-color: shade($bg, ($contrast + .1)); } } &.button { @extend %undecorated_button; color: alpha($fg, .55); &:hover { @extend %undecorated_button; color: $fg; } } &:indeterminate, &:indeterminate:backdrop { color: mix($fg, $bg, .5); } } /********* ! Menubar **********/ @include exports("menubar") { menubar, .menubar { -GtkWidget-window-dragging: true; padding: 0; border: 0; background-color: $menubar_bg_color; background-image: none; //box-shadow: inset 0 -1px shade($menubar_bg_color, .9); color: $menubar_fg_color; > menuitem { min-height: 16px; padding: $spacing*1.5 $spacing * 2.5; border: 1px solid transparent; background-color: transparent; background-image: none; color: $menubar_fg_color; &:hover { border-color: mix($menubar_bg_color, $menubar_fg_color, .21); background-color: mix($menubar_bg_color, $menubar_fg_color, .21); background-image: none; color: shade($menubar_fg_color, 1.08); } *:hover { color: shade($menubar_fg_color, 1.08); } } } } /****** ! Menu *******/ @include exports("menu") { menu, .menu, .context-menu { border: 0; border-radius: 0; padding: $spacing; background-color: $menu_bg_color; color: $menu_fg_color; .csd & { border: 0; } // axes borders in a composited env &:selected { background-color: $selected_bg_color; } // A little hack to get some extra space above/below menuitem separators separator, .csd & separator { background-color: shade($menu_bg_color, ($contrast + .1)); margin: ($spacing - 2px) 0; } // Firefox workaround .separator, .csd & .separator { color: shade($menu_bg_color, ($contrast + .1)); } menuitem { min-height: 16px; min-width: 40px; padding: $spacing; border-radius: 0; &:active, &:hover { border: 0; background-color: $selected_bg_color; background-image: none; color: $selected_fg_color; } *:active, *:hover { color: $selected_fg_color; } &:disabled, *:disabled { color: mix($menu_fg_color, $menu_bg_color, .5); } // submenu indicators arrow { min-height: 16px; min-width: 16px; &:dir(ltr) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); margin-left: 10px; } &:dir(rtl) { -gtk-icon-source:-gtk-icontheme('pan-end-symbolic-rtl'); margin-right: 10px; } } &.button, &.button.flat { &, &:focus, &:active, &:disabled, &:active:disabled { background-color: transparent; background-image: none; border: 0; box-shadow: none; color: currentColor; } &:hover, &:focus:hover, &:active:hover, &:selected { background-image: none; background-color: $selected_bg_color; color: $selected_fg_color; } } calendar { @include menu_calendar($menu_bg_color, $menu_fg_color); } // avoids labels color being overridden, see // https://bugzilla.gnome.org/show_bug.cgi?id=767058 label { &:dir(rtl), &:dir(ltr) { color: inherit; } } } // overflow arrows > arrow { //@include button(undecorated); min-height: 16px; min-width: 16px; padding: $spacing; background-color: $menu_bg_color; border-radius: 0; &.top { margin-top: -6px; border-bottom: 1px solid mix($fg_color, $base_color, .1); -gtk-icon-source: -gtk-icontheme('pan-up-symbolic'); } &.bottom { margin-bottom: -6px; border-top: 1px solid mix($fg_color, $base_color, .1); -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); } &:hover { background-color: mix($fg_color, $base_color, .1); } &:backdrop { background-color: $backdrop_menu_color; } &:disabled { color: transparent; background-color: transparent; border-color: transparent; } } } .context-menu { font: initial; } // Decouple the font of context menus from their entry/textview .monospace { font-family: monospace; } menuitem { accelerator { color: alpha($menu_fg_color, .6); &:hover { color: alpha($selected_fg_color, .8); } &:disabled { color: alpha(mix($menu_fg_color, $menu_bg_color, .5), .4); } } check, radio { min-height: 16px; min-width: 16px; &:dir(ltr) { margin-right: 7px; } &:dir(rtl) { margin-left: 7px; } } window decoration { box-shadow: 0 2px 3px alpha($black, .2); } entry { @include entry($menu_bg_color, $menu_fg_color); } } } /********* ! Popover **********/ @include exports("popover") { popover.background { padding: $spacing - 3px; border-radius: $roundness; background-clip: border-box; background-color: $menu_bg_color; background-image: none; color: $menu_fg_color; box-shadow: 0 3px 6px alpha($black, .16); .csd &, & { /*@include border($menu_bg_color);*/ @include border(alpha($menu_fg_color, .5)); border-width: 1px; border-style: solid; } &:backdrop { box-shadow: none; } treeview.view { &:hover, &:selected, &:selected:focus, &:backdrop:selected, &:backdrop:selected:focus { border-top-color: $selected_bg_color; } &, &:backdrop { border-top-color: shade($menu_bg_color, ($contrast + .4)); } } view, .view, list { &:hover { background-image: none; background-color: $selected_bg_color; color: $selected_fg_color; } &, &:backdrop { background-color: shade($menu_bg_color, ($contrast + .5)); background-image: none; color: $menu_fg_color; border-color: border_normal($menu_bg_color); } } list row { &, & .button { background-color: transparent; background-image: none; color: $menu_fg_color; &:focus, &:hover, &:active { background-image: none; background-color: $selected_bg_color; color: $selected_fg_color; } } } .frame { border-color: border_normal($menu_bg_color); border-radius: $roundness; } entry { @include entry($base_color, $text_color); } button { @include button($header_button_bg_color, $header_button_fg_color); } .linked > button { @include linked_button($header_button_bg_color); } > list, > .view, > toolbar { border-style: none; background-color: transparent; } } modelbutton.flat, menuitem.button.flat { padding: $spacing ($spacing + 2px); outline-color: transparent; transition: none; @extend %undecorated_button; &:hover { background-color: $selected_bg_color; color: $selected_fg_color; } &:active, &:selected { &, arrow { @extend %selected_items; } } &:checked { color: $fg_color; } arrow { &.left { -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } &.right { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } } // FIXME: temporary workaround check:last-child, radio:last-child { margin-left: 8px; } check:first-child, radio:first-child { margin-right: 8px; } } }