Files
@ b890802d732c
Branch filter:
Location: Copyleft/copyleft-wiki/bootstrap-3.0.0/less/forms.less - annotation
b890802d732c
8.3 KiB
text/x-less-css
Initial templating
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c b890802d732c | //
// Forms
// --------------------------------------------------
// Normalize non-controls
//
// Restyle and baseline non-control form elements.
fieldset {
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: @line-height-computed;
font-size: (@font-size-base * 1.5);
line-height: inherit;
color: @legend-color;
border: 0;
border-bottom: 1px solid @legend-border-color;
}
label {
display: inline-block;
margin-bottom: 5px;
font-weight: bold;
}
// Normalize form controls
// Override content-box in Normalize (* isn't specific enough)
input[type="search"] {
.box-sizing(border-box);
}
// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9; /* IE8-9 */
line-height: normal;
}
// Set the height of select and file controls to match text inputs
input[type="file"] {
display: block;
}
// Make multiple select elements height not fixed
select[multiple],
select[size] {
height: auto;
}
// Fix optgroup Firefox bug per https://github.com/twbs/bootstrap/issues/7611
select optgroup {
font-size: inherit;
font-style: inherit;
font-family: inherit;
}
// Focus for select, file, radio, and checkbox
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
.tab-focus();
}
// Fix for Chrome number input
// Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button.
// See https://github.com/twbs/bootstrap/issues/8350 for more.
input[type="number"] {
&::-webkit-outer-spin-button,
&::-webkit-inner-spin-button {
height: auto;
}
}
// Placeholder
//
// Placeholder text gets special styles because when browsers invalidate entire
// lines if it doesn't understand a selector/
.form-control {
.placeholder();
}
// Common form controls
//
// Shared size and type resets for form controls. Apply `.form-control` to any
// of the following form controls:
//
// select
// textarea
// input[type="text"]
// input[type="password"]
// input[type="datetime"]
// input[type="datetime-local"]
// input[type="date"]
// input[type="month"]
// input[type="time"]
// input[type="week"]
// input[type="number"]
// input[type="email"]
// input[type="url"]
// input[type="search"]
// input[type="tel"]
// input[type="color"]
.form-control {
display: block;
width: 100%;
height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base;
line-height: @line-height-base;
color: @input-color;
vertical-align: middle;
background-color: @input-bg;
border: 1px solid @input-border;
border-radius: @input-border-radius;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
// Customize the `:focus` state to imitate native WebKit styles.
.form-control-focus();
// Disabled and read-only inputs
// Note: HTML5 says that controls under a fieldset > legend:first-child won't
// be disabled if the fieldset is disabled. Due to implementation difficulty,
// we don't honor that edge case; we style them as disabled anyway.
&[disabled],
&[readonly],
fieldset[disabled] & {
cursor: not-allowed;
background-color: @input-bg-disabled;
}
// Reset height for `textarea`s
textarea& {
height: auto;
}
}
// Form groups
//
// Designed to help with the organization and spacing of vertical forms. For
// horizontal forms, use the predefined grid classes.
.form-group {
margin-bottom: 15px;
}
// Checkboxes and radios
//
// Indent the labels to position radios/checkboxes as hanging controls.
.radio,
.checkbox {
display: block;
min-height: @line-height-computed; // clear the floating input if there is no label text
margin-top: 10px;
margin-bottom: 10px;
padding-left: 20px;
vertical-align: middle;
label {
display: inline;
margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
float: left;
margin-left: -20px;
}
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
}
// Radios and checkboxes on same line
.radio-inline,
.checkbox-inline {
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
vertical-align: middle;
font-weight: normal;
cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px; // space out consecutive inline controls
}
// Apply same disabled cursor tweak as for inputs
//
// Note: Neither radios nor checkboxes can be readonly.
input[type="radio"],
input[type="checkbox"],
.radio,
.radio-inline,
.checkbox,
.checkbox-inline {
&[disabled],
fieldset[disabled] & {
cursor: not-allowed;
}
}
// Form control sizing
.input-sm {
.input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
}
.input-lg {
.input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
}
// Form control feedback states
//
// Apply contextual and semantic states to individual form controls.
// Warning
.has-warning {
.form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
}
// Error
.has-error {
.form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
}
// Success
.has-success {
.form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
}
// Static form control text
//
// Apply class to a `p` element to make any string of text align with labels in
// a horizontal form layout.
.form-control-static {
margin-bottom: 0; // Remove default margin from `p`
padding-top: (@padding-base-vertical + 1);
}
// Help text
//
// Apply to any element you wish to create light text for placement immediately
// below a form control. Use for general help, formatting, or instructional text.
.help-block {
display: block; // account for any element using help-block
margin-top: 5px;
margin-bottom: 10px;
color: lighten(@text-color, 25%); // lighten the text some for contrast
}
// Inline forms
//
// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
// forms begin stacked on extra small (mobile) devices and then go inline when
// viewports reach <768px.
//
// Requires wrapping inputs and labels with `.form-group` for proper display of
// default HTML form controls and our custom form controls (e.g., input groups).
//
// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
.form-inline {
// Kick in the inline
@media (min-width: @screen-tablet) {
// Inline-block all the things for "inline"
.form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
// In navbar-form, allow folks to *not* use `.form-group`
.form-control {
display: inline-block;
}
// Remove default margin on radios/checkboxes that were used for stacking, and
// then undo the floating of radios and checkboxes to match (which also avoids
// a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
.radio,
.checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
padding-left: 0;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: none;
margin-left: 0;
}
}
}
// Horizontal forms
//
// Horizontal forms are built on grid classes and allow you to create forms with
// labels on the left and inputs on the right.
.form-horizontal {
// Consistent vertical alignment of labels, radios, and checkboxes
.control-label,
.radio,
.checkbox,
.radio-inline,
.checkbox-inline {
margin-top: 0;
margin-bottom: 0;
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
}
// Make form groups behave like rows
.form-group {
.make-row();
}
// Only right align form labels here when the columns stop stacking
@media (min-width: @screen-tablet) {
.control-label {
text-align: right;
}
}
}
|