@mixin separator() {
  separator {
    -gtk-icon-source: none;
    min-width: 1px;
    min-height: 1px;
    background-color: gtkshade($bg_color, 0.7);
    box-shadow: -1px -1px gtkmix($bg_color, $light_shadow, 0.7);

    &:backdrop {
      background-color: gtkshade($bg_color, 0.7);
    }

    button & {
      margin: 4px 1px;
    }

    .sidebar view &, view &, .separator, & {
      border: none;
      background-color: gtkshade($bg_color, 0.7);

      &:backdrop {
        border: none;
        background-color: gtkshade($bg_color, 0.7);
      }
    }

    .primary-toolbar &, toolbar & {
      background-color: gtkmix(gtkshade($bg_color, 0.7), $toolbar_bg_color, 0.5);

      &:backdrop {
        background-color: gtkshade($bg_color, 0.7);
      }
    }

    headerbar & {
      -GtkWidget-window-dragging: true;
      margin-top: 4px;
      margin-bottom: 4px;
      background-color: gtkmix(gtkshade($bg_color, 0.7), $headerbar_bg_color, 0.5);
      box-shadow: none;

      &:backdrop {
        background-color: gtkshade($bg_color, 0.7);
      }
    }

    .titlebar &, .titlebar:not(headerbar) > &, .titlebar &.titlebutton, .titlebar:not(headerbar) > &.titlebutton {
      -GtkWidget-window-dragging: true;
      background-color: gtkshade($titlebar_bg_color, 0.7);
      box-shadow: -1px -1px gtkalpha($light_shadow, 0.4);

      &:backdrop {
        background-color: gtkshade($bg_color, 0.7);
      }
    }

    headerbar &.titlebutton, .titlebar:not(headerbar) &.titlebutton {
      min-width: 1px;
      min-height: 1px;
      background-color: gtkshade($titlebar_bg_color, 0.7);
      box-shadow: -1px -1px gtkalpha($light_shadow, 0.4);

      &:backdrop {
        background-color: gtkshade($bg_color, 0.7);
      }
    }

    .primary-toolbar button &, toolbar button &, .primary-toolbar:not(.libreoffice-toolbar) & {
      border-color: gtkshade($bg_color, 0.7);

      &:backdrop {
        border-color: gtkshade($bg_color, 0.7);
      }
    }

    headerbar button & {
      border-color: gtkmix(gtkshade($bg_color, 0.7), $headerbar_bg_color, 0.5);
      box-shadow: none;

      &:backdrop {
        border-color: gtkshade($bg_color, 0.7);
      }
    }

    .titlebutton button &, .titlebutton &.titlebutton {
      border-color: gtkshade($titlebar_bg_color, 0.7);
      box-shadow: -1px -1px gtkalpha($light_shadow, 0.4);

      &:backdrop {
        border-color: gtkshade($bg_color, 0.7);
      }
    }

    menuitem & {
      border-width: 1px;
      border-style: none;
      color: gtkmix(gtkshade($bg_color, 0.7), $menu_bg_color, 0.5);
    }

    popover & {
      border: 0;
      color: gtkalpha(currentColor, 0.5);
      background-color: transparent;
    }

    combobox & {
      border: none;
    }
  }
}
