UNPKG

@ionic/core

Version:
94 lines (78 loc) 1.93 kB
:host { /** * @prop --color: Color of the spinner */ display: inline-block; position: relative; width: 28px; height: 28px; color: var(--color); user-select: none; } :host(.ion-color) { color: var(--ion-color-base); } svg { left: 0; top: 0; position: absolute; width: 100%; height: 100%; transform: translateZ(0); } :host-context([dir=rtl]) svg { right: 0; } :host(.spinner-lines) line, :host(.spinner-lines-small) line { stroke-width: 4px; stroke-linecap: round; stroke: currentColor; } :host(.spinner-lines) svg, :host(.spinner-lines-small) svg { animation: spinner-fade-out 1s linear infinite; } :host(.spinner-bubbles) svg { animation: spinner-scale-out 1s linear infinite; fill: currentColor; } :host(.spinner-circles) svg { animation: spinner-fade-out 1s linear infinite; fill: currentColor; } :host(.spinner-crescent) circle { fill: transparent; stroke-width: 4px; stroke-dasharray: 128px; stroke-dashoffset: 82px; stroke: currentColor; } :host(.spinner-crescent) svg { animation: spinner-rotate 1s linear infinite; } :host(.spinner-dots) circle { stroke-width: 0; fill: currentColor; } :host(.spinner-dots) svg { transform-origin: center; animation: spinner-dots 1s linear infinite; } :host([dir=rtl].spinner-dots) svg { transform-origin: calc(100% - center); } :host(.spinner-paused) svg { animation-play-state: paused; } @keyframes spinner-fade-out { 0% { opacity: 1; } 100% { opacity: 0; } } @keyframes spinner-scale-out { 0% { transform: scale(1, 1); } 100% { transform: scale(0, 0); } } @keyframes spinner-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes spinner-dots { 0% { transform: scale(1, 1); opacity: .9; } 50% { transform: scale(0.4, 0.4); opacity: .3; } 100% { transform: scale(1, 1); opacity: .9; } }