UNPKG

react-ui-component

Version:
228 lines (216 loc) 5.86 kB
@import url('meta'); .__loaderSize(@size){ width: @size; height: @size; border-radius: @size / 2; @_border_width: ceil(@size * 0.08); border-width: @_border_width; &:before { border-radius: @size / 2; border-width: @_border_width; width: @size; height: @size; left: @_border_width * -1; top: @_border_width * -1; } } .loader, .loader-wrap>.loader { /*shape size*/ .__loaderSize(@padding * 2.4); &.small {.__loaderSize(@padding * 1.2) } &.large {.__loaderSize(@padding * 3.6) } display: block; position: relative; border-style: solid; border-color: rgba(150,150,150,.2); &:before { content: ''; margin: 0; padding: 0; position: absolute; border-style: solid; border-color: transparent; border-top-color: @gray_a; -webkit-animation: .7s linear infinite spin_loader; -moz-animation: .7s linear infinite spin_loader; -o-animation: .7s linear infinite spin_loader; animation: .7s linear infinite spin_loader; } &.center { margin: auto; } &.inverted { border-color: rgba(200,200,200,.2); &:before { border-top-color: @white; } } } .bounce.loader, .loader-wrap>.bounce.loader { width: auto; height: auto; border: 0; &:before, &:after { content: none; } &.center { text-align: center; } /*shape size*/ &.small>.bounce { .__loaderSize(@padding) } &.large>.bounce { .__loaderSize(@padding * 3) } &>.bounce { .__loaderSize(@padding * 2); &+.bounce { margin-left: .1em; } display: inline-block; -webkit-animation: spin_bounce 2s infinite ease-in-out both; -moz-animation: spin_bounce 2s infinite ease-in-out both; -o-animation: spin_bounce 2s infinite ease-in-out both; animation: spin_bounce 2s infinite ease-in-out both; background: @blue; &:first-child { background-color: @red; -webkit-animation-delay: -0.4s; -o-animation-delay: -0.4s; animation-delay: -0.4s; } &:nth-child(2) { -webkit-animation-delay: -0.2s; -o-animation-delay: -0.2s; animation-delay: -0.2s; background-color: @yellow; } } } .__spinnerSize(@size){ width: @size; height: @size; border-radius: @size / 2; @_border_width: ceil(@size * 0.08); @_half_offset: (@size + @_border_width * 2) * 0.5; border: @_border_width solid @gray_c; &:before, &:after { width: @_half_offset; height: @_half_offset * 2; left: @_border_width * -2; top: @_border_width * -2; } &:before { border-radius: @size 0 0 @size; -webkit-transform-origin: @_half_offset @_half_offset; -ms-transform-origin: @_half_offset @_half_offset; -o-transform-origin: @_half_offset @_half_offset; transform-origin: @_half_offset @_half_offset; } &:after { left: @size * 0.5 - @_border_width; border-radius: 0 @size @size 0; } } .google.spinner, .loader-wrap>.google.spinner { .__spinnerSize(@padding * 2.4); position: relative; background-color: @white; &.small { .__spinnerSize(@padding * 1.2); } &.large { .__spinnerSize(@padding * 4.8); } &.center { margin: auto; } &:before, &:after { content: ""; position: absolute; background-color: inherit; -webkit-animation: spin_loader 1.6s infinite ease-in-out; -o-animation: spin_loader 1.6s infinite ease-in-out; animation: spin_loader 1.6s infinite ease-in-out; } &:after { -webkit-transform-origin: 0; -ms-transform-origin: 0; -o-transform-origin: 0; transform-origin: 0; -webkit-animation-delay: -1.2s; -o-animation-delay: -1.2s; animation-delay: -1.2s; } } .loader-wrap { position: relative; min-height: 240px; &.full { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 100; } &.inverted { background: rgba(0,0,0,.8); >.loader { border-color: rgba(200,200,200,.2); &:before { border-top-color: @white; } } >.google.spinner { background: initial; border-color: @white; &:after, &:before { background: #333; } } } >.loader, >.google.spinner { margin: auto; position: absolute; left: 50%; top: 50%; transform: translate3d(-50%,-50%,0); &.bounce { text-align: center; } } } @-webkit-keyframes spin_loader { from {-webkit-transform: rotate(0);} to {-webkit-transform: rotate(359deg);} } @-moz-keyframes spin_loader { from {-ms-transform: rotate(0);} to {-ms-transform: rotate(359deg);} } @-o-keyframes spin_loader { from {-o-transform: rotate(0);} to {-o-transform: rotate(359deg);} } @keyframes spin_loader { from {transform: rotate(0);} to {transform: rotate(359deg);} } @-webkit-keyframes spin_bounce { 0%, 80%, 100% {-webkit-transform: scale(0); } 40% {-webkit-transform: scale(1);} } @-moz-keyframes spin_bounce { 0%, 80%, 100% {-ms-transform: scale(0); } 40% {-ms-transform: scale(1); } } @-o-keyframes spin_bounce { 0%, 80%, 100% {-o-transform: scale(0); } 40% {-o-transform: scale(1); } } @keyframes spin_bounce { 0%, 80%, 100% {transform: scale(0); } 40% {transform: scale(1); } }