← back to Model Arena
data/artifacts/18bd2744dce2/gemma3-12b.html
254 lines
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Designer Wallcoverings - Terracotta & Sage</title>
<style>
:root {
--bg: #f7efe6;
--surface: #fff9f1;
--text: #3a2c22;
--muted: #a08c7a;
--accent: #c65f38; /* Terracotta */
--line: #e0a458; /* Lighter Terracotta */
--shadow: rgba(0, 0, 0, 0.12);
--ease: cubic-bezier(.22,1,.36,1);
}
body {
font-family: -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
background-color: var(--bg);
color: var(--text);
margin: 0;
overflow-x: hidden; /* Prevent horizontal scroll */
}
.wordmark {
font-family: 'Playfair Display', Georgia, serif;
font-size: 1.5rem;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--text);
position: fixed;
top: 24px;
left: 32px;
}
.carousel-container {
width: 100%;
max-width: 1080px;
margin: 0 auto;
}
.carousel {
position: relative;
overflow: hidden; /* Ensure content doesn't overflow container */
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 0.7s var(--ease);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
}
.slide.active {
opacity: 1;
}
.palette-name {
font-family: 'Playfair Display', Georgia, serif;
font-size: 4rem;
margin-bottom: 32px;
}
.hue-container {
background-color: var(--surface);
padding: 64px;
border-radius: 14px;
box-shadow: 0 8px 24px var(--shadow);
margin-bottom: 32px;
}
.hue-swatch {
width: 200px;
height: 200px;
background-color: var(--accent);
border: 1px solid var(--line);
border-radius: 8px;
margin-bottom: 16px;
}
.hue-name {
font-family: 'Playfair Display', Georgia, serif;
font-size: 2.5rem;
margin-bottom: 8px;
}
.designer-tip {
font-size: 1.125rem;
color: var(--muted);
}
.cta {
background-color: var(--accent);
color: white;
padding: 24px;
border-radius: 8px;
text-decoration: none;
font-family: '-apple-system', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
text-transform: uppercase;
letter-spacing: .15em;
display: inline-block; /* Allows margin/padding */
}
.dots {
position: absolute;
bottom: 32px;
left: 50%;
transform: translateX(-50%);
}
.dot {
width: 16px;
height: 16px;
background-color: var(--muted);
border-radius: 8px;
margin: 0 8px;
cursor: pointer;
}
.dot.active {
background-color: var(--accent);
}
/* Responsive adjustments */
@media (max-width: 768px) {
.palette-name {
font-size: 2.5rem;
}
.hue-swatch {
width: 150px;
height: 150px;
}
.hue-name {
font-size: 2rem;
}
}
</style>
</head>
<body>
<div class="wordmark">DESIGNER WALLCOVERINGS</div>
<div class="carousel-container">
<div class="carousel">
<div class="slide active" data-index="0">
<h1 class="palette-name">Terracotta & Sage</h1>
</div>
<div class="slide" data-index="1">
<div class="hue-container">
<div class="hue-swatch" style="background-color: #c65f38;"></div>
<h2 class="hue-name">Terracotta</h2>
<p class="designer-tip">Perfect for creating a warm and inviting living room.</p>
</div>
</div>
<div class="slide" data-index="2">
<div class="hue-container">
<div class="hue-swatch" style="background-color: #b0472e;"></div>
<h2 class="hue-name">Oatmeal</h2>
<p class="designer-tip">Ideal for bedrooms - promotes relaxation and serenity.</p>
</div>
</div>
<div class="slide" data-index="3">
<div class="hue-container">
<div class="hue-swatch" style="background-color: #2f4c39;"></div>
<h2 class="hue-name">Celadon</h2>
<p class="designer-tip">Bring a touch of nature into your dining space.</p>
</div>
</div>
<div class="slide" data-index="4">
<a href="#" class="cta">Explore the Collection</a>
</div>
</div>
<div class="dots">
<span class="dot active" data-index="0"></span>
<span class="dot" data-index="1"></span>
<span class="dot" data-index="2"></span>
<span class="dot" data-index="3"></span>
<span class="dot" data-index="4"></span>
</div>
</div>
<script>
const carousel = document.querySelector('.carousel');
const slides = document.querySelectorAll('.slide');
const dots = document.querySelectorAll('.dot');
let currentSlide = 0;
function showSlide(index) {
slides.forEach((slide, i) => {
if (i === index) {
slide.classList.add('active');
} else {
slide.classList.remove('active');
}
});
dots.forEach((dot, i) => {
if (i === index) {
dot.classList.add('active');
} else {
dot.classList.remove('active');
}
});
}
function nextSlide() {
currentSlide = (currentSlide + 1) % slides.length;
showSlide(currentSlide);
}
function prevSlide() {
currentSlide = (currentSlide - 1 + slides.length) % slides.length;
showSlide(currentSlide);
}
dots.forEach((dot, index) => {
dot.addEventListener('click', () => {
showSlide(index);
});
});
// Automatic slide transition every 5 seconds (adjust as needed)
setInterval(nextSlide, 5000);
</script>
</body>
</html>