UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

353 lines (296 loc) 6.46 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; } /** Segment variables - 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) */ :host { align-items: center; justify-content: center; position: relative; display: none; padding-bottom: 4rem; padding-top: 4rem; margin-left: auto; margin-right: auto; min-height: var(--loader-size); stroke: var(--calcite-ui-blue-1); stroke-width: 3; fill: none; opacity: 1; transform: scale(1, 1); animation: loader-color-shift 6s alternate-reverse infinite linear; } :host([scale=s]) { --loader-size: 33px; --loader-size-inline: 13px; font-size: 0.8125rem; line-height: 1.5; } :host([scale=s]) .loader__percentage { font-size: 0.625rem; } :host([scale=m]) { --loader-size: 57px; --loader-size-inline: 17px; font-size: 0.875rem; line-height: 1.5; } :host([scale=m]) .loader__percentage { font-size: 0.875rem; } :host([scale=l]) { --loader-size: 81px; --loader-size-inline: 21px; font-size: 0.9375rem; line-height: 1.5; } :host([scale=l]) .loader__percentage { font-size: 1.25rem; } :host([no-padding]) { padding-top: 0; padding-bottom: 0; } :host([active]) { display: flex; } .loader__text { display: block; margin-top: calc(var(--loader-size) + 3rem); text-align: center; } .loader__percentage { display: block; width: var(--loader-size); position: absolute; top: 4rem; left: 50%; margin-left: calc(var(--loader-size) / 2 * -1); margin-top: calc(var(--loader-size) / 2); text-align: center; color: var(--calcite-ui-text-1); line-height: 0.25; transform: scale(1, 1); } .loader__svgs { width: var(--loader-size); height: var(--loader-size); position: absolute; top: 4rem; left: 50%; margin-left: calc(var(--loader-size) / 2 * -1); overflow: visible; opacity: 1; transform: scale(1, 1); } .loader__svg { width: var(--loader-size); height: var(--loader-size); position: absolute; top: 0; left: 0; overflow: visible; transform-origin: center; 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]) { stroke: var(--calcite-ui-border-3); animation: none; } :host([type=determinate]) .loader__svg--3 { stroke: var(--calcite-ui-blue-1); stroke-dasharray: 157.0795; transform: rotate(-90deg); animation: none; transition: all 100ms linear; } :host([inline]) { stroke: currentColor; stroke-width: 2; animation: none; margin: 0; padding-bottom: 0; padding-top: 0; position: relative; 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-left: var(--loader-size-inline)/2; margin-right: 0; } :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-blue-1); transform: scale(1.05, 1.05); transform-origin: center; transition: color 200ms linear, transform 200ms linear; } .loader__svg--1 { stroke-dasharray: 28.0499107143% 140.2495535714%; animation-duration: 0.72s; } @keyframes loader-offset-1 { 0% { stroke-dasharray: 28.0499107143% 252.4491964286%; stroke-dashoffset: 0; } 50% { stroke-dasharray: 140.2495535714% 140.2495535714%; stroke-dashoffset: -84.1497321429%; } 100% { stroke-dasharray: 28.0499107143% 252.4491964286%; stroke-dashoffset: -280.4991071429%; } } .loader__svg--2 { stroke-dasharray: 56.0998214286% 140.2495535714%; animation-duration: 0.96s; } @keyframes loader-offset-2 { 0% { stroke-dasharray: 56.0998214286% 224.3992857143%; stroke-dashoffset: 0; } 50% { stroke-dasharray: 140.2495535714% 140.2495535714%; stroke-dashoffset: -98.1746875%; } 100% { stroke-dasharray: 56.0998214286% 224.3992857143%; stroke-dashoffset: -280.4991071429%; } } .loader__svg--3 { stroke-dasharray: 14.0249553571% 140.2495535714%; animation-duration: 1.16s; } @keyframes loader-offset-3 { 0% { stroke-dasharray: 14.0249553571% 266.4741517857%; stroke-dashoffset: 0; } 50% { stroke-dasharray: 140.2495535714% 140.2495535714%; stroke-dashoffset: -77.1372544643%; } 100% { stroke-dasharray: 14.0249553571% 266.4741517857%; stroke-dashoffset: -280.4991071429%; } } @keyframes loader-color-shift { 0% { stroke: var(--calcite-ui-blue-1); } 33% { stroke: var(--calcite-ui-blue-3); } 66% { stroke: var(--calcite-ui-blue-2); } 100% { stroke: var(--calcite-ui-blue-1); } } @keyframes loader-clockwise { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }