Skip to content

0.8.0

Latest

Choose a tag to compare

@Dean151 Dean151 released this 19 Jul 13:38

What's Changed

  • Styles now support SwiftUI dynamic propertiesAsyncButtonStyle and ThrowableButtonStyle refine DynamicProperty, so custom styles can use @Environment, @State, and other property wrappers directly inside the style.
  • Namespaced triggersTriggerButton registrations are now scoped by Namespace.ID, so identically-named button triggers no longer collide across different parts of your view hierarchy.
  • Better cancellation support — async tasks propagate cancellation more reliably, and the NSProgress bridge now forwards cancellation back to the underlying progress.
  • Reduce Motion support — shake and pulse effects now respect the accessibility Reduce Motion setting.
  • Accessibility — buttons are marked as updatesFrequently while a task is in progress.
  • Environment key handling simplified using @Entry properties (#20).
  • Removed MainActor.assumeIsolated for cleaner concurrency.

Breaking changes

  • Dropped support for Swift 5.10 — ButtonKit now requires Swift 6.0.
  • Style configuration label / button are now opaque views — the public typealias Label = AnyView and typealias Button = AnyView on the style configurations have been replaced with nested wrapper views (mirroring SwiftUI's ButtonStyleConfiguration.Label). Code that relied on these being AnyView must now treat them as opaque views.

New Contributors

Full Changelog: 0.7.1...0.8.0