RoundedCheckBox class

A circular, animated checkbox with an optional text label.

Unlike Flutter's built-in Checkbox, this one is fully round and comes with smooth colour transitions out of the box. It's a good fit for task lists, settings toggles, or anywhere you want a friendlier check.

Example

RoundedCheckBox(
  isChecked: true,
  text: 'I agree to the terms',
  checkedColor: Colors.green,
  onTap: (value) => print('Checked: $value'),
)

Customisation

Property What it controls
checkedColor Fill colour when checked (default: green)
uncheckedColor Fill colour when unchecked (default: null)
checkedWidget Widget shown when checked (default: checkmark)
uncheckedWidget Widget shown when unchecked (default: empty)
size Diameter of the circle (default: 24)
animationDuration Transition duration (default: 500ms)
text Optional label displayed to the right
Inheritance
Available extensions

Constructors

RoundedCheckBox({Key? key, bool? isChecked, Widget? checkedWidget, Widget? uncheckedWidget, Color? checkedColor, Color? uncheckedColor, Color? disabledColor, Border? border, Color? borderColor, double? size, Duration? animationDuration, dynamic onTap(bool?)?, String text = '', TextStyle? textStyle})
Creates a RoundedCheckBox.
const

Properties

animationDuration Duration?
How long the checked/unchecked colour transition takes. Defaults to 500 milliseconds.
final
border Border?
An optional custom border around the circle.
final
borderColor Color?
The border colour. Defaults to grey.
final
checkedColor Color?
The fill colour when the checkbox is checked. Defaults to green.
final
checkedWidget Widget?
The widget displayed inside the circle when checked. Defaults to a white checkmark icon.
final
disabledColor Color?
The fill colour when the checkbox is disabled (not currently wired).
final
hashCode int
The hash code for this object.
no setterinherited
isChecked bool?
Whether the checkbox starts in a checked state. Defaults to false.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
makeRefreshable Widget

Available on Widget?, provided by the WidgetExtension extension

Make your any widget refreshable with RefreshIndicator on top
no setter
onTap → dynamic Function(bool?)?
Called when the user taps the checkbox. Receives the new checked state.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
size double?
The diameter of the checkbox circle. Defaults to 24.0.
final
text String
An optional text label shown to the right of the checkbox.
final
textStyle TextStyle?
The TextStyle for the text label.
final
uncheckedColor Color?
The fill colour when unchecked. Defaults to transparent.
final
uncheckedWidget Widget?
The widget displayed inside the circle when unchecked. Defaults to an empty SizedBox.
final

Methods

center({double? heightFactor, double? widthFactor}) Widget

Available on Widget?, provided by the WidgetExtension extension

set parent widget in center
cornerRadiusWithClipRRect(double radius) ClipRRect

Available on Widget?, provided by the WidgetExtension extension

add corner radius
cornerRadiusWithClipRRectOnly({int bottomLeft = 0, int bottomRight = 0, int topLeft = 0, int topRight = 0}) ClipRRect

Available on Widget?, provided by the WidgetExtension extension

add custom corner radius each side
createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() RoundedCheckBoxState
Creates the mutable state for this widget at a given location in the tree.
override
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.
inherited
expand({int flex = 1}) Widget

Available on Widget?, provided by the WidgetExtension extension

add Expanded to parent widget
fit({BoxFit? fit, AlignmentGeometry? alignment}) Widget

Available on Widget?, provided by the WidgetExtension extension

add FittedBox to parent widget
flexible({int flex = 1, FlexFit? fit}) Widget

Available on Widget?, provided by the WidgetExtension extension

add Flexible to parent widget
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
opacity({required double opacity, int durationInSecond = 1, Duration? duration}) Widget

Available on Widget?, provided by the WidgetExtension extension

add opacity to parent widget
paddingAll(double padding) Padding

Available on Widget?, provided by the WidgetExtension extension

return padding all
paddingBottom(double bottom) Padding

Available on Widget?, provided by the WidgetExtension extension

return padding bottom
paddingDirectional({double start = 0.0, double top = 0.0, double end = 0.0, double bottom = 0.0}) Widget

Available on Widget?, provided by the WidgetExtension extension

paddingLeft(double left) Padding

Available on Widget?, provided by the WidgetExtension extension

return padding left
paddingOnly({double top = 0.0, double left = 0.0, double bottom = 0.0, double right = 0.0}) Padding

Available on Widget?, provided by the WidgetExtension extension

return custom padding from each side
paddingRight(double right) Padding

Available on Widget?, provided by the WidgetExtension extension

return padding right
paddingSymmetric({double vertical = 0.0, double horizontal = 0.0}) Padding

Available on Widget?, provided by the WidgetExtension extension

return padding symmetric
paddingTop(double top) Padding

Available on Widget?, provided by the WidgetExtension extension

return padding top
rotate({required double angle, bool transformHitTests = true, Offset? origin}) Widget

Available on Widget?, provided by the WidgetExtension extension

add rotation to parent widget
scale({required double scale, Offset? origin, AlignmentGeometry? alignment, bool transformHitTests = true}) Widget

Available on Widget?, provided by the WidgetExtension extension

add scaling to parent widget
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
tooltip({required String msg}) Widget

Available on Widget?, provided by the WidgetExtension extension

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
translate({required Offset offset, bool transformHitTests = true, Key? key}) Widget

Available on Widget?, provided by the WidgetExtension extension

add translate to parent widget
validate({Widget value = const SizedBox()}) Widget

Available on Widget?, provided by the WidgetExtension extension

Validate given widget is not null and returns given value if null.
visible(bool visible, {Widget? defaultWidget}) Widget

Available on Widget?, provided by the WidgetExtension extension

set visibility
withHeight(double height) SizedBox

Available on Widget?, provided by the WidgetExtension extension

With custom height
withShaderMask(List<Color> colors, {BlendMode blendMode = BlendMode.srcATop}) Widget

Available on Widget?, provided by the WidgetExtension extension

Wrap with ShaderMask widget
withShaderMaskGradient(Gradient gradient, {BlendMode blendMode = BlendMode.srcATop}) Widget

Available on Widget?, provided by the WidgetExtension extension

Wrap with ShaderMask widget Gradient
withSize({double width = 0.0, double height = 0.0}) SizedBox

Available on Widget?, provided by the WidgetExtension extension

With custom height and width
withTooltip({required String msg}) Widget

Available on Widget?, provided by the WidgetExtension extension

Validate given widget is not null and returns given value if null.
withVisibility(bool visible, {Widget? replacement, bool maintainAnimation = false, bool maintainState = false, bool maintainSize = false, bool maintainSemantics = false, bool maintainInteractivity = false}) Visibility

Available on Widget?, provided by the WidgetExtension extension

set widget visibility
withWidth(double width) SizedBox

Available on Widget?, provided by the WidgetExtension extension

With custom width

Operators

operator ==(Object other) bool
The equality operator.
inherited