OLD | NEW |
| (Empty) |
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 * Use of this source code is governed by a BSD-style license that can be | |
3 * found in the LICENSE file. */ | |
4 | |
5 body { | |
6 -webkit-user-select: none; | |
7 overflow: hidden; | |
8 padding: 0; | |
9 } | |
10 | |
11 .audio-player { | |
12 background-color: #1d1d1d; | |
13 bottom: 0; | |
14 color: white; | |
15 cursor: default; | |
16 font-family: Open Sans, Droid Sans Fallback, sans-serif; | |
17 font-size: 10pt; | |
18 left: 0; | |
19 position: absolute; | |
20 right: 0; | |
21 top: 0; | |
22 } | |
23 | |
24 /* Title buttons. | |
25 * In the collapsed/single-track mode they overlap the first track. */ | |
26 | |
27 .title-button { | |
28 background-position: center center; | |
29 background-repeat: no-repeat; | |
30 cursor: pointer; | |
31 height: 29px; | |
32 opacity: 0.4; | |
33 position: absolute; | |
34 top: 0; | |
35 width: 29px; | |
36 z-index: 2; | |
37 } | |
38 | |
39 .title-button:hover { | |
40 background-color: rgb(60, 126, 255) !important; | |
41 opacity: 1; | |
42 } | |
43 | |
44 .audio-player:not(.collapsed):not(.single-track) > .title-button { | |
45 background-color: #1f1f1f; | |
46 } | |
47 | |
48 .title-button.close { | |
49 background-image: -webkit-image-set( | |
50 url('../images/media/media_close.png') 1x, | |
51 url('../images/media/2x/media_close.png') 2x); | |
52 right: 0; | |
53 } | |
54 | |
55 .title-button.collapse { | |
56 background-image: -webkit-image-set( | |
57 url('../images/media/media_collapse.png') 1x, | |
58 url('../images/media/2x/media_collapse.png') 2x); | |
59 right: 0; | |
60 } | |
61 | |
62 .audio-player:not(.frameless) .title-button.close { | |
63 display: none; | |
64 } | |
65 | |
66 .audio-player.frameless .title-button.collapse { | |
67 right: 29px; | |
68 } | |
69 | |
70 .collapsed .title-button.collapse { | |
71 background-image: -webkit-image-set( | |
72 url('../images/media/media_expand.png') 1x, | |
73 url('../images/media/2x/media_expand.png') 2x); | |
74 } | |
75 | |
76 .single-track .title-button.collapse { | |
77 display: none; | |
78 } | |
79 | |
80 /* Common properties for track containers. */ | |
81 .audio-player > .track-list, | |
82 .audio-player > .track-stack { | |
83 bottom: 35px; /* Room for the controls bar. */ | |
84 left: 0; | |
85 position: absolute; | |
86 right: 0; | |
87 } | |
88 | |
89 /* Scrollable list of tracks. | |
90 * Displayed in expanded mode if there is more than one track. */ | |
91 .audio-player > .track-list { | |
92 -webkit-box-align: center; | |
93 -webkit-box-orient: vertical; | |
94 -webkit-box-pack: start; | |
95 display: -webkit-box; | |
96 overflow-x: hidden; | |
97 overflow-y: auto; | |
98 top: 0; | |
99 } | |
100 | |
101 /* A single track container. | |
102 * Displayed in the compact mode or when there is only one track. */ | |
103 .audio-player > .track-stack { | |
104 height: 58px; | |
105 } | |
106 | |
107 .audio-player.collapsed > .track-list, | |
108 .audio-player.single_track > .track-list, | |
109 .audio-player:not(.collapsed):not(.single-track) > .track-stack { | |
110 opacity: 0; | |
111 pointer-events: none; | |
112 } | |
113 | |
114 /* Track item. */ | |
115 .track { | |
116 -webkit-box-align: center; | |
117 -webkit-box-orient: horizontal; | |
118 -webkit-box-pack: start; | |
119 display: -webkit-box; | |
120 height: 58px; | |
121 width: 100%; | |
122 } | |
123 | |
124 /* In the expanded mode the selected track is highlighted. */ | |
125 .track-list .track.selected { | |
126 background-color: #2d2d2d; | |
127 } | |
128 | |
129 .track-list .track:hover { | |
130 background-color: #272727 !important; | |
131 } | |
132 | |
133 .track-list .track:not(.selected) .data { | |
134 opacity: 0.7; | |
135 } | |
136 | |
137 /* In the compact mode all tracks are in the same position, only the selected | |
138 is visible.*/ | |
139 .track-stack > .track { | |
140 position: absolute; | |
141 top: 0; | |
142 } | |
143 | |
144 .track-stack > .track.selected { | |
145 z-index: 1; | |
146 } | |
147 | |
148 /* Opacity transition is controlled differently for the text and the artwork. | |
149 * Text transition looks better if fade-in and fade-out go in parallel. | |
150 * For the artwork we start fading out the old icon only after the new one | |
151 * is completely opaque (otherwise when transitioning between identical icons | |
152 * we see some fading because the background transpires). */ | |
153 .track-stack > .track:not(.selected) .data, | |
154 .track-stack > .track:not(.visible) .art { | |
155 opacity: 0; | |
156 transition: opacity 220ms ease-out; | |
157 } | |
158 | |
159 /* Track data. */ | |
160 | |
161 .track .art { | |
162 box-sizing: border-box; | |
163 height: 48px; | |
164 margin: 4px 0 6px 4px; | |
165 position: relative; | |
166 width: 48px; | |
167 } | |
168 | |
169 .track .art.blank { | |
170 background-color: #111; | |
171 border: 1px solid #333; | |
172 } | |
173 | |
174 .track .art img { | |
175 height: 100%; | |
176 width: 100%; | |
177 } | |
178 | |
179 .track .art.blank img { | |
180 display: none; | |
181 } | |
182 | |
183 .track .art.error { | |
184 background-image: -webkit-image-set( | |
185 url('../images/media/error.png') 1x, | |
186 url('../images/media/2x/error.png') 2x); | |
187 background-position: center center; | |
188 background-repeat: no-repeat; | |
189 } | |
190 | |
191 .noart .track .art { | |
192 display: none; | |
193 } | |
194 | |
195 .track .data { | |
196 -webkit-box-flex: 1; | |
197 -webkit-box-orient: vertical; | |
198 -webkit-box-pack: center; | |
199 display: -webkit-box; | |
200 margin-left: 8px; | |
201 margin-right: 4px; | |
202 } | |
203 | |
204 .track .data .data-title, | |
205 .track .data .data-artist { | |
206 overflow: hidden; | |
207 text-overflow: ellipsis; | |
208 white-space: nowrap; | |
209 } | |
210 | |
211 .track .data .data-title { | |
212 font-weight: bold; | |
213 } | |
214 | |
215 /* TODO(kaznacheev): Set to 20px when the audio player is title-less. */ | |
216 .single-track .data-title { | |
217 padding-right: 0; | |
218 } | |
219 | |
220 /* TODO(kaznacheev): Set to 50px when the audio player is title-less. */ | |
221 .collapsed:not(.single-track) .data-title { | |
222 padding-right: 20px; | |
223 } | |
224 | |
225 /* Controls bar. */ | |
226 | |
227 .audio-controls { | |
228 -webkit-box-align: center; | |
229 -webkit-box-orient: horizontal; | |
230 -webkit-box-pack: center; | |
231 background-color: #2D2D2D; | |
232 border-top: 1px solid rgba(255, 255, 255, 0.1); | |
233 bottom: 0; | |
234 display: -webkit-box; | |
235 height: 30px; | |
236 left: 0; | |
237 padding: 0 0 4px 13px; | |
238 position: absolute; | |
239 right: 0; | |
240 } | |
241 | |
242 .audio-controls .media-button { | |
243 height: 29px; | |
244 margin-top: 1px; | |
245 width: 29px; | |
246 } | |
247 | |
248 .audio-controls .media-button.play { | |
249 margin-left: -10px; | |
250 margin-right: -8px; | |
251 } | |
252 | |
253 .audio-controls .media-button.play > .default.normal, | |
254 .audio-controls .media-button.play > .ended.normal { | |
255 background-image: -webkit-image-set( | |
256 url('../images/media/media_play_audio.png') 1x, | |
257 url('../images/media/2x/media_play_audio.png') 2x); | |
258 } | |
259 | |
260 .audio-controls .media-button.play > .default.hover, | |
261 .audio-controls .media-button.play > .ended.hover { | |
262 background-image: -webkit-image-set( | |
263 url('../images/media/media_play_audio_hover.png') 1x, | |
264 url('../images/media/2x/media_play_audio_hover.png') 2x); | |
265 } | |
266 | |
267 .audio-controls .media-button.play > .default.active, | |
268 .audio-controls .media-button.play > .ended.active { | |
269 background-image: -webkit-image-set( | |
270 url('../images/media/media_play_audio_down.png') 1x, | |
271 url('../images/media/2x/media_play_audio_down.png') 2x); | |
272 } | |
273 | |
274 .audio-controls .media-button.play > .playing.normal { | |
275 background-image: -webkit-image-set( | |
276 url('../images/media/media_pause_audio.png') 1x, | |
277 url('../images/media/2x/media_pause_audio.png') 2x); | |
278 } | |
279 | |
280 .audio-controls .media-button.play > .playing.hover { | |
281 background-image: -webkit-image-set( | |
282 url('../images/media/media_pause_audio_hover.png') 1x, | |
283 url('../images/media/2x/media_pause_audio_hover.png') 2x); | |
284 } | |
285 | |
286 .audio-controls .media-button.play > .playing.active { | |
287 background-image: -webkit-image-set( | |
288 url('../images/media/media_pause_audio_down.png') 1x, | |
289 url('../images/media/2x/media_pause_audio_down.png') 2x); | |
290 } | |
291 | |
292 .audio-controls .time-controls { | |
293 margin-left: 10px; | |
294 margin-right: 9px; | |
295 } | |
296 | |
297 .audio-controls .time-controls .time { | |
298 margin-left: 11px; | |
299 } | |
300 | |
301 .media-button.previous { | |
302 margin-left: -2px; | |
303 } | |
304 | |
305 .media-button.previous > .normal { | |
306 background-image: -webkit-image-set( | |
307 url('../images/media/media_previous.png') 1x, | |
308 url('../images/media/2x/media_previous.png') 2x); | |
309 } | |
310 | |
311 .media-button.previous > .hover { | |
312 background-image: -webkit-image-set( | |
313 url('../images/media/media_previous_hover.png') 1x, | |
314 url('../images/media/2x/media_previous_hover.png') 2x); | |
315 } | |
316 | |
317 .media-button.previous > .active { | |
318 background-image: -webkit-image-set( | |
319 url('../images/media/media_previous_down.png') 1x, | |
320 url('../images/media/2x/media_previous_down.png') 2x); | |
321 } | |
322 | |
323 .media-button.next { | |
324 margin-right: -2px; | |
325 } | |
326 | |
327 .media-button.next > .normal { | |
328 background-image: -webkit-image-set( | |
329 url('../images/media/media_next.png') 1x, | |
330 url('../images/media/2x/media_next.png') 2x); | |
331 } | |
332 | |
333 .media-button.next > .hover { | |
334 background-image: -webkit-image-set( | |
335 url('../images/media/media_next_hover.png') 1x, | |
336 url('../images/media/2x/media_next_hover.png') 2x); | |
337 } | |
338 | |
339 .media-button.next > .active { | |
340 background-image: -webkit-image-set( | |
341 url('../images/media/media_next_down.png') 1x, | |
342 url('../images/media/2x/media_next_down.png') 2x); | |
343 } | |
344 | |
345 .single-track .media-button.next, | |
346 .single-track .media-button.previous { | |
347 display: none; | |
348 } | |
349 | |
350 /* Customized scrollbar for the playlist. */ | |
351 | |
352 ::-webkit-scrollbar { | |
353 height: 16px; | |
354 width: 16px; | |
355 } | |
356 | |
357 ::-webkit-scrollbar-button { | |
358 height: 0; | |
359 width: 0; | |
360 } | |
361 | |
362 ::-webkit-scrollbar-thumb { | |
363 background-clip: padding-box; | |
364 background-color: rgba(255, 255, 255, 0.15); | |
365 box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.10), | |
366 inset 0 -1px 0 rgba(0, 0, 0, 0.07); | |
367 min-height: 28px; | |
368 padding-top: 100px; | |
369 } | |
370 | |
371 ::-webkit-scrollbar-thumb:hover { | |
372 background-color: rgba(255,255,255,0.20); | |
373 box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25); | |
374 } | |
375 | |
376 ::-webkit-scrollbar-thumb:active { | |
377 background-color: rgba(255, 255, 255, 0.25); | |
378 box-shadow: inset 1px 1px 3px rgba(0, 0, 0, 0.35); | |
379 } | |
380 | |
381 ::-webkit-scrollbar-thumb:vertical { | |
382 border-bottom: 0 solid transparent; | |
383 border-left: 5px solid transparent; | |
384 border-right: 0 solid transparent; | |
385 border-top: 0 solid transparent; | |
386 } | |
387 | |
388 ::-webkit-scrollbar-track:hover { | |
389 background-color: rgba(0, 0, 0, 0.05); | |
390 box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.10); | |
391 } | |
392 | |
393 ::-webkit-scrollbar-track:active { | |
394 background-color: rgba(0, 0, 0, 0.05); | |
395 box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.14), | |
396 inset -1px -1px 0 rgba(0, 0, 0, 0.07); | |
397 } | |
398 | |
399 ::-webkit-scrollbar-track:vertical { | |
400 background-clip: padding-box; | |
401 background-color: transparent; | |
402 border-left: 5px solid transparent; | |
403 border-right: 0 solid transparent; | |
404 } | |
OLD | NEW |