SeriouslyAwesome/democratictravelers

View on GitHub
app/assets/stylesheets/bitters/_forms.scss

Summary

Maintainability
Test Coverage
$form-border-color: $base-border-color;
$form-border-color-hover: darken($base-border-color, 10);
$form-border-color-focus: $base-accent-color;
$form-border-radius: $base-border-radius;
$form-box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.06);
$form-box-shadow-focus: $form-box-shadow, 0 0 5px rgba(darken($form-border-color-focus, 5), 0.7);
$form-font-size: $base-font-size;
$form-font-family: $base-font-family;

fieldset {
  background: lighten($base-border-color, 10);
  border: 1px solid $base-border-color;
  margin: 0 0 ($baseline / 2) 0;
  padding: $baseline;
}

input,
label,
select {
  display: block;
  font-family: $form-font-family;
  font-size: $form-font-size;
  margin: 0;
}

input, select {
  height: $baseline * 1.5;
}

label {
  font-weight: bold;
  margin-bottom: 0;

  &.required:after {
    content: "*";
  }

  abbr {
    display: none;
  }

  small {
    color: $medium-gray;
    font-weight: normal;

    a { 
      color: $medium-gray;
      &:hover {
        color: $red;
      }
    }
  }
}

span.checkbox {
  font-weight: normal;
  input[type="checkbox"], label { display: inline-block; vertical-align: middle; }
}

textarea,
#{$all-text-inputs},
select[multiple=multiple] {
  @include box-sizing(border-box);
  @include transition(border-color);
  background-color: white;
  border-radius: $form-border-radius;
  border: 1px solid $form-border-color;
  box-shadow: $form-box-shadow;
  font-family: $form-font-family;
  font-size: $form-font-size;
  margin-bottom: $baseline / 2;
  padding: ($baseline / 3) ($baseline / 3);
  width: 100%;

  &:hover {
    border-color: $form-border-color-hover;
  }

  &:focus {
    border-color: $form-border-color-focus;
    box-shadow: $form-box-shadow-focus;
    outline: none;
  }
}

textarea {
  resize: vertical;
}

input[type="search"] {
  @include appearance(none);
}

input[type="checkbox"], input[type="radio"] {
  display: inline;
  margin-right: $baseline / 4;
  vertical-align: middle;
}

input[type="file"] {
  width: 100%;
}

select {
  width: auto;
  max-width: 100%;
  margin-bottom: $baseline;
  display: block;
  height: $baseline;
  -webkit-appearance: menulist-button;
  border-color: $light-gray;
}

button,
input[type="submit"] {
  @include appearance(none);
  @include btn($yellow);
  cursor: pointer;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap;
}

input.honeypot {
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0;
}