- Files
- Index
- Style
- Script
- README
- CDN Add
- Open Sans Google Fonts
- font-awesome 6.0.0 cdnjs
PLEASE WAIT...
<div id="app">
<div class="hero">
<div class="nav">
<div class="menu">
<i class="fa-solid fa-bars"></i>
</div>
<div class="links">
<span>Series</span>
<span class="active">Movies</span>
<span>Documentaries</span>
<span class="kids">Kids</span>
</div>
</div>
<img
src="https://images.theposterdb.com/prod/public/images/posters/optimized/movies/479/NoMBdRLnZNIRjueeJIi5G4wWbvLaYFspdIjde9N1.webp"
/>
<div class="info container">
<div class="category">Action • 2017</div>
<div class="title">Guardians of the Galaxy Vol. 2</div>
<div class="buttons">
<div class="button play"><i class="fa-solid fa-play"></i> Play</div>
<div class="button list"><i class="fa-solid fa-plus"></i> My List</div>
</div>
</div>
</div>
<div class="categories">
<img
class="category"
src="https://images.theposterdb.com/prod/public/images/posters/optimized/categories/339068/2DeT2sVdxXbDEZf8OAW47FOaEByW82gHoV3unHiD.webp"
/>
<img
class="category"
src="https://images.theposterdb.com/prod/public/images/posters/optimized/categories/265058/fcKOY820tHGJlIjjJ79vCunUo9nRrZylN3MHYJk5.webp"
/>
<img
class="category"
src="https://images.theposterdb.com/prod/public/images/posters/optimized/categories/265092/jva9Tso1oeYx0O3nSyfm5bGb9RBQDxUXH1s11m7g.webp"
/>
<img
class="category"
src="https://images.theposterdb.com/prod/public/images/posters/optimized/categories/339859/QxclwjrwZ51EwuWpDarqdCo7kOyDt4Ah5H1vhubE.webp"
/>
<img
class="category"
src="https://images.theposterdb.com/prod/public/images/posters/optimized/categories/339488/X5EVeF6u2lqzjfRjQ2Yeapchd3CPblYBpXZKZBYj.webp"
/>
</div>
<div class="continue">
<img
src="https://images.theposterdb.com/prod/public/images/posters/optimized/collections/2574/XGcglmVPlsPBuiyBtPex58yKh0xVZ1FbEGUS5QdD.webp"
/>
<div class="info">
<div class="subtitle">Continue Watching</div>
<div class="title">Batman <span class="duration">-36:45</span></div>
<div class="progress">
<span></span>
</div>
</div>
</div>
</div>
/* @skriper mockup:phone */
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
padding: 0;
margin: 0;
background-color: #050505;
font-family: "Open Sans", sans-serif;
color: #f9f9f9;
font-size: 14px;
}
#app {
position: relative;
margin: auto;
max-width: 400px;
border-radius: 20px;
}
#app .hero .nav {
position: absolute;
width: 100%;
display: flex;
gap: 15px;
line-height: 40px;
align-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.8);
}
#app .hero .nav .menu {
width: 40px;
height: 40px;
cursor: pointer;
text-align: center;
}
#app .hero .nav .links {
display: flex;
flex-grow: 1;
gap: 15px;
justify-content: center;
}
#app .hero .nav .links span {
opacity: 0.8;
cursor: pointer;
}
#app .hero .nav .links span.kids {
font-weight: bold;
transform: rotate(-6deg);
}
#app .hero .nav .links span.active {
font-weight: bold;
text-decoration: underline;
}
#app .hero {
position: relative;
height: 400px;
}
#app .hero img {
width: 100%;
height: 400px;
object-fit: cover;
object-position: top center;
}
#app .hero .info {
position: absolute;
z-index: 3;
width: 94%;
bottom: 0px;
background: rgba(0, 0, 0, 0.7);
margin-left: 3%;
margin-bottom: 3%;
border-radius: 4px;
}
#app .hero .info .category {
text-transform: uppercase;
font-size: 12px;
font-weight: 800;
opacity: 0.9;
}
#app .hero .info .title {
font-size: 18px;
font-weight: 600;
}
#app .hero .info .buttons {
display: flex;
gap: 20px;
align-content: center;
align-items: center;
margin-top: 20px;
}
#app .hero .info .buttons .button {
display: flex;
gap: 15px;
padding: 15px;
flex-grow: 1;
background: linear-gradient(
277deg,
rgba(247, 247, 247, 1) 15%,
rgba(230, 230, 230, 1) 100%
);
color: #222;
border-radius: 3px;
height: 35px;
align-content: center;
align-items: center;
text-transform: uppercase;
font-weight: 600;
cursor: pointer;
justify-content: center;
transition: all 0.2 ease;
}
#app .hero .info .buttons .button.play {
color: #fff;
background: linear-gradient(
277deg,
rgba(255, 0, 0, 1) 16%,
rgba(194, 0, 0, 1) 100%
);
box-shadow: 0px 2px 20px rgba(194, 0, 0, 0.6);
}
#app .hero .info .buttons .button.play:hover {
box-shadow: 0px 2px 30px rgba(194, 0, 0, 0.8);
}
#app .hero .info .buttons .button:active {
opacity: 0.6;
transition: all 0.2 ease;
}
#app .hero .info .buttons .button.play:active {
box-shadow: 0px 2px 20px rgba(194, 0, 0, 0.2);
transition: all 0.2 ease;
}
#app .categories {
width: 100%;
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
gap: 10px;
padding: 20px;
}
#app .categories::-webkit-scrollbar {
display: none; /* Check JS tab */
}
#app .categories .category {
flex-grow: 0;
flex-shrink: 0;
flex-basis: 60px;
display: flex;
height: 140px;
text-align: center;
transition: all 0.2 ease;
align-content: center;
align-items: center;
border-radius: 4px;
text-transform: uppercase;
font-weight: 600;
object-fit: cover;
cursor: pointer;
}
#app .continue {
display: flex;
gap: 15px;
width: 100%;
padding: 15px;
background-color: rgba(255, 255, 255, 0.05);
position: fixed;
bottom: 0;
}
#app .continue img {
width: 50px;
height: 60px;
object-fit: cover;
border-radius: 4px;
box-shadow: 0px 5px 20px rgba(0,0,0,.2);
}
#app .continue .info {
flex-grow: 1;
display: flex;
flex-direction: column;
}
#app .continue .info .subtitle {
font-weight: 600;
text-transform: uppercase;
font-size: 12px;
margin-bottom: 5px;
}
#app .continue .info .title {
font-weight: 600;
margin-bottom: 5px;
display: flex;
}
#app .continue .info .title .duration {
margin-left: auto;
font-size: 12px;
opacity: 0.7;
}
#app .continue .progress {
height: 5px;
border-radius: 2px;
background-color: rgba(255, 255, 255, 0.05);
width: 100%;
display: flex;
overflow: hidden;
}
#app .continue .progress span {
background: linear-gradient(
48deg,
rgba(227, 227, 227, 1) 2%,
rgba(255, 255, 255, 1) 100%
);
width: 65%;
}
#app .container {
padding: 20px;
}
const scrollContainer = document.querySelector(".categories")
scrollContainer.addEventListener("wheel", (evt) => {
evt.preventDefault()
scrollContainer.scrollLeft += evt.deltaY
})