// Form validation states
//
// Used in forms.less to generate the form validation CSS for warnings, errors,
// and successes.

@mixin form-control-validation($color: #555, $background-color: #F5F5F5) {
  // Color the label and help text
  .help-block,
  .control-label,
  .radio,
  .checkbox,
  .radio-inline,
  .checkbox-inline,
  .icon {
    color: $color;
  }
  // Set the border and box shadow on specific inputs to match
  .form-control {
    border-color: $color;

    &:focus {
      border-color: darken($color, 10%);
    }
  }
  // Set validation states also for addons
  .input-group-addon {
    color: $color;
    border-color: currentColor;
    background-color: $background-color;
  }
}


// Form control focus state
//
// Generate a customized focus state and for any input with the specified color,
// which defaults to the `$input-focus-border` variable.
//
// We highly encourage you to not customize the default value, but instead use
// this to tweak colors on an as-needed basis. This aesthetic change is based on
// WebKit's default styles, but applicable to a wider range of browsers. Its
// usability and accessibility should be taken into account with any change.
//
// Example usage: change the default blue border and shadow to white for better
// contrast against a dark gray background.
@mixin form-control-focus($color: $input-focus-border) {
  &:focus {
    border-color: $color;
    outline: 0;
  }
}

// Form control sizing
//
// Relative text size, padding, and border-radii changes for form controls. For
// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
// element gets special love because it's special, and that's a fact!
@mixin input-size($selector, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height) {
  #{$selector} {
    height: $input-height;
    padding: $padding-vertical $padding-horizontal;
    font-size: $font-size;
    line-height: $line-height;
  }

  select#{$selector} {
    height: $input-height;
    line-height: $line-height;
  }

  textarea#{$selector},
  select[multiple]#{$selector} {
    height: auto;
  }
}
