Day 14: Enhancing Interactions with Context ⚙️ Welcome back to the #30DaysOfSwift series! Today, let's look at Context Menus. A powerful way to offer additional actions when users long-press or right-click on UI elements. By integrating context menus into your SwiftUI app, you can create a smooth, intuitive experience for users when interacting with different elements. What are Context Menus? Context Menus provide additional actions that a user can perform on an element. They are revealed via a long press or right-click, making it easy for users to access additional options without cluttering the UI. Code Example: Context Menus in Action struct ContextMenuExample: View { @State private var favorite: Bool = false var body: some View { VStack { HStack { Text("Long-press me!") .font(.title2) .padding() Spacer() if favorite { Image(systemName: "heart.fill") .foregroundColor(.red) // Customization: Heart icon if marked as favorite } } .frame(maxWidth: .infinity) .padding() .background(Color.blue.opacity(0.2)) // Custom background color .cornerRadius(10) // Rounded corners for aesthetic touch .contextMenu { // Adding the context menu Button(action: { favorite.toggle() }) { Label("Favorite", systemImage: favorite ? "heart.fill" : "heart") } Button(action: { print("Shared!") }) { Label("Share", systemImage: "square.and.arrow.up") } Button(action: { print("Deleted!") }) { Label("Delete", systemImage: "trash") .foregroundColor(.red) // Custom color for danger actions } } } .padding() } } Now, it's your turn! Try adding context menus to elements in your app to make your interactions more intuitive and user-friendly! The full series is available on my profile, and the components can also be found at shipios.app/components. Happy Coding! 🎨 Day 14: Enhancing Interactions with Context ⚙️ Day 14: Enhancing Interactions with Context Welcome back to the #30DaysOfSwift series! Today, let's look at Context Menus. A powerful way to offer additional actions when users long-press or right-click on UI elements. By integrating context menus into your SwiftUI app, you can create a smooth, intuitive experience for users when interacting with different elements. What are Context Menus? Context Menus provide additional actions that a user can perform on an element. Context Menus provide additional actions that a user can perform on an element. They are revealed via a long press or right-click, making it easy for users to access additional options without cluttering the UI. They are revealed via a long press or right-click, making it easy for users to access additional options without cluttering the UI. Code Example: Context Menus in Action Code Example: Context Menus in Action struct ContextMenuExample: View { @State private var favorite: Bool = false var body: some View { VStack { HStack { Text("Long-press me!") .font(.title2) .padding() Spacer() if favorite { Image(systemName: "heart.fill") .foregroundColor(.red) // Customization: Heart icon if marked as favorite } } .frame(maxWidth: .infinity) .padding() .background(Color.blue.opacity(0.2)) // Custom background color .cornerRadius(10) // Rounded corners for aesthetic touch .contextMenu { // Adding the context menu Button(action: { favorite.toggle() }) { Label("Favorite", systemImage: favorite ? "heart.fill" : "heart") } Button(action: { print("Shared!") }) { Label("Share", systemImage: "square.and.arrow.up") } Button(action: { print("Deleted!") }) { Label("Delete", systemImage: "trash") .foregroundColor(.red) // Custom color for danger actions } } } .padding() } } struct ContextMenuExample: View { @State private var favorite: Bool = false var body: some View { VStack { HStack { Text("Long-press me!") .font(.title2) .padding() Spacer() if favorite { Image(systemName: "heart.fill") .foregroundColor(.red) // Customization: Heart icon if marked as favorite } } .frame(maxWidth: .infinity) .padding() .background(Color.blue.opacity(0.2)) // Custom background color .cornerRadius(10) // Rounded corners for aesthetic touch .contextMenu { // Adding the context menu Button(action: { favorite.toggle() }) { Label("Favorite", systemImage: favorite ? "heart.fill" : "heart") } Button(action: { print("Shared!") }) { Label("Share", systemImage: "square.and.arrow.up") } Button(action: { print("Deleted!") }) { Label("Delete", systemImage: "trash") .foregroundColor(.red) // Custom color for danger actions } } } .padding() } } Now, it's your turn! Try adding context menus to elements in your app to make your interactions more intuitive and user-friendly! The full series is available on my profile, and the components can also be found at shipios.app/components . shipios.app/components shipios.app/components Happy Coding! 🎨 Happy Coding!