1// Form validation states 2// 3// Used in forms.less to generate the form validation CSS for warnings, errors, 4// and successes. 5 6.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) { 7 // Color the label and help text 8 .help-block, 9 .control-label, 10 .radio, 11 .checkbox, 12 .radio-inline, 13 .checkbox-inline, 14 &.radio label, 15 &.checkbox label, 16 &.radio-inline label, 17 &.checkbox-inline label { 18 color: @text-color; 19 } 20 // Set the border and box shadow on specific inputs to match 21 .form-control { 22 border-color: @border-color; 23 .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work 24 &:focus { 25 border-color: darken(@border-color, 10%); 26 @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); 27 .box-shadow(@shadow); 28 } 29 } 30 // Set validation states also for addons 31 .input-group-addon { 32 color: @text-color; 33 border-color: @border-color; 34 background-color: @background-color; 35 } 36 // Optional feedback icon 37 .form-control-feedback { 38 color: @text-color; 39 } 40} 41 42 43// Form control focus state 44// 45// Generate a customized focus state and for any input with the specified color, 46// which defaults to the `@input-border-focus` variable. 47// 48// We highly encourage you to not customize the default value, but instead use 49// this to tweak colors on an as-needed basis. This aesthetic change is based on 50// WebKit's default styles, but applicable to a wider range of browsers. Its 51// usability and accessibility should be taken into account with any change. 52// 53// Example usage: change the default blue border and shadow to white for better 54// contrast against a dark gray background. 55.form-control-focus(@color: @input-border-focus) { 56 @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); 57 &:focus { 58 border-color: @color; 59 outline: 0; 60 .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); 61 } 62} 63 64// Form control sizing 65// 66// Relative text size, padding, and border-radii changes for form controls. For 67// horizontal sizing, wrap controls in the predefined grid classes. `<select>` 68// element gets special love because it's special, and that's a fact! 69.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 70 height: @input-height; 71 padding: @padding-vertical @padding-horizontal; 72 font-size: @font-size; 73 line-height: @line-height; 74 border-radius: @border-radius; 75 76 select& { 77 height: @input-height; 78 line-height: @input-height; 79 } 80 81 textarea&, 82 select[multiple]& { 83 height: auto; 84 } 85} 86