FluentCalendarStyle class

The visual configuration of a FluentCalendar.

Shaped like FluentButtonStyle: every visual property is a WidgetStateProperty, so hover, pressed and disabled values live on the property rather than being branched on at build time.

Every field is nullable and means "inherit". Resolution order, lowest to highest precedence:

  1. the view defaults derived from the theme
  2. the nearest FluentCalendarTheme
  3. the widget's own style

Three cell colour families, not one

A day cell has three mutually exclusive roles — selected, today, and ordinary — and upstream gives each its own ramp rather than one ramp with a selected mode. Folding them into a single property would mean either inventing values or writing a bespoke precedence helper; keeping them apart means the renderer picks the family by role and plain FluentStateColor.tokens resolves hover and pressed inside it. A hovered selected day therefore resolves selectedBackgroundColor with WidgetState.hovered in the set and lands on the right token with no special case.

This is FluentDataGridStyle's own argument applied one level down.

Annotations

Constructors

FluentCalendarStyle({WidgetStateProperty<Color?>? backgroundColor, WidgetStateProperty<Color?>? borderColor, WidgetStateProperty<double?>? borderWidth, WidgetStateProperty<BorderRadius?>? borderRadius, WidgetStateProperty<List<BoxShadow>?>? shadow, WidgetStateProperty<EdgeInsetsGeometry?>? padding, WidgetStateProperty<double?>? gap, WidgetStateProperty<Color?>? dividerColor, WidgetStateProperty<double?>? dividerWidth, WidgetStateProperty<TextStyle?>? headerTextStyle, WidgetStateProperty<Color?>? headerForegroundColor, WidgetStateProperty<Color?>? headerBackgroundColor, WidgetStateProperty<EdgeInsetsGeometry?>? headerPadding, WidgetStateProperty<BorderRadius?>? headerBorderRadius, WidgetStateProperty<double?>? headerHeight, WidgetStateProperty<Size?>? navButtonSize, WidgetStateProperty<Color?>? navButtonForegroundColor, WidgetStateProperty<Color?>? navButtonBackgroundColor, WidgetStateProperty<BorderRadius?>? navButtonBorderRadius, WidgetStateProperty<double?>? navIconSize, WidgetStateProperty<TextStyle?>? weekdayTextStyle, WidgetStateProperty<Color?>? weekdayForegroundColor, WidgetStateProperty<Size?>? cellSize, WidgetStateProperty<double?>? cellSpacing, WidgetStateProperty<double?>? rowSpacing, WidgetStateProperty<Size?>? dayButtonSize, WidgetStateProperty<BorderRadius?>? cellBorderRadius, WidgetStateProperty<TextStyle?>? cellTextStyle, WidgetStateProperty<Color?>? cellBackgroundColor, WidgetStateProperty<Color?>? cellForegroundColor, WidgetStateProperty<Color?>? outOfPageForegroundColor, WidgetStateProperty<Color?>? todayBackgroundColor, WidgetStateProperty<Color?>? todayForegroundColor, WidgetStateProperty<Size?>? todayMarkerSize, WidgetStateProperty<Color?>? selectedBackgroundColor, WidgetStateProperty<Color?>? selectedForegroundColor, WidgetStateProperty<Color?>? selectedBorderColor, WidgetStateProperty<double?>? selectedBorderWidth, WidgetStateProperty<TextStyle?>? goToTodayTextStyle, WidgetStateProperty<Color?>? goToTodayForegroundColor, WidgetStateProperty<MouseCursor?>? mouseCursor})
Creates a style. Omitted properties inherit.
const

Properties

