diff --git a/assets/*shels.jpg b/assets/*shels.jpg new file mode 100644 index 00000000..8ebda455 Binary files /dev/null and b/assets/*shels.jpg differ diff --git a/assets/65daysofstatic_onetimeforalltime.jpg b/assets/65daysofstatic_onetimeforalltime.jpg new file mode 100644 index 00000000..e4b07dba Binary files /dev/null and b/assets/65daysofstatic_onetimeforalltime.jpg differ diff --git a/assets/alcest_souvenirsdunautremonde.jpg b/assets/alcest_souvenirsdunautremonde.jpg new file mode 100644 index 00000000..69196ba0 Binary files /dev/null and b/assets/alcest_souvenirsdunautremonde.jpg differ diff --git a/assets/bamba.jpg b/assets/bamba.jpg new file mode 100644 index 00000000..25944e37 Binary files /dev/null and b/assets/bamba.jpg differ diff --git a/assets/caspian_duskanddisquiet.jpg b/assets/caspian_duskanddisquiet.jpg new file mode 100644 index 00000000..81fa22f8 Binary files /dev/null and b/assets/caspian_duskanddisquiet.jpg differ diff --git a/assets/childishgambino_camp.jpg b/assets/childishgambino_camp.jpg new file mode 100644 index 00000000..fec47386 Binary files /dev/null and b/assets/childishgambino_camp.jpg differ diff --git a/assets/dan_bendmogwairemix.jpeg b/assets/dan_bendmogwairemix.jpeg new file mode 100644 index 00000000..220db97e Binary files /dev/null and b/assets/dan_bendmogwairemix.jpeg differ diff --git a/assets/die_iosonouncane.jpg b/assets/die_iosonouncane.jpg new file mode 100644 index 00000000..f742811f Binary files /dev/null and b/assets/die_iosonouncane.jpg differ diff --git a/assets/domakesaythink_thelandlordisdead.jpg b/assets/domakesaythink_thelandlordisdead.jpg new file mode 100644 index 00000000..f6d6d412 Binary files /dev/null and b/assets/domakesaythink_thelandlordisdead.jpg differ diff --git a/assets/folkrock.jpg b/assets/folkrock.jpg new file mode 100644 index 00000000..1574ef4e Binary files /dev/null and b/assets/folkrock.jpg differ diff --git a/assets/haim_moshe.jpg b/assets/haim_moshe.jpg new file mode 100644 index 00000000..7d6161c9 Binary files /dev/null and b/assets/haim_moshe.jpg differ diff --git a/assets/kendrick_mrmorale.jpg b/assets/kendrick_mrmorale.jpg new file mode 100644 index 00000000..7c44beaa Binary files /dev/null and b/assets/kendrick_mrmorale.jpg differ diff --git a/assets/mixes/chill_mix.jpg b/assets/mixes/chill_mix.jpg new file mode 100644 index 00000000..dd4ea153 Binary files /dev/null and b/assets/mixes/chill_mix.jpg differ diff --git a/assets/mixes/explosions_in_the_sky_mix.jpg b/assets/mixes/explosions_in_the_sky_mix.jpg new file mode 100644 index 00000000..0786d2b4 Binary files /dev/null and b/assets/mixes/explosions_in_the_sky_mix.jpg differ diff --git a/assets/mixes/folk_acoustic_mix.jpg b/assets/mixes/folk_acoustic_mix.jpg new file mode 100644 index 00000000..7148fca7 Binary files /dev/null and b/assets/mixes/folk_acoustic_mix.jpg differ diff --git a/assets/mixes/hiphop_mix.jpg b/assets/mixes/hiphop_mix.jpg new file mode 100644 index 00000000..8d8a97b2 Binary files /dev/null and b/assets/mixes/hiphop_mix.jpg differ diff --git a/assets/mixes/indie_mix.jpg b/assets/mixes/indie_mix.jpg new file mode 100644 index 00000000..64442616 Binary files /dev/null and b/assets/mixes/indie_mix.jpg differ diff --git a/assets/mixes/metal_mix.jpg b/assets/mixes/metal_mix.jpg new file mode 100644 index 00000000..6baa9153 Binary files /dev/null and b/assets/mixes/metal_mix.jpg differ diff --git a/assets/mixes/nineties_mix.jpg b/assets/mixes/nineties_mix.jpg new file mode 100644 index 00000000..b84e0699 Binary files /dev/null and b/assets/mixes/nineties_mix.jpg differ diff --git a/assets/mogwai_thehawkishowling.jpg b/assets/mogwai_thehawkishowling.jpg new file mode 100644 index 00000000..2e91994c Binary files /dev/null and b/assets/mogwai_thehawkishowling.jpg differ diff --git a/assets/mohican_theabuseischaracter.jpg b/assets/mohican_theabuseischaracter.jpg new file mode 100644 index 00000000..c058e40a Binary files /dev/null and b/assets/mohican_theabuseischaracter.jpg differ diff --git a/assets/profile_picture.jpg b/assets/profile_picture.jpg new file mode 100644 index 00000000..d81da79a Binary files /dev/null and b/assets/profile_picture.jpg differ diff --git a/assets/welostthesea_departuresongs.jpg b/assets/welostthesea_departuresongs.jpg new file mode 100644 index 00000000..ad13af2e Binary files /dev/null and b/assets/welostthesea_departuresongs.jpg differ diff --git a/assets/ye_ye.jpg b/assets/ye_ye.jpg new file mode 100644 index 00000000..774f53e2 Binary files /dev/null and b/assets/ye_ye.jpg differ diff --git a/css/style.css b/css/style.css deleted file mode 100644 index e69de29b..00000000 diff --git a/css/styles.css b/css/styles.css new file mode 100644 index 00000000..5a52f807 --- /dev/null +++ b/css/styles.css @@ -0,0 +1,616 @@ +* { + margin: 0; + box-sizing: border-box; +} + +:root { + --dark-bg: #121212; + --text-dimmed: #a7a7a7; + --spotify-green: rgba(30, 215, 96, 1); +} + +body { + height: 100vh; + font-family: Circular; + background-color: #000000; + color: var(--text-dimmed); +} + +.page-wrapper { + height: 100%; + display: grid; + grid-template-rows: calc(100% - 75px - 10px) 75px; +} + +.content-wrapper { + display: grid; + height: 100%; + margin: 10px 10px 0; + grid-template-columns: 250px 1fr; + column-gap: 10px; + grid-template-rows: 1fr; +} + +.sidebar { + z-index: 0; + position: fixed; + height: calc(100% - 75px - 10px); + top: 10px; + left: 10px; + width: 250px; + display: grid; + grid-template-rows: auto 1fr; + row-gap: 10px; +} + +.navigation-wrapper { + display: grid; + background-color: var(--dark-bg); + border-radius: 10px; +} + +.navigation-button { + margin: 12px; + display: grid; + grid-template-columns: 24px auto 1fr; + column-gap: 20px; + justify-content: center; + align-items: center; + font-weight: bold; +} + +.active { + color: white; + + #icon { + fill: white; + } +} + +#home, +#search { + margin-left: 25px; + + &:hover { + color: white; + + svg { + fill: white; + } + } +} + +#home { + margin-top: 20px; +} + +#search { + margin-bottom: 20px; +} + +#icon { + height: 24px; + width: 24px; + fill: var(--text-dimmed); +} + +.library-wrapper { + background-color: var(--dark-bg); + border-radius: 10px; +} + +.library-header { + margin: 15px; + margin-left: 25px; + display: grid; + grid-template-columns: 24px 1fr; + column-gap: 20px; + justify-content: center; + align-items: center; + font-weight: bold; + + &:hover { + color: white; + + #icon { + fill: white; + } + } +} + +.library-list { + position: absolute; + overflow-y: scroll; + width: 100%; + height: calc(100% - 150px - 27px); + padding: 0; +} + +.playlist { + list-style: none; + display: grid; + margin: 5px 10px; + padding: 5px 5px; + justify-content: center; + align-items: center; + grid-template-columns: 45px 1fr; + column-gap: 20px; + + &:hover { + background-color: #303030; + border-radius: 10px; + } +} + +#playlist-icon { + height: 45px; + width: 45px; + border-radius: 5px; +} + +.playlist-details { + display: grid; + grid-auto-flow: row; +} + +.playlist-name, +.playlist-details, +.playlist-metadata, +.card-title { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.playlist-name { + color: white; +} + +.playlist-metadata { + display: grid; + grid-template-columns: 16px calc(100% - 21px); + column-gap: 5px; + font-size: 13px; +} + +#pinned-icon { + height: 16px; + width: 16px; + fill: var(--spotify-green); +} + +.content { + position: fixed; + left: 270px; + width: calc(100% - 280px); + height: calc(100% - 75px - 10px); + grid-column: 4 / span 1; + background: rgb(24, 24, 24); + background: linear-gradient( + 0deg, + rgba(18, 18, 18, 1) 0%, + rgba(18, 18, 18, 1) 50%, + rgba(69, 69, 69, 0.69) 100% + ); + border-radius: 10px; +} + +.browser { + overflow-y: scroll; + position: absolute; + height: calc(100% - 65px); + width: 100%; + display: grid; + margin-bottom: -50px; +} + +.browser-banner { + position: relative; + z-index: 1000; + width: 100%; + height: 65px; + display: grid; + grid-template-columns: auto 1fr auto; +} + +.arrow-buttons { + display: grid; + grid-auto-flow: column; + justify-content: left; + align-items: center; + column-gap: 10px; + margin-left: 35px; +} + +.arrow-icon-wrapper { + display: grid; + justify-content: center; + align-items: center; + border-radius: 20px; + padding: 10px; + background-color: rgba(0, 0, 0, 0.5); +} + +#arrow-icon { + width: 16px; + height: 16px; + fill: rgba(255, 255, 255, 0.5); +} + +.user-actions { + grid-column: 3 / -1; + display: grid; + grid-auto-flow: column; + justify-content: right; + align-items: center; + column-gap: 10px; + margin-right: 35px; +} + +#upgrade-button, +#install-button { + padding: 5px 10px; + font-weight: bold; + border-radius: 10px; +} + +#upgrade-button { + border: 2px solid white; + background-color: white; + color: #121212; +} + +#install-button { + display: grid; + grid-auto-flow: column; + column-gap: 7.5px; + justify-content: center; + align-items: center; + border: none; + background-color: rgba(0, 0, 0, 0); + color: white; +} + +#install-icon { + width: 16px; + height: 16px; + fill: white; + margin-bottom: 1px; +} + +#profile-picture { + width: 25px; + height: 25px; + border-radius: 20px; +} + +.list-wrapper { + margin-top: 35px; + height: auto; + display: grid; + grid-template-rows: 50px calc(250px + 75px + 10px); + grid-template-columns: repeat(5, 250px); + justify-content: space-around; + align-items: center; + grid-auto-flow: row; + row-gap: 30px; +} + +.list-title { + grid-row: 1 / span 1; + grid-column: 1 / -1; + color: white; +} + +.card { + display: grid; + grid-template-rows: 250px 75px; + row-gap: 10px; + justify-content: center; + align-items: start; + + &:hover { + .card-play-button { + display: grid; + justify-content: center; + align-items: center; + } + } +} + +.card-cover { + position: relative; + height: 250px; + width: 250px; +} + +#mix-cover { + width: 250px; + height: 250px; + border-radius: 5px; +} + +.card-play-button { + animation: fadeInText 300ms 0ms forwards; + display: none; + position: absolute; + bottom: 15px; + right: 10px; + width: 56px; + height: 56px; + border-radius: 50px; + border: none; + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; + background-color: var(--spotify-green); +} + +@keyframes fadeInText { + from { + transform: translateY(15px); + opacity: 0; + } + + to { + transform: translateY(0); + opacity: 1; + } +} + +#card-play-icon { + height: 20px; + width: 20px; +} + +.card-details { + display: grid; + width: 100%; + row-gap: 5px; +} + +.card-title { + color: white; +} + +.card-subtitle { + width: 100%; + display: -webkit-box; + max-width: 100%; + margin: 0 auto; + -webkit-line-clamp: 2; + /* autoprefixer: off */ + -webkit-box-orient: vertical; + /* autoprefixer: on */ + overflow: hidden; + text-overflow: ellipsis; +} + +.music-player { + z-index: 1; + position: fixed; + bottom: 0; + width: 100%; + height: 75px; +} + +.player-wrapper { + height: 100%; + display: grid; + grid-template-columns: 1fr 2fr 1fr; +} + +.now-playing { + width: 100%; + display: grid; + grid-template-columns: 5px 56px auto 16px; + justify-content: left; + align-items: center; + column-gap: 15px; +} + +#now-playing-cover { + grid-column: 2 / span 1; + height: 50px; + border-radius: 5px; +} + +.now-playing-track-info { + grid-column: 3 / span 1; + width: 100%; + font-size: 14px; + display: grid; +} + +.now-playing-track-name { + color: white; +} + +#add-to-library-icon { + height: 16px; + width: 16px; + fill: var(--spotify-green); +} + +.player-controls { + width: 100%; + display: grid; + padding: 10px; + grid-template-columns: 1fr 1fr 1fr; + grid-template-rows: 1fr 1fr; + justify-content: center; + align-items: center; +} + +.media-controls-wrapper { + grid-column: 2 / span 1; + display: grid; + grid-auto-flow: column; + justify-content: center; + align-items: center; + column-gap: 35px; +} + +#media-controls-icon { + height: 16px; + width: 16px; + fill: #d5d5d5; + + &:hover { + fill: var(--spotify-green); + } +} + +.play-pause-button { + display: grid; + justify-content: center; + align-items: center; + width: 32px; + height: 32px; + border-radius: 25px; + border: none; +} + +#media-controls-play-pause-icon { + height: 16px; + width: 16px; + fill: #121212; +} + +.timeline-wrapper { + grid-column: 1 / -1; + grid-row: 2 / -1; + display: grid; + grid-template-columns: auto 1fr auto; + column-gap: 5px; +} + +.timeline { + display: grid; + align-items: center; +} + +#timeline { + -webkit-appearance: none; + width: 100%; + height: 5px; + background: #303030; + border-radius: 2px; + outline: none; +} + +#timeline::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + border-radius: 50%; + background: var(--spotify-green); + cursor: pointer; +} + +.misc-controls { + padding-right: 35px; + display: grid; + grid-auto-flow: column; + justify-content: right; + align-items: center; + column-gap: 25px; +} + +.current-time, +.time-remaining { + font-size: 12px; +} + +#misc-controls-icon { + height: 16px; + width: 16px; + fill: #d5d5d5; + + &:hover { + fill: var(--spotify-green); + } +} + +@media (max-width: 1775px) { + .list-wrapper { + grid-template-columns: repeat(4, 250px); + } +} + +@media (max-width: 1475px) { + .list-wrapper { + grid-template-columns: repeat(3, 250px); + } +} + +@media (max-width: 1215px) { + .player-wrapper { + grid-template-columns: 1fr 2fr 0.5fr; + } + + .misc-controls { + display: none; + } +} + +@media (max-width: 1200px) { + .list-wrapper { + grid-template-columns: repeat(2, 250px); + } +} + +@media (max-width: 720px) { + .list-wrapper { + grid-template-columns: repeat(1, 250px); + } +} + +@media (max-width: 600px) { + .arrow-buttons { + display: none; + } +} + +@media (max-width: 450px) { + .user-actions { + display: none; + } +} + +@media (max-width: 900px) { + .player-wrapper { + grid-template-columns: 0.5fr 2fr 0.5fr; + } + + .sidebar { + width: 75px; + } + + .misc-controls, + .now-playing-track-info, + .add-to-library-button, + .sidebar span, + .playlist-details { + display: none; + } + + .library-header, + .navigation-button { + grid-template-columns: 24px; + } + + #home, + #search, + .library-header { + margin-left: 12px; + } + + .playlist { + grid-template-columns: 45px; + } + + .content { + left: 95px; + width: calc(100% - 105px); + } +} diff --git a/fonts/CircularSp-Bold.woff2 b/fonts/CircularSp-Bold.woff2 new file mode 100644 index 00000000..0b8659dc Binary files /dev/null and b/fonts/CircularSp-Bold.woff2 differ diff --git a/fonts/CircularSp-Regular.woff2 b/fonts/CircularSp-Regular.woff2 new file mode 100644 index 00000000..90cfc354 Binary files /dev/null and b/fonts/CircularSp-Regular.woff2 differ diff --git a/fonts/CircularSpTitle-Black.woff2 b/fonts/CircularSpTitle-Black.woff2 new file mode 100644 index 00000000..428e3bb2 Binary files /dev/null and b/fonts/CircularSpTitle-Black.woff2 differ diff --git a/fonts/CircularSpTitle-Bold.woff2 b/fonts/CircularSpTitle-Bold.woff2 new file mode 100644 index 00000000..7eb88233 Binary files /dev/null and b/fonts/CircularSpTitle-Bold.woff2 differ diff --git a/fonts/fonts.css b/fonts/fonts.css new file mode 100644 index 00000000..1a305a79 --- /dev/null +++ b/fonts/fonts.css @@ -0,0 +1,15 @@ +/* +Fonts scraped from Spotify's website +*/ + +@font-face { + font-family: Circular; + font-weight: normal; + src: url("CircularSp-Regular.woff2"); +} + +@font-face { + font-family: Circular; + font-weight: bold; + src: url("CircularSp-Bold.woff2"); +} diff --git a/index.html b/index.html index 56efbdba..33da609a 100644 --- a/index.html +++ b/index.html @@ -1,12 +1,772 @@ - + - - - - - Document - - - - - \ No newline at end of file + + + + + + + + Spotify + + +
+
+ +
+
+
+
+ + + +
+
+ + + +
+
+ +
+
+
+

