You can create a curved menu like Stacks in OS X using CSS and JavaScript (jQuery UI for animations).
Approach:
Use CSS for layout and transformation to position items in a curved manner.
Use jQuery for hover effects or expanding animations.
Example Code:
HTML
<div class="stack">
<img src="icon1.png" class="menu-item">
<img src="icon2.png" class="menu-item">
<img src="icon3.png" class="menu-item">
</div>
CSS (Curved Layout)
.stack {
position: relative;
width: 100px;
}
.menu-item {
position: absolute;
bottom: 0;
left: 0;
transition: transform 0.3s ease;
}
.menu-item:nth-child(1) { transform: rotate(-30deg) translateY(-10px); }
.menu-item:nth-child(2) { transform: rotate(-15deg) translateY(-20px); }
.menu-item:nth-child(3) { transform: rotate(0deg) translateY(-30px); }
.stack:hover .menu-item { transform: rotate(0) translateY(-50px); }
jQuery (For Smooth Expansion)
$(".stack").hover(function(){
$(this).find(".menu-item").each(function(index){
$(this).animate({ bottom: (index + 1) * 20 + "px" }, 300);
});
}, function(){
$(this).find(".menu-item").animate({ bottom: "0px" }, 300);
});