@mixin select-hero {
  el-select.appearance-hero .select-button {
    background-color: el-theme(select-hero-background-color);
    border-color: el-theme(select-hero-border-color);
    border-style: el-theme(select-hero-border-style);
    border-width: el-theme(select-hero-border-width);
    color: el-theme(select-hero-text-color);

    &.placeholder {
      color: el-theme(select-hero-placeholder-text-color);
    }

    &:focus {
      border-color: el-theme(select-hero-focus-border-color);
    }
    &:hover {
      border-color: el-theme(select-hero-hover-border-color);
    }
    &[disabled] {
      color: el-theme(select-hero-disabled-text-color);
      background-color: el-theme(select-hero-disabled-background-color);
      background-image: none;

      el-icon {
        color: el-theme(select-hero-disabled-icon-color);
      }
    }

    el-icon {
      color: el-theme(select-hero-icon-color);
    }
  }

  .options-list-container.appearance-hero {
    border-color: el-theme(select-options-list-hero-border-color);
  }

  @each $size in el-get-sizes() {
    el-select.appearance-hero.size-#{$size} .select-button {
      padding: el-theme(select-hero-#{$size}-padding);
    }
    .appearance-hero.size-#{$size} {
      el-option-group .option-group-title,
      el-option {
        padding: el-theme(select-option-hero-#{$size}-padding);
      }
      el-option-group el-option {
        padding-left: el-theme(select-group-option-outline-#{$size}-start-padding);
      }
    }
  }

  @each $status in el-get-statuses() {
    el-select.appearance-hero.status-#{$status} .select-button {
      $left-color: el-theme(select-hero-#{$status}-left-background-color);
      $right-color: el-theme(select-hero-#{$status}-right-background-color);
      background-image: linear-gradient(to right, $left-color, $right-color);
      color: el-theme(select-hero-#{$status}-text-color);

      &.placeholder {
        color: el-theme(select-hero-#{$status}-placeholder-text-color);
      }

      &:focus {
        $left-color: el-theme(select-hero-#{$status}-focus-left-background-color);
        $right-color: el-theme(select-hero-#{$status}-focus-right-background-color);
        background-image: linear-gradient(to right, $left-color, $right-color);
      }
      &:hover {
        $left-color: el-theme(select-hero-#{$status}-hover-left-background-color);
        $right-color: el-theme(select-hero-#{$status}-hover-right-background-color);
        background-image: linear-gradient(to right, $left-color, $right-color);
      }
      &[disabled] {
        color: el-theme(select-hero-#{$status}-disabled-text-color);
        background-color: el-theme(select-hero-#{$status}-disabled-background-color);
        background-image: none;

        el-icon {
          color: el-theme(select-hero-#{$status}-disabled-icon-color);
        }
      }

      el-icon {
        color: el-theme(select-hero-#{$status}-icon-color);
      }
    }

    .options-list-container.appearance-hero.status-#{$status} {
      border-color: el-theme(select-options-list-hero-#{$status}-border-color);
    }
  }
}
