TelegramPWA/src/components/ui/ProgressSpinner.scss
2023-04-25 17:27:14 +04:00

88 lines
2.5 KiB
SCSS

.ProgressSpinner {
position: relative;
z-index: 1;
width: 3.375rem;
height: 3.375rem;
background: rgba(0, 0, 0, 0.25)
url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjcxNyA5Ljc1TDE4LjMgMi4xNjdhLjY4NC42ODQgMCAxMC0uOTY3LS45NjdMOS43NSA4Ljc4MyAyLjE2NyAxLjJhLjY4NC42ODQgMCAxMC0uOTY3Ljk2N0w4Ljc4MyA5Ljc1IDEuMiAxNy4zMzNhLjY4NC42ODQgMCAxMC45NjcuOTY3bDcuNTgzLTcuNTgzIDcuNTgzIDcuNTgzYS42ODEuNjgxIDAgMDAuOTY3IDAgLjY4NC42ODQgMCAwMDAtLjk2N0wxMC43MTcgOS43NXoiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9Ii43NSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==)
no-repeat 49% 49%;
border-radius: 50%;
cursor: var(--custom-cursor, pointer);
&.no-cross {
background: transparent !important;
pointer-events: none;
}
&.square {
background-image: none;
&::after {
content: "";
position: absolute;
width: 0.8125rem;
height: 0.8125rem;
border-radius: 0.125rem;
background-color: #fff;
left: 50%;
top: 50%;
transform: translate3d(-50%, -50%, 0);
}
}
&.size-s,
&.size-m {
width: auto;
height: auto;
/* stylelint-disable-next-line scss/operator-no-unspaced */
background: transparent
url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguMjE4IDcuNWw1LjYzMy01LjYzM2EuNTA4LjUwOCAwIDEwLS43MTgtLjcxOEw3LjUgNi43ODIgMS44NjcgMS4xNDlhLjUwOC41MDggMCAxMC0uNzE4LjcxOEw2Ljc4MiA3LjVsLTUuNjMzIDUuNjMzYS41MDguNTA4IDAgMTAuNzE4LjcxOEw3LjUgOC4yMThsNS42MzMgNS42MzNhLjUwNi41MDYgMCAwMC43MTggMCAuNTA4LjUwOCAwIDAwMC0uNzE4TDguMjE4IDcuNXoiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjRkZGIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+)
no-repeat 49% 49%;
&.square {
background-image: none;
width: 0.75rem;
height: 0.75rem;
}
}
&.size-xl {
width: 3.25rem;
height: 3.25rem;
svg {
width: 3rem;
height: 3rem;
margin: 0.125rem;
}
circle {
stroke-width: 3px;
}
}
&.transparent {
background-color: transparent !important;
}
svg {
display: block;
transform: rotate(-90deg);
transform-origin: 50% 50%;
animation: 4s linear 0s infinite ProgressSpinnerAnimation;
}
circle {
transition: stroke-dashoffset 0.5s;
}
}
@keyframes ProgressSpinnerAnimation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}