UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

341 lines (287 loc) 6.4 kB
@charset "UTF-8"; /* mixins & extensions */ @keyframes in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes in-down { 0% { opacity: 0; transform: translate3D(0, -5px, 0); } 100% { opacity: 1; transform: translate3D(0, 0, 0); } } @keyframes in-up { 0% { opacity: 0; transform: translate3D(0, 5px, 0); } 100% { opacity: 1; transform: translate3D(0, 0, 0); } } @keyframes in-scale { 0% { opacity: 0; transform: scale3D(0.95, 0.95, 1); } 100% { opacity: 1; transform: scale3D(1, 1, 1); } } /** * Currently only used in Checkbox. */ :root { --calcite-popper-transition: 150ms ease-in-out; } :host([hidden]) { display: none; } :host { align-items: center; position: relative; justify-content: center; display: none; margin-left: auto; margin-right: auto; opacity: 1; padding-top: 4rem; padding-bottom: 4rem; min-height: var(--loader-size); font-size: var(--loader-font-size); stroke: var(--calcite-ui-brand); stroke-width: 3; fill: none; transform: scale(1, 1); animation: loader-color-shift 6s alternate-reverse infinite linear; } :host([scale=s]) { --loader-font-size: var(--calcite-font-size--2); --loader-size: 2rem; --loader-size-inline: 0.75rem; } :host([scale=m]) { --loader-font-size: var(--calcite-font-size-0); --loader-size: 4rem; --loader-size-inline: 1rem; } :host([scale=l]) { --loader-font-size: var(--calcite-font-size-2); --loader-size: 6rem; --loader-size-inline: 1.25rem; } :host([no-padding]) { padding-top: 0; padding-bottom: 0; } :host([active]) { display: flex; } .loader__text { display: block; text-align: center; margin-top: calc(var(--loader-size) + 1.5rem); } .loader__percentage { display: block; position: absolute; color: var(--calcite-ui-text-1); text-align: center; font-size: var(--loader-font-size); width: var(--loader-size); top: 4rem; left: 50%; margin-left: calc(var(--loader-size) / 2 * -1); margin-top: calc(var(--loader-size) / 2); line-height: 0.25; transform: scale(1, 1); } .loader__svgs { position: absolute; overflow: visible; opacity: 1; width: var(--loader-size); height: var(--loader-size); top: 4rem; left: 50%; margin-left: calc(var(--loader-size) / 2 * -1); transform: scale(1, 1); } .loader__svg { position: absolute; overflow: visible; top: 0; left: 0; transform-origin: center; width: var(--loader-size); height: var(--loader-size); animation-iteration-count: infinite; animation-timing-function: linear; animation-name: loader-clockwise; } @supports (display: grid) { .loader__svg--1 { animation-name: loader-offset-1; } .loader__svg--2 { animation-name: loader-offset-2; } .loader__svg--3 { animation-name: loader-offset-3; } } :host([type=determinate]) { animation: none; stroke: var(--calcite-ui-border-3); } :host([type=determinate]) .loader__svg--3 { animation: none; stroke: var(--calcite-ui-brand); stroke-dasharray: 150.79632; transform: rotate(-90deg); transition: all 100ms linear; } :host([inline]) { position: relative; margin: 0; padding-top: 0; padding-bottom: 0; animation: none; stroke: currentColor; stroke-width: 2; height: var(--loader-size-inline); min-height: var(--loader-size-inline); width: var(--loader-size-inline); margin-right: var(--loader-size-inline)/2; vertical-align: -var(--loader-size-inline)/5; } :host([inline][dir=rtl]) { margin-right: 0; margin-left: var(--loader-size-inline)/2; } :host([active][inline]) { display: inline-block; } :host([inline]) .loader__svgs { top: 0; left: 0; margin: 0; width: var(--loader-size-inline); height: var(--loader-size-inline); } :host([inline]) .loader__svg { width: var(--loader-size-inline); height: var(--loader-size-inline); } :host([complete]) { opacity: 0; transform: scale(0.75, 0.75); transform-origin: center; transition: opacity 200ms linear 1000ms, transform 200ms linear 1000ms; } :host([complete]) .loader__svgs { opacity: 0; transform: scale(0.75, 0.75); transform-origin: center; transition: opacity 180ms linear 800ms, transform 180ms linear 800ms; } :host([complete]) .loader__percentage { color: var(--calcite-ui-brand); transform: scale(1.05, 1.05); transform-origin: center; transition: color 200ms linear, transform 200ms linear; } /** Segment variables - i index (1-3) - size length of the segment (0 - 100) - growth how much the segment grows during the animation (size + growth should not exceed 100) - duration how long the segment takes to rotate 360° (seconds) */ .loader__svg--1 { stroke-dasharray: 27.9252444444% 139.6262222222%; animation-duration: 0.72s; } @keyframes loader-offset-1 { 0% { stroke-dasharray: 27.9252444444% 251.3272%; stroke-dashoffset: 0; } 50% { stroke-dasharray: 139.6262222222% 139.6262222222%; stroke-dashoffset: -83.7757333333%; } 100% { stroke-dasharray: 27.9252444444% 251.3272%; stroke-dashoffset: -279.2524444444%; } } .loader__svg--2 { stroke-dasharray: 55.8504888889% 139.6262222222%; animation-duration: 0.96s; } @keyframes loader-offset-2 { 0% { stroke-dasharray: 55.8504888889% 223.4019555556%; stroke-dashoffset: 0; } 50% { stroke-dasharray: 139.6262222222% 139.6262222222%; stroke-dashoffset: -97.7383555556%; } 100% { stroke-dasharray: 55.8504888889% 223.4019555556%; stroke-dashoffset: -279.2524444444%; } } .loader__svg--3 { stroke-dasharray: 13.9626222222% 139.6262222222%; animation-duration: 1.16s; } @keyframes loader-offset-3 { 0% { stroke-dasharray: 13.9626222222% 265.2898222222%; stroke-dashoffset: 0; } 50% { stroke-dasharray: 139.6262222222% 139.6262222222%; stroke-dashoffset: -76.7944222222%; } 100% { stroke-dasharray: 13.9626222222% 265.2898222222%; stroke-dashoffset: -279.2524444444%; } } @keyframes loader-color-shift { 0% { stroke: var(--calcite-ui-brand); } 33% { stroke: var(--calcite-ui-brand-press); } 66% { stroke: var(--calcite-ui-brand-hover); } 100% { stroke: var(--calcite-ui-brand); } } @keyframes loader-clockwise { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }