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.
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