yadunut.dev/layouts/film.shtml
Yadunand Prem 9f30a23177
All checks were successful
Build OCI Image / docker (push) Successful in 54s
Add film photos
2025-08-23 01:27:42 +08:00

120 lines
2.6 KiB
Plaintext

<extend template="base.shtml">
<head id="head">
<style>
#prev-next {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 40px;
}
figure {
align-self: center;
text-align: center;
font-style: italic;
}
.post {
display:flex;
flex-direction: column;
}
.image-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
grid-auto-rows: 150px;
gap: 10px;
margin-bottom: 40px;
padding: 0 10px;
}
@media (min-width: 480px) {
.image-grid {
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-auto-rows: 180px;
gap: 12px;
}
}
@media (min-width: 768px) {
.image-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
grid-auto-rows: 200px;
gap: 15px;
padding: 0;
}
}
@media (min-width: 1200px) {
.image-grid {
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
}
.image-grid img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.image-grid img:hover {
transform: scale(1.02);
}
.image-grid a.portrait {
grid-row: span 2;
}
.film-container {
max-width: 1400px;
margin: 0 auto;
padding: 0 20px;
}
.film-container h1 {
text-align: center;
margin-bottom: 30px;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
const images = document.querySelectorAll('.image-grid img');
images.forEach(img => {
img.onload = function() {
if (this.naturalHeight > this.naturalWidth) {
this.parentElement.classList.add('portrait');
}
};
});
});
</script>
</head>
<body id="body">
<div class="film-container">
<h1 :text="$page.title"></h1>
<div class="post" :html="$page.content()"></div>
<div class="image-grid" :loop="$page.asset('images.json').ziggy().get('images')">
<a href="$page.asset($loop.it).link()" target="_blank">
<img src="$page.asset($loop.it).link()">
</a>
</div>
<div id="prev-next">
<div :if="$page.prevPage?()">
<a href="$if.link()">
<span :text="$if.title"></span>
</a>
</div>
<div :if="$page.nextPage?()">
<a href="$if.link()">
<span :text="$if.title"></span>
</a>
</div>
</div>
</div>
</body>