loading-spinner.less

176 lines | 5.377 kB Blame History Raw Download
loading-spinner {
    display: block;
    position: relative;
    margin: 0 auto;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    opacity: 0.3;
}

.infinity-1 {
    width:90px;
    height:14px;
    background: 
      radial-gradient(circle 7px at bottom, #fff 92%,#0000 ) 0 0,
      radial-gradient(circle 7px at top   , #fff 92%,#0000 ) 0 100%;
    background-size:calc(100%/4) 50%;
    background-repeat:repeat-x;
    animation:i1 1s infinite;
  }
  @keyframes i1 {
      80%,100% {background-position: calc(100%/3) 0,calc(100%/-3) 100%}
  }
  
  .infinity-2 {
    width:90px;
    height:14px;
    background: 
      conic-gradient(from 135deg at top   ,#fff 90deg,#0000 0) 0 0,
      conic-gradient(from -45deg at bottom,#fff 90deg,#0000 0) 0 100%;
    background-size:calc(100%/4) 50%;
    background-repeat:repeat-x;
    animation:i2 1s infinite;
  }
  @keyframes i2 {
      80%,100% {background-position: calc(100%/3) 0,calc(100%/-3) 100%}
  }
  
  .infinity-3 {
    width:90px;
    height:14px;
    background: 
      radial-gradient(circle 7px at bottom, #fff 92%,#0000 ) calc(100%/2) 0,
      radial-gradient(circle 7px at top   , #fff 92%,#0000 ) calc(100%/2) 100%,
      conic-gradient(from 135deg at top   ,#fff 90deg,#0000 0) 0 0,
      conic-gradient(from -45deg at bottom,#fff 90deg,#0000 0) 0 100%;
    background-size:calc(100%/2) 50%;
    background-repeat:repeat-x;
    animation:i3 3s infinite;
  }
  @keyframes i3 {
      0%  {background-position: calc(100%/2) 0,calc(100%/2) 100%,0 0, 0 100%}
      20%,
      30% {background-position: calc(3*100%/4) 0,calc(100%/4) 100%,calc(100%/4) 0, calc(100%/-4) 100%}
      45%,
      55% {background-position: 100% 0,0 100%,calc(100%/2) 0, calc(100%/-2) 100%}
      70%,
      80% {background-position: calc(5*100%/4) 0,calc(100%/-4) 100%,calc(3*100%/4) 0, calc(3*100%/-4) 100%}
      100%{background-position: calc(3*100%/2) 0,calc(100%/-2) 100%,100% 0, -100% 100%}
  }
  
  .infinity-4 {
    width:90px;
    height:14px;
    background: 
      radial-gradient(circle closest-side, #fff 92%,#0000 ) calc(100%/-4) 0,
      radial-gradient(circle closest-side, #fff 92%,#0000 ) calc(100%/4)  0;
    background-size:calc(100%/2) 100%;
    animation:i4 1.5s infinite;
  }
  @keyframes i4 {
      0%   {background-position: calc(100%/-4) 0    ,calc(100%/4) 0}
      50%  {background-position: calc(100%/-4) -14px,calc(100%/4) 14px}
      100% {background-position: calc(100%/4)  -14px,calc(3*100%/4) 14px}
  }
  
  .infinity-5 {
    width:60px;
    aspect-ratio:1;
    --g: conic-gradient(from -90deg at 10px 10px,#fff 90deg,#0000 0);
    background: 
      var(--g),
      var(--g) 10px 10px,
      var(--g) 20px 20px;
    background-size: 50% 50%;
    animation:i5 1s infinite;
  }
  @keyframes i5 {
      90%,100%  {background-position: -30px 30px,-20px 40px,-10px 50px} 
  }
  
  .infinity-6 {
    width:60px;
    aspect-ratio:1;
    --g: conic-gradient(from -90deg at 10px 10px,#fff 90deg,#0000 0);
    background: var(--g), var(--g), var(--g);
    background-size: 50% 50%;
    animation:i6 1s infinite;
  }
  @keyframes i6 {
     0%   {background-position:0    0   ,10px 10px,20px 20px} 
     50%  {background-position:0    20px,10px 10px,20px 0   } 
     100% {background-position:20px 20px,10px 10px,0    0   } 
  }
  
  .infinity-7 {
    width:60px;
    aspect-ratio:1;
    --g: conic-gradient(from -90deg at 10px 10px,#fff 90deg,#0000 0);
    background: var(--g), var(--g), var(--g);
    background-size: 50% 50%;
    animation:i7 1s infinite;
  }
  @keyframes i7 {
     0%   {background-position:0     0, 10px 10px, 20px 20px}
     33%  {background-position:-30px 0, 10px 10px, 20px 20px}
     66%  {background-position:-30px 0,-20px 10px, 20px 20px}
     100% {background-position:-30px 0,-20px 10px,-10px 20px}
  }
  
  .infinity-8 {
    width:60px;
    aspect-ratio:1;
    --g: conic-gradient(from -90deg at 10px 10px,#fff 90deg,#0000 0);
    background: var(--g), var(--g), var(--g);
    background-size: 50% 50%;
    animation:i8 1s infinite;
  }
  @keyframes i8 {
     0%   {background-position:0     0, 10px 10px, 20px 20px}
     33%  {background-position:-30px 0, 10px 10px, 20px 20px}
     66%  {background-position:-30px 0, 10px 40px, 20px 20px}
     100% {background-position:-30px 0, 10px 40px, 50px 20px}
  }
  
  .infinity-9 {
    width:60px;
    aspect-ratio:1;
    --g: conic-gradient(from -90deg at 10px 10px,#fff 90deg,#0000 0);
    background: var(--g), var(--g), var(--g);
    background-size: 50% 50%;
    animation:i9 1s infinite;
  }
  @keyframes i9 {
     0%   {background-position:0     0, 10px 10px, 20px 20px}
     33%  {background-position:10px  10px}
     66%  {background-position:0    20px,10px 10px,20px 0   }
     100% {background-position:0     0, 10px 10px, 20px 20px}
  }
  
  .infinity-10 {
    width:60px;
    display:flex;
    align-items:flex-start;
    aspect-ratio:1;
  }
  .infinity-10:before,
  .infinity-10:after {
    content:"";
    flex:1;
    aspect-ratio:1;
    --g: conic-gradient(from -90deg at 10px 10px,#fff 90deg,#0000 0);
    background: var(--g), var(--g), var(--g);
    filter:drop-shadow(30px 30px 0 #fff);
    animation:i10 1s infinite;
  }
  .infinity-10:after {
    transform:scaleX(-1);
  }
  @keyframes i10 {
     0%   {background-position:0     0, 10px 10px, 20px 20px}
     33%  {background-position:10px  10px}
     66%  {background-position:0    20px,10px 10px,20px 0   }
     100% {background-position:0     0, 10px 10px, 20px 20px}
  }