zu 0.3.3

Yew web components, implementing Material Design
Documentation
// Copyright (c) 2024 Xu Shaohua <shaohua@biofan.org>. All rights reserved.
// Use of this source is governed by Lesser General Public License
// that can be found in the LICENSE file.

/* Styles for ZuCircularProgress */

/* Styles applied to the root element. */
.ZuCircularProgress-root {
  display: inline-block;
}

/* Styles applied to the root element if variant="determinate". */
.ZuCircularProgress-determinate {
  transition: var(--zu-animation-transform);
}

/* Styles applied to the root element if variant="indeterminate". */
.ZuCircularProgress-indeterminate {
  animation: zu-circular-progress-circular-rotate 1.4s linear infinite;
}

/* Styles applied to the root element if color="primary". */
.ZuCircularProgress-colorPrimary {

}

/* Styles applied to the root element if color="secondary". */
.ZuCircularProgress-colorSecondary {

}

/* Styles applied to the svg element. */
.ZuCircularProgress-svg {
  display: block;
  transform: rotate(-90deg);
}

/* Styles applied to the `circle` svg path. */
.ZuCircularProgress-circle {
  stroke: currentColor;
}

.ZuCircularProgress-determinate .ZuCircularProgress-circle {
  transition: var(--zu-animation-transform);
}

.ZuCircularProgress-indeterminate .ZuCircularProgress-circle {
  stroke-dasharray: 80px 200px;
  stroke-dashoffset: 0;
  animation: zu-circular-progress-circular-dash 1.4s ease-in-out infinite;
}

/* Styles applied to the `circle` svg path if variant="determinate". */
.ZuCircularProgress-circleDeterminate {

}

/* Styles applied to the `circle` svg path if variant="indeterminate". */
.ZuCircularProgress-circleIndeterminate {

}

/* Styles applied to the `circle` svg path if disableShrink={true}. */
.ZuCircularProgress-circleDisableShrink {

}

/* Outer container */
.ZuCircularProgress-labelContainer {
  position: relative;

  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ZuCircularProgress-label {
  position: absolute;

  display: inline-flex;
  align-items: center;
  margin: 0;

  /* TODO(Shaohua): Inherit style from caption */
  font-family: var(--zu-typography-caption-fontFamily);
  font-weight: var(--zu-typography-caption-fontWeight);
  font-size: var(--zu-typography-caption-fontSize);
  line-height: var(--zu-typography-caption-lineHeight);
  letter-spacing: var(--zu-typography-caption-letterSpacing);
}

/* Animations */
@keyframes zu-circular-progress-circular-rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes zu-circular-progress-circular-dash {
  0% {
    stroke-dasharray: 1px, 200px;
    stroke-dashoffset: 0;
  }

  50% {
    stroke-dasharray: 100px, 200px;
    stroke-dashoffset: -15px;
  }

  100% {
    stroke-dasharray: 100px, 200px;
    stroke-dashoffset: -125px;
  }
}