@sbaiahmed1/react-native-blur 3.1.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +319 -308
  2. package/ReactNativeBlur.podspec +1 -1
  3. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNativeBlurViewManagerDelegate.java +18 -3
  4. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNativeBlurViewManagerInterface.java +6 -1
  5. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNativeGlassEffectContainerManagerDelegate.java +53 -0
  6. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNativeGlassEffectContainerManagerInterface.java +25 -0
  7. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNativeGlassViewManagerDelegate.java +38 -0
  8. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNativeGlassViewManagerInterface.java +20 -0
  9. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/ComponentDescriptors.cpp +1 -0
  10. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/ComponentDescriptors.h +1 -0
  11. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/EventEmitters.cpp +1 -0
  12. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/EventEmitters.h +7 -0
  13. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/Props.cpp +21 -2
  14. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/Props.h +70 -2
  15. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/ShadowNodes.cpp +1 -0
  16. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/ShadowNodes.h +11 -0
  17. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlurViewSpec/States.h +12 -0
  18. package/android/build.gradle +2 -3
  19. package/android/src/main/java/com/sbaiahmed1/reactnativeblur/ReactNativeBlurView.kt +62 -269
  20. package/android/src/main/java/com/sbaiahmed1/reactnativeblur/ReactNativeBlurViewManager.kt +13 -8
  21. package/ios/Helpers/BlurStyleHelpers.swift +1 -1
  22. package/ios/Helpers/ReactNativeBlurViewHelper.swift +8 -32
  23. package/ios/Helpers/ReactNativeLiquidGlassViewHelper.swift +44 -0
  24. package/ios/ReactNativeBlurView.mm +28 -74
  25. package/ios/{ReactNativeBlurViewManager.m → ReactNativeBlurViewManager.mm} +15 -39
  26. package/ios/ReactNativeLiquidGlassView.h +14 -0
  27. package/ios/ReactNativeLiquidGlassView.mm +284 -0
  28. package/ios/ReactNativeLiquidGlassViewManager.h +6 -0
  29. package/ios/ReactNativeLiquidGlassViewManager.mm +20 -0
  30. package/ios/Views/AdvancedBlurView.swift +6 -34
  31. package/ios/Views/BasicColoredView.swift +37 -44
  32. package/ios/Views/LiquidGlassContainerView.swift +173 -0
  33. package/lib/module/BlurView.js +17 -31
  34. package/lib/module/BlurView.js.map +1 -1
  35. package/lib/module/LiquidGlassView.js +75 -0
  36. package/lib/module/LiquidGlassView.js.map +1 -0
  37. package/lib/module/ReactNativeBlurViewNativeComponent.ts +1 -7
  38. package/lib/module/ReactNativeLiquidGlassViewNativeComponent.ts +57 -0
  39. package/lib/module/index.js +2 -0
  40. package/lib/module/index.js.map +1 -1
  41. package/lib/typescript/src/BlurView.d.ts +19 -39
  42. package/lib/typescript/src/BlurView.d.ts.map +1 -1
  43. package/lib/typescript/src/LiquidGlassView.d.ts +85 -0
  44. package/lib/typescript/src/LiquidGlassView.d.ts.map +1 -0
  45. package/lib/typescript/src/ReactNativeBlurViewNativeComponent.d.ts +1 -6
  46. package/lib/typescript/src/ReactNativeBlurViewNativeComponent.d.ts.map +1 -1
  47. package/lib/typescript/src/ReactNativeLiquidGlassViewNativeComponent.d.ts +44 -0
  48. package/lib/typescript/src/ReactNativeLiquidGlassViewNativeComponent.d.ts.map +1 -0
  49. package/lib/typescript/src/index.d.ts +4 -0
  50. package/lib/typescript/src/index.d.ts.map +1 -1
  51. package/package.json +6 -3
  52. package/src/BlurView.tsx +37 -68
  53. package/src/LiquidGlassView.tsx +138 -0
  54. package/src/ReactNativeBlurViewNativeComponent.ts +1 -7
  55. package/src/ReactNativeLiquidGlassViewNativeComponent.ts +57 -0
  56. package/src/index.tsx +6 -0
package/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # @sbaiahmed1/react-native-blur
2
2
 
