@@ -369,12 +369,11 @@ export default {
369369 </script >
370370
371371<style lang="scss" scoped>
372+ @use ' ../../assets/input-border.scss' as border ;
372373
373374.input-field {
374375 --input-border-color : var (--color-border-maxcontrast );
375376 --input-border-radius : var (--border-radius-element );
376- // Used e.g. if border width differs between focused and unfocused we need to compensate to prevent jumping
377- --input-border-width-offset : calc (var (--border-width-input-focused , 2px ) - var (--border-width-input , 2px ));
378377 // The padding before the input can start (leading button or border)
379378 --input-padding-start : var (--border-radius-large );
380379 // The padding where the input has to end (trailing button or border)
@@ -408,23 +407,15 @@ export default {
408407
409408 & __main-wrapper {
410409 height : var (--default-clickable-area );
411- padding : var (--border-width-input , 2px );
410+ padding : var (--border-width-input-focused , 2px );
412411 position : relative ;
413-
414- & :not (:has ([disabled ])):has (input :focus ),
415- & :not (:has ([disabled ])):has (input :active ) {
416- padding : 0 ;
417- }
418412 }
419413
420414 & __input {
415+ @include border .inputBorder (' .input-field--dark' , ' .input-field--legacy' , var (--input-border-color ));
421416 background-color : var (--color-main-background );
422417 color : var (--color-main-text );
423- border : none ;
424418 border-radius : var (--input-border-radius );
425- box-shadow :
426- 0 -1px var (--input-border-color ),
427- 0 0 0 1px color-mix (in srgb , var (--input-border-color ), 65% transparent );
428419
429420 cursor : pointer ;
430421 -webkit-appearance : textfield !important ;
@@ -434,11 +425,11 @@ export default {
434425 font-size : var (--default-font-size );
435426 text-overflow : ellipsis ;
436427
428+ padding-block : 0 ;
429+ padding-inline : var (--input-padding-start ) var (--input-padding-end );
437430 height : 100% !important ;
438431 min-height : unset ;
439432 width : 100% ;
440- padding-block : var (--input-border-width-offset );
441- padding-inline : calc (var (--input-padding-start ) + var (--input-border-width-offset )) calc (var (--input-padding-end ) + var (--input-border-width-offset ));
442433
443434 & ::placeholder {
444435 color : var (--color-text-maxcontrast );
@@ -458,17 +449,9 @@ export default {
458449 display : none ;
459450 }
460451
461- & :hover:not ([disabled ]) {
462- box-shadow : 0 0 0 1px var (--input-border-color );;
463- }
464-
465452 & :active:not ([disabled ]),
466453 & :focus:not ([disabled ]) {
467454 --input-border-color : var (--color-main-text );
468- // Reset padding offset when focused
469- --input-border-width-offset : 0px ;
470- border : var (--border-width-input-focused , 2px ) solid var (--input-border-color );
471- box-shadow : 0 0 0 2px var (--color-main-background ) !important ;
472455 }
473456
474457 & :focus + .input-field__label ,
@@ -611,23 +594,5 @@ export default {
611594 }
612595 }
613596 }
614-
615- & --legacy {
616- .input-field__input {
617- box-shadow : 0 0 0 1px var (--input-border-color ) inset ;
618- }
619-
620- .input-field__main-wrapper :hover:not (:has ([disabled ])) {
621- padding : 0 ;
622-
623- .input-field__input {
624- --input-border-color : var (--color-main-text );
625- // Reset padding offset when focused
626- --input-border-width-offset : 0px ;
627- border : var (--border-width-input-focused , 2px ) solid var (--input-border-color );
628- box-shadow : 0 0 0 2px var (--color-main-background ) !important ;
629- }
630- }
631- }
632597}
633598 </style >
0 commit comments