## Success (task completed)

- Use case: A user-initiated task finishes: form submitted, file saved, order placed.
- Feel: Two quick taps with a rising feel — the system success pattern.
- APIs: .sensoryFeedback(.success), UINotificationFeedbackGenerator(.success)
- Minimum OS: iOS 17+ / iOS 10+

### SwiftUI (iOS 17+)

```swift
import SwiftUI

struct SaveButton: View {
    @State private var saved = false

    var body: some View {
        Button {
            Task {
                try? await save()
                withAnimation { saved = true }
            }
        } label: {
            Label(saved ? "Saved" : "Save", 
                  systemImage: saved ? "checkmark" : "square.and.arrow.down")
        }
        .sensoryFeedback(.success, trigger: saved) { _, new in new }
    }

    func save() async throws { try await Task.sleep(for: .seconds(0.5)) }
}
```

### UIKit

```swift
let haptic = UINotificationFeedbackGenerator()

func submitForm() {
    haptic.prepare() // before the async work finishes
    api.submit { result in
        DispatchQueue.main.async {
            haptic.notificationOccurred(.success)
            // show confirmation UI at the same instant
        }
    }
}
```

### Notes
- Play success only for outcomes the user asked for. Passive events (a sync finishing in the background) should stay silent.
