UNPKG

zarm

Version:

基于 React 的移动端UI库

118 lines (113 loc) 2.8 kB
.za-loading { --size: var(--za-loading-size, 24px); --size-large: var(--za-loading-size-large, 36px); --stroke-color: var(--za-loading-stroke-color, #e6e6e6); --stroke-active-color: var(--za-loading-stroke-active-color, var(--za-theme-primary)); --spinner-item-color: var(--za-loading-spinner-item-color, #80858e); --spinner-item-width: var(--za-loading-spinner-item-width, 3px); --spinner-item-height: var(--za-loading-spinner-item-height, 32%); --spinner-item-border-radius: var(--za-loading-spinner-item-border-radius, 1.5px); display: inline-block; position: relative; transform: rotate(-90deg); vertical-align: middle; width: var(--size); height: var(--size); /* sizes */ } .za-loading__stroke { stroke: var(--stroke-color); } .za-loading__line { stroke: var(--stroke-active-color); } .za-loading--circular { display: inline-block; } .za-loading--circular svg { vertical-align: top; animation: za-loading_rotate360 2s linear infinite; } .za-loading--circular circle { stroke-linecap: round; stroke: var(--stroke-active-color); animation: za-loading_rotate-circular 1.5s ease-in-out infinite; } .za-loading--spinner { animation: za-loading_rotate360 0.8s linear infinite; animation-timing-function: steps(8); } .za-loading--spinner div { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .za-loading--spinner div:nth-of-type(1) { transform: rotate(45deg); opacity: 0.125; } .za-loading--spinner div:nth-of-type(2) { transform: rotate(90deg); opacity: 0.25; } .za-loading--spinner div:nth-of-type(3) { transform: rotate(135deg); opacity: 0.375; } .za-loading--spinner div:nth-of-type(4) { transform: rotate(180deg); opacity: 0.5; } .za-loading--spinner div:nth-of-type(5) { transform: rotate(225deg); opacity: 0.625; } .za-loading--spinner div:nth-of-type(6) { transform: rotate(270deg); opacity: 0.75; } .za-loading--spinner div:nth-of-type(7) { transform: rotate(315deg); opacity: 0.875; } .za-loading--spinner div:nth-of-type(8) { transform: rotate(360deg); opacity: 1; } .za-loading--spinner div::before { content: ""; display: block; width: var(--spinner-item-width); height: var(--spinner-item-height); margin: 0 auto; background-color: var(--spinner-item-color); border-radius: var(--spinner-item-border-radius); } .za-loading--lg { width: var(--size-large); height: var(--size-large); } @keyframes za-loading_rotate-circular { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 120, 200; stroke-dashoffset: -60; } 100% { stroke-dasharray: 120, 200; stroke-dashoffset: -180; } } @keyframes za-loading_rotate360 { from { transform: rotate(0); } to { transform: rotate(360deg); } }