Files
main_frontend/src/shared/ui/Button/Button.module.scss
T
2026-04-04 14:51:40 +03:00

59 lines
1.4 KiB
SCSS

.button {
font-weight: 600;
letter-spacing: -0.01em;
transition: transform var(--duration-fast) var(--ease-out),
box-shadow var(--duration-normal) var(--ease-out),
filter var(--duration-normal) var(--ease-out),
opacity var(--duration-normal) var(--ease-out),
background var(--duration-normal) var(--ease-out);
&.variant-primary, &.variant-danger {
background-image: linear-gradient(180deg, hsla(0,0%,100%,0.12) 0%, transparent 100%);
box-shadow: inset 0 1px 1px hsla(0,0%,100%,0.2), 0 1px 2px rgba(0,0,0,0.1);
border-top: 1px solid hsla(0,0%,100%,0.1);
&:hover:not(:disabled) {
filter: brightness(1.08);
box-shadow: inset 0 1px 1px hsla(0,0%,100%,0.2), 0 4px 14px hsla(262, 75%, 48%, 0.35);
}
&:active:not(:disabled) {
transform: scale(0.96);
filter: brightness(0.95);
box-shadow: inset 0 2px 4px rgba(0,0,0,0.2), 0 1px 2px rgba(0,0,0,0.1);
}
}
&:not(.variant-primary):not(.variant-danger) {
&:hover:not(:disabled) {
filter: brightness(0.95);
}
&:active:not(:disabled) {
transform: scale(0.96);
filter: brightness(0.92);
}
}
&:focus-visible {
outline: none;
box-shadow: var(--focus-ring);
}
}
.loading {
position: relative;
pointer-events: none;
opacity: 0.85;
}
.spinner {
animation: spin 0.8s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}