🀝 Connect With Me

        


🌌 profscode_orbit_date_picker

A sci-fi inspired, orbit-based date picker for Flutter. Rotate a planet around a star to travel through time.

This package is designed for developers who are bored of classic calendars and want a memorable date-picking experience.


✨ Features

  • πŸͺ Orbit-based date selection
  • 🌍 Change days by rotating a planet
  • β˜€οΈ Sun, atmosphere and deep-space glow effects
  • πŸŽ› Fully customizable (size, speed, colors, limits)
  • πŸ“† Min / Max date support
  • 🌐 intl powered date formatting
  • πŸ“¦ Works in dialogs, bottom sheets or inline
  • ⚑ High performance using CustomPainter

πŸ“Έ Preview

A smooth, space-themed interaction that feels alive.

Orbit Picker Orbit Picker Dialog


πŸš€ Installation

dependencies:
  profscode_orbit_date_picker: ^1.0.0
import 'package:profscode_orbit_date_picker/profscode_orbit_date_picker.dart';

πŸ§ͺ Basic Usage

profscodeOrbitDatePicker(
  initialDate: DateTime.now(),
  onDateChanged: (date) {
    print(date);
  },
)

showDialog(
  context: context,
  builder: (_) => Dialog(
    backgroundColor: const Color(0xFF070B14),
    shape: RoundedRectangleBorder(
      borderRadius: BorderRadius.circular(28),
    ),
    child: Padding(
      padding: const EdgeInsets.all(20),
      child: profscodeOrbitDatePicker(
        initialDate: DateTime.now(),
      ),
    ),
  ),
);

βš™οΈ Parameters

Parameter Description
size Diameter of the picker
initialDate Starting date
minDate Minimum selectable date
maxDate Maximum selectable date
onDateChanged Date change callback
turnsPerDay Full rotations required per day
initialAngle Initial planet angle
showDateChip Show date label
tickCount Number of orbit ticks
orbitStrokeWidth Orbit line thickness
earthSize Planet size
sunSize Sun size
orbitColor Orbit color
glowColor Space glow color
sunGradient Sun gradient
earthGradient Planet gradient
dateFormat Custom intl.DateFormat

🎨 Full Custom Example

profscodeOrbitDatePicker(
  size: 360,
  initialDate: DateTime.now(),
  minDate: DateTime(2020),
  maxDate: DateTime(2030),
  turnsPerDay: 0.5,
  tickCount: 24,
  earthSize: 14,
  sunSize: 30,
  orbitColor: Colors.cyanAccent,
  glowColor: Colors.blueAccent.withValues(alpha: 0.4),
  dateFormat: DateFormat('dd MMM yyyy'),
  onDateChanged: (date) {
    debugPrint(date.toString());
  },
)

🧠 UX Tips

  • Best used on dark backgrounds
  • Feels most natural inside dialogs or bottom sheets
  • Perfect for sci-fi, creative or game-like applications

πŸ›  Roadmap

  • πŸ”„ Inertia / momentum spinning
  • πŸ“… Month & year orbit modes
  • πŸ“³ Haptic feedback support
  • πŸŒ™ Moon phase picker
  • πŸŽ₯ Lottie animation integration

🀝 Contributing

Pull requests, ideas and issues are welcome. This is not just a widget β€” it’s an experience.


πŸ“œ License

MIT License Free to use. Free to explore the universe 🌠


πŸ‘¨β€πŸš€ Author

Profscode Creative Flutter components for modern apps

---# profscode_orbit_date_picker