Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
2a4a6fe0
Commit
2a4a6fe0
authored
11 years ago
by
Mark Otto
Browse files
Options
Download
Plain Diff
Merge pull request #8611 from twitter/bs3_form_classes
Updated BS3 form classes
parents
35aad074
27cedf71
2 merge requests
!8635
ignore Gruntfile.js in jekyll
,
!8656
Added rel="stylesheet" to CDN-Examples
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
css.html
+109
-114
css.html
dist/css/bootstrap.css
+50
-144
dist/css/bootstrap.css
dist/css/bootstrap.min.css
+1
-1
dist/css/bootstrap.min.css
less/forms.less
+96
-99
less/forms.less
less/mixins.less
+8
-6
less/mixins.less
with
264 additions
and
364 deletions
+264
-364
css.html
+
109
-
114
View file @
2a4a6fe0
This diff is collapsed.
Click to expand it.
dist/css/bootstrap.css
+
50
-
144
View file @
2a4a6fe0
...
...
@@ -1274,10 +1274,6 @@ table th[class^="col-"] {
border-color
:
#f8e5be
;
}
form
{
margin
:
0
;
}
fieldset
{
padding
:
0
;
margin
:
0
;
...
...
@@ -1302,138 +1298,12 @@ label {
font-weight
:
bold
;
}
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"
]
{
display
:
block
;
height
:
38px
;
padding
:
8px
12px
;
font-size
:
14px
;
line-height
:
1.428571429
;
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-transition
:
border-color
ease-in-out
0.15s
,
box-shadow
ease-in-out
0.15s
;
transition
:
border-color
ease-in-out
0.15s
,
box-shadow
ease-in-out
0.15s
;
}
select
:focus
,
textarea
:focus
,
input
[
type
=
"text"
]
:focus
,
input
[
type
=
"password"
]
:focus
,
input
[
type
=
"datetime"
]
:focus
,
input
[
type
=
"datetime-local"
]
:focus
,
input
[
type
=
"date"
]
:focus
,
input
[
type
=
"month"
]
:focus
,
input
[
type
=
"time"
]
:focus
,
input
[
type
=
"week"
]
:focus
,
input
[
type
=
"number"
]
:focus
,
input
[
type
=
"email"
]
:focus
,
input
[
type
=
"url"
]
:focus
,
input
[
type
=
"search"
]
:focus
,
input
[
type
=
"tel"
]
:focus
,
input
[
type
=
"color"
]
:focus
{
border-color
:
rgba
(
82
,
168
,
236
,
0.8
);
outline
:
0
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
8px
rgba
(
82
,
168
,
236
,
0.6
);
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
8px
rgba
(
82
,
168
,
236
,
0.6
);
}
select
[
disabled
],
textarea
[
disabled
],
input
[
type
=
"text"
][
disabled
],
input
[
type
=
"password"
][
disabled
],
input
[
type
=
"datetime"
][
disabled
],
input
[
type
=
"datetime-local"
][
disabled
],
input
[
type
=
"date"
][
disabled
],
input
[
type
=
"month"
][
disabled
],
input
[
type
=
"time"
][
disabled
],
input
[
type
=
"week"
][
disabled
],
input
[
type
=
"number"
][
disabled
],
input
[
type
=
"email"
][
disabled
],
input
[
type
=
"url"
][
disabled
],
input
[
type
=
"search"
][
disabled
],
input
[
type
=
"tel"
][
disabled
],
input
[
type
=
"color"
][
disabled
],
select
[
readonly
],
textarea
[
readonly
],
input
[
type
=
"text"
][
readonly
],
input
[
type
=
"password"
][
readonly
],
input
[
type
=
"datetime"
][
readonly
],
input
[
type
=
"datetime-local"
][
readonly
],
input
[
type
=
"date"
][
readonly
],
input
[
type
=
"month"
][
readonly
],
input
[
type
=
"time"
][
readonly
],
input
[
type
=
"week"
][
readonly
],
input
[
type
=
"number"
][
readonly
],
input
[
type
=
"email"
][
readonly
],
input
[
type
=
"url"
][
readonly
],
input
[
type
=
"search"
][
readonly
],
input
[
type
=
"tel"
][
readonly
],
input
[
type
=
"color"
][
readonly
],
fieldset
[
disabled
]
select
,
fieldset
[
disabled
]
textarea
,
fieldset
[
disabled
]
input
[
type
=
"text"
],
fieldset
[
disabled
]
input
[
type
=
"password"
],
fieldset
[
disabled
]
input
[
type
=
"datetime"
],
fieldset
[
disabled
]
input
[
type
=
"datetime-local"
],
fieldset
[
disabled
]
input
[
type
=
"date"
],
fieldset
[
disabled
]
input
[
type
=
"month"
],
fieldset
[
disabled
]
input
[
type
=
"time"
],
fieldset
[
disabled
]
input
[
type
=
"week"
],
fieldset
[
disabled
]
input
[
type
=
"number"
],
fieldset
[
disabled
]
input
[
type
=
"email"
],
fieldset
[
disabled
]
input
[
type
=
"url"
],
fieldset
[
disabled
]
input
[
type
=
"search"
],
fieldset
[
disabled
]
input
[
type
=
"tel"
],
fieldset
[
disabled
]
input
[
type
=
"color"
]
{
cursor
:
not-allowed
;
background-color
:
#eeeeee
;
}
input
,
select
,
textarea
{
width
:
100%
;
}
input
[
type
=
"file"
],
input
[
type
=
"image"
],
input
[
type
=
"submit"
],
input
[
type
=
"reset"
],
input
[
type
=
"button"
],
input
[
type
=
"radio"
],
input
[
type
=
"checkbox"
]
{
width
:
auto
;
}
input
[
type
=
"search"
]
{
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
textarea
{
height
:
auto
;
}
input
[
type
=
"radio"
],
input
[
type
=
"checkbox"
]
{
margin
:
4px
0
0
;
...
...
@@ -1471,26 +1341,62 @@ input[type="number"]::-webkit-inner-spin-button {
height
:
auto
;
}
input
:-moz-placeholder
,
textarea
:-moz-placeholder
{
.form-control
:-moz-placeholder
{
color
:
#999999
;
}
input
::-moz-placeholder
,
textarea
::-moz-placeholder
{
.form-control
::-moz-placeholder
{
color
:
#999999
;
}
input
:-ms-input-placeholder
,
textarea
:-ms-input-placeholder
{
.form-control
:-ms-input-placeholder
{
color
:
#999999
;
}
input
::-webkit-input-placeholder
,
textarea
::-webkit-input-placeholder
{
.form-control
::-webkit-input-placeholder
{
color
:
#999999
;
}
.form-control
{
display
:
block
;
width
:
100%
;
height
:
38px
;
padding
:
8px
12px
;
font-size
:
14px
;
line-height
:
1.428571429
;
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-transition
:
border-color
ease-in-out
0.15s
,
box-shadow
ease-in-out
0.15s
;
transition
:
border-color
ease-in-out
0.15s
,
box-shadow
ease-in-out
0.15s
;
}
.form-control
:focus
{
border-color
:
rgba
(
82
,
168
,
236
,
0.8
);
outline
:
0
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
8px
rgba
(
82
,
168
,
236
,
0.6
);
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
8px
rgba
(
82
,
168
,
236
,
0.6
);
}
.form-control
[
disabled
],
.form-control
[
readonly
],
fieldset
[
disabled
]
.form-control
{
cursor
:
not-allowed
;
background-color
:
#eeeeee
;
}
textarea
.form-control
{
height
:
auto
;
}
.form-group
{
margin-bottom
:
15px
;
}
.radio
,
.checkbox
{
display
:
block
;
...
...
@@ -1597,14 +1503,14 @@ select.input-small {
color
:
#c09853
;
}
.has-warning
.
input-with-feedback
{
.has-warning
.
form-control
{
padding-right
:
32px
;
border-color
:
#c09853
;
-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
);
}
.has-warning
.
input-with-feedback
:focus
{
.has-warning
.
form-control
:focus
{
border-color
:
#a47e3c
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
6px
#dbc59e
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
6px
#dbc59e
;
...
...
@@ -1621,14 +1527,14 @@ select.input-small {
color
:
#b94a48
;
}
.has-error
.
input-with-feedback
{
.has-error
.
form-control
{
padding-right
:
32px
;
border-color
:
#b94a48
;
-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
);
}
.has-error
.
input-with-feedback
:focus
{
.has-error
.
form-control
:focus
{
border-color
:
#953b39
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
6px
#d59392
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
6px
#d59392
;
...
...
@@ -1645,14 +1551,14 @@ select.input-small {
color
:
#468847
;
}
.has-success
.
input-with-feedback
{
.has-success
.
form-control
{
padding-right
:
32px
;
border-color
:
#468847
;
-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
);
}
.has-success
.
input-with-feedback
:focus
{
.has-success
.
form-control
:focus
{
border-color
:
#356635
;
-webkit-box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
6px
#7aba7b
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
6px
#7aba7b
;
...
...
This diff is collapsed.
Click to expand it.
dist/css/bootstrap.min.css
+
1
-
1
View file @
2a4a6fe0
This diff is collapsed.
Click to expand it.
less/forms.less
+
96
-
99
View file @
2a4a6fe0
...
...
@@ -3,12 +3,9 @@
// --------------------------------------------------
// Non-controls
// -------------------------
form {
margin: 0;
}
// Normalize non-controls
//
// Restyle and baseline non-control form elements.
fieldset {
padding: 0;
...
...
@@ -34,86 +31,14 @@ label {
font-weight: bold;
}
// Form controls
// -------------------------
// Shared size and type resets
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"] {
display: block;
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: @gray;
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");
&:focus {
border-color: rgba(82,168,236,.8);
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
}
// Disabled and read-only inputs
// Note: HTML5 says that inputs 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 appearance properties for textual inputs and textarea
// Can't be on input[type=*] selectors or it's too specific
input,
select,
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
}
// Normalize form controls
// Override content-box in Normalize (* isn't specific enough)
input[type="search"] {
.box-sizing(border-box);
}
// Reset height since textareas have rows
textarea {
height: auto;
}
// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
...
...
@@ -159,19 +84,89 @@ input[type="number"] {
// Placeholder
// -------------------------
// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
input,
textarea {
//
// Placeholder text gets special styles because when browsers invalidate entire
// lines if it doesn't understand a selector/
.form-control {
.placeholder();
}
// CHECKBOXES & RADIOS
// -------------------
// 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: @gray;
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");
&:focus {
border-color: rgba(82,168,236,.8);
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
}
// Disabled and read-only inputs
// Note: HTML5 says that inputs 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.
// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
display: block;
...
...
@@ -217,8 +212,10 @@ textarea {
// INPUT SIZES
// -----------
// Form control sizing
//
// Relative text size, padding, and border-radii changes for form controls. For
// horizontal sizing, wrap controls in the predefined grid classes.
select,
textarea,
...
...
@@ -261,28 +258,28 @@ select {
}
//
FORM FIELD FEEDBACK STATES
//
--------------------------
// Form control feedback states
//
//
Apply contextual and semantic states to individual form controls.
// Warning
.has-warning {
.form-
field
-validation(@state-warning-text, @state-warning-text, @state-warning-bg);
.form-
control
-validation(@state-warning-text, @state-warning-text, @state-warning-bg);
}
// Error
.has-error {
.form-
field
-validation(@state-danger-text, @state-danger-text, @state-danger-bg);
.form-
control
-validation(@state-danger-text, @state-danger-text, @state-danger-bg);
}
// Success
.has-success {
.form-
field
-validation(@state-success-text, @state-success-text, @state-success-bg);
.form-
control
-validation(@state-success-text, @state-success-text, @state-success-bg);
}
//
HELP TEXT
//
---------
// 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
...
...
This diff is collapsed.
Click to expand it.
less/mixins.less
+
8
-
6
View file @
2a4a6fe0
...
...
@@ -508,18 +508,20 @@
}
}
// Framework mixins
// --------------------------------------------------
// Generate form validation states
.form-field-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) {
// Color the label text
// Form validation states
//
// Used in forms.less to generate the form validation CSS for warnings, errors,
// and successes.
.form-control-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) {
// Color the label and help text
.help-block,
.control-label {
color: @text-color;
}
// Set the border and box shadow on specific inputs to match
.
input-with-feedback
{
.
form-control
{
padding-right: 32px; // to account for the feedback icon
border-color: @border-color;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets