audioPlayer.scss 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. @import './variables.scss';
  2. $module: #{$prefix}-audio-player;
  3. .#{$module} {
  4. display: flex;
  5. align-items: center;
  6. justify-content: center;
  7. gap: $gap-audio-player-large;
  8. max-width: $width-audio-player-max;
  9. height: $height-audio-player;
  10. background: $color-audio-player-background;
  11. &-control {
  12. display: flex;
  13. align-items: center;
  14. gap: $gap-audio-player-medium;
  15. }
  16. &-control-button-icon {
  17. color: $color-audio-player-control-icon;
  18. }
  19. &-control-button-play {
  20. background: $color-audio-player-control-icon !important;
  21. color: $color-audio-player-control-icon-play !important;
  22. }
  23. &-control-button-play-disabled {
  24. background: $color-audio-player-disabled-bg !important;
  25. color: $color-audio-player-disabled-text !important;
  26. }
  27. &-slider-container {
  28. width: $width-audio-player-slider;
  29. height: 100%;
  30. }
  31. &-info-container {
  32. display: flex;
  33. align-items: center;
  34. gap: $gap-audio-player-medium;
  35. }
  36. &-info {
  37. display: flex;
  38. flex-direction: column;
  39. gap: $gap-audio-player-small;
  40. }
  41. &-info-title {
  42. font-size: $font-size-audio-player-text;
  43. color: $color-audio-player-font-color;
  44. font-weight: 600;
  45. display: flex;
  46. align-items: center;
  47. }
  48. &-info-time {
  49. width: 100%;
  50. height: $height-audio-player-time;
  51. font-size: $font-size-audio-player-text;
  52. color: $color-audio-player-font-color;
  53. display: flex;
  54. align-items: center;
  55. justify-content: space-between;
  56. gap: $gap-audio-player-small;
  57. user-select: none;
  58. }
  59. &-control-speed {
  60. width: $width-audio-player-speed;
  61. height: $height-audio-player-speed;
  62. display: flex;
  63. align-items: center;
  64. justify-content: center;
  65. gap: $gap-audio-player-small;
  66. background: $color-audio-player-font-color-speed;
  67. border-radius: $border-radius-audio-player-speed;
  68. font-size: $font-size-audio-player-small;
  69. line-height: $line-height-audio-player-small;
  70. color: var(--semi-color-default);
  71. font-weight: 600;
  72. user-select: none;
  73. }
  74. &-control-speed-menu {
  75. background: $color-audio-player-font-color-speed;
  76. width: $width-audio-player-speed-menu;
  77. }
  78. &-control-speed-menu-item {
  79. color: $color-audio-player-text-default;
  80. }
  81. &-control-speed-menu-item:hover {
  82. background: var(--semi-color-tertiary-active) !important;
  83. }
  84. &-control-volume {
  85. width: $width-audio-player-volume;
  86. height: $height-audio-player-volume;
  87. background: $color-audio-player-font-color-speed;
  88. border-radius: $border-radius-audio-player-volume;
  89. padding: 4px 0;
  90. display: flex;
  91. align-items: center;
  92. justify-content: center;
  93. flex-direction: column;
  94. gap: $gap-audio-player-small * 2;
  95. }
  96. &-control-volume-title {
  97. font-size: $font-size-audio-player-small;
  98. line-height: $line-height-audio-player-small;
  99. color: $color-audio-player-text-default;
  100. font-weight: 600;
  101. user-select: none;
  102. }
  103. &-error {
  104. display: flex;
  105. align-items: center;
  106. gap: $gap-audio-player-small;
  107. margin-left: 4px;
  108. color: var(--semi-color-danger);
  109. }
  110. &-light {
  111. background: $color-audio-player-background-light;
  112. border: 1px solid var(--semi-color-border);
  113. .#{$module}-control-button-icon {
  114. color: $color-audio-player-control-icon-light;
  115. }
  116. .#{$module}-control-button-play {
  117. background: $color-audio-player-control-icon-light !important;
  118. color: $color-audio-player-control-icon-play-light !important;
  119. }
  120. .#{$module}-control-button-play-disabled {
  121. background: $color-audio-player-light-disabled-bg !important;
  122. color: $color-audio-player-light-disabled-text !important;
  123. }
  124. .#{$module}-info-title,
  125. .#{$module}-info-time {
  126. color: $color-audio-player-font-color-light;
  127. }
  128. .#{$module}-control-speed-menu-item,
  129. .#{$module}-control-volume-title {
  130. color: $color-audio-player-light-text;
  131. }
  132. .#{$module}-control-speed-menu-item:hover {
  133. background: $color-audio-player-light-hover-bg !important;
  134. }
  135. }
  136. }
  137. .#{$module}-slider {
  138. background: $color-audio-player-slider-bg;
  139. border-radius: $border-radius-audio-player-slider;
  140. position: relative;
  141. &-light {
  142. background: $color-audio-player-slider-bg-light;
  143. }
  144. &-wrapper {
  145. position: relative;
  146. cursor: pointer;
  147. display: flex;
  148. align-items: center;
  149. justify-content: center;
  150. &-vertical {
  151. width: 100%;
  152. }
  153. &-horizontal {
  154. height: 100%;
  155. }
  156. }
  157. &-vertical {
  158. width: $width-audio-player-slider-bar;
  159. height: 100%;
  160. }
  161. &-horizontal {
  162. width: 100%;
  163. height: $width-audio-player-slider-bar;
  164. }
  165. &-progress {
  166. position: absolute;
  167. background: $color-audio-player-slider-progress;
  168. border-radius: $border-radius-audio-player-slider;
  169. }
  170. &-progress-vertical {
  171. bottom: 0;
  172. }
  173. &-progress-horizontal {
  174. left: 0;
  175. }
  176. &-dot {
  177. position: absolute;
  178. width: $size-audio-player-slider-dot;
  179. height: $size-audio-player-slider-dot;
  180. background: $color-audio-player-slider-dot-bg;
  181. border: 1px solid var(--semi-color-primary);
  182. box-shadow: 0px 0px 4px 0px var(--semi-color-shadow);
  183. border-radius: 50%;
  184. transition: opacity 0.2s;
  185. }
  186. }