← back to Model Arena
data/artifacts/0a809ac3ac48/hermes3-8b.html
161 lines
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Color of the Season</title>
<style>
:root {
--bg: #0d0d0f;
--surface: #17171c;
--text: #f5f2ea;
--muted: #8a8578;
--accent: #c9a961;
--line: 1px solid var(--accent);
--shadow: 0 8px 24px rgba(0,0,0,.12);
--ease: cubic-bezier(.22,1,.36,1);
}
body {
background-color: var(--bg);
color: var(--text);
font-family: 'EB Garamond', serif;
font-size: calc(16px + (67px - 16px) * ((100vw - 320px) / (1600 - 320)));
}
h1, h2 {
margin: 0;
font-family: 'Cormorant Garamond', serif;
letter-spacing: .18em;
}
h1 {
font-size: calc(50px + (67px - 50px) * ((100vw - 320px) / (1600 - 320)));
text-align: left;
}
h2 {
font-size: calc(38px + (67px - 38px) * ((100vw - 320px) / (1600 - 320)));
color: var(--muted);
}
p, button {
margin: 12px 0;
font-family: -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
}
section {
padding: 96px;
background-color: var(--surface);
box-shadow: var(--shadow);
border-radius: 14px;
margin: 48px 0;
}
img {
max-width: 100%;
display: block;
shadow: 0 8px 40px rgba(0,0,0,.1);
transition: transform .3s var(--ease), box-shadow .3s var(--ease);
margin: -16px 0 24px;
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(28px); }
to { opacity: 1; transform: translateY(0); }
}
.fade-up {
animation: fadeUp .7s both;
animation-delay: calc(var(--i) * 90ms);
animation-fill-mode: forwards;
opacity: 0;
transform: translateY(28px);
}
@keyframes bgGradient {
from { background-color: var(--bg); }
to { background-color: hsl(hue-var(15), lum-var(10%)); }
}
.ambient-bg {
animation: bgGradient 18s infinite linear both;
}
</style>
<body>
<header class="brand-header">
<span style="--text-color:#1c1a17; --font-size:40px;">DESIGNER WALLCOVERINGS</span>
</header>
<section class="reel" style="--interval:5s">
<div class="reel-bg">
<div class="ambient-bg"></div>
<h2>This season it's all about...</h2>
<p id="hue">Celadon</p>
<div class="pattern-swatch fade-up" style="--i:0">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='50'%3E%3Cpath%20fill='%23fff1f8'%20d='M0 0h100v50H0z'/%3E%3Cpath%20fill='%23c5ccd6'%20d='M0 0h100v30H0V0z'/%3E%3Cpath%20fill='%23f1e8ff'%20d='M0 0h100v20H0V0z'/%3E%3Cpath%20fill='%23c5ccd6'%20d='M0 0h100v10H0V0z'/%3E%3Cpath%20fill='%23fff1f8'%20d='M0 0h100v0H0V0z'/%3E%3C/path%3E%3C/svg%3E" alt="">
</div>
<div class="pattern-swatch fade-up" style="--i:1">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='50'%3E%3Cpath%20fill='%23f2e5d8'%20d='M0 0h100v50H0z'/%3E%3Cpath%20fill='%23c1b6a7'%20d='M0 0h100v30H0V0z'/%3E%3Cpath%20fill='%23f2e5d8'%20d='M0 0h100v10H0V0z'/%3E%3Cpath%20fill='%23c1b6a7'%20d='M0 0h100v0H0V0z'/%3E%3C/path%3E%3C/svg%3E" alt="">
</div>
<div class="pattern-swatch fade-up" style="--i:2">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='50'%3E%3Cpath%20fill='%23f1e5d8'%20d='M0 0h100v50H0z'/%3E%3Cpath%20fill='%23c2b6a7'%20d='M0 0h100v30H0V0z'/%3E%3Cpath%20fill='%23f1e5d8'%20d='M0 0h100v10H0V0z'/%3E%3Cpath%20fill='%23c2b6a7'%20d='M0 0h100v0H0V0z'/%3E%3C/path%3E%3C/svg%3E" alt="">
</div>
</div>
<div class="reel-container">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='260'%20height='130'%3E%3Crect%20x='15'%20y='10'%20width='230'%20height='110'/%3E%3Cpath%20fill='%23fff1f8'%20d='M0 0h260v65H0V0z'/%3E%3C/path%3E%3C/svg%3E" alt="" class="pattern-bg">
<div class="reel-content">
<h2>Celadon</h2>
<p>Styling tip: Pair with warm brass accents for a luxe touch.</p>
<button>Shop this look</button>
</div>
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='50'%3E%3Cpath%20fill='%23c9a961'%20d='M0 0h100v50H0z'/%3E%3Cpath%20fill='%23ffcc99'%20d='M0 0h100v30H0V0z'/%3E%3C/path%3E%3C/svg%3E" alt="" class="accent-sw">
</div>
</div>
</section>
<div class="progress-bar-container">
<div class="progress-bar"></div>
<button id="play">Play</button>
<button id="pause">Pause</button>
</div>
<script>
const reel = document.querySelector('.reel');
const hue = document.getElementById('hue');
let isPlaying = false;
const interval = 5 * 1000; // 5 seconds
function playReel() {
if (!isPlaying) {
isPlaying = true;
let i = 0;
const patternSwatches = reel.querySelectorAll('.pattern-swatch');
function changePattern() {
patternSwatches[i].style.setProperty('--i', i);
hue.textContent = ["Celadon", "Mustard", "Mint"][i];
i = (i + 1) % 3;
}
const intervalId = setInterval(changePattern, interval / 3); // change every 1.67s
document.querySelector('.reel-bg').animate([
{ backgroundColor: getComputedStyle(document.documentElement).getPropertyValue('--bg') },
{ backgroundColor: "#fff1f8" }
], {
duration: interval,
fill: "forwards"
});
reel.addEventListener('mouseenter', () => clearInterval(intervalId));
reel.addEventListener('mouseleave', () => {
isPlaying && setInterval(changePattern, interval / 3);
});
}
}
playReel();
const playBtn = document.getElementById("play");
const pauseBtn = document.getElementById("pause");
playBtn.addEventListener("click", () => {
playReel();
});
pauseBtn.addEventListener("click", () => {
clearInterval(playReel());
});
</script>
</body>
</html>