Widgets

Switch

Switch

A material on/off toggle.

Example

switch(
  label: "Email notifications",
  value: true,
  on_change: ->(event) { settings.notify = event.control.value }
)

Common properties

  • valuetrue / false
  • label
  • label_position"left" or "right"
  • active_color / active_track_color
  • inactive_thumb_color / inactive_track_color
  • thumb_color / thumb_icon
  • track_color

Usage

toggle = switch(label: "Dark mode", value: false)
# later:
toggle.value # => false

Complete API

Helpers

  • switch(**props)

Accepted properties

  • active_color — Active color.
  • active_track_color — Active track color.
  • adaptive — Adapts to the platform (Material/Cupertino) when true.
  • align — Alignment of the control within its parent.
  • animate_align — Animates alignment changes.
  • animate_margin — Animates margin changes.
  • animate_offset — Animates offset changes.
  • animate_opacity — Animates opacity changes.
  • animate_position — Animates position changes.
  • animate_rotation — Animates rotation changes.
  • animate_scale — Animates scale changes.
  • animate_size — Animates size changes.
  • aspect_ratio — Width-to-height ratio to maintain.
  • autofocus — Requests focus when first shown.
  • badge — Badge drawn on the corner of the control.
  • bottom — Bottom offset when positioned inside a stack.
  • col — Responsive column span (1-12) per breakpoint.
  • data — Arbitrary value you can attach to the control and read back in handlers.
  • disabled — Disables interaction when true.
  • expand — Fills the available space along the parent's main axis when true.
  • expand_loose — Like expand, but only grows up to the child's natural size.
  • focus_color — Color shown while focused.
  • height — Fixed height in logical pixels.
  • hover_color — Color shown while hovered.
  • inactive_thumb_color — Inactive thumb color.
  • inactive_track_color — Inactive track color.
  • key — Stable identity used to preserve state across rebuilds.
  • label — Text label shown for the control.
  • label_position — Sets the label position property.
  • label_text_style — Label text style.
  • left — Left offset when positioned inside a stack.
  • margin — Outer spacing around the control.
  • mouse_cursor — Cursor shown when hovering the control.
  • offset — Translation offset applied to the control.
  • opacity — Opacity from 0.0 (transparent) to 1.0 (opaque).
  • overlay_color — Overlay color.
  • padding — Inner spacing between the border and the content.
  • right — Right offset when positioned inside a stack.
  • rotate — Rotation applied to the control.
  • rtl — Renders right-to-left when true.
  • scale — Scale transform applied to the control.
  • size_change_interval — Throttle interval for on_size_change, in ms.
  • splash_radius — Splash radius.
  • thumb_color — Thumb color.
  • thumb_icon — Thumb icon.
  • tooltip — Text shown on hover/long-press.
  • top — Top offset when positioned inside a stack.
  • track_color — Track color.
  • track_outline_color — Track outline color.
  • track_outline_width — Track outline width.
  • value — The control's current value.
  • visible — Hides the control when false.
  • width — Fixed width in logical pixels.

Events

  • on_animation_end — Fired when an animation completes.
  • on_blur — Fired when the control loses focus.
  • on_change — Fired when the value changes.
  • on_focus — Fired when the control gains focus.
  • on_size_change — Fired when the control's size changes.

Wire reference

  • Family: materials
  • Widget type: switch