sentient_ui library

Sentient UI: An Emotion-Aware Adaptive User Interface Framework for Flutter.

This package provides a comprehensive framework for creating Flutter applications that can detect user emotions and adapt the user interface in real-time. It uses on-device machine learning for privacy-preserving emotion detection and a rule-based engine to trigger UI adaptations based on the user's emotional state.

Classes

AdaptationManager
Manages the application's UI adaptations in response to emotional state changes.
AlignConfig
Controls alignment for different emotional states.
AnimatedEmotionTheme
A widget that implicitly animates the EmotionTheme from one value to another.
AnimatedSwitcherConfig
Controls duration and animation curves for different emotions.
AnimationConfig
Defines animation behavior characteristics for emotional states.
AppBarConfig
Configuration for Sentient AppBar widget.
AspectRatioConfig
Configuration for SentientAspectRatio behavior.
BackButtonConfig
Configuration for Sentient BackButton widget
BehaviorState
Pure data model for behavior state. Stores raw interaction counts and time windows. No emotion logic.
BottomNavigationBarConfig
Configuration for SentientBottomNavigationBar appearance.
ButtonConfig
Defines button styling for emotional states.
CenterConfig
Configuration for Sentient Center widget.
CircleAvatarConfig
Configuration for SentientCircleAvatar appearance.
ClipRRectConfig
Controls the border radius applied to the child widget.
ColumnConfig
Defines Column styling for emotional states.
ContainerConfig
Defines Container styling for emotional states.
ContextResult
Represents a raw snapshot of the current environment and device status.
ContextState
Holds the application's current known context state.
DividerConfig
Configuration for SentientDivider appearance.
DraggableScrollableSheetConfig
Configuration for SentientDraggableScrollableSheet appearance.
EmotionResult
Represents the raw output of a single emotion detection analysis cycle.
EmotionTheme
A comprehensive data model defining all visual and behavioral properties for a specific emotional state in the Sentient UI framework.
EmotionThemeTween
A custom tween that interpolates between two EmotionThemes.
ExpandedConfig
Defines container styling for SentientExpanded per emotional state.
FeedbackConfig
Defines feedback messaging tone for emotional states.
GestureDetectorConfig
Configuration for SentientGestureDetector feedback behavior.
GridViewConfig
This config holds layout, spacing, behavior and scroll styling that changes depending on the user's emotional state.
IconConfig
Controls default size, color, and emotion-driven adjustments.
ImageConfig
Controls optional styling such as border radius, color filters, or other emotion-driven adjustments.
InkWellConfig
Base configuration for emotion-aware InkWell interaction.
InputDecorationConfig
LayoutConfig
Defines layout characteristics for emotional states.
ListTileConfig
Configuration for SentientListTile appearance.
ListViewConfig
Defines emotion-aware configuration for SentientListView.
MaterialConfig
Base configuration for emotion-aware Material widgets.
PaddingConfig
Configuration for Sentient Padding widget.
PositionedConfig
Configuration for SentientPositioned layout.
RotateConfig
Base configuration for emotion-aware rotation.
RotatedBoxConfig
Controls the rotation amount expressed in quarter turns.
RowConfig
Defines Row styling for different emotional states.
SafeAreaConfig
Defines how the SafeArea should behave for different emotional states.
ScaffoldConfig
Holds all adaptive properties that may vary based on emotional themes
SentientAlign
A reactive, emotion-aware alignment widget.
SentientAnimatedBuilder
A reactive animated builder widget that adapts its animation behavior based on the user's emotional state.
SentientAnimatedOpacity
A reactive animated opacity widget that adapts its opacity behavior based on the user's emotional state.
SentientAnimatedSwitcher
A reactive animated switcher that adapts its transition behavior based on the user's emotional state.
SentientApp
A wrapper widget that simplifies the integration of Sentient UI into a Flutter application.
SentientAppBar
An emotion-aware application bar widget.
SentientAspectRatio
A reactive widget that adapts its child's aspect ratio based on the user's emotional state.
SentientBackButton
An emotion-aware back navigation button.
SentientBottomNavigationBar
A reactive bottom navigation bar that adapts its styling and layout based on the user's emotional state.
SentientBottomNavigationBarBuilder
A helper widget that builds a list of adaptive navigation items.
SentientBottomNavigationBarItem
A reactive bottom navigation bar item that adapts its appearance based on the user's emotional state.
SentientCaption
A specialized version of SentientText for displaying captions.
SentientCaptionEnhanced
A specialized enhanced caption widget that adapts to emotional states.
SentientCenter
An emotion-aware wrapper around Flutter's Center widget.
SentientCircleAvatar
A reactive circle avatar that adapts its appearance based on the user's emotional state.
SentientClipRRect
A reactive widget that clips its child using a rounded rectangle that adapts to the user's emotional state.
SentientColumn
A reactive, emotion-aware column that wraps its children in an adaptive container.
SentientConfig
Defines the runtime configuration for the SentientEngine.
SentientConsentView
A pre-built user interface for obtaining user consent and configuring Sentient UI.
SentientContainer
A reactive container widget that adapts its visual styling based on the user's emotional state.
SentientDivider
A reactive divider widget that adapts its appearance based on the user's emotional state.
SentientDraggableScrollableSheet
A reactive draggable scrollable sheet that adapts its behavior and appearance based on the user's emotional state.
SentientEngine
The central orchestrator of the Sentient UI framework.
SentientExpanded
A reactive, emotion-aware Expanded widget that wraps its child in an adaptive container.
SentientFadeTransition
A convenience widget for fading content in and out with emotion-aware transitions.
SentientGestureDetector
A reactive gesture detector that adapts its feedback behavior based on the user's emotional state AND automatically reports user interactions to the BehaviorTracker to help infer emotions like anger or sadness.
SentientGridView
A reactive GridView that adapts its layout characteristics based on the user's emotional state.
SentientHeading
A specialized version of SentientText for displaying headings.
SentientHeadingEnhanced
A specialized enhanced heading widget that adapts to emotional states.
SentientIcon
A reactive icon widget that adapts its appearance based on the user's emotional state.
SentientImage
A reactive image widget that adapts its appearance based on the user's emotional state.
SentientInkWell
An emotion-aware InkWell wrapper that adapts its interaction feedback based on the current EmotionTheme.
SentientListTile
A reactive list tile widget that adapts its styling based on the user's emotional state.
SentientListView
A reactive ListView that adapts its scroll behavior, padding, and background color based on the user's emotional state.
SentientMaterial
A Material wrapper that adapts its visual style dynamically based on the current EmotionTheme.
SentientPadding
An emotion-aware wrapper around Flutter's Padding widget.
SentientPositioned
A reactive widget that positions its child in a Stack and adapts its placement based on the user's emotional state.
SentientRotate
An emotion-aware rotation wrapper that adapts motion behavior based on the current EmotionTheme.
SentientRotatedBox
A reactive widget that rotates its child by a multiple of 90 degrees and adapts the rotation based on the user's emotional state.
SentientRow
A reactive, emotion-aware Row that wraps its children in an adaptive container.
SentientSafeArea
A reactive widget that applies adaptive padding within the safe area of the screen based on the user's emotional state.
SentientScaffold
A reactive Scaffold that adapts its layout properties based on the user's emotional state.
SentientScrollObserver
A deprecated scroll observer widget.
SentientSingleChildScrollView
A reactive scroll view that adapts its scrolling physics and behavior based on the user's emotional state.
SentientSizedBox
A reactive, emotion-aware box that enforces specific dimensions based on the user's emotional state.
SentientSpacer
A reactive, emotion-aware spacer that adapts its flexibility based on the user's emotional state.
SentientStack
A reactive, emotion-aware stack that allows for overlapping widgets.
SentientTapDetector
A specialized version of SentientGestureDetector for tap gestures only.
SentientText
A reactive text widget that automatically adapts its style based on the user's emotional state.
SentientTextButton
A reactive text button widget that adapts its styling based on the user's emotional state.
SentientTextEnhanced
An enhanced reactive text widget that adapts its styling based on the user's emotional state with direct Text widget attribute mapping.
SentientTextField
A reactive text field widget that adapts its visual styling based on the user's emotional state.
SentientTransitionBuilder
A specialized version of SentientAnimatedBuilder for simple visibility transitions.
SentientWrap
An emotion-aware wrapper around Flutter's Wrap widget.
SingleChildScrollViewConfig
Defines ScrollView styling for emotional states.
SizedBoxConfig
Defines configuration for a SentientSizedBox, allowing emotion-driven dimension adjustments.
SpacerConfig
Controls default flex value for emotion-aware layouts.
StackConfig
Controls alignment, layout tightness, and how the Stack behaves depending on the user's emotional state.
StateManager
Manages the global emotional state of the application.
TextButtonConfig
Configuration for SentientTextButton appearance.
TextEnhancedConfig
Configuration for SentientTextEnhanced styling.
TextFieldConfig
Defines container styling for SentientTextField based on emotion.
TypographyConfig
Defines typography configuration for emotional states.
WrapConfig
Base configuration for emotion-aware Wrap layout.

Enums

ContainerVariant
Defines the visual variants that a SentientContainer can present.
EmotionState
Represents the set of discrete emotions recognizable by the Sentient UI framework.
FeedbackTone
NetworkType
Represents network connectivity status.
TextVariant
Defines the text variant type for adaptive styling.