Skip to content

Instantly share code, notes, and snippets.

@matthewmorek
Created April 12, 2023 19:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save matthewmorek/bf9c6c93ab2a1f3e68d214f4a57e2c91 to your computer and use it in GitHub Desktop.
Save matthewmorek/bf9c6c93ab2a1f3e68d214f4a57e2c91 to your computer and use it in GitHub Desktop.
import SwiftUI
struct LayeredButton: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
Text("Get departures")
.font(.system(.title3, design: .rounded, weight: .bold))
.foregroundStyle(Gradient(colors: [.black.opacity(0.85), .black.opacity(0.65)]))
.padding()
.frame(maxWidth: .infinity)
.shadow(color: .white.opacity(0.5), radius: 1, x: 0, y: 1)
.background {
RoundedRectangle(cornerRadius: 8, style: .continuous)
.foregroundStyle(
Gradient(
colors: [
Color.yellow,
Color.orange
]
)
.shadow(.inner(color: .black.opacity(0.2), radius: 0.5, x: 0, y: -1))
.shadow(.inner(color: .white.opacity(0.25), radius: 1, x: 0, y: 2))
)
.shadow(color: .black.opacity(colorScheme == .dark ? 0.35 : 0.35), radius: 2, x: 0, y: 1)
.shadow(color: .black.opacity(colorScheme == .dark ? 0.12 : 0.12), radius: 12, x: 0, y: 8)
.shadow(color: .black.opacity(colorScheme == .dark ? 0.1 : 0.08), radius: 8, x: 0, y: 4)
.shadow(color: .black.opacity(colorScheme == .dark ? 0.1 : 0.05), radius: 4, x: 0, y: 2)
}
.padding(.all, 6)
.background {
RoundedRectangle(cornerRadius: 12, style: .continuous)
.foregroundStyle(
Gradient(
colors: [
.gray.opacity(colorScheme == .dark ? 0.4 : 0.5),
.gray.opacity(colorScheme == .dark ? 0.75 : 0.15)
]
).shadow(.inner(color: .black.opacity(0.5), radius: 3, x: 0, y: 2))
)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment