BaseComponentState class abstract

Base class for all component states in the playground.

This abstract class extracts common patterns shared by all 60+ component state classes, reducing boilerplate by approximately 60%.

Extends ChangeNotifier to provide reactive state management:

Subclasses must:

  • Provide a static componentName for theme color resolution
  • Override getDefaultDimensions() to provide component-specific defaults
  • Override resetComponentSpecificProperties() for custom property resets
  • Override getComponentSpecificModifiedProperties() for tracking changes

Common functionality provided:

  • Neumorphic shadow properties (distance, blur, intensity)
  • State colors for Rest, Hover, Pressed, Disabled (light + dark modes)
  • Override flags for per-state customization
  • Shadow color computation from palette
  • Theme application via ThemeColorMapper
Inheritance
Implemented types
Implementers

Constructors

BaseComponentState()

Properties

blur double
getter/setter pair
borderColor Color
getter/setter pair
borderRadius double
getter/setter pair
borderWidth double
getter/setter pair
componentNameGetter String
Component identifier for theme color resolution. Each component should have a unique name like 'button', 'toggle', 'card'. Named componentNameGetter to avoid conflict with static componentName that some subclasses expose for external access.
no setter
darkIntensity double
getter/setter pair
disabledBaseColorDark Color
getter/setter pair
disabledBaseColorLight Color
getter/setter pair
disabledBlurOverride double?
getter/setter pair
disabledDarkIntensityOverride double?
getter/setter pair
disabledDistanceOverride double?
getter/setter pair
disabledIconColorDark Color
getter/setter pair
disabledIconColorLight Color
getter/setter pair
disabledLightIntensityOverride double?
getter/setter pair
disabledOverrideEnabled bool
getter/setter pair
disabledTextColorDark Color
getter/setter pair
disabledTextColorLight Color
getter/setter pair
distance double
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
height double
getter/setter pair
hoverBaseColorDark Color
getter/setter pair
hoverBaseColorLight Color
getter/setter pair
hoverBlurOverride double?
getter/setter pair
hoverDarkIntensityOverride double?
getter/setter pair
hoverDistanceOverride double?
getter/setter pair
hoverIconColorDark Color
getter/setter pair
hoverIconColorLight Color
getter/setter pair
hoverLightIntensityOverride double?
getter/setter pair
hoverOverrideEnabled bool
getter/setter pair
hoverTextColorDark Color
getter/setter pair
hoverTextColorLight Color
getter/setter pair
lightIntensity double
getter/setter pair
paddingH double
getter/setter pair
paddingV double
getter/setter pair
palette GeneratedPalette?
Get the stored palette, if any.
no setter
pressedBaseColorDark Color
getter/setter pair
pressedBaseColorLight Color
getter/setter pair
pressedBlurOverride double?
getter/setter pair
pressedDarkIntensityOverride double?
getter/setter pair
pressedDistanceOverride double?
getter/setter pair
pressedIconColorDark Color
getter/setter pair
pressedIconColorLight Color
getter/setter pair
pressedLightIntensityOverride double?
getter/setter pair
pressedOverrideEnabled bool
getter/setter pair
pressedTextColorDark Color
getter/setter pair
pressedTextColorLight Color
getter/setter pair
restBaseColorDark Color
getter/setter pair
restBaseColorLight Color
getter/setter pair
restBlurOverride double?
getter/setter pair
restDarkIntensityOverride double?
getter/setter pair
restDistanceOverride double?
getter/setter pair
restIconColorDark Color
getter/setter pair
restIconColorLight Color
getter/setter pair
restLightIntensityOverride double?
getter/setter pair
restOverrideEnabled bool
getter/setter pair
restTextColorDark Color
getter/setter pair
restTextColorLight Color
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
showAnimatedBorder bool
getter/setter pair
width double
getter/setter pair

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
applyTheme(GeneratedPalette palette) → void
Apply colors from a GeneratedPalette to this component's state.
override
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener will throw after the object is disposed).
inherited
getComponentSpecificModifiedProperties() Set<String>
Get set of component-specific modified properties. Called by getModifiedProperties() to include custom property tracking.
getDarkShadowColor(bool isDarkMode) Color
Get the dark shadow color for neumorphic effects. Uses palette colors when available, falls back to defaults otherwise.
getDefaultDimensions() → ({double height, double paddingH, double paddingV, double width})
Get component-specific default dimensions. Returns a record with (width, height, paddingH, paddingV).
getEffectiveBlur(dynamic state) double
Get effective blur for a given state (applies overrides if enabled). Accepts either String ('rest', 'hover', 'pressed', 'disabled') or ComponentState enum.
getEffectiveBorderColor(dynamic state) Color
Get effective border color for a given state. Returns the animated border color. Override in subclasses for state-specific border colors. Accepts ComponentState enum or component-specific enum types.
getEffectiveBorderRadius(dynamic state) double
Get effective border radius for a given state. Most components use the same border radius for all states. Override in subclasses for state-specific border radius. Accepts ComponentState enum or component-specific enum types.
getEffectiveBorderWidth(dynamic state) double
Get effective border width for a given state. Returns the animated border width. Override in subclasses for state-specific border widths. Accepts ComponentState enum or component-specific enum types.
getEffectiveDarkIntensity(dynamic state, [bool isDarkMode = false]) double
Get effective dark intensity for a given state. Single argument version - assumes light mode for backward compatibility. Accepts either String ('rest', 'hover', 'pressed', 'disabled') or ComponentState enum.
getEffectiveDistance(dynamic state) double
Get effective distance for a given state (applies overrides if enabled). Accepts either String ('rest', 'hover', 'pressed', 'disabled') or ComponentState enum.
getEffectiveHeight(dynamic state) double
Get effective height for a given state. Most components use the same height for all states, so this defaults to height. Override in subclasses for state-specific sizing. Accepts ComponentState enum or component-specific enum types.
getEffectiveLightIntensity(dynamic state, [bool isDarkMode = false]) double
Get effective light intensity for a given state. Single argument version - assumes light mode for backward compatibility. Accepts either String ('rest', 'hover', 'pressed', 'disabled') or ComponentState enum.
getEffectiveWidth(dynamic state) double
Get effective width for a given state. Most components use the same width for all states, so this defaults to width. Override in subclasses for state-specific sizing. Accepts ComponentState enum or component-specific enum types.
getLightShadowColor(bool isDarkMode) Color
Get the light shadow color for neumorphic effects. Uses palette colors when available, falls back to defaults otherwise.
getModifiedProperties() Set<String>
Get the set of property names that have been modified from defaults.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
resetComponentSpecificProperties() → void
Reset component-specific properties to defaults. Called by resetToDefaults() after resetting common properties.
resetToDefaults() → void
Reset all properties to their default values.
override
toString() String
A string representation of this object.
inherited

Operators

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