← back to Model Arena
data/artifacts/258516d076e6/gemma3-12b.html
227 lines
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Shop by Color - Designer Wallcoverings</title>
<style>
:root {
--bg: #faf8f4; /* ivory-gallery */
--surface: #ffffff;
--text: #3a2c22; /* terracotta-sun */
--muted: #9b948a;
--accent: #c65f38; /* terracotta-sun */
--line: #dcd7ca;
--shadow: rgba(0, 0, 0, 0.12);
--ease: cubic-bezier(0.22, 1, 0.36, 1);
}
body {
font-family: 'apple-system', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
background-color: var(--bg);
color: var(--text);
margin: 0;
padding: 0;
overflow-x: hidden; /* prevent horizontal scroll */
}
header {
background-color: var(--surface);
padding: 32px;
text-align: left;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
position: fixed; /* Fix the header at the top */
top: 0;
left: 0;
width: 100%;
z-index: 100; /* Ensure it stays on top of other content */
}
header h1 {
font-family: 'Didot', 'Bodoni MT', 'Playfair Display', Georgia, serif;
font-size: 67px;
line-height: 1;
letter-spacing: .18em;
margin: 0;
font-weight: normal;
}
.color-wheel-container {
display: flex;
justify-content: center;
align-items: center;
padding: 96px; /* section padding */
height: calc(100vh - 96px - 80px); /* Adjust for header and share bar height*/
overflow-x: hidden;
}
.color-wheel {
width: 240px;
height: 240px;
border-radius: 50%;
background: conic-gradient(from 0deg, #fde72e, #ffa600, #ff8c00, #e66300, #ba4d00, #913a00, #782b00); /* Example hues */
cursor: crosshair;
position: relative;
box-shadow: 0 8px 24px var(--shadow);
}
.color-wheel::before {
content: '';
position: absolute;
top: calc(50% - 16px); /* center */
left: calc(50% - 16px); /* center */
width: 32px;
height: 32px;
border-radius: 50%;
background-color: var(--surface);
}
.filmstrip {
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-top: 48px;
}
.pattern-card {
width: 260px;
height: 200px;
margin: 24px;
border-radius: 14px;
overflow: hidden;
box-shadow: 0 8px 24px var(--shadow);
position: relative;
}
.pattern-card::before { /* Different CSS patterns */
content: "";
display: block;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
}
/* Pattern Examples - Customize these significantly! */
.pattern-card.geometric::before { background-image: url("data:image/svg+xml,%3Csvg width='260' height='200'%3E%3Crect width='100%' height='100%' fill='%23c65f38' opacity='.5'/%3E%3Crect x='50%' y='50%' width='50%' height='50%' fill='%23ffffff'/%3E%3C/svg%3E"); }
.pattern-card.organic::before { background-image: url("data:image/svg+xml,%3Csvg width='260' height='200'%3E%3Ccircle cx='50%' cy='50%' r='40%' fill='%23c65f38'/%3E%3Ccircle cx='75%' cy='25%' r='30%' fill='%23ffffff'/%3E%3C/svg%3E"); }
.pattern-card.abstract::before { background-image: url("data:image/svg+xml,%3Csvg width='260' height='200'%3E%3Cline x1='0' y1='0' x2='260' y2='200' stroke='%23c65f38'/%3E%3Crect x='0' y='0' width='260' height='200' fill='%23ffffff' opacity='.2'/%3E%3C/svg%3E"); }
.pattern-card.linear::before { background-image: url("data:image/svg+xml,%3Csvg width='260' height='200'%3E%3Cline x1='0' y1='0' x2='260' y2='200' stroke='%23c65f38'/%3E%3C/svg%3E"); }
.share-bar {
background-color: var(--surface);
padding: 16px;
text-align: center;
font-size: 12px;
letter-spacing: .15em;
text-transform: uppercase;
color: var(--muted);
}
/* Overlay styles */
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.7); /* Semi-transparent black */
z-index: 200;
display: none; /* Initially hidden */
}
.overlay p {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: var(--surface);
font-size: 24px; /* Larger text for better visibility */
}
/* JavaScript variables (for color selection) */
.pattern-card {
cursor: pointer;
}
</style>
</head>
<body>
<header>
<h1>DESIGNER WALLCOVERINGS</h1>
</header>
<div class="color-wheel-container">
<div id="colorWheel" class="color-wheel"></div>
</div>
<div class="filmstrip" id="patternFilmstrip">
<div class="pattern-card geometric"></div>
<div class="pattern-card organic"></div>
<div class="pattern-card abstract"></div>
<div class="pattern-card linear"></div>
</div>
<div class="share-bar">
Share your style! #designerwallcoverings
</div>
<!-- Overlay for messages -->
<div id="overlay" class="overlay">
<p>Message here</p>
</div>
<script>
const colorWheel = document.getElementById('colorWheel');
const patternFilmstrip = document.getElementById('patternFilmstrip');
let selectedHue = null;
colorWheel.addEventListener('click', (event) => {
const x = event.offsetX;
const y = event.offsetY;
// Calculate angle from center of the wheel
let angle = Math.atan2(y, x) * 180 / Math.PI;
if (angle < 0) {
angle += 360;
}
// Map hue to a color - adjust as needed for your palette
let hue = Math.round((angle / 360) * 6); // 6 hues in the example palette
selectedHue = hue;
updatePatterns(hue);
});
function updatePatterns(hue) {
// Example color mapping: adjust as needed for your palettes
let colors = ['#fde72e', '#ffa600', '#ff8c00', '#e66300', '#ba4d00', '#913a00'];
let patternClasses = ['geometric', 'organic', 'abstract', 'linear'];
if (hue >= colors.length) {
hue = 0; // Wrap around if hue is out of range
}
const color = colors[hue];
const patternCards = document.querySelectorAll('.pattern-card');
for(let i = 0; i < patternCards.length; ++i){
patternCards[i].style.backgroundImage = `url("data:image/svg+xml,%3Csvg width='260' height='200'%3E%3Crect width='100%' height='100%' fill='${color}' opacity='.5'/%3E%3Crect x='50%' y='50%' width='50%' height='50%' fill='%23ffffff'/%3E%3C/svg%3E")`;
}
}
</script>
</body>
</html>