@use "@styles/abstracts/functions" as fun; .btn { display: block; margin: auto; border: none; font-size: var(--font-size-md); } .primary { padding: var(--spacing-xs) var(--spacing-md); background: var(--color-primary); border-radius: fun.convert-px(3); box-shadow: fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-primary-dark); color: var(--color-fg-inverted); font-weight: 600; text-shadow: fun.convert-px(2) fun.convert-px(2) 0 var(--color-shadow); transition: all 0.3s ease-in-out 0s; &:hover, &:focus { background: var(--color-primary-light); box-shadow: fun.convert-px(7) fun.convert-px(7) 0 0 var(--color-primary-dark); transform: translateX(#{fun.convert-px(-4)}) translateY(#{fun.convert-px(-4)}); } &:active { background: var(--color-primary-dark); box-shadow: 0 0 0 0 var(--color-primary-dark); transform: translateX(#{fun.convert-px(3)}) translateY(#{fun.convert-px(3)}); } } .secondary { padding: var(--spacing-2xs) var(--spacing-md); background: var(--color-bg); border: fun.convert-px(5) solid var(--color-primary); border-radius: fun.convert-px(25); box-shadow: fun.convert-px(1) fun.convert-px(1) fun.convert-px(1) var(--color-shadow-light), fun.convert-px(1) fun.convert-px(2) fun.convert-px(2) fun.convert-px(-2) var(--color-shadow-light), fun.convert-px(3) fun.convert-px(4) fun.convert-px(5) fun.convert-px(-4) var(--color-shadow-light); color: var(--color-primary); font-weight: 500; transition: all 0.35s ease-in-out 0s; &:disabled { color: var(--color-fg-light); border-color: var(--color-border); cursor: wait; } &:not(:disabled) { &:hover, &:focus { transform: translateX(#{fun.convert-px(-3)}) translateY(#{fun.convert-px(-6)}); box-shadow: fun.convert-px(1) fun.convert-px(1) fun.convert-px(1) var(--color-shadow-lighter), fun.convert-px(1) fun.convert-px(2) fun.convert-px(2) fun.convert-px(-2) var(--color-shadow-lighter), fun.convert-px(3) fun.convert-px(4) fun.convert-px(5) fun.convert-px(-4) var(--color-shadow-lighter), fun.convert-px(7) fun.convert-px(10) fun.convert-px(12) fun.convert-px(-3) var(--color-shadow-lighter); } &:focus { text-decoration: underline var(--color-primary) fun.convert-px(3); } &:active { text-decoration: none; transform: translateY(#{fun.convert-px(2)}); box-shadow: 0 0 0 0 var(--color-shadow-light); } } } .search { display: block; width: var(--btn-size); height: var(--btn-size); padding: 0; background: none; border: none; font-size: var(--font-size-md); } .icon { display: block; width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transform: translate3d(0, 0, 0); transition: all 0.5s ease-in-out 0s; } .front, .back { display: flex; place-content: center; width: var(--btn-size); height: var(--btn-size); position: absolute; top: 0; right: 0; background: var(--color-bg); transition: all 0.6s ease-in 0s; backface-visibility: hidden; } .front { transform: scale(1); z-index: 20; } .back { transform: scale(0.2) rotateY(180deg); z-index: 10; } .search--opened { .icon { transform: rotateY(180deg); } .front { transform: scale(0.2); } .back { transform: scale(1) rotateY(180deg); } }