Recently played

+
+
+ + +
+
+ + Sea of the Dying Dhow + + *shels +
+
+
+
+ + +
+ +
+ DIE + + Iosonouncane + +
+
+
+
+ + +
+ +
+ + Departure Songs + + + We Lost The Sea + +
+
+
+
+ + +
+
+ + Dusk And Disquiet + + Caspian +
+
+
+
+ + +
+
+ + One Time For All Time + + + 65daysofstatic + +
+
+
+
+

Your top mixes

+
+
+ + +
+
+ + Explosions In The Sky Mix + + + Do Make Say Think, We Lost The Sea, + Caspian and Sigur Rós + +
+
+
+
+ + +
+ +
+ 90s Mix + + The Weeknd, The Goo Goo Dolls, Coolio + and more + +
+
+
+
+ + +
+ +
+ Chill Mix + + Do Make Say Think, Godspeed You! Black + Emperor, Explosions In The Sky and more + +
+
+
+
+ + +
+
+ + Hip Hop Mix + + + Future, Kendrick Lamar, J. Cole, 2Pac + and more + +
+
+
+
+ + +
+
+ Metal Mix + + *shels, And So I Watch You from Afar, + and Sunbather + +
+
+
+
+

Your playlists

+
+
+ + +
+
+ Folk Rock + + Thomas Jensen + +
+
+
+
+ + +
+
+ ישראלי + + Thomas Jensen + +
+
+
+
+
+
+ +
+ + +