}
label {
- display: block;
+ display: inline-block;
margin-bottom: 5px;
+ font-weight: bold;
}
select,
color: #555555;
vertical-align: middle;
background-color: #ffffff;
+ border: 1px solid #cccccc;
border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
+ -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+ transition: border linear 0.2s, box-shadow linear 0.2s;
}
input,
width: 100%;
}
-textarea {
- height: auto;
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto;
}
-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"],
-.uneditable-input {
- border: 1px solid #cccccc;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
- -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
- -o-transition: border linear 0.2s, box-shadow linear 0.2s;
- transition: border linear 0.2s, box-shadow linear 0.2s;
+textarea {
+ height: auto;
}
textarea:focus,
line-height: normal;
}
-input[type="file"],
-input[type="image"],
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-input[type="radio"],
-input[type="checkbox"] {
- width: auto;
-}
-
select,
input[type="file"] {
height: 34px;
.radio,
.checkbox {
+ display: block;
min-height: 20px;
padding-left: 20px;
}
+.radio label,
+.checkbox label {
+ font-weight: normal;
+}
+
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: left;
.help-block,
.help-inline {
- color: #595959;
+ color: #737373;
}
.help-block {
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
+ display: inline-block;
padding-left: 0;
+}
+
+.form-search .radio label,
+.form-search .checkbox label,
+.form-inline .radio label,
+.form-inline .checkbox label {
margin-bottom: 0;
vertical-align: middle;
}
</div>
<h2 id="forms-default">Default styles</h2>
- <p>Individual form controls receive styling, but without any required base class on the <code><form></code> or large changes in markup. Results in stacked, left-aligned labels on top of form controls.</p>
+ <p>Individual form controls automatically receive some global styling. By default, inputs are set to <code>width: 100%;</code>.</p>
<form class="bs-docs-example">
<fieldset>
<legend>Legend</legend>
<label>Label name</label>
<input type="text" placeholder="Type something…">
- <span class="help-block">Example block-level help text here.</span>
- <label class="checkbox">
- <input type="checkbox"> Check me out
- </label>
+ <p class="help-block">Example block-level help text here.</p>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> Check me out
+ </label>
+ </div>
<button type="submit" class="btn">Submit</button>
</fieldset>
</form>
<label>Label name</label>
<input type="text" placeholder="Type something…">
<span class="help-block">Example block-level help text here.</span>
- <label class="checkbox">
- <input type="checkbox"> Check me out
- </label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> Check me out
+ </label>
+ </div>
<button type="submit" class="btn">Submit</button>
</fieldset>
</form>
<form class="bs-docs-example form-inline">
<input type="text" class="span3" placeholder="Email">
<input type="password" class="span3" placeholder="Password">
- <label class="checkbox">
- <input type="checkbox"> Remember me
- </label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> Remember me
+ </label>
+ </div>
<button type="submit" class="btn">Sign in</button>
</form>
<pre class="prettyprint linenums">
<form class="form-inline">
<input type="text" class="span3" placeholder="Email">
<input type="password" class="span3" placeholder="Password">
- <label class="checkbox">
- <input type="checkbox"> Remember me
- </label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> Remember me
+ </label>
+ </div>
<button type="submit" class="btn">Sign in</button>
</form>
</pre>
</div>
<h2 id="forms-default">{{_i}}Default styles{{/i}}</h2>
- <p>{{_i}}Individual form controls receive styling, but without any required base class on the <code><form></code> or large changes in markup. Results in stacked, left-aligned labels on top of form controls.{{/i}}</p>
+ <p>{{_i}}Individual form controls automatically receive some global styling. By default, inputs are set to <code>width: 100%;</code>.{{/i}}</p>
<form class="bs-docs-example">
<fieldset>
<legend>Legend</legend>
<label>{{_i}}Label name{{/i}}</label>
<input type="text" placeholder="{{_i}}Type something…{{/i}}">
- <span class="help-block">{{_i}}Example block-level help text here.{{/i}}</span>
- <label class="checkbox">
- <input type="checkbox"> {{_i}}Check me out{{/i}}
- </label>
+ <p class="help-block">{{_i}}Example block-level help text here.{{/i}}</p>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> {{_i}}Check me out{{/i}}
+ </label>
+ </div>
<button type="submit" class="btn">{{_i}}Submit{{/i}}</button>
</fieldset>
</form>{{! /example }}
<label>{{_i}}Label name{{/i}}</label>
<input type="text" placeholder="{{_i}}Type something…{{/i}}">
<span class="help-block">Example block-level help text here.</span>
- <label class="checkbox">
- <input type="checkbox"> {{_i}}Check me out{{/i}}
- </label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> {{_i}}Check me out{{/i}}
+ </label>
+ </div>
<button type="submit" class="btn">{{_i}}Submit{{/i}}</button>
</fieldset>
</form>
<form class="bs-docs-example form-inline">
<input type="text" class="span3" placeholder="{{_i}}Email{{/i}}">
<input type="password" class="span3" placeholder="{{_i}}Password{{/i}}">
- <label class="checkbox">
- <input type="checkbox"> {{_i}}Remember me{{/i}}
- </label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> {{_i}}Remember me{{/i}}
+ </label>
+ </div>
<button type="submit" class="btn">{{_i}}Sign in{{/i}}</button>
</form>{{! /example }}
<pre class="prettyprint linenums">
<form class="form-inline">
<input type="text" class="span3" placeholder="{{_i}}Email{{/i}}">
<input type="password" class="span3" placeholder="{{_i}}Password{{/i}}">
- <label class="checkbox">
- <input type="checkbox"> {{_i}}Remember me{{/i}}
- </label>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> {{_i}}Remember me{{/i}}
+ </label>
+ </div>
<button type="submit" class="btn">{{_i}}Sign in{{/i}}</button>
</form>
</pre>
// --------------------------------------------------
-// General styles
+// Non-controls
// -------------------------
-
form {
margin: 0 0 @baseLineHeight;
}
}
label {
- display: block;
+ display: inline-block;
margin-bottom: 5px;
+ font-weight: bold;
}
// Form controls
color: @gray;
vertical-align: middle;
background-color: @inputBackground;
+ border: 1px solid @inputBorder;
border-radius: @inputBorderRadius;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ .transition(~"border linear .2s, box-shadow linear .2s");
}
// Reset appearance properties for textual inputs and textarea
width: 100%;
}
+// Reset width of input images, buttons, radios, checkboxes
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto; // Override of generic input selector
+}
+
// Reset height since textareas have rows
textarea {
height: auto;
input[type="tel"],
input[type="color"],
.uneditable-input {
- border: 1px solid @inputBorder;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
- .transition(~"border linear .2s, box-shadow linear .2s");
-
// Focus state
&:focus {
border-color: rgba(82,168,236,.8);
line-height: normal;
}
-// Reset width of input images, buttons, radios, checkboxes
-input[type="file"],
-input[type="image"],
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-input[type="radio"],
-input[type="checkbox"] {
- width: auto; // Override of generic input selector
-}
-
// Set the height of select and file controls to match text inputs
select,
input[type="file"] {
// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
+ display: block;
min-height: @baseLineHeight; // clear the floating input if there is no label text
padding-left: 20px;
}
+.radio label,
+.checkbox label {
+ font-weight: normal;
+}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: left;
.help-block,
.help-inline {
- color: lighten(@textColor, 15%); // lighten the text some for contrast
+ color: lighten(@textColor, 25%); // lighten the text some for contrast
}
.help-block {
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
+ display: inline-block;
padding-left: 0;
- margin-bottom: 0;
- vertical-align: middle;
+ label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
}
// Remove float and margin, set to inline-block
.form-search .radio input[type="radio"],
</div><!-- /span4 -->
</div><!-- /row -->
+
+
+ <div class="page-header">
+ <h1>Form components</h1>
+ </div>
+
+ <fieldset>
+ <legend>Legend</legend>
+ <label>Label name</label>
+ <input type="text" placeholder="Type something…">
+ <p class="help-block">Example block-level help text here.</p>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"> Check me out
+ </label>
+ </div>
+ <button type="submit" class="btn">Submit</button>
+ </fieldset>
+
+
</form> <!-- /container -->
</body>