UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

410 lines (347 loc) 8.09 kB
.k-loader { position: relative; display: inline-block; vertical-align: middle; box-sizing: border-box; border-width: 0; box-shadow: none; // Prevents the inline elements from being displaced. // A good example is the 'pulsing' loader inside a button. line-height: 0; } .k-widget.k-loader { background: none; box-shadow: none; } .k-loader-canvas { position: relative; } // Loader segment .k-loader-segment { position: absolute; display: inline-block; &::after { content: ""; display: block; border-radius: @loader-segment-border-radius; } } // Loader sizes .k-loader-sm { padding: @loader-padding-sm; .k-loader-segment { &::after { width: @loader-segment-size-sm; height: @loader-segment-size-sm; } } } .k-loader-md { padding: @loader-padding-md; .k-loader-segment { &::after { width: @loader-segment-size-md; height: @loader-segment-size-md; } } } .k-loader-lg { padding: @loader-padding-lg; .k-loader-segment { &::after { width: @loader-segment-size-lg; height: @loader-segment-size-lg; } } } // Loader Animation Types .k-loader-pulsing-2 { .k-loader-segment { position: relative; &:nth-child(1) { animation: pulsing-2-first-child 1s ease infinite; } &:nth-child(2) { animation: pulsing-2-second-child 1s ease infinite; } } &.k-loader-sm { .k-loader-segment { &:first-child { margin-right: @loader-pulsing-2-segment-margin-x-sm; } &:last-child { margin-left: @loader-pulsing-2-segment-margin-x-sm; } } } &.k-loader-md { .k-loader-segment { &:first-child { margin-right: @loader-pulsing-2-segment-margin-x-md; } &:last-child { margin-left: @loader-pulsing-2-segment-margin-x-md; } } } &.k-loader-lg { .k-loader-segment { &:first-child { margin-right: @loader-pulsing-2-segment-margin-x-lg; } &:last-child { margin-left: @loader-pulsing-2-segment-margin-x-lg; } } } } .k-loader-spinner-3 { .k-loader-segment { &:nth-child(1) { animation: spinner-3-first-child 2s ease infinite; } &:nth-child(2) { animation: spinner-3-second-child 2s ease infinite; } &:nth-child(3) { animation: spinner-3-third-child 2s ease infinite; } } &.k-loader-sm { .k-loader-canvas { width: @loader-spinner-3-width-sm; height: @loader-spinner-3-height-sm; } } &.k-loader-md { .k-loader-canvas { width: @loader-spinner-3-width-md; height: @loader-spinner-3-height-md; } } &.k-loader-lg { .k-loader-canvas { width: @loader-spinner-3-width-lg; height: @loader-spinner-3-height-lg; } } } .k-loader-spinner-4 { .k-loader-canvas { animation: spinner-4 1.833s ease infinite; } .k-loader-segment { &:nth-child(1) { animation: spinner-4-first-child 1.833s ease infinite; } &:nth-child(2) { animation: spinner-4-second-child 1.833s ease infinite; } &:nth-child(3) { animation: spinner-4-third-child 1.833s ease infinite; } &:nth-child(4) { animation: spinner-4-fourth-child 1.833s ease infinite; } } &.k-loader-sm { .k-loader-canvas { width: @loader-spinner-4-width-sm; height: @loader-spinner-4-height-sm; } } &.k-loader-md { .k-loader-canvas { width: @loader-spinner-4-width-md; height: @loader-spinner-4-height-md; } } &.k-loader-lg { .k-loader-canvas { width: @loader-spinner-4-width-lg; height: @loader-spinner-4-height-lg; } } } // Pulsing 2 @keyframes pulsing-2-first-child { 0% { transform: scale(1); } 50% { transform: scale(1.5); } 100% { transform: scale(1); } } @keyframes pulsing-2-second-child { 0% { transform: scale(1.5); } 50% { transform: scale(1); } 100% { transform: scale(1.5); } } // Spinner 3 @keyframes spinner-3-first-child { 0% { top: 0; left: 50%; transform: translateX(-50%) translateY(0); } 33.3% { top: 100%; left: 0; transform: translateX(0) translateY(-100%); } 66.6% { top: 100%; left: 100%; transform: translateX(-100%) translateY(-100%); } 100% { top: 0; left: 50%; transform: translateX(-50%) translateY(0); } } @keyframes spinner-3-second-child { 0% { top: 100%; left: 0; transform: translateX(0) translateY(-100%); } 33.3% { top: 100%; left: 100%; transform: translateX(-100%) translateY(-100%); } 66.6% { top: 0; left: 50%; transform: translateX(-50%) translateY(0); } 100% { top: 100%; left: 0; transform: translateX(0) translateY(-100%); } } @keyframes spinner-3-third-child { 0% { top: 100%; left: 100%; transform: translateX(-100%) translateY(-100%); } 33.3% { top: 0; left: 50%; transform: translateX(-50%) translateY(0); } 66.6% { top: 100%; left: 0; transform: translateX(0) translateY(-100%); } 100% { top: 100%; left: 100%; transform: translateX(-100%) translateY(-100%); } } // Spinner 4 @keyframes spinner-4-first-child { 0% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } 33.3% { top: 0; left: 0; transform: translateX(0) translateY(0); } 66.6% { top: 0; left: 0; transform: translateX(0) translateY(0); } 100% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } } @keyframes spinner-4-second-child { 0% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } 33.3% { top: 0; left: 100%; transform: translateX(-100%) translateY(0); } 66.6% { top: 0; left: 100%; transform: translateX(-100%) translateY(0); } 100% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } } @keyframes spinner-4-third-child { 0% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } 33.3% { top: 100%; left: 100%; transform: translateX(-100%) translateY(-100%); } 66.6% { top: 100%; left: 100%; transform: translateX(-100%) translateY(-100%); } 100% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } } @keyframes spinner-4-fourth-child { 0% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } 33.3% { top: 100%; left: 0; transform: translateX(0) translateY(-100%); } 66.6% { top: 100%; left: 0; transform: translateX(0) translateY(-100%); } 100% { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); } } @keyframes spinner-4 { 0% { transform: rotate(0); } 33.3% { transform: rotate(0); } 66.6% { transform: rotate(180deg); } 100% { transform: rotate(180deg); } }