aboutsummaryrefslogtreecommitdiff
path: root/scss
diff options
context:
space:
mode:
authorMark Otto <[email protected]>2015-08-08 14:15:09 -0700
committerMark Otto <[email protected]>2015-08-08 14:15:09 -0700
commit7c3f5b6d59a3479c92cd85b2a1f72a3c6a346743 (patch)
tree10731da83d2407efc7131c1e41bc19ddcd5e1ee4 /scss
parent14d8c295964857f14ad3d5bb98f24f8274296a05 (diff)
downloadbootstrap-7c3f5b6d59a3479c92cd85b2a1f72a3c6a346743.tar.xz
bootstrap-7c3f5b6d59a3479c92cd85b2a1f72a3c6a346743.zip
rewrite some forms docs, use new validation styles and icons
Diffstat (limited to 'scss')
-rw-r--r--scss/_forms.scss150
-rw-r--r--scss/_variables.scss2
-rw-r--r--scss/mixins/_forms.scss23
3 files changed, 117 insertions, 58 deletions
diff --git a/scss/_forms.scss b/scss/_forms.scss
index c2cd7733a..79ca97c3f 100644
--- a/scss/_forms.scss
+++ b/scss/_forms.scss
@@ -267,64 +267,122 @@ input[type="checkbox"] {
//
// Apply contextual and semantic states to individual form controls.
-.has-feedback {
- // Enable absolute positioning
- position: relative;
-
- // Ensure icons don't overlap text
- .form-control {
- padding-right: ($input-height * 1.25);
- }
-}
-// Feedback icon
-.form-control-feedback {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2; // Ensure icon is above input groups
- display: block;
- width: $input-height;
- height: $input-height;
- line-height: $input-height;
- text-align: center;
- pointer-events: none;
-}
-.input-lg + .form-control-feedback,
-.input-group-lg + .form-control-feedback {
- width: $input-height-lg;
- height: $input-height-lg;
- line-height: $input-height-lg;
-}
-.input-sm + .form-control-feedback,
-.input-group-sm + .form-control-feedback {
- width: $input-height-sm;
- height: $input-height-sm;
- line-height: $input-height-sm;
+$form-icon-success: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNoZWNrIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYxMiA3OTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYxMiA3OTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiM1Q0I4NUMiIGQ9Ik0yMzMuOCw2MTAuMWMtMTMuMywwLTI1LjktNi4yLTM0LTE2LjlMOTAuNSw0NDguOEM3Ni4zLDQzMCw4MCw0MDMuMyw5OC44LDM4OS4xYzE4LjgtMTQuMyw0NS41LTEwLjUsNTkuOCw4LjNsNzEuOSw5NWwyMjAuOS0yNTAuNWMxMi41LTIwLDM4LjgtMjYuMSw1OC44LTEzLjZjMjAsMTIuNCwyNi4xLDM4LjcsMTMuNiw1OC44TDI3MCw1OTBjLTcuNCwxMi0yMC4yLDE5LjQtMzQuMywyMC4xQzIzNS4xLDYxMC4xLDIzNC41LDYxMC4xLDIzMy44LDYxMC4xeiIvPjwvc3ZnPg==";
+$form-icon-warning: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9Ildhcm5pbmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNjEyIDc5MiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjEyIDc5MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZmlsbD0iI0YwQUQ0RSIgZD0iTTYwMyw2NDAuMmwtMjc4LjUtNTA5Yy0zLjgtNi42LTEwLjgtMTAuNi0xOC41LTEwLjZzLTE0LjcsNC4xLTE4LjUsMTAuNkw5LDY0MC4yYy0zLjcsNi41LTMuNiwxNC40LDAuMiwyMC44YzMuOCw2LjUsMTAuOCwxMC40LDE4LjMsMTAuNGg1NTcuMWM3LjUsMCwxNC41LTMuOSwxOC4zLTEwLjRDNjA2LjYsNjU0LjYsNjA2LjcsNjQ2LjYsNjAzLDY0MC4yeiBNMzM2LjYsNjEwLjJoLTYxLjJWNTQ5aDYxLjJWNjEwLjJ6IE0zMzYuNiw1MDMuMWgtNjEuMlYzMDQuMmg2MS4yVjUwMy4xeiIvPjwvc3ZnPg==";
+$form-icon-error: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNyb3NzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYxMiA3OTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYxMiA3OTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNEOTUzNEYiIGQ9Ik00NDcsNTQ0LjRjLTE0LjQsMTQuNC0zNy42LDE0LjQtNTEuOSwwTDMwNiw0NTEuN2wtODkuMSw5Mi43Yy0xNC40LDE0LjQtMzcuNiwxNC40LTUxLjksMGMtMTQuNC0xNC40LTE0LjQtMzcuNiwwLTUxLjlsOTIuNC05Ni40TDE2NSwyOTkuNmMtMTQuNC0xNC40LTE0LjQtMzcuNiwwLTUxLjlzMzcuNi0xNC40LDUxLjksMGw4OS4yLDkyLjdsODkuMS05Mi43YzE0LjQtMTQuNCwzNy42LTE0LjQsNTEuOSwwYzE0LjQsMTQuNCwxNC40LDM3LjYsMCw1MS45TDM1NC43LDM5Nmw5Mi40LDk2LjRDNDYxLjQsNTA2LjgsNDYxLjQsNTMwLDQ0Nyw1NDQuNHoiLz48L3N2Zz4=";
+
+
+.form-control-success,
+.form-control-warning,
+.form-control-error {
+ padding-right: ($padding-x * 3);
+ background-position: center right ($input-height * .25);
+ background-size: ($input-height * .65) ($input-height * .65);
+ background-repeat: no-repeat;
}
// Form validation states
.has-success {
- @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
+ @include form-control-validation(success, $brand-success);
+
+ .form-control-success {
+ background-image: url($form-icon-success);
+ }
}
+
.has-warning {
- @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
+ @include form-control-validation(warning, $brand-warning);
+
+ .form-control-warning {
+ background-image: url($form-icon-warning);
+ }
}
+
.has-error {
- @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
+ @include form-control-validation(error, $brand-danger);
+
+ .form-control-error {
+ background-image: url($form-icon-error);
+ }
}
-// Reposition feedback icon if input has visible label above
-.has-feedback label {
- ~ .form-control-feedback {
- // TODO: redo this since we nuked the `$line-height-computed`
- top: 0; // Height of the `label` and its margin
- }
- &.sr-only ~ .form-control-feedback {
- top: 0;
- }
-}
+
+// .form-control-success {
+// background-image: url("#{$form-icon-success}");
+// border-color: $brand-success;
+// }
+//
+// .form-control-warning {
+// background-image: url("#{$form-icon-warning}");
+// border-color: $brand-warning;
+// }
+//
+// .form-control-error {
+// background-image: url("#{$form-icon-danger}");
+// border-color: $brand-danger;
+// }
+
+
+// .has-feedback {
+// // Enable absolute positioning
+// position: relative;
+//
+// // Ensure icons don't overlap text
+// .form-control {
+// padding-right: ($input-height * 1.25);
+// }
+// }
+// // Feedback icon
+// .form-control-feedback {
+// position: absolute;
+// top: 0;
+// right: 0;
+// z-index: 2; // Ensure icon is above input groups
+// display: block;
+// width: $input-height;
+// height: $input-height;
+// line-height: $input-height;
+// text-align: center;
+// pointer-events: none;
+// }
+// .input-lg + .form-control-feedback,
+// .input-group-lg + .form-control-feedback {
+// width: $input-height-lg;
+// height: $input-height-lg;
+// line-height: $input-height-lg;
+// }
+// .input-sm + .form-control-feedback,
+// .input-group-sm + .form-control-feedback {
+// width: $input-height-sm;
+// height: $input-height-sm;
+// line-height: $input-height-sm;
+// }
+//
+// // Form validation states
+// .has-success {
+// @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
+// }
+// .has-warning {
+// @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
+// }
+// .has-error {
+// @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
+// }
+//
+// // Reposition feedback icon if input has visible label above
+// .has-feedback label {
+//
+// ~ .form-control-feedback {
+// // TODO: redo this since we nuked the `$line-height-computed`
+// top: 0; // Height of the `label` and its margin
+// }
+//
+// &.sr-only ~ .form-control-feedback {
+// top: 0;
+// }
+// }
// Help text
diff --git a/scss/_variables.scss b/scss/_variables.scss
index 606d4e194..22985c553 100644
--- a/scss/_variables.scss
+++ b/scss/_variables.scss
@@ -40,7 +40,7 @@ $enable-flex: false !default;
$enable-rounded: true !default;
$enable-shadows: false !default;
$enable-gradients: false !default;
-$enable-transitions: true !default;
+$enable-transitions: false !default;
$enable-hover-media-query: false !default;
diff --git a/scss/mixins/_forms.scss b/scss/mixins/_forms.scss
index 6113a390c..764c5e083 100644
--- a/scss/mixins/_forms.scss
+++ b/scss/mixins/_forms.scss
@@ -3,7 +3,7 @@
// Used in _forms.scss to generate the form validation CSS for warnings, errors,
// and successes.
-@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
+@mixin form-control-validation($state, $color) {
// Color the label and help text
.help-block,
.control-label,
@@ -15,28 +15,29 @@
&.checkbox label,
&.radio-inline label,
&.checkbox-inline label {
- color: $text-color;
+ color: $color;
}
// Set the border and box shadow on specific inputs to match
.form-control {
- border-color: $border-color;
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ border-color: $color;
+ // @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
&:focus {
- border-color: darken($border-color, 10%);
- $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
- @include box-shadow($shadow);
+ // border-color: darken($border-color, 10%);
+ // $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
+ // @include box-shadow($shadow);
}
}
+
// Set validation states also for addons
.input-group-addon {
- color: $text-color;
- border-color: $border-color;
- background-color: $background-color;
+ color: $color;
+ border-color: $color;
+ background-color: lighten($color, 40%);
}
// Optional feedback icon
.form-control-feedback {
- color: $text-color;
+ color: $color;
}
}