@use "../../../../styles/abstracts/functions" as fun; @use "../../../../styles/abstracts/mixins" as mix; .wrapper { display: flex; align-items: center; position: relative; @include mix.media("screen") { @include mix.dimensions("sm") { max-width: 35ch; } } } .btn { align-self: stretch; background: var(--color-bg-tertiary); border: fun.convert-px(2) solid var(--color-border); border-left: none; box-shadow: fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-shadow); transition: all 0.25s linear 0s; &__icon { transform: scale(0.85); transition: all 0.3s ease-in-out 0s; } &:focus { outline: var(--color-primary-light) solid fun.convert-px(3); } &:active { outline: none; } &:hover &, &:focus & { &__icon { transform: scale(0.85) rotate(20deg) translateY(#{fun.convert-px(3)}); } } &:active & { &__icon { transform: scale(0.7); } } } .field { min-width: 0; width: 100%; &:focus-within ~ .btn { background: var(--color-bg); border-color: var(--color-primary); box-shadow: none; transform: translate(fun.convert-px(3), fun.convert-px(3)); transition: all 0.2s ease-in-out 0s, transform 0.3s ease-out 0s; } &:hover:not(:focus-within) ~ .btn { box-shadow: fun.convert-px(5) fun.convert-px(5) 0 fun.convert-px(1) var(--color-shadow); transform: translate(fun.convert-px(-3), fun.convert-px(-3)); } }