Attribute changed material-kit
[bootswatch] / material-kit / sass / material-kit / _inputs.scss
diff --git a/material-kit/sass/material-kit/_inputs.scss b/material-kit/sass/material-kit/_inputs.scss
new file mode 100755 (executable)
index 0000000..d5b3769
--- /dev/null
@@ -0,0 +1,369 @@
+// This file has been autogenerated by grunt task lessToSass. Any changes will be overwritten.
+
+@import '_inputs-size';
+
+// label variations
+.label {
+  border-radius: $border-radius-small;
+  @include variations(unquote(".label"), unquote(""), background-color, $grey);
+}
+
+// must be broken out for reuse - webkit selector breaks firefox
+@mixin label-static($label-top, $static-font-size, $static-line-height){
+  label.control-label {
+    top: $label-top;
+    left: 0;
+    // must repeat because the selector above is more specific than the general label sizing
+    font-size: $static-font-size;
+    line-height: $static-line-height;
+  }
+}
+
+@mixin label-size-variant($placeholder-font-size, $vertical-padding, $line-height, $static-font-size, $static-line-height, $help-block-font-size){
+  .form-control {
+    @include material-placeholder {
+      font-size: $placeholder-font-size;
+      line-height: $line-height;
+      color: $mdb-input-placeholder-color;
+      font-weight: 400;
+
+}
+    // margin-bottom must be specified to give help-block vertical space.
+    //    $see also form-group padding-bottom (and size variants) re: collapsible margins.  These work together.
+    margin-bottom: $vertical-padding;
+  }
+
+  // generic labels used anywhere in the form (not control-label)
+  .checkbox label,
+  .radio label,
+  label {
+    font-size: $placeholder-font-size;
+    line-height: $line-height;
+    color: $mdb-input-placeholder-color;
+    font-weight: 400;
+  }
+
+  // smaller focused or static size
+  label.control-label {
+    font-size: $static-font-size;
+    line-height: $static-line-height;
+    color: $mdb-input-placeholder-color;
+    font-weight: 400;
+    margin: 16px 0 0 0; // std and lg
+  }
+
+  .help-block {
+    margin-top: 0; // allow the input margin to set-off the top of the help-block
+    font-size: $help-block-font-size;
+  }
+}
+
+@mixin form-group-validation-state($name, $color){
+
+  &.#{$name} { // e.g. has-error
+    .form-control {
+      box-shadow: none;
+    }
+    &.is-focused .form-control {
+      background-image: linear-gradient($color, $color), linear-gradient($mdb-input-underline-color, $mdb-input-underline-color);
+    }
+    label.control-label,
+    .help-block {
+      color: $color;
+    }
+  }
+}
+
+@mixin form-group-size-variant($parent, $placeholder-font-size, $label-top-margin, $vertical-padding, $line-height, $label-as-placeholder-shim){
+  $static-font-size: ceil(($mdb-label-static-size-ratio * $placeholder-font-size)) !default;
+  $static-line-height: ($mdb-label-static-size-ratio * $line-height) !default;
+
+  $label-as-placeholder-top: -1 * ($vertical-padding + $label-as-placeholder-shim) !default;
+  $label-top: $label-as-placeholder-top - ($placeholder-font-size + $vertical-padding) !default;
+
+  $help-block-font-size: ceil(($mdb-help-block-size-ratio * $placeholder-font-size)) !default;
+  $help-block-line-height: ($mdb-help-block-size-ratio * $line-height) !default;
+
+  // this is outside a form-group
+  @if not $parent {
+    @include label-size-variant($placeholder-font-size, $vertical-padding, $line-height, $static-font-size, $static-line-height, $help-block-font-size);
+  }
+
+  // this is inside a form-group, may be .form-group.form-group-sm or .form-group.form-group-lg
+  @else {
+    #{$parent} {
+      @include label-size-variant($placeholder-font-size, $vertical-padding, $line-height, $static-font-size, $static-line-height, $help-block-font-size);
+
+      // form-group padding-bottom
+      //  upon collapsing margins, the largest margin is honored which collapses the form-control margin-bottom,
+      //  so the form-control margin-bottom must also be expressed as form-group padding
+      padding-bottom: $vertical-padding;
+
+      // form-group margin-top must be large enough for the label and the label's top padding since label is absolutely positioned
+      margin: ($label-top-margin + $static-font-size) 0 0 0;
+
+      // larger labels as placeholders
+      &.label-floating,
+      &.label-placeholder {
+        label.control-label {
+          top: $label-as-placeholder-top; // place the floating label to look like a placeholder with input padding
+          font-size: $placeholder-font-size;
+          line-height: $line-height;
+        }
+      }
+
+      // static, focused, or autofill floating labels
+      &.label-static,
+      &.label-floating.is-focused,
+      &.label-floating:not(.is-empty) {
+        @include label-static($label-top, $static-font-size, $static-line-height);
+      }
+      // #559 Fix for webkit/chrome autofill - rule must be separate because it breaks firefox otherwise #731
+      &.label-floating input.form-control:-webkit-autofill ~ label.control-label {
+        @include label-static($label-top, $static-font-size, $static-line-height);
+      }
+    }
+  }
+}
+
+// -----
+// Inputs
+
+.form-control,
+.form-group .form-control {
+  border: 0;
+  background-image: linear-gradient($brand-primary, $brand-primary), linear-gradient($mdb-input-underline-color, $mdb-input-underline-color);
+  background-size: 0 2px, 100% 1px;
+  background-repeat: no-repeat;
+  background-position: center bottom, center calc(100% - 1px);
+  background-color: rgba(0, 0, 0, 0);
+  transition: background 0s ease-out;
+  float: none;
+  box-shadow: none;
+  border-radius: 0;
+
+  font-weight: 400;
+
+  // Placeholders and and labels-as-placeholders should look the same
+  @include material-placeholder {
+    color: $mdb-input-placeholder-color;
+    font-weight: 400;
+}
+
+
+  //&:textarea {    // appears to be an invalid selector
+  //  height: 40px;
+  //}
+
+  &[readonly],
+  &[disabled],
+  fieldset[disabled] & {
+    background-color: rgba(0, 0, 0, 0);
+  }
+
+  &[disabled],
+  fieldset[disabled] & {
+    background-image: none;
+    border-bottom: 1px dotted $mdb-input-underline-color;
+  }
+}
+
+// -----
+// Labels with form-group signalled state
+//
+// Reference http://www.google.com/design/spec/components/text-fields.html
+// MDL implementation: http://www.getmdl.io/components/index.html#textfields-section
+//.variations(unquote(" label.control-label"), color, $mdb-input-placeholder-color);  // default label color variations
+
+.form-group {
+  position: relative;
+
+  // -----
+  // Labels with form-group signalled state
+  //
+  // Reference http://www.google.com/design/spec/components/text-fields.html
+  // MDL implementation: http://www.getmdl.io/components/index.html#textfields-section
+  &.label-static,
+  &.label-placeholder,
+  &.label-floating {
+    label.control-label {
+      position: absolute;
+      pointer-events: none;
+      transition: 0.3s ease all;
+    }
+  }
+
+  // hint to browser for optimization
+  //    TODO: evaluate effectiveness - looking for community feedback
+  &.label-floating label.control-label {
+    will-change: left, top, contents;
+  }
+
+  // hide label-placeholders when the field is not empty
+  &.label-placeholder:not(.is-empty){
+    label.control-label{
+      display: none;
+    }
+  }
+
+  // Help blocks - position: absolute approach - uses no vertical space, text wrapping - not so good.
+  .help-block {
+    position: absolute; // do not use position: absolute because width/wrapping isn't automatic and overflows occur
+    display: none;
+  }
+
+  // form-group is-focused display
+  &.is-focused {
+    .form-control {
+      outline: none;
+      background-image: linear-gradient($brand-primary, $brand-primary), linear-gradient($mdb-input-underline-color, $mdb-input-underline-color);
+      background-size: 100% 2px, 100% 1px;
+      box-shadow: none;
+      transition-duration: 0.3s;
+
+      .material-input:after {
+        background-color: $brand-primary;
+      }
+    }
+
+    //.variations(unquote(".is-focused label.control-label"), color, $brand-primary); // focused label color variations
+    label,
+    label.control-label {
+      color: $brand-primary;
+    }
+
+    //.variations(unquote(".is-focused.label-placeholder label.control-label"), color, $mdb-input-placeholder-color);  // default label color variations
+    &.label-placeholder {
+      label,
+      label.control-label {
+        color: $mdb-input-placeholder-color;
+      }
+    }
+
+    .help-block {
+      display: block;
+    }
+  }
+
+  @include form-group-validation-state(has-warning, $brand-warning);
+  @include form-group-validation-state(has-error, $brand-danger);
+  @include form-group-validation-state(has-success, $brand-success);
+  @include form-group-validation-state(has-info, $brand-info);
+
+  textarea {
+    resize: none;
+    & ~ .form-control-highlight {
+      margin-top: -11px;
+    }
+  }
+
+  select {
+    appearance: none; // Fix for OS X
+
+    & ~ .material-input:after {
+      display: none;
+    }
+  }
+}
+
+// default floating size/location without a form-group (will skip form-group styles, and just render default sizing variation)
+@include form-group-size-variant(null, $mdb-input-font-size-base, $mdb-label-top-margin-base, $mdb-input-padding-base-vertical, $mdb-input-line-height-base, $mdb-label-as-placeholder-shim-base);
+
+// default floating size/location with a form-group (need margin etc from a default form-group)
+@include form-group-size-variant(unquote(".form-group"), $mdb-input-font-size-base, $mdb-label-top-margin-base, $mdb-input-padding-base-vertical, $mdb-input-line-height-base, $mdb-label-as-placeholder-shim-base);
+
+// sm floating size/location
+@include form-group-size-variant(unquote(".form-group.form-group-sm"), $mdb-input-font-size-small, $mdb-label-top-margin-small, $mdb-input-padding-small-vertical, $mdb-input-line-height-small, $mdb-label-as-placeholder-shim-small);
+
+// lg floating size/location
+@include form-group-size-variant(unquote(".form-group.form-group-lg"), $mdb-input-font-size-large, $mdb-label-top-margin-large, $mdb-input-padding-large-vertical, $mdb-input-line-height-large, $mdb-label-as-placeholder-shim-large);
+
+
+select.form-control {
+
+  border: 0;
+  box-shadow: none;
+  border-radius: 0;
+
+  .form-group.is-focused & {
+    box-shadow: none;
+    border-color: $mdb-input-underline-color;
+  }
+
+  &[multiple] {
+    &,
+    .form-group.is-focused & {
+      height: 85px;
+    }
+  }
+}
+
+@mixin input-group-button-variation($vertical-padding){
+  .input-group-btn {
+    .btn {
+      margin: 0 0 $vertical-padding 0;
+    }
+  }
+}
+
+// ----------------
+// input group/addon related styles
+
+// default margin - no form-group required
+@include input-group-button-variation($mdb-input-padding-base-vertical);
+
+.form-group {
+  //.form-control {
+  //  float: none;
+  //}
+
+  // sm margin
+  &.form-group-sm {
+    @include input-group-button-variation($mdb-input-padding-small-vertical);
+  }
+
+  // lg margin
+  &.form-group-lg {
+    @include input-group-button-variation($mdb-input-padding-large-vertical);
+  }
+}
+
+.input-group {  // may be in or outside of form-group
+  .input-group-btn {
+    padding: 0 12px; // match addon spacing
+  }
+
+  .input-group-addon {
+    border: 0;
+    background: transparent;
+    padding: 12px 15px 0px;
+  }
+}
+
+// Input files - hide actual input - requires specific markup in the sample.
+.form-group input[type=file] {
+  opacity: 0;
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 100;
+}
+
+
+.form-control-feedback{
+    opacity: 0;
+
+    .has-success &{
+        color: $green;
+        opacity: 1;
+    }
+
+    .has-error &{
+        color: $red;
+        opacity: 1;
+    }
+}