progressive_background_blur 1.0.1
progressive_background_blur: ^1.0.1 copied to clipboard
Progressive background blur widget to create smooth layered frosted glass effect for Flutter.
1.0.1 #
- Added a
.pubignorefile to keepCLAUDE.mdand the.claude/directory out of the pub.dev package archive. No changes to the public API or runtime behavior.
1.0.0 #
- First stable release. The public API is unchanged since 0.0.4 and is now considered stable: the
ProgressiveBlurwidget (begin/end,sigmaStart/sigmaEnd, optionalchild) and the static membersProgressiveBlur.precache(),ProgressiveBlur.shaderAssetKey, andProgressiveBlur.maxSigma. - Rebuilt the example app (
example/lib/main.dart) as a bottom blur toolbar over a scrolling scene, with an End sigma slider (0–ProgressiveBlur.maxSigma) for tuning the blur strength live. - Refreshed both READMEs to match the new example; the demo video was dropped in favor of a GIF.
0.0.4 #
- Removed the redundant outer
ClipRectwrapper introduced in 0.0.3: the blur node is now returned directly, so one compositing clip layer is saved. No change to the public API or the documented usage limitations. - Internal cleanup of
ProgressiveBlur's build path (fewer intermediate assignments) and doc comments updated to match the current implementation. - Documented per-platform Impeller availability in the READMEs, following the official Impeller docs: mandatory on iOS; default on Android API 29+ (older devices fall back to OpenGL and degrade gracefully); default since Flutter 3.47 on macOS / Linux / Windows (Flutter 3.41–3.46 still defaults to Skia there and degrades gracefully).
0.0.3 #
- Made
ProgressiveBlur.childoptional (Widget?, defaults tonull). When omitted, the backdrop blur is still applied to the widget's own region (its size is determined by the parent's constraints); only the foreground content is absent, matchingBackdropFilter's behavior. - On the no-blur degradation paths (Skia backend, web, shader still loading, both sigmas 0), a null
childnow renders as a zero-sized placeholder instead of being skipped. - Fixed the blur bleeding outside the widget's own bounds: the shader-based backdrop filter's output region is conservatively computed by the engine as the full-screen backdrop snapshot, so the blur could spill past the widget and linger as a full-screen smear during route slide/fade-out transitions until the node was destroyed. The widget is now wrapped in a
ClipRect, so the blur is strictly confined to its own rect and moves, fades, and disposes with its page.
0.0.2 #
- Raised the minimum Flutter version from 3.3.0 to 3.41.0 (the Dart SDK constraint was relaxed from ^3.11.5 to ^3.11.0), as required by the shader-based
ProgressiveBlurimplementation introduced in 0.0.1. - Declared the supported platforms (Android, iOS, Linux, macOS, Windows) in
pubspec.yamlvia the top-levelplatforms:field. - Excluded web from the declared platforms, so pub.dev no longer shows a web platform tag. Web builds are unaffected — the widget still renders
childunchanged there through theisShaderFilterSupportedgraceful-degradation path.
0.0.1 #
- Added the
ProgressiveBlurwidget, matching Figma Effects → Background blur → Progressive (Start / End): blur strength interpolates fromsigmaStarttosigmaEndalong the line frombegintoend, defaulting to top-to-bottom. begin/endaccept anyAlignmentGeometry, includingAlignmentDirectional(resolved against the currentDirectionality).sigmaStart/sigmaEndare clamped to 0–100 inclusive (the Figma range, exposed asProgressiveBlur.maxSigma); both being 0 applies no blur.- Pure-Dart fragment-shader implementation: a two-pass (horizontal / vertical) separable Gaussian convolution, no native code.
- Impeller only, detected at runtime via
ui.ImageFilter.isShaderFilterSupported; on Skia and before the shader finishes loading,childis rendered unchanged. - Added
ProgressiveBlur.precache()to precompile the shader beforerunApp().