690 lines
12 KiB
CSS
690 lines
12 KiB
CSS
@font-face {
|
|
font-family: "Monaspace Argon";
|
|
src: url("/font/monaspace-argon/MonaspaceArgonVarVF[wght,wdth,slnt].woff2") format("woff2-variations");
|
|
font-weight: 125 950;
|
|
font-stretch: 75% 125%;
|
|
font-style: oblique 0deg 20deg;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: 16px;
|
|
line-height: 1.5em;
|
|
color: #fff;
|
|
background-color: #111;
|
|
font-family: "Monaspace Argon", monospace;
|
|
}
|
|
|
|
#background {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
background-size: cover;
|
|
background-position: center;
|
|
filter: blur(25px) saturate(25%) brightness(0.5);
|
|
-webkit-filter: blur(25px) saturate(25%) brightness(0.5);;
|
|
animation: background-init .5s forwards,background-loop 30s ease-in-out infinite
|
|
}
|
|
|
|
#go-back {
|
|
position: fixed;
|
|
top: 4rem;
|
|
left: 1rem;
|
|
width: 2.5rem;
|
|
height: 2.5rem;
|
|
margin: 0;
|
|
font-size: 1.5rem;
|
|
line-height: 2.6rem;
|
|
display: flex;
|
|
justify-content: center;
|
|
color: #fff;
|
|
background-color: #111;
|
|
border-radius: 4px;
|
|
text-decoration: none;
|
|
box-shadow: 0 0 8px #0004;
|
|
z-index: 1;
|
|
}
|
|
|
|
main {
|
|
position: absolute;
|
|
top: 3rem;
|
|
width: 100vw;
|
|
min-height: calc(100vh - 9rem);
|
|
margin: 0;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
#music-container {
|
|
width: min(960px, calc(100vw - 4rem));
|
|
height: 360px;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: nowrap;
|
|
gap: 4rem;
|
|
font-size: 16px;
|
|
animation: card-init .5s forwards;
|
|
padding: 4rem;
|
|
}
|
|
|
|
#art-container {
|
|
display: flex;
|
|
align-items: center;
|
|
position: relative;
|
|
width: 20rem;
|
|
transition: transform .5s cubic-bezier(0,0,0,1);
|
|
}
|
|
|
|
#art-container:hover {
|
|
transform: scale(1.05) translateY(-5px);
|
|
}
|
|
|
|
#art-container:hover img#artwork {
|
|
box-shadow: 0 16px 18px #0003;
|
|
}
|
|
|
|
/* TILT CONTROLS */
|
|
|
|
#art-container > div {
|
|
position: absolute;
|
|
width: 33.3%;
|
|
height: 33.3%;
|
|
z-index: 2;
|
|
}
|
|
|
|
#art-container > div.tilt-topleft {
|
|
top: 0;
|
|
left: 0;
|
|
}
|
|
|
|
#art-container > div.tilt-topleft:hover ~ #artwork {
|
|
transform: rotate3d(-1, 1, 0, 20deg);
|
|
filter: brightness(var(--shine));
|
|
-webkit-filter: brightness(var(--shine));
|
|
}
|
|
|
|
#art-container > div.tilt-top {
|
|
top: 0;
|
|
left: 33.3%;
|
|
}
|
|
|
|
#art-container > div.tilt-top:hover ~ #artwork {
|
|
transform: rotate3d(-1, 0, 0, 20deg);
|
|
filter: brightness(var(--shine));
|
|
-webkit-filter: brightness(var(--shine));
|
|
}
|
|
|
|
#art-container > div.tilt-topright {
|
|
top: 0;
|
|
right: 0;
|
|
}
|
|
|
|
#art-container > div.tilt-topright:hover ~ #artwork {
|
|
transform: rotate3d(-1, -1, 0, 20deg);
|
|
filter: brightness(var(--shine));
|
|
-webkit-filter: brightness(var(--shine));
|
|
}
|
|
|
|
#art-container > div.tilt-right {
|
|
top: 33.3%;
|
|
right: 0;
|
|
}
|
|
|
|
#art-container > div.tilt-right:hover ~ #artwork {
|
|
transform: rotate3d(0, -1, 0, 20deg);
|
|
}
|
|
|
|
#art-container > div.tilt-bottomright {
|
|
bottom: 0;
|
|
right: 0;
|
|
}
|
|
|
|
#art-container > div.tilt-bottomright:hover ~ #artwork {
|
|
transform: rotate3d(1, -1, 0, 20deg);
|
|
filter: brightness(var(--shadow));
|
|
-webkit-filter: brightness(var(--shadow));
|
|
}
|
|
|
|
#art-container > div.tilt-bottom {
|
|
bottom: 0;
|
|
left: 33.3%;
|
|
}
|
|
|
|
#art-container > div.tilt-bottom:hover ~ #artwork {
|
|
transform: rotate3d(1, 0, 0, 20deg);
|
|
filter: brightness(var(--shadow));
|
|
-webkit-filter: brightness(var(--shadow));
|
|
}
|
|
|
|
#art-container > div.tilt-bottomleft {
|
|
bottom: 0;
|
|
left: 0;
|
|
}
|
|
|
|
#art-container > div.tilt-bottomleft:hover ~ #artwork {
|
|
transform: rotate3d(1, 1, 0, 20deg);
|
|
filter: brightness(var(--shadow));
|
|
-webkit-filter: brightness(var(--shadow));
|
|
}
|
|
|
|
#art-container > div.tilt-left {
|
|
top: 33.3%;
|
|
left: 0;
|
|
}
|
|
|
|
#art-container > div.tilt-left:hover ~ #artwork {
|
|
transform: rotate3d(0, 1, 0, 20deg);
|
|
}
|
|
|
|
/* TILT CONTROLS */
|
|
|
|
#artwork {
|
|
--shine: 1.05;
|
|
--shadow: 0.8;
|
|
width: 360px;
|
|
height: 360px;
|
|
margin: auto;
|
|
display: flex;
|
|
justify-content: center;
|
|
line-height: 15rem;
|
|
border-radius: 4px;
|
|
color: #888;
|
|
background-color: #ccc;
|
|
box-shadow: 0 16px 16px #0004;
|
|
transition: transform 1s cubic-bezier(0,0,0,1), filter .3s linear, box-shadow .3s linear;
|
|
}
|
|
|
|
div#vertical-line {
|
|
width: 1px;
|
|
background-color: #fff4;
|
|
}
|
|
|
|
div#info {
|
|
margin: -4rem;
|
|
padding: 4rem;
|
|
height: 360px;
|
|
overflow: scroll;
|
|
scroll-behavior: smooth;
|
|
mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
|
|
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
div#info > div {
|
|
min-width: 420px;
|
|
min-height: 360px;
|
|
padding: 4rem 1rem 4rem 4rem;
|
|
margin: -4rem -3.5rem -4rem -4rem;
|
|
}
|
|
|
|
div#info p {
|
|
max-width: 500px;
|
|
white-space: pre-line;
|
|
}
|
|
|
|
#title-container {
|
|
display: flex;
|
|
align-items: last baseline;
|
|
flex-direction: row;
|
|
}
|
|
|
|
#title {
|
|
margin: 0;
|
|
line-height: 1em;
|
|
font-size: 2.5em;
|
|
}
|
|
|
|
#year {
|
|
margin-left: .9em;
|
|
font-size: 1.2em;
|
|
color: #eee8;
|
|
font-weight: bold;
|
|
}
|
|
|
|
#artist {
|
|
margin: .2em 0 1em 0;
|
|
font-size: 1em;
|
|
color: #eee;
|
|
}
|
|
|
|
#title,
|
|
#artist {
|
|
text-shadow: 0 .05em 2px #0004
|
|
}
|
|
|
|
#type {
|
|
display: inline-block;
|
|
margin: 0;
|
|
padding: .3em .8em;
|
|
color: #fff;
|
|
background-color: #111;
|
|
text-transform: uppercase;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
#type.single {
|
|
background-color: #3b47f4;
|
|
}
|
|
|
|
#type.ep {
|
|
background-color: #f419bd
|
|
}
|
|
|
|
#type.album {
|
|
background-color: #34c627
|
|
}
|
|
|
|
#type.comp {
|
|
background-color: #ee8d46
|
|
}
|
|
|
|
#type.upcoming {
|
|
background-color: #ff3e3e
|
|
}
|
|
|
|
#type.upcoming span {
|
|
animation: bob 2s ease-in-out infinite;
|
|
display: inline-block;
|
|
}
|
|
|
|
#upcoming-release {
|
|
width: fit-content;
|
|
padding: .3em 1em;
|
|
font-size: 1em;
|
|
background: #101010;
|
|
}
|
|
|
|
ul#links {
|
|
width: 100%;
|
|
margin: 1rem 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
gap: .5rem;
|
|
list-style: none;
|
|
}
|
|
|
|
ul#links li {
|
|
flex-grow: 1;
|
|
}
|
|
|
|
#buylink,
|
|
ul#links a {
|
|
width: calc(100% - 1.6em);
|
|
padding: .5em .8em;
|
|
display: block;
|
|
border-radius: 4px;
|
|
font-size: 1em;
|
|
color: #111;
|
|
background-color: #fff;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
transition: filter .1s,-webkit-filter .1s
|
|
}
|
|
|
|
#buylink {
|
|
margin-top: 1em;
|
|
margin-bottom: -.5em;
|
|
background-color: #ff94e9
|
|
}
|
|
|
|
ul#links a.presave {
|
|
background-color: #ff94e9
|
|
}
|
|
|
|
ul#links a.spotify {
|
|
background-color: #8cff83
|
|
}
|
|
|
|
ul#links a.applemusic {
|
|
background-color: #8cd9ff
|
|
}
|
|
|
|
ul#links a.soundcloud {
|
|
background-color: #fdaa6d
|
|
}
|
|
|
|
ul#links a.youtube {
|
|
background-color: #ff6e6e
|
|
}
|
|
|
|
ul#links a:hover {
|
|
filter: brightness(125%);
|
|
-webkit-filter: brightness(125%)
|
|
}
|
|
|
|
#description {
|
|
font-size: 1.1em;
|
|
}
|
|
|
|
#copyright {
|
|
margin-bottom: 0;
|
|
font-size: .8em;
|
|
}
|
|
|
|
#share {
|
|
margin: 0;
|
|
padding: 0;
|
|
display: inline-block;
|
|
color: inherit;
|
|
font-family: inherit;
|
|
font-size: inherit;
|
|
line-height: 1em;
|
|
text-shadow: 0 .05em 2px #0004;
|
|
cursor: pointer;
|
|
opacity: .5;
|
|
background: none;
|
|
border: none;
|
|
transition: opacity .1s linear;
|
|
}
|
|
|
|
#share:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
#share.active {
|
|
animation: share-click .5s forwards
|
|
}
|
|
|
|
#share.active::after {
|
|
content: "✓";
|
|
position: relative;
|
|
left: .2em;
|
|
font-size: 1.2em;
|
|
line-height: 1em;
|
|
animation: share-after 2s cubic-bezier(.5,0,1,.5) forwards
|
|
}
|
|
|
|
#info h2 {
|
|
width: fit-content;
|
|
padding: .3em 1em;
|
|
font-size: 1em;
|
|
background: #101010;
|
|
}
|
|
|
|
div#extras ul {
|
|
height: 100%;
|
|
display: flex;
|
|
padding: 0;
|
|
flex-direction: column;
|
|
margin: 0 -.5rem;
|
|
position: relative;
|
|
}
|
|
|
|
div#extras ul li {
|
|
flex-grow: 1;
|
|
display: flex;
|
|
width: 0;
|
|
}
|
|
|
|
div#extras ul li a {
|
|
padding: 0 .5rem;
|
|
writing-mode: vertical-rl;
|
|
text-align: center;
|
|
color: #888;
|
|
text-decoration: none;
|
|
font-style: italic;
|
|
transition: color .1s linear;
|
|
}
|
|
|
|
div#extras ul li a:hover,
|
|
div#extras ul li a.active {
|
|
color: #eee;
|
|
}
|
|
|
|
#credits ul {
|
|
list-style: "> ";
|
|
}
|
|
|
|
#credits ul li {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
#tracks details[open] {
|
|
margin-bottom: 1.5em;
|
|
}
|
|
|
|
#tracks summary {
|
|
margin-bottom: 1em;
|
|
padding: 1em;
|
|
background-color: #0008;
|
|
cursor: pointer;
|
|
transition: background-color .1s linear;
|
|
}
|
|
|
|
#tracks summary:hover {
|
|
background-color: #2228;
|
|
}
|
|
|
|
#tracks summary:active {
|
|
background-color: #4448;
|
|
}
|
|
|
|
#tracks summary.active {
|
|
color: #000;
|
|
background-color: var(--primary);
|
|
}
|
|
|
|
#tracks summary::marker,
|
|
#tracks summary::-webkit-details-marker {
|
|
content: "";
|
|
display: none;
|
|
}
|
|
|
|
.album-track-subheading {
|
|
width: fit-content;
|
|
padding: .3em 1em;
|
|
background: #101010;
|
|
}
|
|
|
|
footer {
|
|
position: fixed;
|
|
left: 0;
|
|
bottom: 0;
|
|
width: 100vw;
|
|
height: 6rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
color: #eee;
|
|
background-color: #0008;
|
|
backdrop-filter: blur(25px)
|
|
}
|
|
|
|
footer p {
|
|
margin: 0
|
|
}
|
|
|
|
footer a {
|
|
color: inherit;
|
|
text-decoration: none
|
|
}
|
|
|
|
footer a:hover {
|
|
text-decoration: underline
|
|
}
|
|
|
|
@media only screen and (max-width: 1105px) {
|
|
main {
|
|
min-height: calc(100vh - 4rem);
|
|
}
|
|
|
|
#music-container {
|
|
width: calc(100vw - 8rem);
|
|
height: fit-content;
|
|
padding: 2rem 0 6rem 0;
|
|
gap: 1rem;
|
|
font-size: 12px;
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
#art-container {
|
|
width: 100%;
|
|
}
|
|
|
|
#artwork {
|
|
width: auto;
|
|
max-width: 60vw;
|
|
height: auto;
|
|
max-height: 50vh;
|
|
}
|
|
|
|
#vertical-line {
|
|
display: none;
|
|
}
|
|
|
|
div#info {
|
|
width: 100%;
|
|
gap: 2rem;
|
|
height: auto;
|
|
overflow-y: auto;
|
|
mask-image: none;
|
|
}
|
|
|
|
div#info > div {
|
|
min-width: auto;
|
|
min-height: auto;
|
|
padding: 0;
|
|
margin: 2em 0 0 0;
|
|
overflow-y: unset;
|
|
}
|
|
|
|
div#info p {
|
|
margin: 0 auto;
|
|
}
|
|
|
|
div#overview p {
|
|
margin: .5em auto;
|
|
}
|
|
|
|
div#extras {
|
|
display: none;
|
|
}
|
|
|
|
#title-container {
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
#year {
|
|
display: block;
|
|
margin: 0;
|
|
}
|
|
|
|
#artist {
|
|
margin: .2em auto 1em auto;
|
|
}
|
|
|
|
#links {
|
|
margin: 2rem 0;
|
|
justify-content: center;
|
|
}
|
|
|
|
#extras {
|
|
justify-content: center;
|
|
}
|
|
|
|
#credits ul {
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
#share.active::after {
|
|
transform: translate(calc(-50% - .6em),1.5em);
|
|
}
|
|
|
|
#credits h2 {
|
|
margin: 0 auto;
|
|
}
|
|
|
|
#lyrics p.album-track-subheading {
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
footer {
|
|
height: 4rem;
|
|
font-size: .8rem;
|
|
}
|
|
|
|
#pride-flag {
|
|
display: none;
|
|
}
|
|
|
|
#overlay {
|
|
background-size: 100vw 4px;
|
|
}
|
|
}
|
|
|
|
@keyframes background-init {
|
|
from {
|
|
opacity: 0
|
|
}
|
|
to {
|
|
opacity: 1
|
|
}
|
|
}
|
|
|
|
@keyframes background-loop {
|
|
from {
|
|
transform: scale(1)
|
|
}
|
|
50% {
|
|
transform: scale(1.05)
|
|
}
|
|
to {
|
|
transform: scale(1)
|
|
}
|
|
}
|
|
|
|
@keyframes card-init {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(.9)
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1)
|
|
}
|
|
}
|
|
|
|
@keyframes share-click {
|
|
from {
|
|
color: #5dfc01
|
|
}
|
|
to {
|
|
color: #eee
|
|
}
|
|
}
|
|
|
|
@keyframes share-after {
|
|
from {
|
|
opacity: 1
|
|
}
|
|
to {
|
|
opacity: 0
|
|
}
|
|
}
|
|
|
|
@keyframes bob {
|
|
from,
|
|
to {
|
|
transform: translateY(-10%);
|
|
}
|
|
50% {
|
|
transform: translateY(10%);
|
|
}
|
|
}
|
|
|