NeumorphismUI is a very useful library that allows you to easily use Neumorphism designs in SwiftUI.
DemoApp
Requirements
- iOS 13.0+
- Xcode 11+
- Swift 5+
Installation
Swift Package Manager
Usage
Simple
let neumorphism = NeumorphismManager(
isDark: false,
lightColor: Color(hex: "C1D2EB"),
darkColor: Color(hex: "2C292C")
)
let contentView = ContentView()
.environmentObject(neumorphism)
import SwiftUI
import NeumorphismUI
struct SimpleView: View {
@EnvironmentObject var neumorphism: NeumorphismManager
var body: some View {
ZStack {
neumorphism.color.edgesIgnoringSafeArea(.all)
Circle()
.fill(neumorphism.color)
.frame(width: 200, height: 200)
.neumorphismShadow()
}
}
}
let neumorphism = NeumorphismManager(
isDark: true,
lightColor: Color(hex: "C1D2EB"),
darkColor: Color(hex: "2C292C")
)
let contentView = ContentView()
.environmentObject(neumorphism)
NeumorphismConcave
Rectangle()
.fill(neumorphism.color)
.neumorphismConcave(shapeType: .rectangle, color: nil)
.frame(width: 256, height: 100)
RoundedRectangle(cornerRadius: 16)
.fill(neumorphism.color)
.neumorphismConcave(shapeType: .roundedRectangle(cornerRadius: 16), color: nil)
.frame(width: 256, height: 100)
Circle()
.fill(neumorphism.color)
.neumorphismConcave(shapeType: .circle, color: nil)
.frame(width: 150, height: 150)
Ellipse()
.fill(neumorphism.color)
.neumorphismConcave(shapeType: .ellipse, color: nil)
.frame(width: 300, height: 100)
Capsule(style: .circular)
.fill(neumorphism.color)
.neumorphismConcave(shapeType: .capsule, color: nil)
.frame(width: 300, height: 100)
NeumorphismButton
NeumorphismButton(
shapeType: .roundedRectangle(cornerRadius: 20),
normalImage: Image(systemName: "star"),
selectedImage: Image(systemName: "star.fill")
)
NeumorphismSlider
Simple Usage!
struct NeumorphismSliderView: View {
@EnvironmentObject var neumorphism: NeumorphismManager
@State private var value: Double = 0
var body: some View {
ZStack {
neumorphism.color.edgesIgnoringSafeArea(.all)
VStack {
Text("VALUE: \(value)")
.foregroundColor(self.neumorphism.fontColor())
NeumorphismSlider(value: self.$value, changeHandler: {
// call change method
}) {
// call ended method
}
}
}
}
}