3
- A modern React Native blur view component that provides native blur effects and **liquid glass effects** for iOS (with Android fallback to enhanced blur).
3
+ A modern React Native library providing **two specialized components** for advanced visual effects: `BlurView` for native blur effects and `LiquidGlassView` for cutting-edge liquid glass effects on iOS 26+ (with Android fallback to enhanced blur).
4
+
5
+ > **📦 Current Version: 4.0.0** | **⚠️ Breaking Changes**: If upgrading from 3.x, see [Breaking Changes](#️-breaking-changes-in-v400) section.
6
+
4
7
  <div align="center">
5
8
  <p>
6
9
  <img src="https://img.shields.io/npm/v/@sbaiahmed1/react-native-blur?style=for-the-badge&color=blue" alt="npm version" />
@@ -30,270 +33,182 @@ A modern React Native blur view component that provides native blur effects and
30
33
  <strong>⚠️ Android automatically falls back to enhanced blur with tint overlay</strong>
31
34
  </div>
32
35
 
33
- ## Version Compatibility
36
+ ## Requirements
37
+
38
+ | Platform | Minimum Version |
39
+ |----------|----------------|
40
+ | **iOS** | iOS 13.0+ |
41
+ | **Xcode** | Xcode 26.0+ (for liquid glass support) |
42
+ | **React Native** | 0.68+ (New Architecture) |
43
+ | **Android** | API 24+ (Android 7.0) |
44
+ | **Android Gradle Plugin** | 8.9.1+ |
45
+
46
+ > ⚠️ **Note**: LiquidGlassView requires Xcode 26.0+ and iOS 26+ for full glass effects. The component automatically falls back to enhanced blur on older versions.
47
+
48
+ ## ⚠️ Breaking Changes in v4.0.0
49
+
50
+ > **Important**: Version 4.0.0 introduces significant API changes. If you're upgrading from 3.x, please read this section carefully.
51
+
52
+ ### What Changed
53
+
54
+ In version 3.x, we had a **single `BlurView` component** with a `type` prop that switched between blur and liquid glass modes:
55
+
56
+ ```tsx
57
+ // ❌ Old API (v3.x) - DEPRECATED
58
+ <BlurView
59
+ type="blur" // or "liquidGlass"
60
+ blurType="light"
61
+ blurAmount={10}
62
+ glassType="regular" // Mixed blur and glass props
63
+ glassTintColor="#007AFF"
64
+ />
65
+ ```
66
+
67
+ In version 4.0.0, we've **separated concerns** into **two dedicated components** for better architecture and cleaner APIs:
68
+
69
+ ```tsx
70
+ // ✅ New API (v4.0.0) - Current
71
+ import { BlurView, LiquidGlassView } from '@sbaiahmed1/react-native-blur';
72
+
73
+ // For blur effects
74
+ <BlurView
75
+ blurType="light"
76
+ blurAmount={10}
77
+ />
78
+
79
+ // For liquid glass effects (iOS 26+)
80
+ <LiquidGlassView
81
+ glassType="regular"
82
+ glassTintColor="#007AFF"
83
+ glassOpacity={0.8}
84
+ />
85
+ ```
86
+
87
+ ### Migration from 3.x to 4.0.0
88
+
89
+ **If you were using blur mode:**
90
+ ```tsx
91
+ // Before (3.x)
92
+ <BlurView type="blur" blurType="light" blurAmount={10} />
93
+
94
+ // After (4.0.0)
95
+ <BlurView blurType="light" blurAmount={10} />
96
+ ```
34
97
 
35
- ### Xcode Requirements
98
+ **If you were using liquid glass mode:**
99
+ ```tsx
100
+ // Before (3.x)
101
+ <BlurView
102
+ type="liquidGlass"
103
+ glassType="regular"
104
+ glassTintColor="#007AFF"
105
+ glassOpacity={0.8}
106
+ />
36
107
 
37
- | Library Version | Minimum Xcode Version | iOS Features Available |
38
- |-----------------|----------------------|----------------------|
39
- | **0.3.0+** (Current) | **Xcode 26.0** | ✅ Full liquid glass effects with UIGlassEffect API<br/>✅ Enhanced SwiftUI implementation<br/>✅ All blur types and system materials |
40
- | **0.2.1** | Xcode 16.0+ | ✅ Standard blur effects<br/>✅ System materials (iOS 13+)<br/>❌ No liquid glass effects |
108
+ // After (4.0.0)
109
+ import { LiquidGlassView } from '@sbaiahmed1/react-native-blur';
41
110
 
42
- ### Xcode 26.0+ Compatibility Table
111
+ <LiquidGlassView
112
+ glassType="regular"
113
+ glassTintColor="#007AFF"
114
+ glassOpacity={0.8}
115
+ />
116
+ ```
43
117
 
44
- | Xcode Version | Library Compatibility | Features Available | Notes |
45
- |---------------|----------------------|-------------------|-------|
46
- | **Xcode 26.0+** | ✅ **Fully Supported** | ✅ All features including liquid glass effects<br/>✅ UIGlassEffect API<br/>✅ SwiftUI implementation<br/>✅ All blur types and system materials | **Recommended for current version** |
47
- | **Xcode 16.x and below** | ❌ **Not Supported** | ❌ Liquid glass effects<br/>❌ UIGlassEffect API<br/>⚠️ Basic blur effects may work with limitations | Use library version 0.2.1 instead |
118
+ ### Why This Change?
48
119
 
49
- > ⚠️ **Critical Requirement**: The current version (0.3.0+) requires **Xcode 26.0 or higher** and will not work with older Xcode versions. This is a hard requirement due to the UIGlassEffect API and SwiftUI enhancements introduced in Xcode 26.0.
120
+ - **🎯 Cleaner APIs**: Each component now has focused props relevant to its purpose
121
+ - **📦 Better Tree-Shaking**: Import only what you need
122
+ - **🔧 Type Safety**: Separate TypeScript definitions prevent mixing incompatible props
123
+ - **🏗️ Better Architecture**: Separation of concerns following React best practices
124
+ - **📖 Clearer Code**: More explicit about which effect you're using
50
125
 
51
- > 💡 **Migration Tip**: If you're unable to upgrade to Xcode 26.0, please use version **0.2.1** of this library which supports Xcode 16.0 and provides standard blur effects without liquid glass capabilities.
126
+ ### Summary
127
+
128
+ - **v3.x**: Single `BlurView` component with `type` prop (blur or liquidGlass)
129
+ - **v4.0.0**: Two components - `BlurView` for blur, `LiquidGlassView` for glass effects
130
+ - **Action Required**: Update imports and split your components based on the effect type you need
52
131
 
53
132
  ## Features
54
133
 
55
- - 🌊 **Liquid Glass Effects**: Revolutionary glass effects using iOS 26+ UIGlassEffect API
134
+ - **Two Specialized Components**:
135
+ - `BlurView` - Dedicated blur effects component with multiple blur types
136
+ - `LiquidGlassView` - Separate component for iOS 26+ liquid glass effects
137
+ - �🌊 **Liquid Glass Effects**: Revolutionary glass effects using iOS 26+ UIGlassEffect API
56
138
  - 🎨 **Multiple Blur Types**: Support for various blur styles including system materials on iOS
57
139
  - 📱 **Cross-Platform**: Works on both iOS and Android
58
140
  - ♿ **Accessibility**: Automatic fallback for reduced transparency settings
59
- - 🔧 **TypeScript**: Full TypeScript support with proper type definitions
141
+ - 🔧 **TypeScript**: Full TypeScript support with proper type definitions for both components
60
142
  - 🚀 **Turbo Module**: Built with React Native's new architecture (Fabric)
61
143
  - 🎯 **Customizable**: Adjustable blur intensity, glass tint colors, and opacity
62
144
  - 💡 **Performance Optimized**: Uses hardware acceleration for smooth rendering
63
- - 🛠️ **Easy to Use**: Simple API for quick integration into your React Native projects
145
+ - 🛠️ **Easy to Use**: Simple, focused APIs for each effect type
64
146
  - 📦 **Modern**: Uses SwiftUI for iOS and Kotlin for Android, ensuring cutting-edge development practices
65
147
  - 🔄 **Smart Fallbacks**: Graceful degradation from liquid glass to blur on older iOS versions
66
148
 
67
- ## 📊 Library Comparison
68
-
69
- This section provides a detailed comparison between `@sbaiahmed1/react-native-blur` and other popular blur libraries in the React Native ecosystem.
70
-
71
- ### 🆚 vs. [@react-native-community/blur](https://www.npmjs.com/package/@react-native-community/blur)
72
-
73
- | Feature | @sbaiahmed1/react-native-blur | @react-native-community/blur |
74
- |------------------------------|-------------------------------------|---------------------------------------|
75
- | **🏗️ New Architecture Support** | Full Fabric/Turbo Module support | ❌ Limited support, crashes on Android |
76
- | **🤖 Android Real Blur** | Hardware-accelerated real blur + liquid glass | Hardware-accelerated real blur |
77
- | **🍎 iOS Blur Quality** | ✅ Native UIVisualEffectView + UIGlassEffect | ✅ Native UIVisualEffectView only |
78
- | **💎 Liquid Glass Effects** | ✅ Full support (iOS 26+ UIGlassEffect & Android) | ❌ Not supported |
79
- | **📝 TypeScript Support** | Complete TypeScript definitions with IntelliSense | ⚠️ Basic TypeScript support |
80
- | **🔧 Maintenance Status** | Actively maintained | ⚠️ Community-maintained, slower updates |
81
- | **📦 Bundle Size** | 🟡 Moderate (includes native blur libs) | 🟡 Moderate (includes BlurView lib) |
82
- | **🎯 API Design** | Modern, intuitive API with smart defaults | 🟡 Legacy API design |
83
- | **⚡ Performance** | ✅ Hardware-accelerated on both platforms | ✅ Hardware-accelerated on both platforms |
84
- | **♿ Accessibility** | ✅ Full reduced transparency + motion support | ✅ Basic reduced transparency support |
85
- | **📚 Documentation** | Comprehensive guides + live examples | 🟡 Basic README documentation |
86
- | **🎨 Blur Types** | iOS system materials + custom Android effects | ✅ iOS blur types (including iOS 13 materials) |
87
- | **🔧 Android Blur Methods** | Native hardware-accelerated blur | Native hardware-accelerated blur |
88
- | **📱 Platform Support** | iOS, Android with feature parity | ✅ iOS (full), Android (limited overlay) |
89
-
90
- **🚀 Why Choose @sbaiahmed1/react-native-blur:**
91
-
92
- - **🎯 Revolutionary Android Experience**: First library to bring **real hardware-accelerated blur** to Android, including liquid glass effects. No more fake transparency overlays!
93
- - **💎 Liquid Glass Pioneer**: Only library supporting iOS 26+ UIGlassEffect API for stunning liquid glass materials on both platforms
94
- - **🏗️ Future-Proof Architecture**: Built exclusively for React Native's new architecture (Fabric/Turbo Modules) - no legacy baggage
95
- - **⚡ Superior Performance**: Hardware acceleration on both platforms with GPU-optimized rendering pipelines
96
- - **🔧 Modern Development**: Swift for iOS, Kotlin for Android - leveraging the latest native technologies
97
- - **📈 Active Innovation**: Regular feature updates, performance improvements, and new blur effects
98
-
99
- **When to choose @react-native-community/blur:**
100
- - Legacy projects that can't upgrade to new architecture
101
- - iOS-only applications where Android blur quality isn't important
102
- - Projects requiring maximum stability over cutting-edge features
103
-
104
- ### 🆚 vs. [expo-blur](https://docs.expo.dev/versions/latest/sdk/blur-view/)
105
-
106
- | Feature | @sbaiahmed1/react-native-blur | expo-blur |
107
- |---------|------------------------------|----------|
108
- | **🚫 Expo Dependency** | ✅ Zero dependencies on Expo ecosystem | ❌ Requires Expo SDK + managed workflow |
109
- | **📱 Bare React Native** | ✅ Works with any RN project out-of-the-box | ⚠️ Complex setup for bare RN projects |
110
- | **🤖 Android Support** | ✅ Real hardware-accelerated blur + liquid glass | ⚠️ Simple overlay + Experimental blur (experimentalBlurMethod prop) |
111
- | **🍎 iOS Support** | ✅ Full native blur + UIGlassEffect (iOS 26+) | ✅ Native UIVisualEffectView support |
112
- | **💎 Liquid Glass Effects** | ✅ Full support (iOS 26+ UIGlassEffect & Android) | ❌ Not supported, no plans to add |
113
- | **📦 Bundle Size** | 🟡 Moderate (includes native libs) | ✅ Lightweight (when using Expo managed) |
114
- | **⚙️ Setup Complexity** | ✅ Simple `npm install` + auto-linking | 🟡 Requires Expo development build setup |
115
- | **🎨 Blur Types** | ✅ iOS system materials + custom Android effects | ✅ iOS tint types (light, dark, system materials) |
116
- | **🎯 API Design** | ✅ `blurAmount` + `blurType` for precise control | ✅ `intensity` + `tint` (simple but limited) |
117
- | **🏗️ New Architecture** | ✅ Native Fabric/Turbo Module support | ✅ Expo handles compatibility layer |
118
- | **👨‍💻 Development Experience** | ✅ Standard RN development workflow | ✅ Excellent with Expo CLI tools |
119
- | **🚀 Production Flexibility** | ✅ Any deployment method (CodePush, OTA, stores) | 🟡 Limited to Expo/EAS deployment |
120
- | **🔧 Native Module Integration** | ✅ Easy integration with other native modules | ⚠️ May conflict with Expo managed workflow |
121
- | **🤖 Android Blur Quality** | ✅ Hardware-accelerated real blur | ❌ Experimental (dimezisBlurView or none fallback) |
122
-
123
- **🚀 Why Choose @sbaiahmed1/react-native-blur:**
124
-
125
- - **🔓 No Vendor Lock-in**: Complete freedom from Expo ecosystem - works with any React Native setup
126
- - **🎯 Revolutionary Android**: First library to deliver **real blur effects** on Android, not fake transparency tricks
127
- - **💎 Liquid Glass Innovation**: Exclusive support for cutting-edge liquid glass materials on both platforms
128
- - **🏢 Enterprise Ready**: Perfect for brownfield apps, custom native modules, and complex deployment scenarios
129
- - **🎨 Advanced Customization**: 15+ iOS system materials plus custom Android blur implementations
130
- - **⚡ Direct Performance**: No abstraction layers - direct access to native blur APIs for maximum performance
131
- - **🔧 Developer Freedom**: Use any build system, deployment method, or native module without restrictions
132
-
133
- **When to choose expo-blur:**
134
- - Already deeply invested in Expo managed workflow
135
- - Building simple apps with basic blur needs (iOS-focused)
136
- - Prefer Expo's managed dependency system over manual configuration
137
- - Don't need advanced blur effects or Android blur quality
138
-
139
- ### ⚡ Performance Comparison
140
-
141
- | Metric | @sbaiahmed1/react-native-blur | @react-native-community/blur | expo-blur |
142
- |--------|------------------------------|------------------------------|----------|
143
- | **🍎 iOS Rendering** | Hardware-accelerated UIVisualEffect + UIGlassEffect | Hardware-accelerated UIVisualEffect | Hardware-accelerated UIVisualEffect |
144
- | **🤖 Android Rendering** | **Hardware-accelerated real blur** | **Hardware-accelerated real blur** | ❌ Software overlay (fake blur) |
145
- | **🧠 Memory Usage** | Optimized with native BlurView libs | Optimized with native BlurView libs | Low (no real Android blur) |
146
- | **⚙️ CPU Impact** | Low (GPU-based on both platforms) | iOS: Low, Android: Minimal (no blur) | iOS: Low, Android: Minimal (no blur) |
147
- | **📊 Frame Rate Impact** | Minimal impact on both platforms | iOS: Minimal, Android: None (no blur) | iOS: Minimal, Android: None (no blur) |
148
- | **🎯 Blur Quality** | **Excellent on both platforms** | iOS: Excellent, Android: Poor | iOS: Good, Android: Poor |
149
- | **💎 Liquid Glass Performance** | **Native UIGlassEffect + Android equivalent** | ❌ Not available | ❌ Not available |
150
- | **🚀 New Architecture Performance** | **Optimized for Fabric/Turbo Modules** | Limited compatibility | Expo abstraction layer |
151
-
152
- ### 🤝 Community & Support
153
-
154
- | Aspect | @sbaiahmed1/react-native-blur | @react-native-community/blur | expo-blur |
155
- |--------|------------------------------|------------------------------|----------|
156
- | **⭐ GitHub Stars** | 🆕 Growing rapidly (new innovative features) | 🌟 Established (3.8k+, legacy codebase) | 🌟 Part of Expo ecosystem |
157
- | **🎯 Issue Response** | ✅ **Active core maintainer** (< 24h response) | 🟡 Community-driven (slow response) | ✅ Expo team support |
158
- | **📚 Documentation Quality** | ✅ **Comprehensive guides + live examples** | 🟡 Basic README only | ✅ Good (Expo docs) |
159
- | **🔄 Update Frequency** | ✅ **Regular feature updates** (weekly/monthly) | 🟡 Sporadic maintenance updates | ✅ Regular (with Expo releases) |
160
- | **💔 Breaking Changes** | ✅ **Strict semantic versioning** | ⚠️ Occasional unannounced changes | ✅ Managed by Expo |
161
- | **🐛 Bug Fixes** | ✅ **Rapid fixes** (same-day for critical issues) | 🟡 Depends on community availability | ✅ Good (Expo team) |
162
- | **💡 Feature Requests** | ✅ **Actively considered** (roadmap-driven) | 🟡 Limited by maintainer capacity | 🟡 Limited to Expo priorities |
163
- | **🔧 Technical Support** | ✅ **Direct maintainer support** | 🟡 Community forums only | ✅ Expo Discord/forums |
164
-
165
- ### 🔄 Migration Guide
166
-
167
- #### 🚀 From @react-native-community/blur
149
+ ## Comparison with Other Libraries
150
+
151
+ ### Key Advantages
152
+
153
+ - **Two Specialized Components**: Separate `BlurView` and `LiquidGlassView` components for clean architecture
154
+ - **Liquid Glass Effects**: Only library with iOS 26+ UIGlassEffect support
155
+ - **Real Android Blur**: Hardware-accelerated blur on Android (not overlay)
156
+ - **New Architecture**: Built for Fabric/Turbo Modules
157
+ - **Modern Stack**: SwiftUI for iOS, Kotlin for Android
158
+ - **Full TypeScript**: Complete type definitions for both components
159
+
160
+ ### vs. @react-native-community/blur
161
+ - Dedicated components vs single component with mode switching
162
+ -Liquid glass effects (iOS 26+)
163
+ - Better new architecture support
164
+ -Separate prop types for each component
165
+
166
+ ### vs. expo-blur
167
+ -No Expo dependency required
168
+ -Real Android blur (not experimental)
169
+ -Works with bare React Native projects
170
+ -Liquid glass effects support
171
+
172
+ ## Migration Guide
173
+
174
+ ### From @react-native-community/blur
168
175
 
169
176
  ```tsx
170
- // Before - Limited Android support
177
+ // Before
171
178
  import { BlurView } from '@react-native-community/blur';
172
179
 
173
- <BlurView
174
- style={styles.absolute}
175
- blurType="light" // Limited to iOS blur types only
176
- blurAmount={10} // Max 32 on Android (clamped)
177
- reducedTransparencyFallbackColor="white"
178
- />
180
+ // After - same API, now with dedicated components
181
+ import { BlurView, LiquidGlassView } from '@sbaiahmed1/react-native-blur';
179
182
 
180
- // After - Full platform support + liquid glass
181
- import { BlurView } from '@sbaiahmed1/react-native-blur';
183
+ // Use BlurView for standard blur
184
+ <BlurView blurType="light" blurAmount={10} />
182
185
 
183
- <BlurView
184
- style={styles.absolute}
185
- blurType="light" // Same API!
186
- blurAmount={10} // No Android limitations
187
- reducedTransparencyFallbackColor="white"
188
- // NEW: Liquid glass support
189
- type="liquidGlass" // Enable liquid glass effects
190
- glassType="regular" // iOS 26+ UIGlassEffect styles
191
- glassTintColor="#007AFF" // Glass tint color
192
- glassOpacity={0.8} // Glass opacity (0-1)
193
- />
186
+ // Or LiquidGlassView for glass effects (iOS 26+)
187
+ <LiquidGlassView glassType="regular" glassTintColor="#007AFF" glassOpacity={0.8} />
194
188
  ```
195
189
 
196
- **✨ Migration Benefits:**
197
- - **🎯 Zero Breaking Changes**: Drop-in replacement with same API
198
- - **🤖 Real Android Blur**: Instantly get hardware-accelerated blur on Android
199
- - **💎 Liquid Glass Bonus**: Add cutting-edge liquid glass effects with one prop
200
- - **⚡ Better Performance**: Hardware acceleration on both platforms
201
- - **🏗️ Future-Proof**: Built for React Native's new architecture
202
-
203
- #### 🚀 From expo-blur
190
+ ### From expo-blur
204
191
 
205
192
  ```tsx
206
- // Before - Expo dependency + limited Android
193
+ // Before
207
194
  import { BlurView } from 'expo-blur';
195
+ <BlurView intensity={50} tint="light" />
208
196
 
209
- <BlurView
210
- intensity={50} // 0-100 intensity scale
211
- tint="light" // light, dark, default, system materials
212
- experimentalBlurMethod="dimezisBlurView" // Android experimental blur
213
- style={styles.absolute}
214
- >
215
- <Text>Content</Text>
216
- </BlurView>
217
-
218
- // After - No dependencies + real Android blur
197
+ // After
219
198
  import { BlurView } from '@sbaiahmed1/react-native-blur';
220
-
221
- <BlurView
222
- blurAmount={50} // intensity → blurAmount (same scale)
223
- blurType="light" // tint → blurType (same options + more)
224
- style={styles.absolute}
225
- // NEW: Advanced features
226
- type="liquidGlass" // Liquid glass effects
227
- glassType="regular" // iOS 26+ materials
228
- glassTintColor="#007AFF" // Glass tint color
229
- glassOpacity={0.8} // Glass opacity (0-1)
230
- isInteractive={true} // Touch interaction support
231
- // No experimental props needed - real blur by default
232
- >
233
- <Text>Content</Text>
234
- </BlurView>
199
+ <BlurView blurAmount={50} blurType="light" />
235
200
  ```
236
201
 
237
- **✨ Migration Benefits:**
238
- - **🔓 No Vendor Lock-in**: Remove Expo dependency completely
239
- - **🎯 Real Android Blur**: Get actual blur effects, not fake transparency
240
- - **💎 Liquid Glass Effects**: Access to cutting-edge iOS 26+ materials
241
- - **🚀 Deployment Freedom**: Use any build system or deployment method
242
- - **🎨 More Customization**: 15+ blur types vs basic intensity control
243
-
244
- #### 🛠️ Quick Migration Checklist
245
-
246
- 1. **Install the library:**
247
- ```bash
248
- npm uninstall @react-native-community/blur expo-blur
249
- npm install @sbaiahmed1/react-native-blur
250
- ```
251
-
252
- 2. **Update imports:**
253
- ```tsx
254
- // Replace old imports
255
- import { BlurView } from '@sbaiahmed1/react-native-blur';
256
- ```
257
-
258
- 3. **Optional: Add liquid glass effects:**
259
- ```tsx
260
- <BlurView
261
- type="liquidGlass"
262
- glassType="regular"
263
- glassTintColor="#007AFF"
264
- glassOpacity={0.8}
265
- />
266
- ```
267
-
268
- 4. **Test on Android:** Experience real blur effects for the first time! 🎉
269
-
270
- ### Recommendation
271
-
272
- **Choose @sbaiahmed1/react-native-blur if:**
273
- - You need **real blur effects on Android** (not experimental/fallback methods)
274
- - You want **liquid glass effects** for modern iOS apps (iOS 26+)
275
- - You're building with **React Native's new architecture** (Fabric/Turbo Modules)
276
- - You need **maximum performance** on both platforms
277
- - You want **comprehensive TypeScript support** with IntelliSense
278
- - You prefer **modern API design** with intuitive prop names
279
- - You need **unlimited blur intensity** on Android (no 32-unit clamp)
280
-
281
- **Choose @react-native-community/blur if:**
282
- - You're working with **legacy React Native projects** (< 0.68)
283
- - You need **battle-tested stability** over cutting-edge features
284
- - Your app **primarily targets iOS** (where it performs excellently)
285
- - You can accept **limited Android blur quality** (overlay-based)
286
- - You prefer **community-driven** open source projects
287
-
288
- **Choose expo-blur if:**
289
- - You're already **committed to the Expo ecosystem**
290
- - You're building **simple apps** with basic blur needs
291
- - You want **zero native configuration** (Expo managed workflow)
292
- - **Bundle size** is your primary concern
293
- - You can accept **experimental Android blur** with potential fallbacks
202
+ **Migration Steps:**
203
+ 1. Uninstall old library: `npm uninstall @react-native-community/blur expo-blur`
204
+ 2. Install: `npm install @sbaiahmed1/react-native-blur`
205
+ 3. Update imports
206
+ 4. Run `cd ios && pod install`
294
207
 
295
208
  ## Installation
296
209
 
210
+ > ⚠️ **ANDROID USERS**: This library requires Android Gradle Plugin (AGP) version **8.9.1 or newer**. See [Android Setup Requirements](#android-setup) for details.
211
+
297
212
  ```bash
298
213
  npm install @sbaiahmed1/react-native-blur
299
214
  # or
@@ -310,52 +225,35 @@ cd ios && pod install
310
225
 
311
226
  ### Android Setup
312
227
 
313
- ### Requirements
314
- - **Minimum SDK:** API level 24 (Android 7.0)
315
- - **Target SDK:** API level 35 (Android 15)
316
- - **Compile SDK:** API level 35 (Android 15)
317
- - **Gradle:** 8.10.2
318
- - **Kotlin:** 2.0.21
319
-
320
- ### Dependencies
321
- The Android implementation uses the [BlurView library by Dimezis](https://github.com/Dimezis/BlurView):
322
- ```gradle
323
- implementation 'com.github.Dimezis:BlurView:version-2.0.6'
324
- ```
325
-
326
- ### Implementation Details
327
- The Android implementation leverages the BlurView library to provide real blur effects:
228
+ The library uses native Android blur with automatic platform detection. No additional configuration required beyond ensuring minimum requirements:
328
229
 
329
- - **Real-time Blur:** Uses `RenderEffectBlur` for hardware-accelerated blur rendering
330
- - **Hardware Acceleration:** Utilizes GPU rendering for optimal performance
331
- - **Multiple Blur Algorithms:** Supports different blur implementations based on device capabilities
332
- - **Performance Optimized:** Efficient blur rendering with minimal impact on app performance
333
- - **Fallback Handling:** Gracefully handles devices with limited graphics capabilities
334
- - **No Extra Permissions:** Does not require additional Android permissions
230
+ - **Min SDK:** API 24 (Android 7.0)
231
+ - **Android Gradle Plugin:** 8.9.1+
335
232
 
336
- ### Android Version Compatibility
233
+ > ⚠️ **AGP Requirement**: Requires Android Gradle Plugin **8.9.1 or newer**. Check `android/build.gradle`:
234
+ > ```gradle
235
+ > classpath "com.android.tools.build:gradle:8.9.1" // or higher
236
+ > ```
337
237
 
338
- This library automatically handles Android version compatibility to prevent `NoClassDefFoundError` issues:
238
+ > 📦 **Dependency**: The library uses [QmBlurView](https://github.com/QmDeve/QmBlurView) from Maven Central:
239
+ > ```gradle
240
+ > implementation 'com.qmdeve:QmBlurView:1.0.4.3'
241
+ > ```
339
242
 
340
- - **Android 12+ (API 31+):** Uses `RenderEffectBlur` for optimal performance and modern blur effects
341
- - **Android 10-11 (API 29-30):** Automatically falls back to `RenderScriptBlur` for compatibility
342
- - **Older Android versions:** Graceful fallback to semi-transparent overlay when blur is not supported
243
+ The implementation automatically handles different Android versions:
244
+ - Android 12+: Uses `RenderEffectBlur`
245
+ - Android 10-11: Falls back to `RenderScriptBlur`
246
+ - Older versions: Lightweight overlay fallback
343
247
 
344
- **Note:** The library includes automatic API level detection and will choose the appropriate blur algorithm based on the device's Android version. This ensures compatibility across all supported Android versions without requiring any additional configuration.
345
-
346
- #### Troubleshooting Android Issues
347
-
348
- If you encounter `java.lang.NoClassDefFoundError: Failed resolution of: Landroid/graphics/RenderEffect;` on Android 10 or 11:
248
+ ## Usage
349
249
 
350
- 1. **This is automatically handled** - The library now includes fallback mechanisms
351
- 2. **Update to latest version** - Ensure you're using the latest version of this library
352
- 3. **Clean and rebuild** - Run `cd android && ./gradlew clean` then rebuild your project
250
+ The library now provides **two specialized components** for different visual effects:
353
251
 
354
- The error occurs because `RenderEffect` was introduced in Android 12 (API 31), but the library now automatically detects the API level and uses compatible alternatives on older versions.
252
+ ### BlurView - Standard Blur Effects
355
253
 
356
- ## Usage
254
+ Use `BlurView` for standard blur effects across all platforms:
357
255
 
358
- ### Basic Usage
256
+ #### Basic Usage
359
257
 
360
258
  ```tsx
361
259
  import React from 'react';
@@ -384,7 +282,7 @@ export default function App() {
384
282
  }
385
283
  ```
386
284
 
387
- ### Advanced Usage
285
+ #### Advanced Blur Usage
388
286
 
389
287
  ```tsx
390
288
  import React from 'react';
@@ -407,16 +305,17 @@ function MyComponent() {
407
305
  }
408
306
  ```
409
307
 
410
- ### Liquid Glass Usage (iOS 26+)
308
+ ### LiquidGlassView - Liquid Glass Effects (iOS 26+)
309
+
310
+ Use `LiquidGlassView` for cutting-edge liquid glass effects. **Note:** This component automatically falls back to enhanced blur on Android and older iOS versions.
411
311
 
412
312
  ```tsx
413
313
  import React from 'react';
414
- import { BlurView } from '@sbaiahmed1/react-native-blur';
314
+ import { LiquidGlassView } from '@sbaiahmed1/react-native-blur';
415
315
 
416
316
  function LiquidGlassComponent() {
417
317
  return (
418
- <BlurView
419
- type="liquidGlass"
318
+ <LiquidGlassView
420
319
  glassType="regular"
421
320
  glassTintColor="#007AFF"
422
321
  glassOpacity={0.8}
@@ -426,33 +325,75 @@ function LiquidGlassComponent() {
426
325
  }}
427
326
  >
428
327
  <Text>Beautiful liquid glass effect</Text>
429
- </BlurView>
328
+ </LiquidGlassView>
329
+ );
330
+ }
331
+ ```
332
+
333
+ #### Interactive Liquid Glass
334
+
335
+ ```tsx
336
+ import React from 'react';
337
+ import { LiquidGlassView } from '@sbaiahmed1/react-native-blur';
338
+
339
+ function InteractiveGlass() {
340
+ return (
341
+ <LiquidGlassView
342
+ glassType="regular"
343
+ glassTintColor="#007AFF"
344
+ glassOpacity={0.9}
345
+ isInteractive={true} // Enables touch interaction (iOS 26+ only)
346
+ ignoreSafeArea={false}
347
+ style={{
348
+ flex: 1,
349
+ padding: 30,
350
+ }}
351
+ >
352
+ <Text>Interactive liquid glass that responds to touch</Text>
353
+ </LiquidGlassView>
430
354
  );
431
355
  }
432
356
  ```
433
357
 
434
358
  ## Props
435
359
 
360
+ The library now provides two separate components with their own props:
361
+
362
+ ### BlurView Props
363
+
436
364
  All props are optional and have sensible defaults.
437
365
 
438
366
  | Prop | Type | Default | Description |
439
367
  |------|------|---------|-------------|
440
- | `type` | `'blur' \| 'liquidGlass'` | `'blur'` | The type of effect to apply. **Note**: `'liquidGlass'` is iOS 26+ only, falls back to enhanced blur on Android |
441
368
  | `blurType` | `BlurType` | `'xlight'` | The type of blur effect to apply |
442
369
  | `blurAmount` | `number` | `10.0` | The intensity of the blur effect (0-100) |
443
- | `glassType` | `GlassType` | `'clear'` | The type of glass effect |
444
- | `glassTintColor` | `string` | `'clear'` | The tint color for glass effect |
445
- | `glassOpacity` | `number` | `1.0` | The opacity of glass effect (0-1) |
446
- | `isInteractive` | `boolean` | `true` | (iOS only) Controls whether the liquid glass effect is interactive. When `false`, the liquid glass effect will not react to touch or movement. Only applicable when `type` is `'liquidGlass'` and iOS 26+. |
370
+ | `ignoreSafeArea` | `boolean` | `false` | (iOS only) Controls whether the blur effect should ignore all safe area edges |
447
371
  | `reducedTransparencyFallbackColor` | `string` | `'#FFFFFF'` | Fallback color when reduced transparency is enabled |
448
372
  | `style` | `ViewStyle` | `undefined` | Style object for the blur view |
449
373
  | `children` | `ReactNode` | `undefined` | Child components to render inside the blur view |
450
374
 
451
- > **Note**: The `BlurType` and `GlassType` are exported types from the library. See [Blur Types](#blur-types) section below for all available values.
375
+ ### LiquidGlassView Props
452
376
 
453
- ## Blur Types
377
+ All props are optional and have sensible defaults.
378
+
379
+ | Prop | Type | Default | Description |
380
+ |------|------|---------|-------------|
381
+ | `glassType` | `GlassType` | `'clear'` | The type of glass effect (iOS 26+ only) |
382
+ | `glassTintColor` | `string` | `'clear'` | The tint color for glass effect. Accepts hex colors or color names |
383
+ | `glassOpacity` | `number` | `1.0` | The opacity of glass effect (0-1) |
384
+ | `isInteractive` | `boolean` | `true` | (iOS 26+ only) Controls whether the liquid glass effect is interactive and reacts to touch |
385
+ | `ignoreSafeArea` | `boolean` | `false` | (iOS only) Controls whether the glass effect should ignore all safe area edges |
386
+ | `reducedTransparencyFallbackColor` | `string` | `'#FFFFFF'` | Fallback color when reduced transparency is enabled or on older iOS versions |
387
+ | `style` | `ViewStyle` | `undefined` | Style object for the glass view |
388
+ | `children` | `ReactNode` | `undefined` | Child components to render inside the glass view |
389
+
390
+ > **Note**: The `BlurType` and `GlassType` are exported types from the library. See [Blur Types](#blur-types) and [Glass Types](#glass-types) sections below for all available values.
391
+
392
+ > **Platform Note**: `LiquidGlassView` automatically falls back to `BlurView` on Android and iOS versions older than iOS 26.
454
393
 
455
- The following blur types are supported:
394
+ ## Blur Types (BlurView)
395
+
396
+ The following blur types are supported for `BlurView`:
456
397
 
457
398
  ### iOS & Android
458
399
  - `'light'` - Light blur effect
@@ -469,36 +410,66 @@ The following blur types are supported:
469
410
  - `'systemThickMaterial'` - Thick material (iOS 13+)
470
411
  - `'systemChromeMaterial'` - Chrome material (iOS 13+)
471
412
 
413
+ ## Glass Types (LiquidGlassView)
414
+
415
+ The following glass types are supported for `LiquidGlassView` on iOS 26+:
416
+
417
+ - `'clear'` - Clear glass effect (default)
418
+ - `'regular'` - Regular glass effect with more pronounced appearance
419
+
420
+ > **Note**: On Android and iOS versions older than iOS 26, `LiquidGlassView` automatically falls back to an enhanced blur effect that approximates the glass appearance.
421
+
472
422
  ## Platform Differences
473
423
 
474
424
  ### iOS
475
- On iOS, this component has been completely rewritten using **SwiftUI** for modern performance and features:
476
425
 
477
- - **iOS 26+**: Uses native `UIGlassEffect` API for true liquid glass effects with customizable tint colors and opacity
478
- - **iOS 13-25**: Uses enhanced `UIVisualEffectView` with precise blur intensity control
426
+ Both components have been completely rewritten using **SwiftUI** for modern performance and features:
427
+
428
+ #### BlurView
429
+ - **iOS 13+**: Uses native `UIVisualEffectView` with precise blur intensity control
479
430
  - **Older iOS**: Graceful fallback to standard blur effects
480
431
  - **SwiftUI Integration**: Leverages SwiftUI's declarative UI for better performance and maintainability
481
432
 
433
+ #### LiquidGlassView
434
+ - **iOS 26+**: Uses native `UIGlassEffect` API for true liquid glass effects with customizable tint colors and opacity
435
+ - **iOS < 26**: Automatically falls back to `BlurView` with enhanced blur effects
436
+ - **SwiftUI Implementation**: Full hardware-accelerated glass effects with interactive touch support
437
+
482
438
  ### Android
483
- On Android, the component uses the BlurView library to provide real blur effects with hardware acceleration. The implementation supports multiple blur algorithms and gracefully falls back to translucent overlay approximation on devices with limited graphics capabilities.
484
439
 
485
- **⚠️ Liquid Glass Limitation**: Liquid glass effects (`type="liquidGlass"`) are **iOS 26+ exclusive**. On Android, they automatically fall back to enhanced blur with tint overlay to approximate the visual effect.
440
+ #### BlurView
441
+ The component uses the QmBlurView library to provide real blur effects with hardware acceleration. The implementation supports multiple blur algorithms and gracefully falls back to translucent overlay approximation on devices with limited graphics capabilities.
442
+
443
+ #### LiquidGlassView
444
+ **⚠️ Platform Limitation**: Liquid glass effects are **iOS 26+ exclusive**. On Android, `LiquidGlassView` automatically falls back to `BlurView` with enhanced blur and tint overlay to approximate the visual effect.
486
445
 
487
446
  ## Accessibility
488
447
 
489
- The component automatically respects the "Reduce Transparency" accessibility setting:
448
+ Both components automatically respect the "Reduce Transparency" accessibility setting:
490
449
 
450
+ ### BlurView
491
451
  - **iOS**: When reduce transparency is enabled, the blur view is hidden and a fallback view with solid color is shown
492
452
  - **Android**: The fallback color is always used as the base for the blur approximation
493
453
 
494
- You can customize the fallback color using the `reducedTransparencyFallbackColor` prop.
454
+ ### LiquidGlassView
455
+ - **iOS 26+**: When reduce transparency is enabled, the liquid glass effect is hidden and a fallback view with solid color is shown
456
+ - **iOS < 26 & Android**: Automatically falls back to `BlurView` behavior
457
+
458
+ You can customize the fallback color using the `reducedTransparencyFallbackColor` prop on both components.
495
459
 
496
460
  ## TypeScript Support
497
461
 
498
- This package includes full TypeScript definitions:
462
+ This package includes full TypeScript definitions for both components:
499
463
 
500
464
  ```tsx
501
- import { BlurView, BlurType, GlassType, BlurViewProps } from '@sbaiahmed1/react-native-blur';
465
+ import {
466
+ BlurView,
467
+ LiquidGlassView,
468
+ BlurType,
469
+ GlassType,
470
+ BlurViewProps,
471
+ LiquidGlassViewProps
472
+ } from '@sbaiahmed1/react-native-blur';
502
473
 
503
474
  // BlurType is exported for type checking
504
475
  const blurType: BlurType = 'systemMaterial';
@@ -507,27 +478,40 @@ const blurType: BlurType = 'systemMaterial';
507
478
  const glassType: GlassType = 'regular';
508
479
 
509
480
  // BlurViewProps for component props
510
- interface MyComponentProps {
481
+ interface MyBlurComponentProps {
511
482
  blurProps: BlurViewProps;
512
483
  }
513
484
 
514
- // Example with all liquid glass properties
515
- const liquidGlassProps: BlurViewProps = {
516
- type: 'liquidGlass',
485
+ // LiquidGlassViewProps for glass component props
486
+ interface MyGlassComponentProps {
487
+ glassProps: LiquidGlassViewProps;
488
+ }
489
+
490
+ // Example with BlurView properties
491
+ const blurProps: BlurViewProps = {
492
+ blurType: 'systemMaterial',
493
+ blurAmount: 50,
494
+ reducedTransparencyFallbackColor: '#FFFFFF',
495
+ };
496
+
497
+ // Example with LiquidGlassView properties
498
+ const liquidGlassProps: LiquidGlassViewProps = {
517
499
  glassType: 'regular',
518
500
  glassTintColor: '#007AFF',
519
501
  glassOpacity: 0.8,
502
+ isInteractive: true,
520
503
  };
521
504
  ```
522
505
 
523
506
  ## Example App
524
507
 
525
- The package includes a comprehensive example app that demonstrates all blur types, liquid glass effects, and practical use cases. The example app features:
508
+ The package includes a comprehensive example app that demonstrates both components with all their features. The example app features:
526
509
 
527
- - **Main Demo**: Interactive blur type selector with live preview
528
- - **Liquid Glass Examples**: Showcase of iOS 26+ glass effects with customizable properties
529
- - **Practical Use Cases**: Real-world examples like cards, modals, and overlays
530
- - **Comparison Views**: Side-by-side comparisons of different effects
510
+ - **BlurView Demo**: Interactive blur type selector with live preview of all blur types
511
+ - **LiquidGlassView Demo**: Showcase of iOS 26+ glass effects with customizable properties
512
+ - **Practical Use Cases**: Real-world examples like cards, modals, and overlays using both components
513
+ - **Comparison Views**: Side-by-side comparisons between BlurView and LiquidGlassView effects
514
+ - **Platform Fallbacks**: Visual demonstrations of how effects degrade gracefully on older platforms
531
515
 
532
516
  To run the example:
533
517
 
@@ -542,20 +526,44 @@ yarn android
542
526
 
543
527
  ## Performance Considerations
544
528
 
529
+ ### BlurView
545
530
  - **iOS**:
546
531
  - **SwiftUI Implementation**: Enhanced performance with declarative UI updates
547
- - **Liquid Glass (iOS 26+)**: Hardware-accelerated glass effects with minimal performance impact
548
- - **Blur Effects**: Native blur effects are hardware-accelerated and performant
549
- - **Smart Fallbacks**: Automatic degradation ensures smooth performance on older devices
550
- - **Android**: Real blur effects are hardware-accelerated with fallback to lightweight overlay when needed
532
+ - **Native Blur Effects**: Hardware-accelerated `UIVisualEffectView` for performant rendering
533
+ - **Precise Control**: Adjustable blur intensity with smooth animations
534
+ - **Android**:
535
+ - Real blur effects are hardware-accelerated with QmBlurView
536
+ - Fallback to lightweight overlay when needed on limited devices
537
+
538
+ ### LiquidGlassView
539
+ - **iOS 26+**:
540
+ - **Hardware-Accelerated Glass**: Native `UIGlassEffect` API with minimal performance impact
541
+ - **Interactive Effects**: Smooth touch interactions without performance degradation
542
+ - **SwiftUI Powered**: Optimized declarative UI updates
543
+ - **iOS < 26 & Android**:
544
+ - Automatic fallback to `BlurView` with enhanced blur effects
545
+ - Same performance characteristics as `BlurView`
546
+
547
+ ### General Tips
551
548
  - Avoid using too many blur/glass views simultaneously on lower-end devices
552
549
  - Consider using `reducedTransparencyFallbackColor` for better accessibility
553
- - Liquid glass effects automatically fall back to enhanced blur on Android and older iOS versions
550
+ - `LiquidGlassView` automatically falls back to `BlurView` on unsupported platforms
551
+ - Both components are optimized for React Native's new architecture (Fabric)
554
552
 
555
- ## What's New in v0.3.0
553
+ ## What's New in v4.0.0
554
+
555
+ > **⚠️ Breaking Changes**: v4.0.0 introduces a major API redesign. See [Breaking Changes](#️-breaking-changes-in-v400) section above for migration guide.
556
+
557
+ ### 🎯 Component Separation (BREAKING CHANGE)
558
+ - **Two Specialized Components**: Split single `BlurView` into dedicated `BlurView` and `LiquidGlassView` components
559
+ - **Removed `type` prop**: No more switching between blur/liquidGlass modes - use the appropriate component instead
560
+ - **Cleaner APIs**: Each component has focused props without mixing blur and glass properties
561
+ - **Better Architecture**: True separation of concerns following React best practices
562
+ - **Improved Type Safety**: Separate TypeScript definitions prevent incompatible prop combinations
556
563
 
557
564
  ### 🌊 Liquid Glass Effects (iOS 26+)
558
565
  - Revolutionary glass effects using Apple's new UIGlassEffect API
566
+ - Dedicated `LiquidGlassView` component for glass-specific effects
559
567
  - Customizable glass types: `clear` and `regular`
560
568
  - Adjustable tint colors and opacity for stunning visual effects
561
569
  - Automatic fallback to enhanced blur on older iOS versions and Android
@@ -567,16 +575,17 @@ yarn android
567
575
  - Improved blur intensity control with precise animation handling
568
576
 
569
577
  ### 📱 Enhanced Example App
570
- - New liquid glass demonstration section
578
+ - Separate demonstrations for BlurView and LiquidGlassView
571
579
  - Interactive property controls for real-time customization
572
580
  - Practical use case examples (cards, modals, overlays)
573
- - Comparison views for different effect types
581
+ - Comparison views showing both components side by side
574
582
 
575
583
  ### 🛠️ Developer Experience
576
- - Full TypeScript support for all new properties
584
+ - Full TypeScript support with separate prop types for each component (`BlurViewProps`, `LiquidGlassViewProps`)
585
+ - Cleaner, more intuitive API design
577
586
  - Improved component layout handling
578
587
  - Better accessibility support with smart fallbacks
579
- - Enhanced documentation and examples
588
+ - Enhanced documentation with breaking changes guide
580
589
 
581
590
  ## Contributing
582
591
 
@@ -599,4 +608,6 @@ MIT
599
608
 
600
609
  ## Credits
601
610
 
611
+ QMBlur library: https://github.com/QmDeve/QmBlurView
612
+
602
613
  Built with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)