Files
TD_Portfolio/Music/style.css
T
Tomas Dvorak 882f91ebf6 first commit
2025-01-04 11:45:15 +01:00

679 lines
11 KiB
CSS

/* author: https://codepen.io/ecemgo/pen/MWxjXeq
Ecem Gokdogan */
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;500;600;700;800;900;1000&family=Roboto:wght@300;400;500;700&display=swap");
*,
*::before,
*::after {
box-sizing: border-box;
padding: 0;
margin: 0;
}
nav {
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
}
nav ul,
nav ul li {
outline: 0;
}
nav ul li a {
text-decoration: none;
}
img {
width: 100%;
}
h1 {
font-size: clamp(1.2rem, 3vw, 1.5rem);
}
body {
font-family: "Nunito", sans-serif;
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
background-color: #090909;
background-repeat: no-repeat;
background-size: cover;
}
/* MAIN MENU */
main {
display: grid;
grid-template-columns: 11% 89%;
width: 95%;
margin: 40px;
background: rgb(9, 9, 9);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.5);
border-radius: 15px;
box-shadow: 0 0.5px 0 1px rgba(255, 255, 255, 0.23) inset,
0 1px 0 0 rgba(255, 255, 255, 0.6) inset, 0 4px 16px rgba(0, 0, 0, 0.12);
z-index: 10;
}
.main-menu {
display: flex;
flex-direction: column;
justify-content: space-between;
border-radius: 15px 0 0 15px;
border-right: 1px solid rgba(255, 255, 255, 0.5);
padding: 12px 0 20px;
overflow: hidden;
font-family: inherit;
}
.user-info img {
padding: 12px 24px 6px;
border-radius: 50%;
}
.user-info p {
color: #fff;
font-size: clamp(0.8rem, 3vw, 1rem);
font-weight: 500;
text-align: center;
line-height: 1;
padding: 0 6px 32px;
}
.nav-item {
display: block;
}
.nav-item a {
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1rem;
padding: 12px 0;
margin: 0 8px;
border-radius: 5px;
}
.nav-icon {
width: 40px;
height: 20px;
font-size: 1.1rem;
}
.nav-text {
display: block;
width: 70px;
height: 20px;
letter-spacing: 0;
}
/* CONTENT */
.content {
display: grid;
grid-template-columns: 75% 25%;
}
.content2 {
display: grid;
grid-template-columns: 100%;
}
/* LEFT CONTENT */
.left-content {
padding: 30px 20px;
color: #e5e5e5;
}
/* SLIDER */
.slider-container {
margin: 0 auto;
width: 100%;
}
.swiper {
width: 100%;
padding: 16px 0 40px;
margin-bottom: 50px;
}
.swiper-slide {
position: relative;
width: 600px;
}
.swiper-slide img {
border-radius: 20px;
height: 300px;
object-fit: cover;
border: 2px solid rgba(255, 255, 255, 0.897);
}
.swiper-pagination {
--swiper-pagination-bottom: -4px;
}
.swiper-pagination-bullet {
width: 10px;
height: 10px;
background-color: #ffffffe7;
transition: all 0.3s ease-in-out;
}
.swiper-pagination-bullet-active {
background-color: #fff;
width: 18px;
border-radius: 8px;
}
.slide-overlay {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-end;
row-gap: 12px;
position: absolute;
inset: 0;
width: 100%;
height: 98%;
border-radius: 20px;
padding: 30px;
background: transparent;
transition: background 1s ease-in-out;
box-shadow: 10px 12px 0px 0px #ffffff;
}
.slide-overlay::before {
content: "";
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
background: linear-gradient(
240deg,
transparent 20%,
transparent 50%,
rgba(255, 0, 0, 0.637) 100%
);
opacity: 0;
border-radius: 20px;
transition: opacity 0.5s ease;
z-index: 1;
}
.slide-overlay.active::before {
opacity: 1;
}
.slide-overlay h2 {
font-size: clamp(1.2rem, 3vw, 2.2rem);
font-weight: 800;
text-shadow: 5px 5px 0 #ffffff;
color: transparent;
z-index: 2;
}
.slide-overlay a {
align-items: center;
justify-content: center;
column-gap: 10px;
width: max-content;
padding: 12px 16px;
background: transparent;
color: #ffffff;
border: 1px solid rgb(255, 255, 255);
border-radius: 12px;
outline: 0;
font-size: clamp(0.7rem, 3vw, 1rem);
font-weight: 500;
text-transform: uppercase;
box-shadow: rgba(0, 0, 0, 0.16) 0px 10px 36px 0px,
rgba(0, 0, 0, 0.06) 0px 0px 0px 1px;
transition: all 0.4s linear;
cursor: pointer;
z-index: 2;
text-decoration: none;
}
.slide-overlay a:is(:hover, :focus-visible) {
background: #fff;
color: rgb(0, 0, 0);
box-shadow: 4px 4px 0 2px rgb(0, 0, 0);
}
/* Containers of Artist and Albums */
.containers {
display: flex;
align-items: center;
padding: 0 0 12px;
overflow-x: auto;
cursor: grab;
}
/* ARTISTS */
.artists h1 {
margin-bottom: 24px;
}
.artist-container {
column-gap: 20px;
}
.artist {
display: grid;
grid-auto-flow: dense;
align-items: center;
grid-template-rows: 8fr 2fr;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
}
.artist img {
object-fit: cover;
border-radius: 50%;
border: 2px solid rgb(255, 255, 255);
width: 140px;
scale: 0.9;
aspect-ratio: 1/1;
margin-bottom: 8px;
transition: transform 0.8s;
}
.artist img:hover {
border: 4px solid rgb(255, 0, 0);
box-shadow: rgb(255, 0, 0) 0px 3px 14px -3px,
rgb(255, 0, 0) 0px -3px 5px inset;
box-shadow: none inset;
transform: rotate(-3deg) scale(1.12);
}
.artist p {
font-size: clamp(0.9rem, 3vw, 1rem);
font-weight: 500;
text-align: center;
}
/* ALBUMS */
.albums h1 {
margin: 60px 0 14px;
}
.album-container {
column-gap: 24px;
}
.album {
display: grid;
grid-auto-flow: dense;
grid-template-rows: 5fr 2fr;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
}
.album-frame {
position: relative;
width: 180px;
aspect-ratio: 1/1;
border: 2px solid rgb(255, 255, 255);
border-radius: 10px;
margin-bottom: 15px;
overflow: hidden;
}
.album-frame img {
position: absolute;
inset: 0;
height: 100%;
object-fit: cover;
transition: transform 0.8s;
}
.album-frame img:hover {
transform: rotate(3deg) scale(1.2);
}
.album-frame:hover{
border: 4px solid rgb(255, 0, 0);
box-shadow: rgb(255, 0, 0) 0px 3px 14px -3px,
rgb(255, 0, 0) 0px -3px 5px inset;
}
.album h2 {
font-size: clamp(0.9rem, 4vw, 1.1rem);
font-weight: 500;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
@supports (-webkit-line-clamp: 2) {
overflow: hidden;
text-overflow: ellipsis;
white-space: initial;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
}
.album p {
font-size: clamp(0.9rem, 4vw, 1rem);
opacity: 0.5;
}
/* Containers Scrollbar Style */
.artist-container::-webkit-scrollbar,
.album-container::-webkit-scrollbar {
height: 10px;
}
.artist-container::-webkit-scrollbar-thumb,
.album-container::-webkit-scrollbar-thumb {
box-shadow: inset 0 0 0.5rem rgb(255, 255, 255);
background-color: rgb(255, 255, 255);
outline: none;
border-radius: 40px;
}
/* RIGHT CONTENT */
.right-content {
display: grid;
grid-template-rows: 60% 40%;
border-radius: 0 15px 15px 0;
border-left: 1px solid rgba(255, 255, 255, 0.5);
padding: 30px 20px;
color: #e5e5e5;
}
/* SONGS */
.recommended-songs h1 {
margin-bottom: 24px;
}
.song-container {
align-items: center;
}
.song {
display: grid;
grid-template-columns: 26% auto 10%;
align-items: center;
margin-bottom: 16px;
}
.song-img {
position: relative;
width: 60px;
border-radius: 6px;
}
.song-img img {
aspect-ratio: 4/3;
border-radius: inherit;
object-fit: cover;
border: 2px solid rgba(255, 255, 255, 0.884);
box-shadow: 8px -10px 0px 0px #ffffff;
}
.song-img .one {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
inset: 0;
width: 100%;
height: 92%;
border-radius: inherit;
font-size: 1.75rem;
opacity: 0;
transition: all 0.4s linear;
cursor: pointer;
box-shadow: rgb(255, 196, 0) 0px 6px 20px -3px,
rgb(255, 196, 0) 0px -3px 0px inset,
8px -10px 0px 0px rgb(255, 196, 0);
}
.song-img .overlay {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
inset: 0;
width: 100%;
height: 92%;
border-radius: inherit;
font-size: 1.75rem;
opacity: 0;
transition: all 0.4s linear;
cursor: pointer;
box-shadow: rgb(0, 183, 255) 0px 6px 20px -3px,
rgb(0, 183, 255) 0px -3px 0px inset,
8px -10px 0px 0px rgb(0, 183, 255);
}
.song-img .overlay2 {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
inset: 0;
width: 100%;
height: 92%;
border-radius: inherit;
font-size: 1.75rem;
opacity: 0;
transition: all 0.4s linear;
cursor: pointer;
box-shadow: rgb(204, 0, 255) 0px 6px 20px -3px,
rgb(204, 0, 255) 0px -3px 0px inset,
8px -10px 0px 0px rgb(204, 0, 255);
}
.song-img .sli {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
inset: 0;
width: 100%;
height: 92%;
border-radius: inherit;
font-size: 1.75rem;
opacity: 0;
transition: all 0.4s linear;
cursor: pointer;
box-shadow: rgb(255, 0, 0) 0px 3px 14px -3px,
rgb(255, 0, 0) 0px -3px 0px inset;
}
.overlay:hover {
opacity: 1;
}
.one:hover {
opacity: 1;
}
.overlay2:hover {
opacity: 1;
}
.sli:hover {
opacity: 1;
}
.song h2 {
font-size: 1rem;
}
.song p,
.song span {
font-size: 0.8rem;
font-weight: 300;
}
.song p {
opacity: 0.8;
}
.bandsvid{
border-radius: 15px;
border: 2px solid rgba(255, 255, 255, 0.884);
margin-bottom: 15px;
box-shadow: 10px 12px 0px 0px #ffffff;
}
.splitter{
border-top: 1px solid rgba(255, 255, 255, 0.884);
margin-top: 60px;
margin-bottom: 60px;
}
.splitter2{
border-top: 1px solid rgba(255, 255, 255, 0.884);
margin-top: 25px;
margin-bottom: 10px;
}
@media only screen and (max-width: 1424px) {
main {
grid-template-columns: 100%;
}
.content, .content2 {
grid-template-columns: 100%;
}
.swiper-slide {
width: 100%;
}
.logo {
display: none;
}
.slide-overlay {
box-shadow: none;
}
}
@media only screen and (max-width: 820px) {
main {
grid-template-columns: 100%;
}
.content, .content2 {
grid-template-columns: 100%;
}
.swiper-slide {
width: 100%;
}
.logo {
display: none;
}
.slide-overlay {
box-shadow: none;
}
.bandsvid{
width: 280px;
height: 157.5px;
}
}
a{
text-decoration: none;
}
.last-played-song {
margin-top: 40px;
padding: 20px;
background: rgba(255, 255, 255, 0.1);
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
color: #e5e5e5;
}
.last-played-song h1 {
font-size: 1.5rem;
margin-bottom: 20px;
text-align: center;
}
#last-played-song-info {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.song-info-container {
display: flex;
align-items: center;
}
.album-cover {
width: 100px;
height: 100px;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
margin-right: 20px;
}
.song-details {
display: flex;
flex-direction: column;
align-items: flex-start;
}
.song-details p {
margin: 5px 0;
font-size: 1rem;
}
.timeline {
display: flex;
align-items: center;
width: 100%;
margin-top: 10px;
}
.timeline span {
font-size: 0.9rem;
margin: 0 10px;
}
.progress-bar {
flex-grow: 1;
height: 10px;
background: rgba(255, 255, 255, 0.2);
border-radius: 5px;
overflow: hidden;
position: relative;
}
.progress {
height: 100%;
background: #1db954;
position: absolute;
top: 0;
left: 0;
}