🚀 CircularMenuCompose is a beautiful and interactive Jetpack Compose library for creating elegant circular menus with smooth animations.
-
🎨 Customizable UI – Easily modify colors to match your app’s theme.
-
⚡ Smooth Animations – Expand, rotate, and select menu items with seamless transitions.
-
🔄 Dynamic Menu – Clean, intuitive design with menu items arranged in a circular fashion.
-
🎯 State Management – Seamless handling of menu selection and expansion.
-
✅ Lightweight & Fast – Optimized for performance and smooth user experience.
-
🔧 Easy to Use – Simple setup with minimal configuration required.
val circularMenus = listOf(
CircularMenuItem(
title = "Home",
icon = CircularMenuIcon.Vector(image = Icons.Default.Home)
),
CircularMenuItem(
title = "AccountCircle",
icon = CircularMenuIcon.Vector(image = Icons.Default.AccountCircle)
),
CircularMenuItem(
title = "Favorite",
icon = CircularMenuIcon.Vector(image = Icons.Default.Favorite)
),
CircularMenuItem(
title = "Build",
icon = CircularMenuIcon.Vector(image = Icons.Default.Build)
),
CircularMenuItem(
title = "Delete",
icon = CircularMenuIcon.Vector(image = Icons.Default.Delete)
)
)
val state = rememberCircularMenuState(
menus = circularMenus,
colors = CircularMenuDefaults.colors(
selectedIconColor = Color(0xFFFFFFFF),
unselectedIconColor = Color(0xFFD97069),
controllerButtonContainerColor = Color(0xFFE31F11),
controllerButtonIconColor = Color(0xFFF5F5F5),
overlayContainerBorderColor = Color(0xFF4A4A4A).copy(alpha = 0.4f)
),
brushes = CircularMenuDefaults.brushes(
overlayContainerBrush = Brush.radialGradient(
listOf(
Color(0xFFFF5722),
Color(0xFF9D2920)
)
),
indicatorBrush = Brush.linearGradient(
listOf(
Color(0xFFD7382E),
Color(0xFFE88D87)
)
),
)
)
CircularMenu(
state = state,
onMenuSelected = { index ->
println("Selected item: $index")
}
)
You can change the colors and brushes to fit your design:
colors = CircularMenuDefaults.colors(
selectedIconColor = Color(0xFFFFFFFF),
unselectedIconColor = Color(0xFFD97069),
controllerButtonContainerColor = Color(0xFFE31F11),
controllerButtonIconColor = Color(0xFFF5F5F5),
overlayContainerBorderColor = Color(0xFF4A4A4A).copy(alpha = 0.4f)
)
brushes = CircularMenuDefaults.brushes(
overlayContainerBrush = Brush.radialGradient(
listOf(
Color(0xFFFF5722),
Color(0xFF9D2920)
)
),
indicatorBrush = Brush.linearGradient(
listOf(
Color(0xFFD7382E),
Color(0xFFE88D87)
)
)
)
Clone this repository:
git clone https://github.com/CoderBDK/CircularMenuCompose.git
This project is licensed under the MIT License. See the LICENSE file for details.