_floating-labels.scss 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. .form-floating {
  2. position: relative;
  3. > .form-control,
  4. > .form-select {
  5. height: $form-floating-height;
  6. line-height: $form-floating-line-height;
  7. }
  8. > label {
  9. position: absolute;
  10. top: 0;
  11. left: 0;
  12. height: 100%; // allow textareas
  13. padding: $form-floating-padding-y $form-floating-padding-x;
  14. pointer-events: none;
  15. border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
  16. color: $input-border-color;
  17. transform-origin: 0 0;
  18. @include transition($form-floating-transition);
  19. }
  20. // stylelint-disable no-duplicate-selectors
  21. > .form-control {
  22. padding: $form-floating-padding-y $form-floating-padding-x;
  23. &::placeholder {
  24. color: transparent;
  25. }
  26. &:focus,
  27. &:not(:placeholder-shown) {
  28. padding-top: $form-floating-input-padding-t;
  29. padding-bottom: $form-floating-input-padding-b;
  30. }
  31. // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
  32. &:-webkit-autofill {
  33. padding-top: $form-floating-input-padding-t;
  34. padding-bottom: $form-floating-input-padding-b;
  35. }
  36. }
  37. > .form-select {
  38. padding-top: $form-floating-input-padding-t;
  39. padding-bottom: $form-floating-input-padding-b;
  40. }
  41. > .form-control:focus,
  42. > .form-control:not(:placeholder-shown),
  43. > .form-select {
  44. ~ label {
  45. opacity: $form-floating-label-opacity;
  46. transform: $form-floating-label-transform;
  47. }
  48. }
  49. // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
  50. > .form-control:-webkit-autofill {
  51. ~ label {
  52. opacity: $form-floating-label-opacity;
  53. transform: $form-floating-label-transform;
  54. }
  55. }
  56. // stylelint-enable no-duplicate-selectors
  57. }