<!DOCTYPE html>
<html>
<head>
<title>AmplitudeJS Testing</title>
<!-- Include font -->
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet">
<!-- Include Style Sheet -->
<link rel="stylesheet" type="text/css" href="css/app.css"/>
</head>
<body>
<div class="example-container">
<div class="left">
<div id="white-player">
<div class="white-player-top">
<div>
</div>
<div class="center">
<span class="now-playing">Now Playing</span>
</div>
<div>
<img src="https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/show-playlist.svg" class="show-playlist"/>
</div>
</div>
<div id="white-player-center">
<img data-amplitude-song-info="cover_art_url" class="main-album-art"/>
<div class="song-meta-data">
<span data-amplitude-song-info="name" class="song-name"></span>
<span data-amplitude-song-info="artist" class="song-artist"></span>
</div>
<div class="time-progress">
<div id="progress-container">
<input type="range" class="amplitude-song-slider"/>
<progress id="song-played-progress" class="amplitude-song-played-progress"></progress>
<progress id="song-buffered-progress" class="amplitude-buffered-progress" value="0"></progress>
</div>
<div class="time-container">
<span class="current-time">
<span class="amplitude-current-minutes"></span>:<span class="amplitude-current-seconds"></span>
</span>
<span class="duration">
<span class="amplitude-duration-minutes"></span>:<span class="amplitude-duration-seconds"></span>
</span>
</div>
</div>
</div>
<div id="white-player-controls">
<div class="amplitude-shuffle amplitude-shuffle-off" id="shuffle"></div>
<div class="amplitude-prev" id="previous"></div>
<div class="amplitude-play-pause" id="play-pause"></div>
<div class="amplitude-next" id="next"></div>
<div class="amplitude-repeat" id="repeat"></div>
</div>
<div id="white-player-playlist-container">
<div class="white-player-playlist-top">
<div>
</div>
<div>
<span class="queue">Queue</span>
</div>
<div>
<img src="https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/close.svg" class="close-playlist"/>
</div>
</div>
<div class="white-player-up-next">
Up Next
</div>
<div class="white-player-playlist">
<div class="white-player-playlist-song amplitude-song-container amplitude-play-pause" data-amplitude-song-index="0">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/we-are-to-answer.jpg"/>
<div class="playlist-song-meta">
<span class="playlist-song-name">Risin' High (feat Raashan Ahmad)</span>
<span class="playlist-artist-album">Ancient Astronauts • We Are to Answer</span>
</div>
</div>
<div class="white-player-playlist-song amplitude-song-container amplitude-play-pause" data-amplitude-song-index="1">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/ask-the-dust.jpg"/>
<div class="playlist-song-meta">
<span class="playlist-song-name">The Gun</span>
<span class="playlist-artist-album">Lorn • Ask The Dust</span>
</div>
</div>
<div class="white-player-playlist-song amplitude-song-container amplitude-play-pause" data-amplitude-song-index="2">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/anvil.jpg"/>
<div class="playlist-song-meta">
<span class="playlist-song-name">The Gun</span>
<span class="playlist-artist-album">Lorn • Anvil</span>
</div>
</div>
<div class="white-player-playlist-song amplitude-song-container amplitude-play-pause" data-amplitude-song-index="3">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/we-are-to-answer.jpg"/>
<div class="playlist-song-meta">
<span class="playlist-song-name">I Came Running</span>
<span class="playlist-artist-album">Ancient Astronauts • We Are to Answer</span>
</div>
</div>
<div class="white-player-playlist-song amplitude-song-container amplitude-play-pause" data-amplitude-song-index="4">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/soon-it-will-be-cold-enough.jpg"/>
<div class="playlist-song-meta">
<span class="playlist-song-name">First Snow</span>
<span class="playlist-artist-album">Emancipator • Soon It Will Be Cold Enough</span>
</div>
</div>
</div>
<div class="white-player-playlist-controls">
<img data-amplitude-song-info="cover_art_url" class="playlist-album-art"/>
<div class="playlist-controls">
<div class="playlist-meta-data">
<span data-amplitude-song-info="name" class="song-name"></span>
<span data-amplitude-song-info="artist" class="song-artist"></span>
</div>
<div class="playlist-control-wrapper">
<div class="amplitude-prev" id="playlist-previous"></div>
<div class="amplitude-play-pause" id="playlist-play-pause"></div>
<div class="amplitude-next" id="playlist-next"></div>
</div>
</div>
</div>
</div>
</div>
<a href="https://serversideup.net/courses/amplitudejs-from-the-ground-up/" class="more-on-ssu">Learn More on Server Side Up</a>
</div>
<div class="right">
<div class="song-to-add" song-to-add="0">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/key.jpg"/>
<a class="add-to-playlist-button" song-to-add="0">
Add To Playlist
</a>
</div>
<div class="song-to-add" song-to-add="1">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/guidance.jpg"/>
<a class="add-to-playlist-button" song-to-add="1">
Add To Playlist
</a>
</div>
<div class="song-to-add" song-to-add="2">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/die-digital.jpg"/>
<a class="add-to-playlist-button" song-to-add="2">
Add To Playlist
</a>
</div>
<div class="song-to-add" song-to-add="3">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/we-are-but-hunks-of-wood.jpg"/>
<a class="add-to-playlist-button" song-to-add="3">
Add To Playlist
</a>
</div>
<div class="song-to-add" song-to-add="4">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/from-dusk-to-dawn.jpg"/>
<a class="add-to-playlist-button" song-to-add="4">
Add To Playlist
</a>
</div>
<div class="song-to-add" song-to-add="5">
<img src="https://521dimensions.com/img/open-source/amplitudejs/album-art/soon-it-will-be-cold-enough.jpg"/>
<a class="add-to-playlist-button" song-to-add="5">
Add To Playlist
</a>
</div>
</div>
</div>
</body>
</html>
/*
1. Base
*/
/*
2. Components
*/
div#white-player {
width: 100%;
max-width: 375px;
background-color: #FFFFFF;
box-shadow: 0px 12px 24px rgba(0, 0, 0, 0.12);
border-radius: 8px;
font-family: "Lato", sans-serif;
margin-left: auto;
margin-right: auto;
margin-top: 50px;
position: relative; }
div.white-player-top {
height: 64px;
display: flex;
width: 100%;
align-items: center; }
div.white-player-top div {
flex: 1; }
div.white-player-top div.center {
text-align: center; }
div.white-player-top span.now-playing {
color: #414344;
font-family: "Lato", sans-serif;
line-height: 64px;
font-weight: 600; }
div.white-player-top img.show-playlist {
float: right;
cursor: pointer;
margin-right: 10px; }
div#white-player-center img.main-album-art {
display: block;
margin: auto;
margin-top: 16px;
margin-bottom: 50px;
border-radius: 8px;
box-shadow: 0px 12px 24px rgba(0, 0, 0, 0.12);
width: 280px;
height: 280px; }
div#white-player-center div.song-meta-data span.song-name {
color: #414344;
display: block;
text-align: center;
font-size: 20px; }
div#white-player-center div.song-meta-data span.song-artist {
color: #AAAFB3;
display: block;
text-align: center;
font-size: 14px; }
div#white-player-center div.time-progress {
margin-bottom: 30px; }
div#white-player-center div.time-progress span.current-time {
color: #AAAFB3;
font-size: 12px;
display: block;
float: left;
margin-left: 20px; }
div#white-player-center div.time-progress div#progress-container {
margin-left: 20px;
margin-right: 20px;
position: relative;
height: 20px;
cursor: pointer;
/*
IE 11
*/ }
div#white-player-center div.time-progress div#progress-container:hover input[type=range].amplitude-song-slider::-webkit-slider-thumb {
display: block; }
div#white-player-center div.time-progress div#progress-container:hover input[type=range].amplitude-song-slider::-moz-range-thumb {
visibility: visible; }
div#white-player-center div.time-progress div#progress-container progress#song-played-progress {
width: 100%;
position: absolute;
left: 0;
top: 8px;
right: 0;
width: 100%;
z-index: 60;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
height: 4px;
border-radius: 5px;
background: transparent;
border: none;
/* Needed for Firefox */ }
@media all and (-ms-high-contrast: none) {
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container progress#song-played-progress {
color: #FA6733;
border: none;
background-color: #E1E1E1; } }
@supports (-ms-ime-align: auto) {
div#white-player-center div.time-progress div#progress-container progress#song-played-progress {
color: #FA6733;
border: none; } }
div#white-player-center div.time-progress div#progress-container progress#song-played-progress[value]::-webkit-progress-bar {
background: none;
border-radius: 5px; }
div#white-player-center div.time-progress div#progress-container progress#song-played-progress[value]::-webkit-progress-value {
background-color: #FA6733;
border-radius: 5px; }
div#white-player-center div.time-progress div#progress-container progress#song-played-progress::-moz-progress-bar {
background: none;
border-radius: 5px;
background-color: #FA6733;
height: 5px;
margin-top: -2px; }
div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress {
position: absolute;
left: 0;
top: 8px;
right: 0;
width: 100%;
z-index: 10;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
height: 4px;
border-radius: 5px;
background: transparent;
border: none;
background-color: #D7DEE3; }
div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress[value]::-webkit-progress-bar {
background-color: #E1E1E1;
border-radius: 5px; }
div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress[value]::-webkit-progress-value {
background-color: #E1E1E1;
border-radius: 5px;
transition: width .1s ease; }
div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress::-moz-progress-bar {
background: none;
border-radius: 5px;
background-color: #E1E1E1;
height: 5px;
margin-top: -2px; }
div#white-player-center div.time-progress div#progress-container progress::-ms-fill {
border: none; }
@-moz-document url-prefix() {
div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress {
top: 9px;
border: none; } }
@media all and (-ms-high-contrast: none) {
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress {
color: #78909C;
border: none; } }
@supports (-ms-ime-align: auto) {
div#white-player-center div.time-progress div#progress-container progress#song-buffered-progress {
color: #78909C;
border: none; } }
div#white-player-center div.time-progress div#progress-container input[type=range] {
-webkit-appearance: none;
width: 100%;
margin: 7.5px 0;
position: absolute;
z-index: 9999;
top: -7px;
height: 20px;
cursor: pointer;
background-color: inherit; }
div#white-player-center div.time-progress div#progress-container input[type=range]:focus {
outline: none; }
div#white-player-center div.time-progress div#progress-container input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 0px;
cursor: pointer;
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px rgba(13, 13, 13, 0);
background: #FA6733;
border-radius: 0px;
border: 0px solid #010101; }
div#white-player-center div.time-progress div#progress-container input[type=range]::-webkit-slider-thumb {
box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
border: 1px solid #FA6733;
height: 15px;
width: 15px;
border-radius: 16px;
background: #FA6733;
cursor: pointer;
-webkit-appearance: none;
margin-top: -7.5px; }
div#white-player-center div.time-progress div#progress-container input[type=range]:focus::-webkit-slider-runnable-track {
background: #FA6733; }
div#white-player-center div.time-progress div#progress-container input[type=range]::-moz-range-track {
width: 100%;
height: 0px;
cursor: pointer;
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px rgba(13, 13, 13, 0);
background: #FA6733;
border-radius: 0px;
border: 0px solid #010101; }
div#white-player-center div.time-progress div#progress-container input[type=range]::-moz-range-thumb {
box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
border: 1px solid #FA6733;
height: 15px;
width: 15px;
border-radius: 16px;
background: #FA6733;
cursor: pointer; }
div#white-player-center div.time-progress div#progress-container input[type=range]::-ms-track {
width: 100%;
height: 0px;
cursor: pointer;
background: transparent;
border-color: transparent;
color: transparent; }
div#white-player-center div.time-progress div#progress-container input[type=range]::-ms-fill-lower {
background: #003d57;
border: 0px solid #010101;
border-radius: 0px;
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px rgba(13, 13, 13, 0); }
div#white-player-center div.time-progress div#progress-container input[type=range]::-ms-fill-upper {
background: #FA6733;
border: 0px solid #010101;
border-radius: 0px;
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px rgba(13, 13, 13, 0); }
div#white-player-center div.time-progress div#progress-container input[type=range]::-ms-thumb {
box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
border: 1px solid #FA6733;
height: 15px;
width: 15px;
border-radius: 16px;
background: #FA6733;
cursor: pointer;
height: 0px;
display: none; }
@media all and (-ms-high-contrast: none) {
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container input[type="range"].amplitude-song-slider {
padding: 0px; }
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container input[type=range].amplitude-song-slider::-ms-thumb {
height: 15px;
width: 15px;
border-radius: 10px;
cursor: pointer;
margin-top: -8px; }
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container input[type=range].amplitude-song-slider::-ms-track {
border-width: 15px 0;
border-color: transparent; }
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container input[type=range].amplitude-song-slider::-ms-fill-lower {
background: #E1E1E1;
border-radius: 10px; }
div#white-player-center div.time-progress div#progress-container *::-ms-backdrop, div#white-player-center div.time-progress div#progress-container input[type=range].amplitude-song-slider::-ms-fill-upper {
background: #E1E1E1;
border-radius: 10px; } }
@supports (-ms-ime-align: auto) {
div#white-player-center div.time-progress div#progress-container input[type=range].amplitude-song-slider::-ms-thumb {
height: 15px;
width: 15px;
margin-top: 3px; } }
div#white-player-center div.time-progress div#progress-container input[type=range]:focus::-ms-fill-lower {
background: #FA6733; }
div#white-player-center div.time-progress div#progress-container input[type=range]:focus::-ms-fill-upper {
background: #FA6733; }
div#white-player-center div.time-progress span.duration {
color: #AAAFB3;
font-size: 12px;
display: block;
float: right;
margin-right: 20px; }
div#white-player-controls {
text-align: center;
padding-bottom: 35px; }
div#white-player-controls div#shuffle {
display: inline-block;
width: 19px;
height: 16px;
cursor: pointer;
vertical-align: middle;
margin-right: 24px; }
div#white-player-controls div#shuffle.amplitude-shuffle-off {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/shuffle-off.svg"); }
div#white-player-controls div#shuffle.amplitude-shuffle-on {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/shuffle-on.svg"); }
div#white-player-controls div#previous {
display: inline-block;
height: 53px;
width: 53px;
cursor: pointer;
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/previous.svg");
vertical-align: middle;
margin-right: 16px; }
div#white-player-controls div#play-pause {
display: inline-block;
width: 85px;
height: 85px;
cursor: pointer;
vertical-align: middle;
margin-right: 16px; }
div#white-player-controls div#play-pause.amplitude-paused {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/play.svg"); }
div#white-player-controls div#play-pause.amplitude-playing {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/pause.svg"); }
div#white-player-controls div#next {
display: inline-block;
height: 53px;
width: 53px;
cursor: pointer;
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/next.svg");
vertical-align: middle;
margin-right: 24px; }
div#white-player-controls div#repeat {
display: inline-block;
width: 18px;
height: 16px;
cursor: pointer;
vertical-align: middle; }
div#white-player-controls div#repeat.amplitude-repeat-off {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/repeat-off.svg"); }
div#white-player-controls div#repeat.amplitude-repeat-on {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/repeat-on.svg"); }
div#white-player-playlist-container {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
background-color: white;
z-index: 9999;
display: none;
border-radius: 8px; }
div.white-player-playlist-top {
height: 64px;
text-align: center;
display: flex; }
div.white-player-playlist-top div {
flex: 1; }
div.white-player-playlist-top div span.queue {
color: #414344;
font-family: "Lato", sans-serif;
line-height: 64px;
font-weight: 600; }
div.white-player-playlist-top div img.close-playlist {
margin-right: 16px;
margin-top: 22px;
float: right;
cursor: pointer; }
div.white-player-up-next {
margin-top: 6px;
padding-left: 20px;
font-size: 24px;
color: #414344; }
div.white-player-playlist {
margin-top: 32px;
height: calc( 100% - 234px );
overflow-y: scroll; }
div.white-player-playlist-song {
border-bottom: 1px solid #F5F5F6;
padding-top: 8px;
padding-bottom: 8px;
cursor: pointer; }
div.white-player-playlist-song:hover {
background-color: rgba(211, 94, 154, 0.3); }
div.white-player-playlist-song.amplitude-active-song-container {
background-color: rgba(238, 100, 82, 0.3); }
div.white-player-playlist-song img {
width: 48px;
height: 48px;
border-radius: 3px;
margin-left: 16px;
float: left; }
div.white-player-playlist-song div.playlist-song-meta {
float: left;
margin-left: 15px;
width: calc( 100% - 80px ); }
div.white-player-playlist-song div.playlist-song-meta span.playlist-song-name {
color: #414344;
font-size: 14px;
display: block;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; }
div.white-player-playlist-song div.playlist-song-meta span.playlist-artist-album {
color: #AAAFB3;
font-size: 12px;
display: block;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; }
div.white-player-playlist-song::after {
content: "";
display: table;
clear: both; }
div.white-player-playlist-controls {
background-color: #F5F5F6;
border-radius: 8px;
padding: 16px; }
div.white-player-playlist-controls img.playlist-album-art {
float: left;
box-shadow: 0px 12px 24px rgba(0, 0, 0, 0.12);
border-radius: 4px;
height: 64px;
width: 64px; }
div.white-player-playlist-controls div.playlist-controls {
float: left;
margin-left: 25px;
width: calc( 100% - 89px ); }
div.white-player-playlist-controls div.playlist-controls div.playlist-meta-data {
display: inline-block;
width: calc(100% - 125px);
vertical-align: middle; }
div.white-player-playlist-controls div.playlist-controls div.playlist-meta-data span.song-name {
display: block;
color: #414344;
font-size: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; }
div.white-player-playlist-controls div.playlist-controls div.playlist-meta-data span.song-artist {
display: block;
color: #AAAFB3;
font-size: 14px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; }
div.white-player-playlist-controls div.playlist-controls div.playlist-control-wrapper {
text-align: center;
margin-top: 10px;
display: inline-block;
width: 120px;
vertical-align: middle; }
div.white-player-playlist-controls div.playlist-controls div.playlist-control-wrapper div#playlist-previous {
display: inline-block;
height: 32px;
width: 32px;
cursor: pointer;
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/previous.svg");
vertical-align: middle;
background-size: 32px 32px; }
div.white-player-playlist-controls div.playlist-controls div.playlist-control-wrapper div#playlist-play-pause {
display: inline-block;
width: 32px;
height: 32px;
cursor: pointer;
vertical-align: middle; }
div.white-player-playlist-controls div.playlist-controls div.playlist-control-wrapper div#playlist-play-pause.amplitude-paused {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/play.svg");
background-size: 32px 32px; }
div.white-player-playlist-controls div.playlist-controls div.playlist-control-wrapper div#playlist-play-pause.amplitude-playing {
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/pause.svg");
background-size: 32px 32px; }
div.white-player-playlist-controls div.playlist-controls div.playlist-control-wrapper div#playlist-next {
display: inline-block;
height: 32px;
width: 32px;
cursor: pointer;
background: url("https://521dimensions.com/img/open-source/amplitudejs/examples/dynamic-songs/next.svg");
vertical-align: middle;
background-size: 32px 32px; }
div.white-player-playlist-controls::after {
content: "";
display: table;
clear: both; }
div.song-to-add {
width: 45%;
padding: 10px;
max-width: 250px; }
div.song-to-add img {
border-radius: 6px;
margin-top: 50px;
width: 100%; }
div.song-to-add a.add-to-playlist-button {
background-color: white;
color: #CC5CAD;
box-shadow: 0px 12px 24px rgba(0, 0, 0, 0.12);
text-align: center;
max-width: 150px;
border-radius: 6px;
padding-top: 5px;
padding-bottom: 5px;
margin: auto;
display: block;
margin-top: 10px;
font-weight: bold;
cursor: pointer; }
/* Medium only */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
div.song-to-add {
width: 40%;
padding: 5px; } }
/*
3. Layout
*/
body {
background-image: linear-gradient(-134deg, #C182DC 0%, #FB7C62 94%, #FF7C5B 100%);
-webkit-font-smoothing: antialiased;
font-family: "Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;
line-height: 1.5; }
body div.example-container {
width: 100%;
display: flex; }
body div.example-container div.left {
width: 50%; }
body div.example-container div.right {
width: 50%;
display: flex;
flex-wrap: wrap; }
@media screen and (max-width: 39.9375em) {
body div.example-container {
flex-direction: column; }
body div.example-container div.left {
width: 100%; }
body div.example-container div.right {
width: 100%; } }
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
body div.right {
padding-left: 20px; } }
/*
4. Pages
*/
/*
5. Themes
*/
/*
6. Utils
*/
/*
7. Vendors
*/
/*
8. Animations
*/
.slide-in-top {
-webkit-animation: slide-in-top 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
animation: slide-in-top 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }
/* ----------------------------------------------
* Generated by Animista on 2019-3-25 18:39:54
* w: http://animista.net, t: @cssanimista
* ---------------------------------------------- */
/**
* ----------------------------------------
* animation slide-in-top
* ----------------------------------------
*/
@-webkit-keyframes slide-in-top {
0% {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
opacity: 0; }
100% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1; } }
@keyframes slide-in-top {
0% {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
opacity: 0; }
100% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1; } }
.slide-out-top {
-webkit-animation: slide-out-top 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;
animation: slide-out-top 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both; }
/* ----------------------------------------------
* Generated by Animista on 2019-3-25 18:45:17
* w: http://animista.net, t: @cssanimista
* ---------------------------------------------- */
/**
* ----------------------------------------
* animation slide-out-top
* ----------------------------------------
*/
@-webkit-keyframes slide-out-top {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1; }
100% {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
opacity: 0; } }
@keyframes slide-out-top {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1; }
100% {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
opacity: 0; } }
/*# sourceMappingURL=app.css.map */
a.more-on-ssu{
background-color: white;
color: #CC5CAD;
box-shadow: 0px 12px 24px rgba(0, 0, 0, 0.12);
text-align: center;
max-width: 300px;
border-radius: 6px;
padding-top: 5px;
padding-bottom: 5px;
margin: auto;
display: block;
margin-top: 20px;
font-weight: bold;
cursor: pointer;
text-decoration: none;
}
var songsToAdd = [
{
"name": "Terrain",
"artist": "pg.lost",
"album": "Key",
"url": "https://521dimensions.com/songs/Terrain-pglost.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/key.jpg"
},
{
"name": "Vorel",
"artist": "Russian Circles",
"album": "Guidance",
"url": "https://521dimensions.com/songs/Vorel-RussianCircles.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/guidance.jpg"
},
{
"name": "Intro / Sweet Glory",
"artist": "Jimkata",
"album": "Die Digital",
"url": "https://521dimensions.com/songs/IntroSweetGlory-Jimkata.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/die-digital.jpg"
},
{
"name": "Offcut #6",
"artist": "Little People",
"album": "We Are But Hunks of Wood Remixes",
"url": "https://521dimensions.com/songs/Offcut6-LittlePeople.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/we-are-but-hunks-of-wood.jpg"
},
{
"name": "Dusk To Dawn",
"artist": "Emancipator",
"album": "Dusk To Dawn",
"url": "https://521dimensions.com/songs/DuskToDawn-Emancipator.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/from-dusk-to-dawn.jpg"
},
{
"name": "Anthem",
"artist": "Emancipator",
"album": "Soon It Will Be Cold Enough",
"url": "https://521dimensions.com/songs/Anthem-Emancipator.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/soon-it-will-be-cold-enough.jpg"
}
];
Amplitude.init({
"songs": [
{
"name": "Risin' High (feat Raashan Ahmad)",
"artist": "Ancient Astronauts",
"album": "We Are to Answer",
"url": "https://521dimensions.com/songs/Ancient Astronauts - Risin' High (feat Raashan Ahmad).mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/we-are-to-answer.jpg"
},
{
"name": "The Gun",
"artist": "Lorn",
"album": "Ask The Dust",
"url": "https://521dimensions.com/songs/08 The Gun.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/ask-the-dust.jpg"
},
{
"name": "Anvil",
"artist": "Lorn",
"album": "Anvil",
"url": "https://521dimensions.com/songs/LORN - ANVIL.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/anvil.jpg"
},
{
"name": "I Came Running",
"artist": "Ancient Astronauts",
"album": "We Are to Answer",
"url": "https://521dimensions.com/songs/ICameRunning-AncientAstronauts.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/we-are-to-answer.jpg"
},
{
"name": "First Snow",
"artist": "Emancipator",
"album": "Soon It Will Be Cold Enough",
"url": "https://521dimensions.com/songs/FirstSnow-Emancipator.mp3",
"cover_art_url": "https://521dimensions.com/img/open-source/amplitudejs/album-art/soon-it-will-be-cold-enough.jpg"
}
]
});
/*
Shows the playlist
*/
document.getElementsByClassName('show-playlist')[0].addEventListener('click', function(){
document.getElementById('white-player-playlist-container').classList.remove('slide-out-top');
document.getElementById('white-player-playlist-container').classList.add('slide-in-top');
document.getElementById('white-player-playlist-container').style.display = "block";
});
/*
Hides the playlist
*/
document.getElementsByClassName('close-playlist')[0].addEventListener('click', function(){
document.getElementById('white-player-playlist-container').classList.remove('slide-in-top');
document.getElementById('white-player-playlist-container').classList.add('slide-out-top');
document.getElementById('white-player-playlist-container').style.display = "none";
});
/*
Gets all of the add to playlist buttons so we can
add some event listeners to actually add to playlist.
*/
var addToPlaylistButtons = document.getElementsByClassName('add-to-playlist-button');
for( var i = 0; i < addToPlaylistButtons.length; i++ ){
/*
Add an event listener to the add to playlist button.
*/
addToPlaylistButtons[i].addEventListener('click', function(){
var songToAddIndex = this.getAttribute('song-to-add');
/*
Adds the song to Amplitude, appends the song to the display,
then rebinds all of the AmplitudeJS elements.
*/
var newIndex = Amplitude.addSong( songsToAdd[ songToAddIndex ] );
appendToSongDisplay( songsToAdd[ songToAddIndex ], newIndex );
Amplitude.bindNewElements();
/*
Removes the container that contained the add to playlist button.
*/
var songToAddRemove = document.querySelector('.song-to-add[song-to-add="'+songToAddIndex+'"]');
songToAddRemove.parentNode.removeChild( songToAddRemove );
});
}
/*
Appends the song to the display.
*/
function appendToSongDisplay( song, index ){
/*
Grabs the playlist element we will be appending to.
*/
var playlistElement = document.querySelector('.white-player-playlist');
/*
Creates the playlist song element
*/
var playlistSong = document.createElement('div');
playlistSong.setAttribute('class', 'white-player-playlist-song amplitude-song-container amplitude-play-pause');
playlistSong.setAttribute('data-amplitude-song-index', index);
/*
Creates the playlist song image element
*/
var playlistSongImg = document.createElement('img');
playlistSongImg.setAttribute('src', song.cover_art_url);
/*
Creates the playlist song meta element
*/
var playlistSongMeta = document.createElement('div');
playlistSongMeta.setAttribute('class', 'playlist-song-meta');
/*
Creates the playlist song name element
*/
var playlistSongName = document.createElement('span');
playlistSongName.setAttribute('class', 'playlist-song-name');
playlistSongName.innerHTML = song.name;
/*
Creates the playlist song artist album element
*/
var playlistSongArtistAlbum = document.createElement('span');
playlistSongArtistAlbum.setAttribute('class', 'playlist-song-artist');
playlistSongArtistAlbum.innerHTML = song.artist+' • '+song.album;
/*
Appends the name and artist album to the playlist song meta.
*/
playlistSongMeta.appendChild( playlistSongName );
playlistSongMeta.appendChild( playlistSongArtistAlbum );
/*
Appends the song image and meta to the song element
*/
playlistSong.appendChild( playlistSongImg );
playlistSong.appendChild( playlistSongMeta );
/*
Appends the song element to the playlist
*/
playlistElement.appendChild( playlistSong );
}
This Pen doesn't use any external CSS resources.