Files
Frutiger-Aero-Assets/Menu.html
2025-07-12 18:16:57 -07:00

187 lines
5.7 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Menu</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #1e3c72 0%, #2a5298 25%, #4a90e2 50%, #7bb3f0 75%, #a8d0f0 100%);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.container {
text-align: center;
max-width: 400px;
width: 100%;
}
h1 {
color: #ffffff;
font-size: 2rem;
margin-bottom: 30px;
text-shadow: 0 0 20px rgba(255,255,255,0.3);
font-weight: 300;
}
.menu {
background: linear-gradient(135deg,
rgba(255,255,255,0.15) 0%,
rgba(255,255,255,0.08) 100%);
border: 1px solid rgba(255,255,255,0.3);
border-radius: 6px;
overflow: hidden;
backdrop-filter: blur(20px);
box-shadow: 0 8px 24px rgba(0,0,0,0.4),
inset 0 1px 0 rgba(255,255,255,0.4);
margin-bottom: 20px;
}
.menu-item {
padding: 12px 16px;
color: #ffffff;
cursor: pointer;
transition: all 0.2s ease;
border-bottom: 1px solid rgba(255,255,255,0.1);
text-shadow: 0 1px 2px rgba(0,0,0,0.3);
position: relative;
font-size: 14px;
text-align: left;
display: flex;
align-items: center;
gap: 10px;
}
.menu-item::before {
content: '';
width: 16px;
height: 16px;
background: linear-gradient(135deg,
rgba(255,255,255,0.3) 0%,
rgba(255,255,255,0.1) 100%);
border-radius: 2px;
flex-shrink: 0;
}
.menu-item:hover {
background: linear-gradient(90deg,
rgba(255,255,255,0.2) 0%,
rgba(255,255,255,0.1) 100%);
}
.menu-item:last-child {
border-bottom: none;
}
.menu-item.active {
background: linear-gradient(90deg,
rgba(74,144,226,0.3) 0%,
rgba(74,144,226,0.15) 100%);
border-left: 3px solid rgba(74,144,226,0.8);
}
.message {
color: #ffffff;
padding: 15px;
background: linear-gradient(135deg,
rgba(255,255,255,0.1) 0%,
rgba(255,255,255,0.05) 100%);
border: 1px solid rgba(255,255,255,0.2);
border-radius: 4px;
text-shadow: 0 1px 2px rgba(0,0,0,0.3);
display: none;
backdrop-filter: blur(15px);
}
.menu-separator {
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
margin: 5px 0;
}
.menu-item.disabled {
opacity: 0.5;
cursor: not-allowed;
}
.menu-item.disabled:hover {
background: none;
}
@media (max-width: 768px) {
.container {
margin: 10px;
}
}
</style>
</head>
<body>
<div class="container">
<h1>Menu</h1>
<div class="menu">
<div class="menu-item active" onclick="selectMenuItem(this, 'Home')">
<span>Placeholder</span>
</div>
<div class="menu-item" onclick="selectMenuItem(this, 'Documents')">
<span>Placeholder</span>
</div>
<div class="menu-item" onclick="selectMenuItem(this, 'Pictures')">
<span>Placeholder</span>
</div>
<div class="menu-item" onclick="selectMenuItem(this, 'Music')">
<span>Placeholder</span>
</div>
<div class="menu-separator"></div>
<div class="menu-item" onclick="selectMenuItem(this, 'Computer')">
<span>Placeholder</span>
</div>
<div class="menu-item" onclick="selectMenuItem(this, 'Network')">
<span>Placeholder</span>
</div>
<div class="menu-separator"></div>
<div class="menu-item" onclick="selectMenuItem(this, 'Control Panel')">
<span>Placeholder</span>
</div>
<div class="menu-item disabled">
<span>Disabled thing</span>
</div>
</div>
<div id="message" class="message"></div>
</div>
<script>
function selectMenuItem(element, itemName) {
if (element.classList.contains('disabled')) {
return;
}
document.querySelectorAll('.menu-item').forEach(item => {
item.classList.remove('active');
});
element.classList.add('active');
const messageDiv = document.getElementById('message');
messageDiv.textContent = `Selected: ${itemName}`;
messageDiv.style.display = 'block';
setTimeout(() => {
messageDiv.style.display = 'none';
}, 3000);
}
</script>
</body>
</html>