Skip to content

Instantly share code, notes, and snippets.

@tuliopc23
Created October 12, 2025 02:57
Show Gist options
  • Select an option

  • Save tuliopc23/31869460abd6a0fc369f204a2eefcfde to your computer and use it in GitHub Desktop.

Select an option

Save tuliopc23/31869460abd6a0fc369f204a2eefcfde to your computer and use it in GitHub Desktop.
LIQUID GLASS
<div class="iphone">
<div class="date-time">
<div class="date">Monday 9 June</div>
<div class="time">11:14</div>
</div>
<div class="notification glass">
<div class="icon">
<!-- &#x2709; -->
</div>
<div class="text">
<div class="app">Codpen</div>
<div class="description">The codepen newsletter...</div>
</div>
</div>
<div class="player glass">
<div class="song">Web Development</div>
<div class="artist">Adam Curzon</div>
<div class="track-holder">
<div>1:05</div>
<div class="track"></div>
<div>-0:37</div>
</div>
<div class="icons">
<div>&#x23EE;</div>
<div>&#x23f8;</div>
<div>&#x23ED;</div>
</div>
</div>
<div class="extra-buttons">
<div class="glass">
A
</div>
<div class="glass">
B
</div>
</div>
</div>
<div class="title">
<div class="main">LIQUID</div>
<div class="sub">GLASS</div>
</div>
document.addEventListener('mousemove', (e) => {
const xPercent = (e.clientX / window.innerWidth - 0.5) * 10;
const yPercent = (e.clientY / window.innerHeight - 0.5) * 10;
document.querySelector('.iphone').style.backgroundPosition = `calc(50% + ${xPercent}px) calc(50% + ${yPercent}px)`;
});
body {
background: #111;
display: flex;
align-items: center;
justify-content: center;
font-family: system-ui;
color: white;
}
.dark-glass {
background: rgba(0,0,0,0.1);
border-radius: 25px;
backdrop-filter: blur(4px);
border: 2px solid rgba(0,0,0,0.2);
}
.glass {
background: rgba(255,255,255,0.1);
border-radius: 25px;
backdrop-filter: blur(4px);
border: 2px solid rgba(255,255,255,0.2);
}
.iphone {
width: 350px;
height: 700px;
border-radius: 60px;
background-image: URL('https://cdn.pixabay.com/photo/2020/05/27/22/18/meadow-5229169_1280.jpg');
background-position: center center;
position: relative;
filter: saturate(140%);
}
.player {
width: 320px;
height: 150px;
position: absolute;
left: 15px;
bottom: 95px;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.player .song {
font-weight: 600;
}
.player .artist {
font-weight: 400;
color: #eee;
}
.player .track-holder {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
font-size: 10px;
margin-top: 10px;
}
.player .track-holder .track {
width: 220px;
height: 6px;
border-radius: 100px;
background: linear-gradient(90deg, white 60%, rgba(255,255,255,0.4) 50%);
}
.player .icons {
display: flex;
gap: 20px;
align-items: center;
justify-content: center;
font-size: 30px;
font-size: 50px;
}
.notification {
width: 320px;
height: 70px;
position: absolute;
left: 15px;
bottom: 255px;
display: flex;
align-items: center;
}
.notification .icon {
width: 50px;
height: 50px;
border-radius: 15px;
text-align: center;
font-size: 90px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255,255,255,0.2);
margin-left: 10px;
margin-right: 10px;
}
.notification .text .app {
font-weight: 700;
}
.notification .text .description {
font-weight: 400;
color: #eee;
}
.extra-buttons {
width: 280px;
display: flex;
justify-content: space-between;
position: absolute;
bottom: 40px;
left: 35px;
}
.extra-buttons div {
height: 45px;
aspect-ratio: 1;
line-height: 45px;
text-align: center;
}
.date-time {
text-align: center;
width: 100%;
position: absolute;
top: 70px;
}
.date-time .date {
font-weight: 500;
font-size: 20px
}
.date-time .time {
font-weight: 700;
font-size: 80px;
margin-top: -10px;
}
.title {
font-size: 50px;
margin-left: 20px;
}
.title .sub {
font-weight: 700;
margin-top: -10px;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment