]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Another pass at fixing floating labels disabled colors (#38313)
authorMark Otto <markd.otto@gmail.com>
Wed, 29 Mar 2023 17:46:09 +0000 (12:46 -0500)
committerGitHub <noreply@github.com>
Wed, 29 Mar 2023 17:46:09 +0000 (13:46 -0400)
* Another pass at fixing floating labels disabled colors

* Fix height for textareas

* Fix disabled background

* Move from full width to an inline-block-ish approach

---------

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
scss/_variables.scss
scss/forms/_floating-labels.scss

index eed9a13535550e66c0480943a6945852fd316a26..e311bb0ef2bc887c6f634d7a46cf0a994b71a225 100644 (file)
@@ -1068,7 +1068,7 @@ $form-floating-padding-x:               $input-padding-x !default;
 $form-floating-padding-y:               1rem !default;
 $form-floating-input-padding-t:         1.625rem !default;
 $form-floating-input-padding-b:         .625rem !default;
-$form-floating-label-height:            1.875em !default;
+$form-floating-label-height:            1.5em !default;
 $form-floating-label-opacity:           .65 !default;
 $form-floating-label-transform:         scale(.85) translateY(-.5rem) translateX(.15rem) !default;
 $form-floating-label-disabled-color:    $gray-600 !default;
index acae3fd684bc7ee570b9f0844d2def575647b531..7d04723e3373ae135c4ad4796395b42d37d690dc 100644 (file)
@@ -1,17 +1,6 @@
 .form-floating {
   position: relative;
 
-  &:not(.form-control:disabled)::before {
-    position: absolute;
-    top: $input-border-width;
-    left: $input-border-width;
-    width: subtract(100%, add($input-height-inner-quarter, $input-height-inner-half));
-    height: $form-floating-label-height;
-    content: "";
-    background-color: $input-bg;
-    @include border-radius($input-border-radius);
-  }
-
   > .form-control,
   > .form-control-plaintext,
   > .form-select {
@@ -23,7 +12,7 @@
     position: absolute;
     top: 0;
     left: 0;
-    width: 100%;
+    z-index: 2;
     height: 100%; // allow textareas
     padding: $form-floating-padding-y $form-floating-padding-x;
     overflow: hidden;
   > .form-control-plaintext,
   > .form-select {
     ~ label {
-      opacity: $form-floating-label-opacity;
+      color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
       transform: $form-floating-label-transform;
+
+      &::after {
+        position: absolute;
+        inset: $form-floating-padding-y ($form-floating-padding-x * .5);
+        z-index: -1;
+        height: $form-floating-label-height;
+        content: "";
+        background-color: $input-bg;
+        @include border-radius($input-border-radius);
+      }
     }
   }
   // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
   > .form-control:-webkit-autofill {
     ~ label {
-      opacity: $form-floating-label-opacity;
+      color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
       transform: $form-floating-label-transform;
     }
   }
     }
   }
 
-  > .form-control:disabled ~ label {
+  > :disabled ~ label {
     color: $form-floating-label-disabled-color;
+
+    &::after {
+      background-color: $input-disabled-bg;
+    }
   }
 }