backgroundColor WidgetStateProperty<Color?>?
Fill behind the whole calendar.
final
borderColor WidgetStateProperty<Color?>?
Colour of the rule around the calendar.
final
borderRadius WidgetStateProperty<BorderRadius?>?
Corner radius of the calendar surface.
final
borderWidth WidgetStateProperty<double?>?
Thickness of the rule around the calendar.
final
cellBackgroundColor WidgetStateProperty<Color?>?
Fill of an ordinary cell — neither selected nor today.
final
cellBorderRadius WidgetStateProperty<BorderRadius?>?
Corner radius of a cell's painted surface.
final
cellForegroundColor WidgetStateProperty<Color?>?
Label colour of an ordinary cell.
final
cellSize WidgetStateProperty<Size?>?
The grid slot one cell occupies, spacing excluded.
final
cellSpacing WidgetStateProperty<double?>?
Horizontal space between grid slots. Zero in the month view, where the day cells tile edge to edge and their own padding provides the gap.
final
cellTextStyle WidgetStateProperty<TextStyle?>?
Type ramp of a cell's label. Its colour is overridden by the foreground property of whichever role the cell is in.
final
dayButtonSize WidgetStateProperty<Size?>?
Edge lengths of the painted surface inside a month-view day cell.
final
dividerColor WidgetStateProperty<Color?>?
Colour of the rule between two panels.
final
dividerWidth WidgetStateProperty<double?>?
Thickness of the rule between two panels.
final
gap WidgetStateProperty<double?>?
Space between the header row and the grid below it.
final
goToTodayForegroundColor WidgetStateProperty<Color?>?
Colour of the "go to today" link.
final
goToTodayTextStyle WidgetStateProperty<TextStyle?>?
Type ramp of the "go to today" link. Its colour is overridden by goToTodayForegroundColor.
final
hashCode int
The hash code for this object.
no setteroverride
headerBackgroundColor WidgetStateProperty<Color?>?
Caption fill. Transparent at rest — the caption only reads as a button once it is hovered.
final
headerBorderRadius WidgetStateProperty<BorderRadius?>?
Corner radius of the caption button.
final
headerForegroundColor WidgetStateProperty<Color?>?
Caption colour.
final
headerHeight WidgetStateProperty<double?>?
Height of the header row, chevrons included.
final
headerPadding WidgetStateProperty<EdgeInsetsGeometry?>?
Inset inside the caption button. Asymmetric upstream: the caption is inset further from the left edge than from the chevrons it sits beside.
final
headerTextStyle WidgetStateProperty<TextStyle?>?
Type ramp of the caption — March 2026, 2026, 2020 - 2031. Its colour is overridden by headerForegroundColor.
final
mouseCursor WidgetStateProperty<MouseCursor?>?
Cursor over a selectable cell.
final
Chevron button fill.
final
Corner radius of a chevron button.
final
Chevron glyph colour. Null when the chevron is out of bounds resolves through WidgetState.disabled, not by hiding the button — upstream keeps it in the tab order so focus is not lost when it becomes disabled after a click.
final
Edge lengths of a previous/next chevron button.
final
Edge length of the chevron glyph inside its button.
final
outOfPageForegroundColor WidgetStateProperty<Color?>?
Label colour of a cell belonging to an adjacent month or decade.
final
padding WidgetStateProperty<EdgeInsetsGeometry?>?
Inset between the calendar surface and its header and grid.
final
rowSpacing WidgetStateProperty<double?>?
Vertical space between grid rows. Upstream sets this independently of cellSpacing in the year and decade views, so the two are separate.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedBackgroundColor WidgetStateProperty<Color?>?
Fill of the selected cell.
final
selectedBorderColor WidgetStateProperty<Color?>?
Colour of the ring around the selected cell. Upstream draws this in addition to the fill, so a selected day survives high contrast where the fill flattens.
final
selectedBorderWidth WidgetStateProperty<double?>?
Thickness of the ring around the selected cell.
final
selectedForegroundColor WidgetStateProperty<Color?>?
Label colour of the selected cell.
final
shadow WidgetStateProperty<List<BoxShadow>?>?
Elevation cast by the calendar surface.
final
todayBackgroundColor WidgetStateProperty<Color?>?
Fill of the marker drawn behind today's label.
final
todayForegroundColor WidgetStateProperty<Color?>?
Label colour of today.
final
todayMarkerSize WidgetStateProperty<Size?>?
Edge lengths of the circular marker behind today's label. Smaller than dayButtonSize — upstream draws a disc inside the button, not a filled square.
final
weekdayForegroundColor WidgetStateProperty<Color?>?
Weekday header colour.
final
weekdayTextStyle WidgetStateProperty<TextStyle?>?
Type ramp of the weekday header row. Its colour is overridden by weekdayForegroundColor.
final

