← back to Model Arena

data/artifacts/15bc10e7ee25/qwen25-7b.html

212 lines

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Grandmillennial Lookbook</title>
    <style>
        :root {
            --bg-color: #f7efe6;
            --surface-color: #fff9f1;
            --text-color: #3a2c22;
            --muted-color: #a08c7a;
            --accent-color: #c65f38;
        }

        body {
            font-family: 'Didot', serif;
            background-color: var(--bg-color);
            color: var(--text-color);
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
        }

        .carousel {
            width: 80%;
            max-width: 600px;
            position: relative;
        }

        .slide {
            display: none;
            padding: 24px;
            border-radius: 14px;
            background-color: var(--surface-color);
            box-shadow: 0 8px 24px rgba(0,0,0,.12);
            transition: all .7s cubic-bezier(.22,1,.36,1) both;
        }

        .slide.active {
            display: block;
        }

        .header {
            font-family: 'Didot', serif;
            color: #1c1a17;
            text-align: center;
            margin-bottom: 24px;
        }

        .card {
            width: 100%;
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .card-text {
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            overflow: hidden;
        }

        h2 {
            font-size: 38px;
            line-height: 45px;
            margin-bottom: 8px;
            letter-spacing: .15em;
        }

        p {
            font-size: 16px;
            line-height: 24px;
        }

        svg {
            width: 100%;
            height: auto;
        }

        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(28px); }
            to { opacity: 1; transform: none; }
        }

        .next, .prev {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            cursor: pointer;
            font-size: 3rem;
            color: var(--accent-color);
        }

        .next { right: 24px; }
        .prev { left: 24px; }

        .dots {
            position: absolute;
            bottom: 16px;
            width: 100%;
            display: flex;
            justify-content: center;
        }

        .dot {
            margin: 0 8px;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background-color: var(--muted-color);
            cursor: pointer;
            opacity: .6;
            transition: opacity .2s ease-in-out;
        }

        .dot.active {
            background-color: var(--accent-color);
            opacity: 1;
        }
    </style>
</head>
<body>
    <header class="header">DESIGNER WALLCOVERINGS</header>
    <div class="carousel">
        <div class="slide active" id="cover-slide">
            <h2>Grandmillennial Lookbook</h2>
        </div>

        <div class="slide" id="pattern-swatch1">
            <div class="card">
                <svg viewBox="0 0 320 240" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <rect width="320" height="240" rx="14" fill="url(#paint0_linear_6975_807)"/>
                    <defs>
                        <linearGradient id="paint0_linear_6975_807" x1="0.047619" y1="32.693" x2="0.047619" y2="194.307" gradientUnits="userSpaceOnUse">
                            <stop stop-color="#C65F38"/>
                            <stop offset="1" stop-color="#E0A458"/>
                        </linearGradient>
                    </defs>
                </svg>
                <div class="card-text">
                    <h2>Pattern Swatch 1</h2>
                    <p>Soft, warm tones.</p>
                </div>
            </div>
        </div>

        <div class="slide" id="room-vignette1">
            <div class="card">
                <svg viewBox="0 0 320 240" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <rect width="320" height="240" rx="14" fill="url(#paint0_radial_8569_703)"/>
                    <defs>
                        <radialGradient id="paint0_radial_8569_703" cx="50%" cy="50%" r="82.5159%" gradientUnits="userSpaceOnUse">
                            <stop stop-color="#F7EFE6"/>
                            <stop offset="1" stop-color="#FFF9F1"/>
                        </radialGradient>
                    </defs>
                </svg>
                <div class="card-text">
                    <h2>Room Vignette 1</h2>
                    <p>Cozy and inviting.</p>
                </div>
            </div>
        </div>

        <!-- Repeat for additional slides -->

        <div class="slide" id="cta-slide">
            <h2>Explore More</h2>
            <button type="button">Shop Now</button>
        </div>

        <div class="dots">
            <span class="dot active"></span>
            <span class="dot"></span>
            <span class="dot"></span>
            <!-- Add more dots as needed -->
        </div>

        <script>
            let currentSlide = 0;
            const slides = document.querySelectorAll('.slide');
            const dots = document.querySelectorAll('.dot');

            function showSlide(index) {
                slides.forEach((slide, i) => slide.classList.toggle('active', i === index));
                dots.forEach((dot, i) => dot.classList.toggle('active', i === index));
            }

            document.addEventListener('keydown', e => {
                if (e.key === 'ArrowLeft') {
                    currentSlide = (currentSlide - 1 + slides.length) % slides.length;
                    showSlide(currentSlide);
                } else if (e.key === 'ArrowRight') {
                    currentSlide = (currentSlide + 1) % slides.length;
                    showSlide(currentSlide);
                }
            });

            dots.forEach((dot, index) => dot.addEventListener('click', () => {
                currentSlide = index;
                showSlide(currentSlide);
            }));
        </script>
    </div>
</body>
</html>