scrollable_calender 0.0.4 copy "scrollable_calender: ^0.0.4" to clipboard
scrollable_calender: ^0.0.4 copied to clipboard

A beautiful scrollable date picker for Flutter with customizable themes, smooth animations, and intuitive UX for date selection in mobile apps.

0.0.4 - 2025-01-14 #

Fixed #

  • Pub.dev Image Display: Fixed image URLs to use raw GitHub URLs for proper display on pub.dev
  • README Compatibility: Updated all image references to work on both GitHub and pub.dev platforms

Technical Improvements #

  • Converted relative image paths to absolute raw GitHub URLs
  • Ensured all screenshots and GIF demo display correctly on pub.dev
  • Improved cross-platform README compatibility

0.0.3 #

Added #

  • GIF Video Demo: Added animated demonstration showing smooth scrolling animations and theme switching
  • Optimized README Images: All images now display at consistent 200px width for better pub.dev presentation
  • Asset Configuration: Properly configured assets in pubspec.yaml for screenshots and demo GIF

Improved #

  • README Layout: Converted individual images to compact table layouts for better mobile viewing
  • Visual Showcase: Enhanced visual presentation with organized theme comparison tables
  • Pub.dev Compatibility: Optimized all images for professional display on pub.dev

Technical Improvements #

  • Updated pubspec.yaml with proper assets configuration
  • Implemented HTML img tags with width constraints for consistent image sizing
  • Improved README structure for better user experience

0.0.2 #

Fixed #

  • Pub Publish Warnings: Resolved all pub publish validation warnings
  • Example Directory Structure: Converted example from git submodule to regular directory
  • Build Artifacts: Cleaned up build artifacts and unnecessary files from example directory
  • Package Structure: Improved overall package structure for better pub.dev compatibility

Technical Improvements #

  • Removed embedded git repository from example directory
  • Cleaned .gradle, .cxx, build/, and .dart_tool/ directories
  • Added proper .pubignore file for publication control
  • Updated git tracking to treat example as regular files instead of submodule

Package Size Optimization #

  • Reduced package size from 390 KB to 74 KB
  • Removed unnecessary build files and dependencies
  • Optimized example app structure for publication

0.0.1 #

Added #

  • Initial Release of Kest Scrollable Calendar package
  • Dual Usage Patterns:
    • Traditional CustomDateSelector widget for form field integration
    • Standalone CalendarBottomSheet methods for bottom sheet functionality
  • Comprehensive Theme System:
    • Built-in light and dark themes
    • Complete color customization for all components
    • CalendarTheme.copyWith() method for easy theme inheritance
  • Smart Center Detection:
    • Only the selected item appears bold and prominent
    • Automatic selection when scrolling to center
    • Clean design with 3-4 visible items
  • Multiple Picker Types:
    • Full date picker (day, month, year)
    • Month/Year picker only
    • Customizable date ranges with maxYear parameter
  • Highly Customizable CTA Buttons:
    • Custom button text with buttonText parameter
    • Completely custom button widgets with customButton parameter
    • Gradient and styled button examples
  • Responsive Design:
    • Adapts to different screen sizes (mobile, tablet, desktop)
    • Optimized spacing and font sizes
    • MediaQuery-based responsive behavior
  • Advanced Features:
    • Scrollable pickers with smooth animations
    • Visual scaling and opacity effects based on distance from center
    • Padding support for selecting first and last items
    • Consistent center detection across all pickers
  • Complete Documentation:
    • Comprehensive README with usage examples
    • All customization options documented
    • Theme property reference table
    • Integration examples for dropdowns and forms

Features #

  • CalendarTheme Properties:
    • backgroundColor - Background color
    • primaryColor - Primary text color
    • textColor - General text color
    • selectedColor - Selected/bold item color
    • dividerColor - Divider lines color
    • buttonColor - Button background color
    • buttonTextColor - Button text color
    • titleColor - Title text color
    • handleColor - Handle/drag color
  • CustomDateSelector Parameters:
    • onDateSelected - Callback for date selection
    • label - Form field label
    • theme - Custom theme
    • maxYear - Maximum year range
    • buttonText - Custom button text
    • customButton - Custom button widget
  • CalendarBottomSheet Methods:
    • showDatePicker() - Full date selection
    • showMonthYearPicker() - Month/year only selection
    • Theme and button customization support

Technical Details #

  • Center Detection Logic:
    • 55px center offset for optimal positioning
    • 60px padding for first/last item selection
    • sizeFactor > 1.2 threshold for bold text
    • Font weight: w600 (bold) vs w400 (normal)
    • Font size: 28px (center) vs 16px (normal)
  • Visual Effects:
    • Transform.scale for size variations
    • Opacity changes based on distance from center
    • Smooth scroll physics and animations
  • State Management:
    • StatefulBuilder for modal bottom sheets
    • Proper setState calls for UI updates
    • ScrollController listeners for real-time updates

Usage Examples #

// TextForm Field Integration
CustomDateSelector(
  label: "Birth Date",
  theme: CalendarTheme.light,
  onDateSelected: (year, month, day) {
    print('Selected: $day/$month/$year');
  },
)

// Standalone Bottom Sheet
CalendarBottomSheet.showDatePicker(
  context,
  title: "Select Date",
  theme: CalendarTheme.dark,
  onDateSelected: (year, month, day) {
    print('Selected: $day/$month/$year');
  },
)

// Custom Theme
CalendarTheme.light.copyWith(
  selectedColor: Colors.red,
  buttonColor: Colors.orange,
  dividerColor: Colors.blue,
)

// Custom Button Widget
CalendarBottomSheet.showDatePicker(
  context,
  customButton: Container(/* custom button */),
  onDateSelected: (year, month, day) { /* ... */ },
)

Dependencies #

  • Flutter SDK
  • No external dependencies required

Breaking Changes #

  • None (initial release)

Migration Guide #

  • N/A (initial release)

[0.0.1] #

Added #

  • Initial package setup
  • Basic project structure
  • README placeholder

For more details about each version, please refer to the README.md file.

5
likes
150
points
28
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

A beautiful scrollable date picker for Flutter with customizable themes, smooth animations, and intuitive UX for date selection in mobile apps.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on scrollable_calender