← back to Model Arena
data/artifacts/176d578251e3/gemma3-12b.html
111 lines
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Radial Spring Menu</title>
<style>
body { margin: 0; overflow: hidden; background-color: #222; }
#menuContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.hidden {
opacity: 0;
pointer-events: none; /* Prevent clicks on hidden elements */
}
#centerButton {
width: 80px;
height: 80px;
border-radius: 50%;
background-color: #4CAF50;
color: white;
font-size: 24px;
cursor: pointer;
position: relative;
display: flex;
justify-content: center;
align-items: center;
transition: transform 0.3s ease-in-out;
}
#centerButton.open {
transform: scale(1.2);
}
.iconButton {
width: 50px;
height: 50px;
border-radius: 50%;
background-color: #3498db;
color: white;
font-size: 20px;
cursor: pointer;
position: absolute;
transition: transform 0.3s ease-in-out; /* Added for hover */
}
.iconButton:hover {
transform: scale(1.1);
}
#menuContainer .open {
animation: springOpen 0.8s forwards;
}
@keyframes springOpen {
0% { opacity: 0; transform: rotate(0deg) scale(0); }
100% { opacity: 1; transform: rotate(calc(360deg / 6)) scale(1); }
}
</style>
</head>
<body>
<div id="menuContainer">
<div id="centerButton">☰</div>
<div class="iconButton hidden" style="top: 50%; left: 50%; transform: rotate(60deg); width: 40px; height: 40px;">✓</div>
<div class="iconButton hidden" style="top: 50%; left: 50%; transform: rotate(120deg); width: 40px; height: 40px;">✓</div>
<div class="iconButton hidden" style="top: 50%; left: 50%; transform: rotate(180deg); width: 40px; height: 40px;">✓</div>
<div class="iconButton hidden" style="top: 50%; left: 50%; transform: rotate(240deg); width: 40px; height: 40px;">✓</div>
<div class="iconButton hidden" style="top: 50%; left: 50%; transform: rotate(300deg); width: 40px; height: 40px;">✓</div>
<div class="iconButton hidden" style="top: 50%; left: 50%; transform: rotate(360deg); width: 40px; height: 40px;">✓</div>
</div>
<script>
const centerButton = document.getElementById('centerButton');
const menuContainer = document.getElementById('menuContainer');
const iconButtons = document.querySelectorAll('.iconButton');
let isOpen = false;
centerButton.addEventListener('click', () => {
isOpen = !isOpen;
if (isOpen) {
menuContainer.classList.add('open');
setTimeout(()=> {
iconButtons.forEach(button => button.classList.remove('hidden'));
}, 200); // Delay to allow animation start
centerButton.classList.add('open');
} else {
menuContainer.classList.remove('open');
centerButton.classList.remove('open');
iconButtons.forEach(button => button.classList.add('hidden'));
}
});
</script>
</body>
</html>