2019-10-12 09:07:22 -04:00
|
|
|
// This mixin uses an `if()` technique to be compatible with Dart Sass
|
|
|
|
// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details
|
2021-02-10 22:29:59 -05:00
|
|
|
|
|
|
|
// scss-docs-start form-validation-mixins
|
2019-04-25 10:01:50 -04:00
|
|
|
@mixin form-validation-state-selector($state) {
|
|
|
|
@if ($state == "valid" or $state == "invalid") {
|
2019-10-12 09:07:22 -04:00
|
|
|
.was-validated #{if(&, "&", "")}:#{$state},
|
|
|
|
#{if(&, "&", "")}.is-#{$state} {
|
2019-04-25 10:01:50 -04:00
|
|
|
@content;
|
|
|
|
}
|
|
|
|
} @else {
|
2019-10-12 09:07:22 -04:00
|
|
|
#{if(&, "&", "")}.is-#{$state} {
|
2019-04-25 10:01:50 -04:00
|
|
|
@content;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-06-10 19:30:26 -04:00
|
|
|
|
2020-12-17 00:07:48 -05:00
|
|
|
@mixin form-validation-state(
|
|
|
|
$state,
|
|
|
|
$color,
|
|
|
|
$icon,
|
|
|
|
$tooltip-color: color-contrast($color),
|
|
|
|
$tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
|
2021-02-09 18:54:49 -05:00
|
|
|
$focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
|
2020-12-17 00:07:48 -05:00
|
|
|
) {
|
2017-10-02 23:37:28 -04:00
|
|
|
.#{$state}-feedback {
|
|
|
|
display: none;
|
2017-12-22 18:29:49 -05:00
|
|
|
width: 100%;
|
2017-11-14 20:32:08 -05:00
|
|
|
margin-top: $form-feedback-margin-top;
|
2019-02-07 17:32:05 -05:00
|
|
|
@include font-size($form-feedback-font-size);
|
2020-04-16 10:38:21 -04:00
|
|
|
font-style: $form-feedback-font-style;
|
2017-10-02 23:37:28 -04:00
|
|
|
color: $color;
|
|
|
|
}
|
|
|
|
|
|
|
|
.#{$state}-tooltip {
|
|
|
|
position: absolute;
|
|
|
|
top: 100%;
|
|
|
|
z-index: 5;
|
|
|
|
display: none;
|
2018-01-03 00:57:56 -05:00
|
|
|
max-width: 100%; // Contain to parent when possible
|
2018-09-19 00:27:02 -04:00
|
|
|
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
|
2017-10-02 23:37:28 -04:00
|
|
|
margin-top: .1rem;
|
2019-02-07 17:32:05 -05:00
|
|
|
@include font-size($form-feedback-tooltip-font-size);
|
2018-09-19 00:27:02 -04:00
|
|
|
line-height: $form-feedback-tooltip-line-height;
|
2020-12-17 00:07:48 -05:00
|
|
|
color: $tooltip-color;
|
|
|
|
background-color: $tooltip-bg-color;
|
2018-09-19 00:27:02 -04:00
|
|
|
@include border-radius($form-feedback-tooltip-border-radius);
|
2017-10-02 23:37:28 -04:00
|
|
|
}
|
|
|
|
|
2019-08-17 09:12:08 -04:00
|
|
|
@include form-validation-state-selector($state) {
|
|
|
|
~ .#{$state}-feedback,
|
|
|
|
~ .#{$state}-tooltip {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-07-08 18:31:18 -04:00
|
|
|
.form-control {
|
2019-04-25 10:01:50 -04:00
|
|
|
@include form-validation-state-selector($state) {
|
2018-07-08 18:31:18 -04:00
|
|
|
border-color: $color;
|
|
|
|
|
|
|
|
@if $enable-validation-icons {
|
|
|
|
padding-right: $input-height-inner;
|
2019-07-19 21:57:12 -04:00
|
|
|
background-image: escape-svg($icon);
|
2018-07-08 18:31:18 -04:00
|
|
|
background-repeat: no-repeat;
|
2019-05-26 05:13:55 -04:00
|
|
|
background-position: right $input-height-inner-quarter center;
|
2019-02-07 17:32:05 -05:00
|
|
|
background-size: $input-height-inner-half $input-height-inner-half;
|
2018-07-08 18:31:18 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
&:focus {
|
|
|
|
border-color: $color;
|
2020-12-17 00:07:48 -05:00
|
|
|
box-shadow: $focus-box-shadow;
|
2018-07-08 18:31:18 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-22 14:57:09 -04:00
|
|
|
// stylelint-disable-next-line selector-no-qualifying-type
|
2018-07-08 18:31:18 -04:00
|
|
|
textarea.form-control {
|
2019-04-25 10:01:50 -04:00
|
|
|
@include form-validation-state-selector($state) {
|
2018-07-08 18:31:18 -04:00
|
|
|
@if $enable-validation-icons {
|
|
|
|
padding-right: $input-height-inner;
|
2019-02-07 17:32:05 -05:00
|
|
|
background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
|
2018-07-08 18:31:18 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
v5: Forms update (#28450)
* Initial spike of consolidated form checks
* Stub out forms rearrangement
- Prepping to drop non-custom file and range inputs
- Prepping to merge custom and native checks and radios (with switches)
- Prepping to merge custom select with form select
- Moving docs arround so forms has it's own area given volume of CSS
* Move input group Sass file to forms subdir
* Start to split and move the docs around
* Simpler imports
* Copyediting
* delete overview file
* Remove commented out code
* remove the custom-forms import
* rewrite flex-check as form-check, replace all custom properties
* Remove old forms doc
* stub out new subpage link section
* update migration guide
* Update nav, forms overview in page nav, and descriptions
* fix check bg position
* fix margin-top calculation
* rename .custom-select to .form-select
* Update validation styles for new checks
* add some vertical margin, fix inline checks
* fix docs examples
* better way to do this contents stuff, redo the toc while i'm at it
* page restyle for docs while here
* un-callout that, edit text
* redo padding on toc
* fix toc
* start to cleanup checks docs
* Rewrite Markdown tables into HTML
* Redesign tables, redo their docs
* Replace Open Iconic icons with custom Bootstrap icons
* Redesign the docs navbar, add a subheader, redo the sidebar
* Redesign docs homepage a bit
* Simplify table style overrides for docs tables
* Simplify docs typography for page titles and reading line length
* Stub out icons page
* Part of sidebar update, remove migration from nav.yml
* Move toc CSS to separate partial
* Change appearance of overview page
* fix sidebar arrow direction
* Add footer to docs layout
* Update descriptions
* Drop the .form-group class for margin utilities
* Remove lingering form-group-margin-bottom var
* improve footer spacing
* add headings to range page
* uncomment form range css
* Rename .custom-range to .form-range
* Drop unused docs var
* Uncomment the comment
* Remove unused variable
* Fix radio image sizing
* Reboot update: reset horizontal ul and ol padding
* de-dupe IDs
* tweak toc styles
* nvm, fix dropdown versions stuff
* remove sidebar nav toggle for now
* broken html
* fix more broken html, move css
* scss linting
* comment out broken helper docs
* scope styles
* scope styles
* Fixes #25540 and fixes #26407 for v5 only
* Update sidebar once more
* Match new sidenav order
* fix syntax error
* Rename custom-file to form-file, update paths, update migration docs for previous changes in #28696
* rename back
* fix size and alignment
* rename that back too
2019-07-12 17:52:33 -04:00
|
|
|
.form-select {
|
2019-04-25 10:01:50 -04:00
|
|
|
@include form-validation-state-selector($state) {
|
2017-06-10 19:30:26 -04:00
|
|
|
border-color: $color;
|
|
|
|
|
2018-07-08 18:31:18 -04:00
|
|
|
@if $enable-validation-icons {
|
2021-04-09 10:21:08 -04:00
|
|
|
&:not([multiple]):not([size]),
|
|
|
|
&:not([multiple])[size="1"] {
|
|
|
|
padding-right: $form-select-feedback-icon-padding-end;
|
|
|
|
background-image: escape-svg($form-select-indicator), escape-svg($icon);
|
|
|
|
background-position: $form-select-bg-position, $form-select-feedback-icon-position;
|
|
|
|
background-size: $form-select-bg-size, $form-select-feedback-icon-size;
|
2021-03-19 16:52:58 -04:00
|
|
|
}
|
2018-07-08 18:31:18 -04:00
|
|
|
}
|
|
|
|
|
2017-06-10 19:30:26 -04:00
|
|
|
&:focus {
|
2017-11-06 15:04:56 -05:00
|
|
|
border-color: $color;
|
2020-12-17 00:07:48 -05:00
|
|
|
box-shadow: $focus-box-shadow;
|
2017-06-10 19:30:26 -04:00
|
|
|
}
|
2018-04-24 00:54:40 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-06-10 19:30:26 -04:00
|
|
|
.form-check-input {
|
2019-04-25 10:01:50 -04:00
|
|
|
@include form-validation-state-selector($state) {
|
v5: Forms update (#28450)
* Initial spike of consolidated form checks
* Stub out forms rearrangement
- Prepping to drop non-custom file and range inputs
- Prepping to merge custom and native checks and radios (with switches)
- Prepping to merge custom select with form select
- Moving docs arround so forms has it's own area given volume of CSS
* Move input group Sass file to forms subdir
* Start to split and move the docs around
* Simpler imports
* Copyediting
* delete overview file
* Remove commented out code
* remove the custom-forms import
* rewrite flex-check as form-check, replace all custom properties
* Remove old forms doc
* stub out new subpage link section
* update migration guide
* Update nav, forms overview in page nav, and descriptions
* fix check bg position
* fix margin-top calculation
* rename .custom-select to .form-select
* Update validation styles for new checks
* add some vertical margin, fix inline checks
* fix docs examples
* better way to do this contents stuff, redo the toc while i'm at it
* page restyle for docs while here
* un-callout that, edit text
* redo padding on toc
* fix toc
* start to cleanup checks docs
* Rewrite Markdown tables into HTML
* Redesign tables, redo their docs
* Replace Open Iconic icons with custom Bootstrap icons
* Redesign the docs navbar, add a subheader, redo the sidebar
* Redesign docs homepage a bit
* Simplify table style overrides for docs tables
* Simplify docs typography for page titles and reading line length
* Stub out icons page
* Part of sidebar update, remove migration from nav.yml
* Move toc CSS to separate partial
* Change appearance of overview page
* fix sidebar arrow direction
* Add footer to docs layout
* Update descriptions
* Drop the .form-group class for margin utilities
* Remove lingering form-group-margin-bottom var
* improve footer spacing
* add headings to range page
* uncomment form range css
* Rename .custom-range to .form-range
* Drop unused docs var
* Uncomment the comment
* Remove unused variable
* Fix radio image sizing
* Reboot update: reset horizontal ul and ol padding
* de-dupe IDs
* tweak toc styles
* nvm, fix dropdown versions stuff
* remove sidebar nav toggle for now
* broken html
* fix more broken html, move css
* scss linting
* comment out broken helper docs
* scope styles
* scope styles
* Fixes #25540 and fixes #26407 for v5 only
* Update sidebar once more
* Match new sidenav order
* fix syntax error
* Rename custom-file to form-file, update paths, update migration docs for previous changes in #28696
* rename back
* fix size and alignment
* rename that back too
2019-07-12 17:52:33 -04:00
|
|
|
border-color: $color;
|
|
|
|
|
|
|
|
&:checked {
|
2020-04-14 10:28:20 -04:00
|
|
|
background-color: $color;
|
2017-06-10 19:30:26 -04:00
|
|
|
}
|
2018-01-05 13:55:13 -05:00
|
|
|
|
v5: Forms update (#28450)
* Initial spike of consolidated form checks
* Stub out forms rearrangement
- Prepping to drop non-custom file and range inputs
- Prepping to merge custom and native checks and radios (with switches)
- Prepping to merge custom select with form select
- Moving docs arround so forms has it's own area given volume of CSS
* Move input group Sass file to forms subdir
* Start to split and move the docs around
* Simpler imports
* Copyediting
* delete overview file
* Remove commented out code
* remove the custom-forms import
* rewrite flex-check as form-check, replace all custom properties
* Remove old forms doc
* stub out new subpage link section
* update migration guide
* Update nav, forms overview in page nav, and descriptions
* fix check bg position
* fix margin-top calculation
* rename .custom-select to .form-select
* Update validation styles for new checks
* add some vertical margin, fix inline checks
* fix docs examples
* better way to do this contents stuff, redo the toc while i'm at it
* page restyle for docs while here
* un-callout that, edit text
* redo padding on toc
* fix toc
* start to cleanup checks docs
* Rewrite Markdown tables into HTML
* Redesign tables, redo their docs
* Replace Open Iconic icons with custom Bootstrap icons
* Redesign the docs navbar, add a subheader, redo the sidebar
* Redesign docs homepage a bit
* Simplify table style overrides for docs tables
* Simplify docs typography for page titles and reading line length
* Stub out icons page
* Part of sidebar update, remove migration from nav.yml
* Move toc CSS to separate partial
* Change appearance of overview page
* fix sidebar arrow direction
* Add footer to docs layout
* Update descriptions
* Drop the .form-group class for margin utilities
* Remove lingering form-group-margin-bottom var
* improve footer spacing
* add headings to range page
* uncomment form range css
* Rename .custom-range to .form-range
* Drop unused docs var
* Uncomment the comment
* Remove unused variable
* Fix radio image sizing
* Reboot update: reset horizontal ul and ol padding
* de-dupe IDs
* tweak toc styles
* nvm, fix dropdown versions stuff
* remove sidebar nav toggle for now
* broken html
* fix more broken html, move css
* scss linting
* comment out broken helper docs
* scope styles
* scope styles
* Fixes #25540 and fixes #26407 for v5 only
* Update sidebar once more
* Match new sidenav order
* fix syntax error
* Rename custom-file to form-file, update paths, update migration docs for previous changes in #28696
* rename back
* fix size and alignment
* rename that back too
2019-07-12 17:52:33 -04:00
|
|
|
&:focus {
|
2020-12-17 00:07:48 -05:00
|
|
|
box-shadow: $focus-box-shadow;
|
2018-01-05 13:55:13 -05:00
|
|
|
}
|
2017-06-10 19:30:26 -04:00
|
|
|
|
v5: Forms update (#28450)
* Initial spike of consolidated form checks
* Stub out forms rearrangement
- Prepping to drop non-custom file and range inputs
- Prepping to merge custom and native checks and radios (with switches)
- Prepping to merge custom select with form select
- Moving docs arround so forms has it's own area given volume of CSS
* Move input group Sass file to forms subdir
* Start to split and move the docs around
* Simpler imports
* Copyediting
* delete overview file
* Remove commented out code
* remove the custom-forms import
* rewrite flex-check as form-check, replace all custom properties
* Remove old forms doc
* stub out new subpage link section
* update migration guide
* Update nav, forms overview in page nav, and descriptions
* fix check bg position
* fix margin-top calculation
* rename .custom-select to .form-select
* Update validation styles for new checks
* add some vertical margin, fix inline checks
* fix docs examples
* better way to do this contents stuff, redo the toc while i'm at it
* page restyle for docs while here
* un-callout that, edit text
* redo padding on toc
* fix toc
* start to cleanup checks docs
* Rewrite Markdown tables into HTML
* Redesign tables, redo their docs
* Replace Open Iconic icons with custom Bootstrap icons
* Redesign the docs navbar, add a subheader, redo the sidebar
* Redesign docs homepage a bit
* Simplify table style overrides for docs tables
* Simplify docs typography for page titles and reading line length
* Stub out icons page
* Part of sidebar update, remove migration from nav.yml
* Move toc CSS to separate partial
* Change appearance of overview page
* fix sidebar arrow direction
* Add footer to docs layout
* Update descriptions
* Drop the .form-group class for margin utilities
* Remove lingering form-group-margin-bottom var
* improve footer spacing
* add headings to range page
* uncomment form range css
* Rename .custom-range to .form-range
* Drop unused docs var
* Uncomment the comment
* Remove unused variable
* Fix radio image sizing
* Reboot update: reset horizontal ul and ol padding
* de-dupe IDs
* tweak toc styles
* nvm, fix dropdown versions stuff
* remove sidebar nav toggle for now
* broken html
* fix more broken html, move css
* scss linting
* comment out broken helper docs
* scope styles
* scope styles
* Fixes #25540 and fixes #26407 for v5 only
* Update sidebar once more
* Match new sidenav order
* fix syntax error
* Rename custom-file to form-file, update paths, update migration docs for previous changes in #28696
* rename back
* fix size and alignment
* rename that back too
2019-07-12 17:52:33 -04:00
|
|
|
~ .form-check-label {
|
2017-06-10 19:30:26 -04:00
|
|
|
color: $color;
|
|
|
|
}
|
v5: Forms update (#28450)
* Initial spike of consolidated form checks
* Stub out forms rearrangement
- Prepping to drop non-custom file and range inputs
- Prepping to merge custom and native checks and radios (with switches)
- Prepping to merge custom select with form select
- Moving docs arround so forms has it's own area given volume of CSS
* Move input group Sass file to forms subdir
* Start to split and move the docs around
* Simpler imports
* Copyediting
* delete overview file
* Remove commented out code
* remove the custom-forms import
* rewrite flex-check as form-check, replace all custom properties
* Remove old forms doc
* stub out new subpage link section
* update migration guide
* Update nav, forms overview in page nav, and descriptions
* fix check bg position
* fix margin-top calculation
* rename .custom-select to .form-select
* Update validation styles for new checks
* add some vertical margin, fix inline checks
* fix docs examples
* better way to do this contents stuff, redo the toc while i'm at it
* page restyle for docs while here
* un-callout that, edit text
* redo padding on toc
* fix toc
* start to cleanup checks docs
* Rewrite Markdown tables into HTML
* Redesign tables, redo their docs
* Replace Open Iconic icons with custom Bootstrap icons
* Redesign the docs navbar, add a subheader, redo the sidebar
* Redesign docs homepage a bit
* Simplify table style overrides for docs tables
* Simplify docs typography for page titles and reading line length
* Stub out icons page
* Part of sidebar update, remove migration from nav.yml
* Move toc CSS to separate partial
* Change appearance of overview page
* fix sidebar arrow direction
* Add footer to docs layout
* Update descriptions
* Drop the .form-group class for margin utilities
* Remove lingering form-group-margin-bottom var
* improve footer spacing
* add headings to range page
* uncomment form range css
* Rename .custom-range to .form-range
* Drop unused docs var
* Uncomment the comment
* Remove unused variable
* Fix radio image sizing
* Reboot update: reset horizontal ul and ol padding
* de-dupe IDs
* tweak toc styles
* nvm, fix dropdown versions stuff
* remove sidebar nav toggle for now
* broken html
* fix more broken html, move css
* scss linting
* comment out broken helper docs
* scope styles
* scope styles
* Fixes #25540 and fixes #26407 for v5 only
* Update sidebar once more
* Match new sidenav order
* fix syntax error
* Rename custom-file to form-file, update paths, update migration docs for previous changes in #28696
* rename back
* fix size and alignment
* rename that back too
2019-07-12 17:52:33 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
.form-check-inline .form-check-input {
|
|
|
|
~ .#{$state}-feedback {
|
|
|
|
margin-left: .5em;
|
2017-06-10 19:30:26 -04:00
|
|
|
}
|
|
|
|
}
|
2021-02-26 04:10:02 -05:00
|
|
|
|
|
|
|
.input-group .form-control,
|
|
|
|
.input-group .form-select {
|
|
|
|
@include form-validation-state-selector($state) {
|
2021-05-13 01:39:01 -04:00
|
|
|
@if $state == "valid" {
|
|
|
|
z-index: 1;
|
|
|
|
} @else if $state == "invalid" {
|
|
|
|
z-index: 2;
|
|
|
|
}
|
|
|
|
&:focus {
|
|
|
|
z-index: 3;
|
|
|
|
}
|
2021-02-26 04:10:02 -05:00
|
|
|
}
|
|
|
|
}
|
2017-06-10 19:30:26 -04:00
|
|
|
}
|
2021-02-10 22:29:59 -05:00
|
|
|
// scss-docs-end form-validation-mixins
|