| 1 | .player { |
| 2 | --track: hsl(var(--muted-foreground) / 0.22); |
| 3 | --fill: hsl(var(--foreground) / 0.42); |
| 4 | --thumb: hsl(var(--muted-foreground) / 0.75); |
| 5 | position: relative; |
| 6 | display: flex; |
| 7 | height: 2rem; |
| 8 | align-items: center; |
| 9 | gap: 0.5rem; |
| 10 | border-radius: 9999px; |
| 11 | background: hsl(var(--muted) / 0.85); |
| 12 | padding: 0 0.625rem; |
| 13 | } |
| 14 | |
| 15 | .iconBtn { |
| 16 | display: grid; |
| 17 | width: 1.5rem; |
| 18 | height: 1.5rem; |
| 19 | flex-shrink: 0; |
| 20 | place-items: center; |
| 21 | border-radius: 9999px; |
| 22 | color: hsl(var(--foreground) / 0.9); |
| 23 | transition: background-color 0.15s ease; |
| 24 | } |
| 25 | |
| 26 | .iconBtn:hover { |
| 27 | background: hsl(var(--foreground) / 0.06); |
| 28 | } |
| 29 | |
| 30 | .progress { |
| 31 | height: 0.25rem; |
| 32 | min-width: 0; |
| 33 | flex: 1; |
| 34 | cursor: pointer; |
| 35 | appearance: none; |
| 36 | border-radius: 9999px; |
| 37 | background: transparent; |
| 38 | } |
| 39 | |
| 40 | .progress:disabled { |
| 41 | cursor: default; |
| 42 | } |
| 43 | |
| 44 | .progress::-webkit-slider-runnable-track { |
| 45 | height: 0.25rem; |
| 46 | border-radius: 9999px; |
| 47 | background: linear-gradient( |
| 48 | to right, |
| 49 | var(--fill) var(--progress, 0%), |
| 50 | var(--track) var(--progress, 0%) |
| 51 | ); |
| 52 | } |
| 53 | |
| 54 | .progress::-webkit-slider-thumb { |
| 55 | -webkit-appearance: none; |
| 56 | appearance: none; |
| 57 | width: 0; |
| 58 | height: 0; |
| 59 | border: 0; |
| 60 | background: transparent; |
| 61 | } |
| 62 | |
| 63 | .progress::-moz-range-track { |
| 64 | height: 0.25rem; |
| 65 | border-radius: 9999px; |
| 66 | background: var(--track); |
| 67 | } |
| 68 | |
| 69 | .progress::-moz-range-progress { |
| 70 | height: 0.25rem; |
| 71 | border-radius: 9999px; |
| 72 | background: var(--fill); |
| 73 | } |
| 74 | |
| 75 | .progress::-moz-range-thumb { |
| 76 | width: 0; |
| 77 | height: 0; |
| 78 | border: 0; |
| 79 | background: transparent; |
| 80 | } |
| 81 | |
| 82 | .volumeWrap { |
| 83 | position: relative; |
| 84 | flex-shrink: 0; |
| 85 | } |
| 86 | |
| 87 | .volumePanel { |
| 88 | position: absolute; |
| 89 | bottom: calc(100% + 6px); |
| 90 | left: 50%; |
| 91 | z-index: 20; |
| 92 | display: flex; |
| 93 | width: 2rem; |
| 94 | height: 6rem; |
| 95 | translate: -50% 0; |
| 96 | align-items: center; |
| 97 | justify-content: center; |
| 98 | border-radius: 9999px; |
| 99 | background: hsl(var(--muted)); |
| 100 | box-shadow: |
| 101 | 0 4px 14px hsl(0 0% 0% / 0.1), |
| 102 | 0 0 0 1px hsl(var(--border) / 0.6); |
| 103 | } |
| 104 | |
| 105 | .volumeSlider { |
| 106 | width: 4.5rem; |
| 107 | height: 0.25rem; |
| 108 | cursor: pointer; |
| 109 | appearance: none; |
| 110 | border-radius: 9999px; |
| 111 | background: transparent; |
| 112 | transform: rotate(-90deg); |
| 113 | transform-origin: center; |
| 114 | } |
| 115 | |
| 116 | .volumeSlider::-webkit-slider-runnable-track { |
| 117 | height: 0.25rem; |
| 118 | border-radius: 9999px; |
| 119 | background: linear-gradient( |
| 120 | to right, |
| 121 | var(--fill) var(--volume, 100%), |
| 122 | var(--track) var(--volume, 100%) |
| 123 | ); |
| 124 | } |
| 125 | |
| 126 | .volumeSlider::-webkit-slider-thumb { |
| 127 | -webkit-appearance: none; |
| 128 | appearance: none; |
| 129 | width: 0.75rem; |
| 130 | height: 0.75rem; |
| 131 | margin-top: -0.25rem; |
| 132 | border-radius: 9999px; |
| 133 | border: 2px solid hsl(var(--background)); |
| 134 | background: var(--thumb); |
| 135 | box-shadow: 0 0 0 1px hsl(var(--border)); |
| 136 | cursor: pointer; |
| 137 | } |
| 138 | |
| 139 | .volumeSlider::-moz-range-track { |
| 140 | height: 0.25rem; |
| 141 | border-radius: 9999px; |
| 142 | background: var(--track); |
| 143 | } |
| 144 | |
| 145 | .volumeSlider::-moz-range-progress { |
| 146 | height: 0.25rem; |
| 147 | border-radius: 9999px; |
| 148 | background: var(--fill); |
| 149 | } |
| 150 | |
| 151 | .volumeSlider::-moz-range-thumb { |
| 152 | width: 0.75rem; |
| 153 | height: 0.75rem; |
| 154 | border-radius: 9999px; |
| 155 | border: 2px solid hsl(var(--background)); |
| 156 | background: var(--thumb); |
| 157 | box-shadow: 0 0 0 1px hsl(var(--border)); |
| 158 | cursor: pointer; |
| 159 | } |
| 160 |