VProgressCircular.sass 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. @use 'sass:list'
  2. @use '../../styles/settings'
  3. @use './variables' as *
  4. // Elements
  5. .v-progress-circular
  6. align-items: center
  7. display: inline-flex
  8. justify-content: center
  9. position: relative
  10. vertical-align: middle
  11. > svg
  12. width: 100%
  13. height: 100%
  14. margin: auto
  15. position: absolute
  16. top: 0
  17. bottom: 0
  18. left: 0
  19. right: 0
  20. z-index: 0
  21. .v-progress-circular__content
  22. align-items: center
  23. display: flex
  24. justify-content: center
  25. .v-progress-circular__underlay
  26. color: $progress-circular-underlay-color
  27. stroke: currentColor
  28. z-index: 1
  29. .v-progress-circular__overlay
  30. stroke: currentColor
  31. transition: $progress-circular-overlay-transition
  32. z-index: 2
  33. // Modifiers
  34. .v-progress-circular
  35. @each $name, $multiplier in $progress-circular-sizes
  36. $size: $progress-circular-size + (settings.$size-scale * $multiplier)
  37. &--size-#{$name}
  38. height: $size
  39. width: $size
  40. .v-progress-circular--indeterminate
  41. > svg
  42. animation: $progress-circular-rotate-animation
  43. transform-origin: center center
  44. transition: $progress-circular-intermediate-svg-transition
  45. .v-progress-circular__overlay
  46. animation: $progress-circular-rotate-dash, $progress-circular-rotate-animation
  47. stroke-dasharray: 25, 200
  48. stroke-dashoffset: 0
  49. stroke-linecap: round
  50. transform-origin: center center
  51. transform: $progress-circular-overlay-transform
  52. .v-progress-circular--disable-shrink
  53. > svg
  54. animation-duration: list.nth($progress-circular-rotate-animation, 2) * .5
  55. .v-progress-circular__overlay
  56. animation: none
  57. .v-progress-circular--indeterminate:not(.v-progress-circular--visible)
  58. > svg,
  59. .v-progress-circular__overlay
  60. animation-play-state: paused !important
  61. @keyframes progress-circular-dash
  62. 0%
  63. stroke-dasharray: 1, 200
  64. stroke-dashoffset: 0px
  65. 50%
  66. stroke-dasharray: 100, 200
  67. stroke-dashoffset: -15px
  68. 100%
  69. stroke-dasharray: 100, 200
  70. stroke-dashoffset: -124px
  71. @keyframes progress-circular-rotate
  72. 100%
  73. transform: rotate(270deg)