first commit! 🎉
Signed-off-by: ari melody <ari@arimelody.me>
This commit is contained in:
commit
27d6e4f011
97 changed files with 2957 additions and 0 deletions
550
public/style/music-gateway.css
Normal file
550
public/style/music-gateway.css
Normal file
|
@ -0,0 +1,550 @@
|
|||
@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;
|
||||
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: absolute;
|
||||
top: 1rem;
|
||||
left: 1rem;
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
margin: 0;
|
||||
font-size: 1.5rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
background-color: #fff1;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 0 8px #0004;
|
||||
z-index: 100
|
||||
}
|
||||
|
||||
main {
|
||||
display: flex;
|
||||
min-height: calc(100vh - 6rem);
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
#music-container {
|
||||
position: absolute;
|
||||
width: min(960px, calc(100vw - 4rem));
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
gap: 4rem;
|
||||
animation: card-init .5s forwards
|
||||
}
|
||||
|
||||
#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: 100%;
|
||||
max-width: 512px;
|
||||
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;
|
||||
box-shadow: 0 0 16px #000;
|
||||
}
|
||||
|
||||
#title {
|
||||
margin: 0;
|
||||
line-height: 1em;
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
#year {
|
||||
margin-left: .9em;
|
||||
font-size: .5em;
|
||||
color: #eee
|
||||
}
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
#links {
|
||||
margin: 1rem 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
gap: .5rem
|
||||
}
|
||||
|
||||
#links a {
|
||||
padding: .5em .8em;
|
||||
border-radius: 4px;
|
||||
flex-grow: 1;
|
||||
font-size: 1em;
|
||||
color: #111;
|
||||
background-color: #fff;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
transition: filter .1s,-webkit-filter .1s
|
||||
}
|
||||
|
||||
#links a.buy {
|
||||
background-color: #ff94e9
|
||||
}
|
||||
|
||||
#links a.presave {
|
||||
background-color: #ff94e9
|
||||
}
|
||||
|
||||
#links a.spotify {
|
||||
background-color: #8cff83
|
||||
}
|
||||
|
||||
#links a.applemusic {
|
||||
background-color: #8cd9ff
|
||||
}
|
||||
|
||||
#links a.soundcloud {
|
||||
background-color: #fdaa6d
|
||||
}
|
||||
|
||||
#links a.youtube {
|
||||
background-color: #ff6e6e
|
||||
}
|
||||
|
||||
#links a:hover {
|
||||
filter: brightness(125%);
|
||||
-webkit-filter: brightness(125%)
|
||||
}
|
||||
|
||||
#description {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
#share {
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
text-shadow: 0 .05em 2px #0004;
|
||||
cursor: pointer;
|
||||
opacity: .5;
|
||||
transition: opacity .1s linear;
|
||||
}
|
||||
|
||||
#share:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#share.active {
|
||||
animation: share-click .5s forwards
|
||||
}
|
||||
|
||||
#share.active::after {
|
||||
content: "✓";
|
||||
font-size: 1.5em;
|
||||
line-height: .75em;
|
||||
position: absolute;
|
||||
transform: translateX(.3em);
|
||||
animation: share-after 2s cubic-bezier(.5,0,1,.5) forwards
|
||||
}
|
||||
|
||||
#tracks {
|
||||
flex-basis: 100%;
|
||||
max-height: 10rem;
|
||||
margin: auto 8rem;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0 2rem;
|
||||
overflow-y: auto;
|
||||
scrollbar-color: #fff transparent;
|
||||
scrollbar-width: thin
|
||||
}
|
||||
|
||||
#tracks .track-preview {
|
||||
width: 100%;
|
||||
height: 2.5rem;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
border-bottom: 1px solid #fff2;
|
||||
border-radius: 4px;
|
||||
user-select: none;
|
||||
transition: background-color .2s,color .2s
|
||||
}
|
||||
|
||||
#tracks .track-preview: last-of-type {
|
||||
border-bottom: none
|
||||
}
|
||||
|
||||
.track-preview:hover {
|
||||
background-color: #0002
|
||||
}
|
||||
|
||||
.track-preview.playing {
|
||||
color: #111;
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.track-preview i {
|
||||
width: .7em;
|
||||
margin: auto .8em;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.track-preview p {
|
||||
margin: auto 0;
|
||||
display: inline-block;
|
||||
line-height: 2em;
|
||||
font-size: 1em;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.track-preview audio {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
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: 800px) {
|
||||
main {
|
||||
min-height: calc(100vh - 4rem);
|
||||
}
|
||||
|
||||
#music-container {
|
||||
width: calc(100vw - 8rem);
|
||||
height: fit-content;
|
||||
gap: 1rem;
|
||||
padding: 2rem 0;
|
||||
flex-direction: column;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
#art-container {
|
||||
width: 100%;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
#artwork {
|
||||
max-width: 40vh;
|
||||
max-height: 40vh;
|
||||
}
|
||||
|
||||
#vertical-line {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#music-container #info {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
#year {
|
||||
display: block;
|
||||
margin: -.5em 0 .5rem;
|
||||
}
|
||||
|
||||
#links {
|
||||
margin: 2rem 0;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#share.active: : after {
|
||||
transform: translate(calc(-50% - .6em),1.5em);
|
||||
}
|
||||
|
||||
#tracks {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
height: 4rem;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-image: linear-gradient(180deg, rgba(0,0,0,0) 15%, rgb(0, 0, 0) 40%, rgb(0, 0, 0) 60%, rgba(0,0,0,0) 85%);
|
||||
background-size: 100vw .2em;
|
||||
background-repeat: repeat;
|
||||
opacity: .5;
|
||||
pointer-events: none;
|
||||
/* animation: linear .05s infinite alternate overlay-flicker; */
|
||||
mix-blend-mode: overlay;
|
||||
}
|
||||
|
||||
@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%);
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue