Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

atrinh0/buttoncraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

40 Commits

Repository files navigation

buttoncraft (SwiftUI App)

Experimenting with SwiftUI whilst creating a practical app to craft that perfect button style.

✈️ Testflight

https://testflight.apple.com/join/pZDhygQt

Last TestFlight bump: 13th November 2024

πŸ‘¨πŸ»β€πŸ’» Code outputted from app

struct MyButtonStyle: ButtonStyle {
 func makeBody(configuration: Self.Configuration) -> some View {
 configuration.label
 .background(Capsule()
 .foregroundColor(configuration.isPressed ? Color.primary.opacity(0.75) : Color.primary))
 .scaleEffect(configuration.isPressed ? CGFloat(0.85) : 1.0)
 .rotationEffect(.degrees(configuration.isPressed ? 0.0 : 0))
 .blur(radius: configuration.isPressed ? CGFloat(0.0) : 0)
 .animation(Animation.spring(response: 0.35, dampingFraction: 0.35, blendDuration: 1), value: configuration.isPressed)
 }
}
extension Button {
 func myButtonStyle() -> some View {
 self.buttonStyle(MyButtonStyle())
 }
}
// to use
Button { } label: {
 Text("just like that")
 .font(Font.body.bold())
 .padding()
 .foregroundColor(Color.primary)
 .colorInvert()
}
.myButtonStyle()
Button { } label: {
 Image(systemName: "face.smiling")
 .font(Font.body.bold())
 .imageScale(.large)
 .padding()
 .foregroundColor(Color.primary)
 .colorInvert()
}
.myButtonStyle()

🧐 Features

  • πŸ”€ Randomise different settings for inspiration
  • Reset to my default style
  • Using the new iOS ColorPicker
  • Copy your perfect masterpiece as a code snippet to your clipboard

πŸ‘¨πŸ»β€βš–οΈ Disclaimer

This is posted as a way to share SwiftUI learnings (and is not production level code). Use it at your own risk.

About

Craft that perfect SwiftUI button effect πŸ‘ŒπŸΌ

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors 2

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /