mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-28 07:39:57 +02:00
Add new CSS vars to .form-control
This commit is contained in:
@@ -3,9 +3,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
.form-control {
|
.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;
|
display: block;
|
||||||
width: 100%;
|
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;
|
font-family: $input-font-family;
|
||||||
@include font-size($input-font-size);
|
@include font-size($input-font-size);
|
||||||
font-weight: $input-font-weight;
|
font-weight: $input-font-weight;
|
||||||
@@ -93,9 +100,9 @@
|
|||||||
|
|
||||||
// File input buttons theming
|
// File input buttons theming
|
||||||
&::file-selector-button {
|
&::file-selector-button {
|
||||||
padding: $input-padding-y $input-padding-x;
|
padding: var(--#{$prefix}form-control-padding-y) var(--#{$prefix}form-control-padding-x);
|
||||||
margin: (-$input-padding-y) (-$input-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: $input-padding-x;
|
margin-inline-end: var(--#{$prefix}form-control-padding-x);
|
||||||
color: $form-file-button-color;
|
color: $form-file-button-color;
|
||||||
@include gradient-bg($form-file-button-bg);
|
@include gradient-bg($form-file-button-bg);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
@@ -118,9 +125,10 @@
|
|||||||
// text (without any border, background color, focus indicator)
|
// text (without any border, background color, focus indicator)
|
||||||
|
|
||||||
.form-control-plaintext {
|
.form-control-plaintext {
|
||||||
|
--#{$prefix}form-control-padding-x: 0;
|
||||||
|
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: $input-padding-y 0;
|
|
||||||
margin-bottom: 0; // match inputs if this class comes on inputs with default margins
|
margin-bottom: 0; // match inputs if this class comes on inputs with default margins
|
||||||
line-height: $input-line-height;
|
line-height: $input-line-height;
|
||||||
color: $input-plaintext-color;
|
color: $input-plaintext-color;
|
||||||
@@ -131,12 +139,6 @@
|
|||||||
&:focus {
|
&:focus {
|
||||||
outline: 0;
|
outline: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.form-control-sm,
|
|
||||||
&.form-control-lg {
|
|
||||||
padding-right: 0;
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Form control sizing
|
// Form control sizing
|
||||||
@@ -147,53 +149,24 @@
|
|||||||
// Repeated in `_input_group.scss` to avoid Sass extend issues.
|
// Repeated in `_input_group.scss` to avoid Sass extend issues.
|
||||||
|
|
||||||
.form-control-sm {
|
.form-control-sm {
|
||||||
min-height: $input-height-sm;
|
--#{$prefix}form-control-min-height: #{$input-height-sm};
|
||||||
padding: $input-padding-y-sm $input-padding-x-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 font-size($input-font-size-sm);
|
||||||
@include border-radius($input-border-radius-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 {
|
.form-control-lg {
|
||||||
min-height: $input-height-lg;
|
--#{$prefix}form-control-min-height: #{$input-height-lg};
|
||||||
padding: $input-padding-y-lg $input-padding-x-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 font-size($input-font-size-lg);
|
||||||
@include border-radius($input-border-radius-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 {
|
.form-control-color {
|
||||||
width: $form-color-width;
|
width: $form-color-width;
|
||||||
height: $input-height;
|
padding: var(--#{$prefix}form-control-padding-y);
|
||||||
padding: $input-padding-y;
|
|
||||||
|
|
||||||
&:not(:disabled):not([readonly]) {
|
&:not(:disabled):not([readonly]) {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -208,7 +181,4 @@ textarea {
|
|||||||
border: 0 !important; // stylelint-disable-line declaration-no-important
|
border: 0 !important; // stylelint-disable-line declaration-no-important
|
||||||
@include border-radius($input-border-radius);
|
@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
|
## 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
|
### Sass variables
|
||||||
|
|
||||||
`$input-*` are shared across most of our form controls (and not buttons).
|
`$input-*` are shared across most of our form controls (and not buttons).
|
||||||
|
Reference in New Issue
Block a user