mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-27 23:30:04 +02:00
Add new CSS vars to .form-control
This commit is contained in:
@@ -3,9 +3,16 @@
|
||||
//
|
||||
|
||||
.form-control {
|
||||
// scss-docs-start form-control-css-vars
|
||||
--#{$prefix}form-control-min-height: #{$input-height};
|
||||
--#{$prefix}form-control-padding-y: #{$input-padding-y};
|
||||
--#{$prefix}form-control-padding-x: #{$input-padding-x};
|
||||
// scss-docs-end form-control-css-vars
|
||||
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: $input-padding-y $input-padding-x;
|
||||
min-height: var(--#{$prefix}form-control-min-height);
|
||||
padding: var(--#{$prefix}form-control-padding-y) var(--#{$prefix}form-control-padding-x);
|
||||
font-family: $input-font-family;
|
||||
@include font-size($input-font-size);
|
||||
font-weight: $input-font-weight;
|
||||
@@ -93,9 +100,9 @@
|
||||
|
||||
// File input buttons theming
|
||||
&::file-selector-button {
|
||||
padding: $input-padding-y $input-padding-x;
|
||||
margin: (-$input-padding-y) (-$input-padding-x);
|
||||
margin-inline-end: $input-padding-x;
|
||||
padding: var(--#{$prefix}form-control-padding-y) var(--#{$prefix}form-control-padding-x);
|
||||
margin: calc(-1 * var(--#{$prefix}form-control-padding-y)) calc(-1 * var(--#{$prefix}form-control-padding-x)); // stylelint-disable-line function-disallowed-list
|
||||
margin-inline-end: var(--#{$prefix}form-control-padding-x);
|
||||
color: $form-file-button-color;
|
||||
@include gradient-bg($form-file-button-bg);
|
||||
pointer-events: none;
|
||||
@@ -118,9 +125,10 @@
|
||||
// text (without any border, background color, focus indicator)
|
||||
|
||||
.form-control-plaintext {
|
||||
--#{$prefix}form-control-padding-x: 0;
|
||||
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: $input-padding-y 0;
|
||||
margin-bottom: 0; // match inputs if this class comes on inputs with default margins
|
||||
line-height: $input-line-height;
|
||||
color: $input-plaintext-color;
|
||||
@@ -131,12 +139,6 @@
|
||||
&:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
&.form-control-sm,
|
||||
&.form-control-lg {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Form control sizing
|
||||
@@ -147,53 +149,24 @@
|
||||
// Repeated in `_input_group.scss` to avoid Sass extend issues.
|
||||
|
||||
.form-control-sm {
|
||||
min-height: $input-height-sm;
|
||||
padding: $input-padding-y-sm $input-padding-x-sm;
|
||||
--#{$prefix}form-control-min-height: #{$input-height-sm};
|
||||
--#{$prefix}form-control-padding-y: #{$input-padding-y-sm};
|
||||
--#{$prefix}form-control-padding-x: #{$input-padding-x-sm};
|
||||
@include font-size($input-font-size-sm);
|
||||
@include border-radius($input-border-radius-sm);
|
||||
|
||||
&::file-selector-button {
|
||||
padding: $input-padding-y-sm $input-padding-x-sm;
|
||||
margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
|
||||
margin-inline-end: $input-padding-x-sm;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control-lg {
|
||||
min-height: $input-height-lg;
|
||||
padding: $input-padding-y-lg $input-padding-x-lg;
|
||||
--#{$prefix}form-control-min-height: #{$input-height-lg};
|
||||
--#{$prefix}form-control-padding-y: #{$input-padding-y-lg};
|
||||
--#{$prefix}form-control-padding-x: #{$input-padding-x-lg};
|
||||
@include font-size($input-font-size-lg);
|
||||
@include border-radius($input-border-radius-lg);
|
||||
|
||||
&::file-selector-button {
|
||||
padding: $input-padding-y-lg $input-padding-x-lg;
|
||||
margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
|
||||
margin-inline-end: $input-padding-x-lg;
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure textareas don't shrink too much when resized
|
||||
// https://github.com/twbs/bootstrap/pull/29124
|
||||
// stylelint-disable selector-no-qualifying-type
|
||||
textarea {
|
||||
&.form-control {
|
||||
min-height: $input-height;
|
||||
}
|
||||
|
||||
&.form-control-sm {
|
||||
min-height: $input-height-sm;
|
||||
}
|
||||
|
||||
&.form-control-lg {
|
||||
min-height: $input-height-lg;
|
||||
}
|
||||
}
|
||||
// stylelint-enable selector-no-qualifying-type
|
||||
|
||||
.form-control-color {
|
||||
width: $form-color-width;
|
||||
height: $input-height;
|
||||
padding: $input-padding-y;
|
||||
padding: var(--#{$prefix}form-control-padding-y);
|
||||
|
||||
&:not(:disabled):not([readonly]) {
|
||||
cursor: pointer;
|
||||
@@ -208,7 +181,4 @@ textarea {
|
||||
border: 0 !important; // stylelint-disable-line declaration-no-important
|
||||
@include border-radius($input-border-radius);
|
||||
}
|
||||
|
||||
&.form-control-sm { height: $input-height-sm; }
|
||||
&.form-control-lg { height: $input-height-lg; }
|
||||
}
|
||||
|
@@ -173,6 +173,14 @@ Learn more about [support for datalist elements](https://caniuse.com/datalist).
|
||||
|
||||
## CSS
|
||||
|
||||
### Variables
|
||||
|
||||
{{< added-in "5.3.2" >}}
|
||||
|
||||
As part of Bootstrap's evolving CSS variables approach, form controls now use local CSS variables on `.form-control` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
|
||||
|
||||
{{< scss-docs name="form-control-css-vars" file="scss/forms/_form-control.scss" >}}
|
||||
|
||||
### Sass variables
|
||||
|
||||
`$input-*` are shared across most of our form controls (and not buttons).
|
||||
|
Reference in New Issue
Block a user