GlassContainer class
A widget that combines common painting, sizing and positioning widgets to implement Glass Morphism.
A GlassContainer surrounds the child in a Container with necessary decoration properties like color, gradient, borderRadius and shape. Preference is given to gradient and borderGradient during painting.
GlassContainer paints border using CustomPaint with RectBorderPainter or CircleBorderPainter depending on the box shape.
BackdropFilter, frosted layer and container are stacked and clipped using ClipOval or ClipRRect to implement the Glass Effect
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- GlassContainer
Constructors
-
GlassContainer({Key? key, Widget? child, double? width, Color? color, double? height, EdgeInsetsGeometry? margin, EdgeInsetsGeometry? padding, double? blur, Gradient? gradient, AlignmentGeometry? alignment, List<
BoxShadow> ? boxShadow, Matrix4? transform, Color? borderColor, double? elevation, Color? shadowColor, double? borderWidth, Gradient? borderGradient, bool? isFrostedGlass, double? frostedOpacity, AlignmentGeometry? transformAlignment, BorderRadius? borderRadius, BoxShape shape = BoxShape.rectangle}) - Creates a widget by combining common painting, sizing, and positioning widgets to implement Glass Morphism.
-
GlassContainer.clearGlass({Key? key, double? height, double? width, AlignmentGeometry? alignment, Matrix4? transform, AlignmentGeometry? transformAlignment, EdgeInsetsGeometry? padding, EdgeInsetsGeometry? margin, Gradient? gradient, Color? color, BorderRadius? borderRadius, double? borderWidth, Gradient? borderGradient, Color? borderColor, double? blur, double? elevation, Color? shadowColor, BoxShape shape = BoxShape.rectangle, Widget? child, List<
BoxShadow> ? boxShadow}) - Creates a widget that extends GlassContainer to implement a clear glass effect. Its a default implementation of the effect with editable decorations
-
GlassContainer.frostedGlass({Key? key, double? height, double? width, AlignmentGeometry? alignment, Matrix4? transform, AlignmentGeometry? transformAlignment, EdgeInsetsGeometry? padding, EdgeInsetsGeometry? margin, Gradient? gradient, Color? color, BorderRadius? borderRadius, double? borderWidth, Gradient? borderGradient, Color? borderColor, double? blur, double? elevation, Color? shadowColor, BoxShape shape = BoxShape.rectangle, double? frostedOpacity, Widget? child, List<
BoxShadow> ? boxShadow}) - Creates a widget that extends GlassContainer to implement a frosted glass effect. Its a default implementation of the effect with editable decorations
Properties
- alignment → AlignmentGeometry?
-
Align the child within the GlassContainer.
final
- blur → double
-
The value of sigmaX and sigmaY properties of Gaussian Blur.
In simple words its the extent to which the backdrop of GlassContainer
is blurred
final
- borderColor → Color?
-
The color to fill in the border
final
- borderGradient → Gradient?
-
A gradient to use when painting the border
final
- borderRadius → BorderRadius?
-
If non-null, the corners of this box are rounded by this BorderRadius.
final
- borderWidth → double
-
The strokeWidth of the border
final
-
boxShadow
→ List<
BoxShadow> ? -
A list of shadows cast by this container behind it.
final
- child → Widget?
-
The child contained by the GlassContainer.
final
- color → Color?
-
The color to fill in the background of the box.
final
- frostedOpacity → double
-
Opacity value of the frosted layer.
Specifically its the opacity of the white-noise image used for
the effect.
final
- gradient → Gradient?
-
A gradient to use when filling the box.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- height → double?
-
The height of the GlassContainer
final
- isFrostedGlass → bool
-
Whether the GlassContainer will have frosted effect or not.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- margin → EdgeInsetsGeometry?
-
Empty space to surround the GlassContainer's decoration and child.
final
- padding → EdgeInsetsGeometry?
-
Empty space to inscribe inside the GlassContainer. The child, if any, is
placed inside this padding.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- shape → BoxShape
-
The shape to fill the background color, gradient into and
to cast as the shadow. The
heigth
is used as the diameter of the circlefinal - transform → Matrix4?
-
The transformation matrix to apply before painting the GlassContainer.
final
- transformAlignment → AlignmentGeometry?
-
The alignment of the origin, relative to the size of the GlassContainer,
if transform is specified.
final
- width → double?
-
final
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
override
-
getHeight(
[BoxConstraints? constraints]) → double? -
getWidth(
[BoxConstraints? constraints]) → double? -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited