### Dark Mode Support in Sticky Header Source: https://context7.com/dominikmartn/progressiveblurheader/llms.txt Demonstrates how the tint color automatically adapts to light and dark modes for a natural blur effect. Forces dark mode for preview. ```swift import SwiftUI import ProgressiveBlurHeader struct DarkModeView: View { var body: some View { StickyBlurHeader(maxBlurRadius: 10) { HStack { Circle() .fill(.ultraThinMaterial) .frame(width: 44, height: 44) Spacer() Text("Now Playing") .font(.headline) Spacer() Circle() .fill(.ultraThinMaterial) .frame(width: 44, height: 44) } .padding(.horizontal, 20) .padding(.vertical, 16) } content: { VStack(spacing: 0) { ForEach(0..<30) { i in HStack { Circle() .fill(Color(hue: Double(i) / 30, saturation: 0.6, brightness: 0.9)) .frame(width: 44, height: 44) VStack(alignment: .leading) { Text("Song \(i + 1)") .font(.body.bold()) Text("Artist Name") .font(.caption) .foregroundStyle(.secondary) } Spacer() Text("3:24") .font(.caption) .foregroundStyle(.secondary) } .padding(.horizontal, 20) .padding(.vertical, 12) Divider() .padding(.leading, 76) } } } .background(Color(.systemBackground)) .preferredColorScheme(.dark) // Force dark mode for preview } } ``` -------------------------------- ### Basic StickyBlurHeader Implementation in SwiftUI Source: https://context7.com/dominikmartn/progressiveblurheader/llms.txt Use StickyBlurHeader to create a sticky header with scrollable content underneath. The header content should not have an opaque background. The header height is measured dynamically. ```swift import SwiftUI import ProgressiveBlurHeader struct ContentView: View { let items = (0..<50).map { "Item \($0)" } var body: some View { StickyBlurHeader { // Header content - NO opaque background! HStack { Button(action: { /* back action */ }) { Image(systemName: "chevron.left") } Spacer() Text("My Library") .font(.headline) Spacer() Button(action: { /* settings action */ }) { Image(systemName: "gear") } } .padding() } content: { // Scrollable content LazyVStack(spacing: 0) { ForEach(items, id: \.self) { item in HStack { Circle() .fill(.blue.gradient) .frame(width: 44, height: 44) Text(item) .font(.body) Spacer() } .padding(.horizontal, 20) .padding(.vertical, 12) Divider() .padding(.leading, 76) } } } .background(Color(.systemBackground)) } } ``` -------------------------------- ### Basic Usage of StickyBlurHeader Source: https://github.com/dominikmartn/progressiveblurheader/blob/main/README.md Implement the StickyBlurHeader component by providing your header view and scrollable content. Ensure the header view does not have an opaque background. ```swift import ProgressiveBlurHeader struct MyView: View { var body: some View { StickyBlurHeader { // Your header — NO opaque background! HStack { Button("Back") { } Spacer() Text("Title").font(.headline) Spacer() Button("Settings") { } } .padding() } content: { // Your scrollable content ForEach(items) { item in ItemRow(item: item) } } .background(Color(.systemBackground)) } } ``` -------------------------------- ### Customizing StickyBlurHeader Parameters Source: https://context7.com/dominikmartn/progressiveblurheader/llms.txt Customize blur intensity, fade extension, and tint opacity for the StickyBlurHeader. `maxBlurRadius` controls blur strength, `fadeExtension` defines the blur's fade zone, and tint opacities adjust the darkening effect. ```swift import SwiftUI import ProgressiveBlurHeader struct CustomBlurView: View { var body: some View { StickyBlurHeader( maxBlurRadius: 10, // Moderate blur intensity fadeExtension: 80, // Extended fade zone (80pt below header) tintOpacityTop: 0.8, // Stronger tint behind Dynamic Island tintOpacityMiddle: 0.6 // Stronger tint at header center ) { // Floating header with transparent background VStack(spacing: 4) { Text("Album Title") .font(.title2.bold()) Text("Artist Name") .font(.subheadline) .foregroundStyle(.secondary) } .padding(.vertical, 20) .frame(maxWidth: .infinity) } content: { // Album track list VStack(spacing: 0) { ForEach(1...20, id: \.self) { track in HStack { Text("\(track)") .font(.caption) .foregroundStyle(.secondary) .frame(width: 24) Text("Track Title \(track)") Spacer() Text("3:45") .font(.caption) .foregroundStyle(.secondary) } .padding(.horizontal, 20) .padding(.vertical, 14) Divider() .padding(.leading, 56) } } } .background(Color(.systemBackground)) } } ``` -------------------------------- ### Customizing StickyBlurHeader Parameters Source: https://github.com/dominikmartn/progressiveblurheader/blob/main/README.md Customize the appearance and behavior of the StickyBlurHeader by adjusting parameters like maxBlurRadius, fadeExtension, tintOpacityTop, and tintOpacityMiddle. Sensible defaults are provided. ```swift StickyBlurHeader( maxBlurRadius: 5, // Blur intensity: 5 = subtle, 10 = moderate, 20 = strong fadeExtension: 64, // How far (pt) blur extends below header tintOpacityTop: 0.7, // Tint at screen top (behind Dynamic Island) tintOpacityMiddle: 0.5 // Tint at header center ) { headerView } content: { contentView } ``` -------------------------------- ### Navigation Bar Style Sticky Header Source: https://context7.com/dominikmartn/progressiveblurheader/llms.txt Implement a navigation bar with a back button, title, and action buttons. The header floats above blurred content without an opaque background. ```swift import SwiftUI import ProgressiveBlurHeader struct NavigationStyleView: View { @Environment(\.dismiss) private var dismiss var body: some View { StickyBlurHeader( maxBlurRadius: 5, fadeExtension: 64 ) { HStack { Button(action: { dismiss() }) { HStack(spacing: 4) { Image(systemName: "chevron.left") Text("Back") } } Spacer() Text("Settings") .font(.headline) Spacer() Button(action: { /* save action */ }) { Text("Save") .fontWeight(.semibold) } } .padding(.horizontal, 16) .padding(.vertical, 12) } content: { Form { Section("Account") { Text("Email") Text("Password") } Section("Preferences") { Toggle("Notifications", isOn: .constant(true)) Toggle("Dark Mode", isOn: .constant(false)) } } .scrollContentBackground(.hidden) } .background(Color(.systemGroupedBackground)) } } ``` -------------------------------- ### Add ProgressiveBlurHeader to Package.swift Source: https://github.com/dominikmartn/progressiveblurheader/blob/main/README.md Add the ProgressiveBlurHeader package to your Swift Package Manager dependencies in Package.swift. ```swift dependencies: [ .package(url: "https://github.com/dominikmartn/ProgressiveBlurHeader", branch: "main"), ] ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.