Methods

copyWith({WidgetStateProperty<Color?>? backgroundColor, WidgetStateProperty<Color?>? borderColor, WidgetStateProperty<double?>? borderWidth, WidgetStateProperty<BorderRadius?>? borderRadius, WidgetStateProperty<List<BoxShadow>?>? shadow, WidgetStateProperty<EdgeInsetsGeometry?>? padding, WidgetStateProperty<double?>? gap, WidgetStateProperty<Color?>? dividerColor, WidgetStateProperty<double?>? dividerWidth, WidgetStateProperty<TextStyle?>? headerTextStyle, WidgetStateProperty<Color?>? headerForegroundColor, WidgetStateProperty<Color?>? headerBackgroundColor, WidgetStateProperty<EdgeInsetsGeometry?>? headerPadding, WidgetStateProperty<BorderRadius?>? headerBorderRadius, WidgetStateProperty<double?>? headerHeight, WidgetStateProperty<Size?>? navButtonSize, WidgetStateProperty<Color?>? navButtonForegroundColor, WidgetStateProperty<Color?>? navButtonBackgroundColor, WidgetStateProperty<BorderRadius?>? navButtonBorderRadius, WidgetStateProperty<double?>? navIconSize, WidgetStateProperty<TextStyle?>? weekdayTextStyle, WidgetStateProperty<Color?>? weekdayForegroundColor, WidgetStateProperty<Size?>? cellSize, WidgetStateProperty<double?>? cellSpacing, WidgetStateProperty<double?>? rowSpacing, WidgetStateProperty<Size?>? dayButtonSize, WidgetStateProperty<BorderRadius?>? cellBorderRadius, WidgetStateProperty<TextStyle?>? cellTextStyle, WidgetStateProperty<Color?>? cellBackgroundColor, WidgetStateProperty<Color?>? cellForegroundColor, WidgetStateProperty<Color?>? outOfPageForegroundColor, WidgetStateProperty<Color?>? todayBackgroundColor, WidgetStateProperty<Color?>? todayForegroundColor, WidgetStateProperty<Size?>? todayMarkerSize, WidgetStateProperty<Color?>? selectedBackgroundColor, WidgetStateProperty<Color?>? selectedForegroundColor, WidgetStateProperty<Color?>? selectedBorderColor, WidgetStateProperty<double?>? selectedBorderWidth, WidgetStateProperty<TextStyle?>? goToTodayTextStyle, WidgetStateProperty<Color?>? goToTodayForegroundColor, WidgetStateProperty<MouseCursor?>? mouseCursor}) FluentCalendarStyle
This style with the given properties replaced.
merge(FluentCalendarStyle? other) FluentCalendarStyle
This style with the non-null properties of other layered on top.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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

Static Methods

from({Color? backgroundColor, Color? borderColor, double? borderWidth, BorderRadius? borderRadius, List<BoxShadow>? shadow, EdgeInsetsGeometry? padding, double? gap, Color? dividerColor, double? dividerWidth, TextStyle? headerTextStyle, Color? headerForegroundColor, Color? headerBackgroundColor, EdgeInsetsGeometry? headerPadding, BorderRadius? headerBorderRadius, double? headerHeight, Size? navButtonSize, Color? navButtonForegroundColor, Color? navButtonBackgroundColor, BorderRadius? navButtonBorderRadius, double? navIconSize, TextStyle? weekdayTextStyle, Color? weekdayForegroundColor, Size? cellSize, double? cellSpacing, double? rowSpacing, Size? dayButtonSize, BorderRadius? cellBorderRadius, TextStyle? cellTextStyle, Color? cellBackgroundColor, Color? cellForegroundColor, Color? outOfPageForegroundColor, Color? todayBackgroundColor, Color? todayForegroundColor, Size? todayMarkerSize, Color? selectedBackgroundColor, Color? selectedForegroundColor, Color? selectedBorderColor, double? selectedBorderWidth, TextStyle? goToTodayTextStyle, Color? goToTodayForegroundColor, MouseCursor? mouseCursor}) FluentCalendarStyle
Convenience for the common case of one value across every state.