GlassDatePicker class
An authentic iOS 26/27 Liquid Glass Date and Time Picker providing 100% parity
with SwiftUI's DatePicker and MultiDatePicker.
Key Features
- Three Native Display Styles: GlassDatePickerStyle.compact, GlassDatePickerStyle.graphical, and GlassDatePickerStyle.wheel.
- Authentic Liquid Glass Styling: Elevated specular selection rings, frosted glass month headers, and subtle rim highlights.
- Multi-Date Support: GlassMultiDatePicker allows selecting multiple distinct dates.
- Haptic Feedback: Fires
HapticFeedback.selectionClick()on every day/month transition. - Bounds & Constraints: Respects minimumDate, maximumDate, and minuteInterval.
- Imperative Presentation: showGlassDatePicker presents the picker modally.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- GlassDatePicker
- Available extensions
Constructors
-
GlassDatePicker({Key? key, required DateTime initialDateTime, ValueChanged<
DateTime> ? onDateTimeChanged, GlassDatePickerMode mode = GlassDatePickerMode.date, GlassDatePickerStyle style = GlassDatePickerStyle.graphical, DateTime? minimumDate, DateTime? maximumDate, int minuteInterval = 1, bool use24hFormat = false, Color? tintColor, int firstDayOfWeek = 7, List<String> ? monthNames, List<String> ? weekdayNames, String dateFormatter(DateTime)?, LiquidGlassSettings? settings, LiquidShape? shape, GlassQuality? quality, GlassSurfaceStyle surfaceStyle = GlassSurfaceStyle.glass}) -
Creates a GlassDatePicker in GlassDatePickerStyle.graphical mode by default.
const
-
GlassDatePicker.compact({Key? key, required DateTime initialDateTime, ValueChanged<
DateTime> ? onDateTimeChanged, GlassDatePickerMode mode = GlassDatePickerMode.date, DateTime? minimumDate, DateTime? maximumDate, int minuteInterval = 1, bool use24hFormat = false, Color? tintColor, int firstDayOfWeek = 7, List<String> ? monthNames, List<String> ? weekdayNames, String dateFormatter(DateTime)?, LiquidGlassSettings? settings, LiquidShape? shape, GlassQuality? quality, GlassSurfaceStyle surfaceStyle = GlassSurfaceStyle.glass}) -
Creates a compact pill-styled GlassDatePicker.
const
-
GlassDatePicker.graphical({Key? key, required DateTime initialDateTime, ValueChanged<
DateTime> ? onDateTimeChanged, GlassDatePickerMode mode = GlassDatePickerMode.date, DateTime? minimumDate, DateTime? maximumDate, int minuteInterval = 1, bool use24hFormat = false, Color? tintColor, int firstDayOfWeek = 7, List<String> ? monthNames, List<String> ? weekdayNames, String dateFormatter(DateTime)?, LiquidGlassSettings? settings, LiquidShape? shape, GlassQuality? quality, GlassSurfaceStyle surfaceStyle = GlassSurfaceStyle.glass}) -
Creates an inline graphical calendar-styled GlassDatePicker.
const
-
GlassDatePicker.wheel({Key? key, required DateTime initialDateTime, ValueChanged<
DateTime> ? onDateTimeChanged, GlassDatePickerMode mode = GlassDatePickerMode.date, DateTime? minimumDate, DateTime? maximumDate, int minuteInterval = 1, bool use24hFormat = false, Color? tintColor, int firstDayOfWeek = 7, List<String> ? monthNames, List<String> ? weekdayNames, String dateFormatter(DateTime)?, LiquidGlassSettings? settings, LiquidShape? shape, GlassQuality? quality, GlassSurfaceStyle surfaceStyle = GlassSurfaceStyle.glass}) -
Creates a wheel-styled GlassDatePicker using Cupertino wheels in liquid glass.
const
Properties
- dateFormatter → String Function(DateTime)?
-
Optional formatter for the compact date pill label (defaults to
'Oct 12, 2026').final - firstDayOfWeek → int
-
First day of the week (7 = Sunday, 1 = Monday).
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- initialDateTime → DateTime
-
The initially selected date and time.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- maximumDate → DateTime?
-
Latest selectable date/time.
final
- minimumDate → DateTime?
-
Earliest selectable date/time.
final
- minuteInterval → int
-
Interval between minute increments in time selection.
final
- mode → GlassDatePickerMode
-
The components being selected (date, time, or dateAndTime).
final
-
monthNames
→ List<
String> ? -
Optional localized full month names (12 entries, January through December).
final
-
onDateTimeChanged
→ ValueChanged<
DateTime> ? -
Callback executed when the selected date or time changes.
final
- quality → GlassQuality?
-
Rendering quality tier. Ignored when surfaceStyle is
GlassSurfaceStyle.solid.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- settings → LiquidGlassSettings?
-
Liquid glass settings. Ignored when surfaceStyle is
GlassSurfaceStyle.solid.
final
- shape → LiquidShape?
-
Shape of the picker's card (wheel, graphical and multi-date).
final
- style → GlassDatePickerStyle
-
Presentation and interaction style.
final
- surfaceStyle → GlassSurfaceStyle
-
How the picker's card is painted.
final
- tintColor → Color?
-
Accent tint color for the selected day highlight (defaults to CupertinoColors.activeBlue).
final
- use24hFormat → bool
-
Whether to display time in 24-hour format instead of 12-hour AM/PM.
final
-
weekdayNames
→ List<
String> ? -
Optional localized short weekday headers (7 entries ordered starting from
firstDayOfWeek).
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< GlassDatePicker> -
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
-
glassContextMenu(
{Key? key, required List< Widget> actions, WidgetBuilder? previewBuilder, bool enabled = true, bool enableHaptics = true, double borderRadius = 32.0, double? previewBorderRadius, double rowBorderRadius = 16.0, BorderRadius? rowCorners, Color? originSlotColor, Color? backgroundColor, LiquidGlassSettings? settings, GlassQuality? quality, double backdropBlur = 0.0, Color? barrierColor, VoidCallback? onOpened, VoidCallback? onDismissed, Duration longPressDuration = const Duration(milliseconds: 700)}) → Widget -
Available on Widget, provided by the GlassContextMenuExtension extension
Wraps this widget in a GlassContextMenu displayingactionson long-press or right-click. -
glassFullScreenCover(
{required bool isPresented, VoidCallback? onDismiss, required WidgetBuilder content, bool enableSwipeToDismiss = true, double dismissThreshold = 140.0, LiquidGlassSettings? settings, GlassQuality? quality}) → Widget -
Available on Widget, provided by the GlassFullScreenCoverExtension extension
Presents a full-viewport modal cover wheneverisPresentedis true. -
Available on Widget, provided by the GlassNavigationTitleExtension extension
Annotates this widget with a navigation title that drives enclosing or descendant GlassAppBar / GlassAppBar.pinned bars (when their explicittitleis null) as well as header accessibility semantics. -
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