diff options
| author | Mark Otto <[email protected]> | 2015-08-08 14:15:09 -0700 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2015-08-08 14:15:09 -0700 |
| commit | 7c3f5b6d59a3479c92cd85b2a1f72a3c6a346743 (patch) | |
| tree | 10731da83d2407efc7131c1e41bc19ddcd5e1ee4 /scss | |
| parent | 14d8c295964857f14ad3d5bb98f24f8274296a05 (diff) | |
| download | bootstrap-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.scss | 150 | ||||
| -rw-r--r-- | scss/_variables.scss | 2 | ||||
| -rw-r--r-- | scss/mixins/_forms.scss | 23 |
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; } } |
