by_ui 0.1.8
by_ui: ^0.1.8 copied to clipboard
A modern, highly customizable Flutter UI component library featuring dynamic border buttons, scroll-driven animations, motion cards, toasts, and shrink-wrap dialogs
Changelog #
All notable changes to the by_ui package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.8 #
Added #
- ByTabBar:
- Fluid segmented tab bar and scrollable tabs rail component family.
- Liquid Elastic Morphing: Stretches the sliding indicator pill dynamically between distant tabs (
enableLiquidMorphing,liquidStretchFactor). - Dual Indicator Styles: Sliding pill capsule (
ByTabIndicatorStyle.pill) and docked bottom underline bar (ByTabIndicatorStyle.underline). - Dynamic Perimeter Border Pulses: Running 3-phase laser beam on the active indicator (
enableDynamicBorder,enableSelectionPulse,dynamicBorderColors) and outer container (enableOuterDynamicBorder,outerDynamicBorder). - Scrollable Tabs Rail: Horizontal scrolling (
isScrollable: true) with concentricinnerClipRadiusanti-aliased viewport clipping and scroll notification isolation. - Rich Customization: Gradients (
indicatorGradient), border width, container radius, indicator radius, text & icon color transitions, and badges (badge,badgeColor,badgeTextColor).
- ByBottomNav:
- Dynamic glassmorphic floating navigation dock system.
- Spring-Physics Interaction: Smooth spring item expansion and active indicator pill gliding.
- Selection Border Pulse: 3-phase dynamic perimeter border beam pulse on item tap (
enableSelectionPulse,selectionPulseColors). - Frosted Glassmorphism: Translucent background surface (
enableFrostedGlass,blurSigma,surfaceOpacity). - Adaptive Layout: Fluid label/icon layout transitions with mobile-first badge counters (
badge,badgeColor).
- BySidebar:
- Responsive vertical navigation sidebar component family.
- Dual Presentation Modes: Wide-screen docked sidebar ($\ge 700\text{px}$) and small-screen floating overlay drawer ($< 700\text{px}$) with dismissible scrim backdrop.
- Tactile Toggle Placement: Header toggle button (
togglePlacement: BySidebarTogglePlacement.header) or tactile bottom action tile (bottomAction). - Hover Auto-Expand Preview: Interactive hover-expand preview (
enableHoverExpand) on desktop and web. - Rich Item Decorators: Section headers (
BySidebarItem.section), trailing status widgets (trailing), collapsed tooltips, and badges.
- ByAutoShimmer:
- Automated MVP-compliant skeleton layout generator.
- Recursive Widget Inspection: Automatically produces high-fidelity bone placeholders (
ByBone) matching exact card, text, avatar, and button dimensions. - Directional Wave Sweeps: Multi-tone gradient sweeps (
direction: ByShimmerDirection.ltr,rtl,ttb,btt,diagonal). - Gradient Wave Customization: Rich gradient sweeps with
shimmerGradientand customizable wave width (shimmerWaveWidth). - Seamless State Transitions: Zero-overflow cross-fade morphing between skeleton and loaded content (
ClipRect+OverflowBox). - Standalone Bone Primitives:
ByBone.square,ByBone.rounded,ByBone.circle, andByBone.text.
Changed #
- ByButton:
- Standardized default dynamic beam colors (
beamColorA,beamColorB) to pure white (Colors.white) across both light mode and dark mode for consistent high-contrast vibrancy.
- Standardized default dynamic beam colors (
Fixed #
- ByAppBar & ByScrollScope:
- Isolated
ByScrollScopeto ignore non-vertical scroll notifications (metrics.axis != Axis.vertical), preventing horizontal tab bar drags from triggering floating app bar states.
- Isolated
- ByTabBar:
- Fixed rightmost tab clipping by factoring outer border stroke width into available inner width calculation.
- Wrapped scrollable tabs rail in concentric
innerClipRadiuswith anti-aliasing to eliminate straight vertical hard-edge indicator cutoff.
0.1.7 #
Fixed #
- Enforced
curly_braces_in_flow_control_structureslinter rule across all core library components for 100% Pana static analysis score. - Optimized
BySequencepreview GIF file size for fast loading on pub.dev. - Added
analysis_options.yamlto core package root with officialflutter_lints. - Removed unnecessary library directives to satisfy
unnecessary_library_namelint.
0.1.6 #
Added #
- ByButton:
- Flagship, interactive button component family combining tactile ergonomics, fluid spatial animations, autonomous async state handling, and dynamic perimeter border pulses.
- Visual Variants:
ByButtonVariant.filled: High-contrast filled action button.ByButtonVariant.gradient: Vibrant multi-color gradient surface.ByButtonVariant.outline: Clean bordered button with transparent backdrop.ByButtonVariant.ghost: Minimal text button with subtle hover elevation.
- Comprehensive State Management:
- Interactive states:
idle,hover,pressed,loading, anddisabled. - Autonomous asynchronous execution: passing a
Future<void> Function()toonPressedautomatically triggers the loading state until completion. - Dedicated transactional state support (
ByButtonState.idle,ByButtonState.loading,ByButtonState.success,ByButtonState.error). - Preserved button geometry during loading state to prevent layout reflows and content shifts.
- 3-phase circular pulse spinner with customizable loading indicator widget (
loadingWidget).
- Interactive states:
- Dynamic Perimeter Border Pulses (
ByDynamicBorderLayer):- Perimeter beam sweep animation following rounded rectangle geometry (
RRect), including corner arcs. - Customizable beam color, gradient, length (
beamLength), duration (pulseDuration), and easing curve. - Periodic background pulses (
periodicPulseInterval) for persistent ambient call-to-actions. - State transition border pulses: automatically sweeps an energetic contrast pulse when transitioning from disabled to enabled state (
enableTransitionPulseColors). - Manual trigger controls via
ByDynamicBorderController.pulse().
- Perimeter beam sweep animation following rounded rectangle geometry (
- Independent Border Widths:
- Fine-grained control over resting border width (
borderWidth) and active loading border width (loadingBorderWidth).
- Fine-grained control over resting border width (
- Theming & Ergonomics:
- Five predefined size presets:
ByButtonSize.xs,ByButtonSize.sm,ByButtonSize.md,ByButtonSize.lg, andByButtonSize.xl. - Prefix leading widget, suffix trailing widget, spacing, floating corner badges (
badge,badgeAlignment). - Unified styling via
ByButtonStyleand tokens inByButtonDefaults.
- Five predefined size presets:
- ByDynamicBorder:
- Standalone dynamic perimeter border layer system (
ByDynamicBorder,ByDynamicBorderLayer,ByDynamicBorderController). - Geometric perimeter interpolation calculating straight edge runs and corner arc sweeps.
- Standalone dynamic perimeter border layer system (
- ByDialog Dogfooding:
- Integrated
ByButtonas the primary button engine inByDialog.confirmandByDialog.alertfor cohesive design and tactile interaction.
- Integrated
- Documentation & Media:
- Added animated preview GIF for
BySequence(by_sequence.gif). - Added animated preview GIF for
ByButtondynamic border pulse (by_button.gif). - Added official library logo banner (
logo_by_ui.jpg).
- Added animated preview GIF for
Fixed #
- Prevented framework
setState() or markNeedsBuild() called during buildassertion when triggering dynamic border animation controllers during widget build phases. - Synchronized disabled-to-enabled transition pulse default colors to match surface contrast palettes.
0.1.5 #
Added #
- BySequence:
- New sequential, scroll-driven widget reveal and animation component family.
- Zero-Boilerplate Scroll Animations: Progressively reveals children as the viewport scrolls without requiring manual
ScrollController,AnimationController, or coordinate math. - GSAP-Inspired Motion System:
- 1:1 Continuous Scrubbing: Direct bidirectional sync between scroll offset and animation progress (
scrub: true). - Dynamic Batch Pacing (
ScrollTrigger.batch): Automatic item grouping (groupSize) with configurable cascading stagger delays (groupStaggerDelay,groupStagger). - Viewport Trigger Line: Relative trigger threshold positioning from top to bottom (
trigger: 0.0to1.0). - Initial Viewport Gating: Support for
initialVisibleFractionandinitialVisibleCountso initial items render crisp and ready while subsequent items animate on scroll. - Reverse & Replay Controls: Bidirectional reverse unwinding on scroll-up (
reverse: true) and entry replay triggers (replay: true).
- 1:1 Continuous Scrubbing: Direct bidirectional sync between scroll offset and animation progress (
- Granular Composition & Customization:
- BySequenceAnimation: Configurable transformation presets and custom ranges for opacity, translateX, translateY, scale, and rotation.
- BySequenceItem: Per-item animation, duration, curve, and trigger overrides.
- BySequenceController: Headless controller for fine-grained progress observation and callback hooks (
onProgress,onItemProgress,onItemEnter,onSequenceComplete). - BySequenceRange: Mathematical range interpolation utility with smooth
lerpDouble.
- Multi-Orientation Layout: Full support for both vertical (
Axis.vertical) and horizontal (Axis.horizontal) sequences.
0.1.4 #
Added #
- ByAppBar:
- New dynamic floating and glassmorphic app bar component family.
- Scroll-Driven Floating Transition: Smoothly animates between static edge-docked state and floating detached pill based on scroll distance threshold via ancestor
ByScrollScopeor customScrollController. - Frosted Glassmorphism: Integrated Gaussian blur filter (
floatingBlurSigma) and configurable surface opacity (floatingOpacity). - Dynamic Sensor & Motion Tilt:
- Directional gradient border stroke matching physical gyroscope/accelerometer tilt on mobile (Android / iOS).
- Mouse cursor hover parallax tracking on desktop and web with automatic smooth return to resting pose.
- Spatial directional glow and dynamic shadow projection (
shadowGradient,shadowBlur,maxShadowOffset). - Ultra-Smooth Hermite Cubic Interpolation: Smoothstep blending between resting alignment and physical tilt vector, eliminating abrupt jumps and stutter when rotating or tilting mobile devices.
- High-Refresh Physics Engine: Game interval hardware sampling (~50-60 Hz) and per-frame
Tickerinterpolation inByTiltController. - Inner Shadow & Ambient Glow Control: Added
enableInnerShadow(defaults tofalse) andinnerShadowOpacitymultiplier (withenableInnerGlowandinnerGlowOpacitysynonyms forByCardAPI symmetry). - Even Neutral Resting Glow: Even, balanced edge-to-edge linear gradient ambient sheen in neutral resting pose (
magnitude < 0.08), eliminating circular hot-spots.
- Notch & Status Bar Handling:
- Seamlessly covers the status bar/notch area with a solid background when static at the top (
!isFloating). - Smoothly transitions notch coverage to transparent when floating so background content scrolls elegantly behind the floating pill.
- Seamlessly covers the status bar/notch area with a solid background when static at the top (
- Zero-Border Default & Complete Customization:
- Border defaults to 0.0 (clean edge by default).
- Full control over borders, linear gradients, margins, corner radii, elevation, toolbar height, and custom bottom widgets (e.g.
TabBar). - Convenient static helper
getContentTopPadding(context)for cleanextendBodyBehindAppBarintegration onScaffold.
- ByCard:
- Added dynamic inner sheen / luminous glow support (
enableInnerGlow,innerGlowOpacity,innerGlowBlur) inByCardandByCardPainterreacting to directional lighting. - Refined neutral pose inner glow to use balanced linear gradient across the card when resting flat.
- Added dynamic inner sheen / luminous glow support (
- ByToast:
- Added typography font size customization with
textSizeandtitleSizeacrossByToast,ByToastModel,ByToastCard, and all preset methods (showSuccess,showError,showWarning,showInfo).
- Added typography font size customization with
- Documentation & Media:
- Added animated preview GIF for
ByAppBardynamic floating motion and gradient border parallax (ByAppBar.gif). - Added interactive inner shadow toggle and opacity slider controls to
AppBarShowcaseScreen.
- Added animated preview GIF for
0.1.3 #
Added #
- ByCard:
- New versatile card widget family featuring sleek styling, configurable padding, borders, corner radii, and drop shadows.
- Card Variants & Constructors:
ByCard: Standard card with solid or custom background styling, customizable border width, and border color.ByCard.gradient: Shorthand constructor for cards with vibrant linear gradient borders (colors,borderGradient,borderWidth).ByCard.dynamicSensor: Zero-boilerplate dynamic motion card with responsive border gradient tracking:- Mobile (Android / iOS): Automatically responds to hardware device motion using gyroscope/accelerometer tilt with smooth low-pass filtering.
- Desktop & Web: Seamlessly adapts to mouse cursor hover tracking with fluid spring glide back to neutral center position when the pointer exits.
- Lifecycle-Safe Tilt Management: Built-in
ByTiltControllerhandles hardware stream subscriptions and listeners lazily on mount and disposes automatically on unmount without user boilerplate. - Configurable Motion Settings: Custom
sensorSensitivity,maxSensorTilt,hoverSensitivity, andneutralAlignment. - Theming & Design Tokens:
ByCardThemeDataandByCardDefaultsfor unified application-wide card styling.
- BySelectOption:
- Reusable model and UI component for selectable options with active indicator, title, subtitle, icon, and badge support.
- Documentation & Media:
- Added animated preview GIF for
ByCarddynamic motion border gradient.
- Added animated preview GIF for
0.1.2 #
Added #
- ByDialog:
- Comprehensive button customization in
ByDialog.confirm:buttonBorderRadius: Customizable button corner radius.reverseButtonOrder: Option to reverse button positions (Confirm left, Cancel right).cancelColor: Option to convert cancel button into a solid filled button.cancelBorderColorandcancelTextColor: Fine-grained negative button color tuning.confirmTextColor: Customizable positive button text color.onConfirmandonCancel: Direct lifecycle callbacks before modal dismiss.
- Added
buttonTextColorandbuttonBorderRadiuscustomization inByDialog.alertand all presets (success,error,warning,info).
- Comprehensive button customization in
- Documentation & Media:
- Added visual animated GIF previews for stacked cards, drag-to-dialog, and standalone modal dialogs.
0.1.1 #
Added #
- ByToast:
- Multi-anchor desktop & web corner positioning (
topLeft,topRight,bottomLeft,bottomRight) alongside full-widthtopandbottom, with intelligent auto slide directions and per-anchor stack offsets. - Configurable background surface opacity (
backgroundOpacity) for solid and gradient surfaces while keeping foreground text and icons at 100% clarity. - Configurable text truncation controls (
maxLinesdefaults to 3,overflowdefaults toTextOverflow.ellipsis). - Configurable title truncation options (
titleMaxLinesandtitleOverflow). - Intelligent tap-to-expand fallback allowing standard toasts with long text to seamlessly morph into dialog view.
- Multi-anchor desktop & web corner positioning (
- ByToastMorphDialog:
- Integrated dedicated
ScrollControllerwith custom scrollbar styling for long notification details. - Layout enhancements with edge-to-edge content scrolling and polished dividers.
- Integrated dedicated
- ByDialog:
- Added text truncation controls (
messageMaxLines,messageOverflow,titleMaxLines,titleOverflow) acrossalert,confirm, and presets (success,error,warning,info).
- Added text truncation controls (
Fixed #
- Fixed toast tap gesture detection when expanding messages into dialogs without custom
onTaphandlers. - Fixed scroll controller disposal and viewport constraints in
ByToastMorphDialog.
0.1.0 #
Added #
- Initial public release of
by_ui. - ByToast: Modern notification and toast system.
- Screen anchor positions:
topandbottom. - Multi-directional entrance slide animations (
fromTop,fromBottom,fromLeft,fromRight). - Animation styles:
slideAndFade,bounce,scaleAndFade,slideOnly,fadeOnly. - Customizable prefixes (leading icons/widgets), suffixes (trailing actions/widgets), and close buttons.
- Solid color and linear gradient background surfaces.
- Swipe-to-dismiss gesture handling with smooth spring physics.
- Presets:
ByToast.showSuccess,ByToast.showError,ByToast.showWarning,ByToast.showInfo.
- Screen anchor positions:
- ByToast Morphing Dialog:
- Dual-interaction morphing: tap message text or drag toast towards screen center.
- Seamless spatial translation from the toast's dragged position to center.
- Pure wrap-content natural layout (shrink-wrap) with
AnimatedSizeand auto-scrolling constraints. - Two detail modes: Default text breakdown (Option 1) and custom widget builder (Option 2).
- ByDialog: Independent modern modal dialog component.
- Presets:
ByDialog.alertandByDialog.confirm. - Full theme customization: gradients, corner radiuses, outline borders, custom barrier dismissibility, and animation easing.
- Presets: