S Packages
A comprehensive collection of 43 Flutter packages designed to accelerate development with reusable UI components, utilities, and tools. Built for modern Flutter applications with Material Design 3 support.

If you want to see a better GIF for each of these sub packages, then find their individual package in pub.dev (eg. search for s_button and you will see it in more detail and clearer).
NOTE: this s_packages package is the grouping of all of these, as a main repo
📦 What's Included
This unified package brings together 43 carefully crafted packages organized into 11 categories:
🎨 UI Components (20 packages)
- bubble_label - Bubble-style labels for tags and badges
- s_animated_tabs - Smooth animated tab bars
- s_banner - Customizable notification banners
- s_button - Advanced custom buttons
- s_context_menu - Right-click context menus
- s_disabled - Disabled state management
- s_dropdown - Feature-rich dropdowns
- s_error_widget - Beautiful error displays
- s_expendable_menu - Expandable hierarchical menus
- s_future_button - Async operation buttons
- s_ink_button - Ink ripple effect buttons
- s_liquid_pull_to_refresh - Liquid-style pull-to-refresh
- s_maintenance_button - Maintenance mode buttons
- s_modal - Modal dialog system
- s_standby - Loading state widgets
- s_toggle - Toggle switches
- s_widgets - Widget collection
- settings_item - Settings screen items
- ticker_free_circular_progress_indicator - Ticker-free progress indicators
📋 Lists & Collections
- indexscroll_listview_builder - Index-scrollable lists
- s_gridview - Enhanced grid views
✨ Animations
- s_bounceable - Bounceable interactions
- s_glow - Glow effects
- shaker - Shake animations
- soundsliced_tween_animation_builder - Custom tween builders
🧭 Navigation
- pop_overlay - Overlay management
- pop_this - Navigation utilities
- s_sidebar - Sidebar navigation
🌐 Networking
- s_client - HTTP client utilities
- s_connectivity - Connectivity monitoring
🔄 State Management
- signals_watch - Reactive signal watching
- states_rebuilder_extended - Extended state management
⌨️ Input & Interaction
- keystroke_listener - Keyboard event handling
📐 Layout
- s_offstage - Conditional rendering utilities
📱 Platform Integration
- s_webview - WebView integration
🛠️ Utilities
- post_frame - Post-frame callbacks
- s_screenshot - Screenshot capture
- s_time - Time utilities
- soundsliced_dart_extensions - Dart extensions
📅 Calendar
- week_calendar - Week-based calendars
🚀 Installation
Add this to your package's pubspec.yaml file:
dependencies:
s_packages: ^1.1.2
Then run:
flutter pub get
💡 Basic Usage
Example 1: Using S Modal
import 'package:flutter/material.dart';
import 'package:s_modal/s_modal.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
// Wrap your app with Modal builder
builder: (context, child) => Modal.appBuilder(
context,
child,
backgroundColor: Colors.black54,
),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('S Modal Example')),
body: Center(
child: ElevatedButton(
onPressed: () {
Modal.show(
context: context,
builder: (context) => Container(
padding: EdgeInsets.all(24),
child: Text('Hello from S Modal!'),
),
);
},
child: Text('Show Modal'),
),
),
);
}
}
Example 2: Using S Button
import 'package:flutter/material.dart';
import 'package:s_button/s_button.dart';
class ButtonExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SButton(
onPressed: () {
print('Button pressed!');
},
child: Text('Custom Button'),
backgroundColor: Colors.blue,
borderRadius: 12,
padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
),
),
);
}
}
Example 3: Using Keystroke Listener
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:keystroke_listener/keystroke_listener.dart';
class KeyboardExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return KeystrokeListener(
onKeyPressed: (KeyEvent event) {
if (event is KeyDownEvent) {
print('Key pressed: ${event.logicalKey.keyLabel}');
}
},
child: Scaffold(
appBar: AppBar(title: Text('Keystroke Listener')),
body: Center(
child: Text('Press any key'),
),
),
);
}
}
🎯 Advanced Usage
Example 4: Combining Multiple Packages
import 'package:flutter/material.dart';
import 'package:s_modal/s_modal.dart';
import 'package:s_connectivity/s_connectivity.dart';
import 'package:s_future_button/s_future_button.dart';
class AdvancedExample extends StatelessWidget {
Future<void> _submitData() async {
// Simulate API call
await Future.delayed(Duration(seconds: 2));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Advanced Example')),
body: Column(
children: [
// Connectivity monitoring
SConnectivity(
onConnected: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Connected to internet')),
);
},
onDisconnected: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('No internet connection')),
);
},
child: Container(),
),
// Future button with loading state
SFutureButton(
onPressed: _submitData,
builder: (context, isLoading) {
return ElevatedButton(
onPressed: isLoading ? null : null,
child: isLoading
? CircularProgressIndicator()
: Text('Submit'),
);
},
),
],
),
);
}
}
Example 5: Creating Animated UI
import 'package:flutter/material.dart';
import 'package:s_bounceable/s_bounceable.dart';
import 'package:s_glow/s_glow.dart';
import 'package:shaker/shaker.dart';
class AnimatedUIExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Animations')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// Bounceable widget
SBounceable(
onTap: () => print('Bounced!'),
child: Container(
padding: EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(12),
),
child: Text('Tap me!'),
),
),
SizedBox(height: 24),
// Glow effect
SGlow(
color: Colors.purple,
child: Icon(Icons.star, size: 48),
),
SizedBox(height: 24),
// Shake animation
Shaker(
duration: Duration(milliseconds: 500),
child: Text('Shake on error!'),
),
],
),
),
);
}
}
📱 Running the Example App
This package includes a comprehensive example app showcasing all 43 packages:
cd example
flutter pub get
flutter run
The example app features:
- 🔍 Search functionality to find packages
- 📂 Category-based organization
- 🎨 Material Design 3 UI
- 🌓 Light and dark theme support
- 📱 Interactive demos for each package
🏗️ Project Structure
s_packages/
├── lib/ # Main library exports
├── example/ # Example application
│ ├── assets/
│ │ └── example.gif # Demo GIF
│ └── lib/
│ ├── main.dart # App entry point
│ ├── models/ # Data models
│ ├── screens/ # UI screens
│ └── widgets/ # Reusable widgets
├── bubble_label/ # Individual packages...
├── s_modal/
├── s_button/
└── ... (41 more packages)
🛠️ Development
Prerequisites
- Flutter SDK >=3.0.0
- Dart SDK >=3.0.0
Running Tests
flutter test
Code Analysis
flutter analyze
Formatting
dart format .
📚 Documentation
Each package includes its own documentation. Visit the individual package directories for detailed API documentation and usage examples.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Links
✨ Features
- ✅ 43 production-ready packages
- ✅ Material Design 3 support
- ✅ Light and dark theme compatibility
- ✅ Cross-platform (iOS, Android, Web, Desktop)
- ✅ Comprehensive example app
- ✅ Extensive documentation
- ✅ Active maintenance
- ✅ MIT licensed
📊 Package Stats
- Total Packages: 43
- Categories: 11
- Example Demos: 43+
- Minimum Flutter Version: 3.0.0
- Minimum Dart Version: 3.0.0
🙏 Acknowledgments
Developed and maintained by SoundSliced.
Made with ❤️ for the Flutter community
Libraries
- bubble_label/bubble_label
- bubble_label package
- bubble_label/src/bubble_label
- indexscroll_listview_builder/indexscroll_listview_builder
- A Flutter package providing an enhanced ListView.builder with bidirectional index-based scrolling.
- indexscroll_listview_builder/main
- indexscroll_listview_builder/src/indexed_scroll_child
- indexscroll_listview_builder/src/indexed_scroll_controller
- indexscroll_listview_builder/src/indexscroll_listview_builder
- keystroke_listener/keystroke_listener
- keystroke_listener package
- keystroke_listener/src/keystroke_listener
- pop_overlay/pop_overlay
- pop_overlay package
- pop_overlay/src/escape_key_listener
- pop_overlay/src/pop_overlay
- pop_this/pop_this
- pop_this package
- pop_this/src/pop_this
- post_frame/post_frame
- frame package
- post_frame/src/post_frame
- post_frame/src/post_frame_extensions
- s_animated_tabs/s_animated_tabs
- s_animated_tabs package
- s_animated_tabs/src/s_animated_tabs
- s_banner package
- s_bounceable/s_bounceable
- s_bounceable package
- s_bounceable/src/s_bounceable
- s_client/s_client
- s_client package - Modern HTTP Client
- s_client/src/client
- s_client/src/client_config
- s_client/src/enums/client_type
- s_client/src/interceptors/auth_interceptor
- s_client/src/interceptors/cache_interceptor
- s_client/src/interceptors/client_interceptor
- s_client/src/interceptors/logging_interceptor
- s_client/src/models/client_exception
- s_client/src/models/client_response
- s_connectivity/s_connectivity
- s_connectivity package
- s_connectivity/src/s_connection
- s_context_menu package
- SContextMenu – Advanced contextual actions widget
- s_disabled/s_disabled
- s_disabled package
- s_disabled/src/s_disabled
- s_dropdown/s_dropdown
- s_dropdown package
- s_dropdown/src/s_dropdown
- s_dropdown/src/s_dropdown_decoration
- s_error_widget/s_error_widget
- s_error_widget package
- s_error_widget/src/s_error_widget
- s_expendable_menu package
- future_button package
- s_glow/s_glow
- glow1_2 package
- s_glow/src/glow1
- s_glow/src/glow2
- s_gridview/s_gridview
- s_gridview
- s_gridview/src/s_gridview
- A Flutter package providing a customizable ink splash button with haptic feedback.
- s_ink_button/src/haptic_feedback_type
- s_liquid_pull_to_refresh/s_liquid_pull_to_refresh
- s_liquid_pull_to_refresh package
- s_liquid_pull_to_refresh/src/s_liquid_pull_to_refresh
- s_maintenance_button package
- s_modal/s_modal
- s_modal package
- s_modal/src/s_modal_libs
- s_offstage/s_offstage
- s_offstage package
- s_offstage/src/s_offstage
- s_packages
- s_screenshot/s_screenshot
- s_screenshot package
- s_screenshot/src/s_screenshot
- s_sidebar package
- s_standby/s_standby
- s_standby package
- s_standby/src/s_standby
- s_time/s_time
- s_time package
- s_time/src/extensions
- s_time/src/time_input
- s_time/src/time_spinner
- s_toggle/s_toggle
- s_toggle package
- s_toggle/src/s_toggle
- s_webview/s_webview
- s_webview/src/_platforms
- Platform support detection for s_webview This file imports all platform-specific implementations to ensure pub.dev's static analyzer detects support for all platforms.
- s_webview/src/_platforms/android
- Android-specific WebView implementation This file provides Android platform support for s_webview using webview_flutter.
- s_webview/src/_platforms/ios
- iOS-specific WebView implementation This file provides iOS platform support for s_webview using webview_flutter.
- s_webview/src/_platforms/linux
- Linux-specific WebView implementation This file provides Linux platform support for s_webview using desktop_webview_window.
- s_webview/src/_platforms/macos
- macOS-specific WebView implementation This file provides macOS platform support for s_webview using desktop_webview_window.
- s_webview/src/_platforms/web
- Web-specific WebView implementation This file provides Web platform support for s_webview using webview_flutter_web.
- s_webview/src/_platforms/web_stub
- Stub implementation for web platform support.
- s_webview/src/_platforms/windows
- Windows-specific WebView implementation This file provides Windows platform support for s_webview using desktop_webview_window.
- s_webview/src/_s_webview/_s_webview
- s_webview/src/_s_webview/web_utils/web_utils
- s_webview/src/_s_webview/web_utils/web_utils_stub
- Stub implementation of web utilities for non-web platforms.
- s_webview/src/_s_webview/web_utils/web_utils_web
- Web implementation of web utilities.
- s_webview/src/_s_webview/webview_controller/webview_controller
- s_webview/src/_s_webview/webview_controller/webview_controller_clean
- s_webview/src/_s_webview/webview_controller/webview_controller_extensions
- s_webview/src/_s_webview/webview_controller/webview_controller_web
- s_webview/src/_s_webview/webview_desktop/src/create_configuration
- s_webview/src/_s_webview/webview_desktop/src/message_channel
- s_webview/src/_s_webview/webview_desktop/src/title_bar
- s_webview/src/_s_webview/webview_desktop/src/webview
- s_webview/src/_s_webview/webview_desktop/src/webview_impl
- s_webview/src/_s_webview/webview_desktop/webview_desktop
- s_webview/src/_s_webview/webview_desktop/webview_desktop_app
- s_webview/src/_s_webview/webview_desktop/webview_desktop_web
- s_webview/src/_s_webview/widget/webview
- s_webview/src/_s_webview/widget/widget
- s_webview/src/s_webview
- s_widgets/s_widgets
- s_widgets package
- s_widgets/src/s_widgets
- settings_item/settings_item
- settings_item package
- settings_item/src/settings_item
- shaker/shaker
- shaker package
- shaker/src/shaker
- signals_watch/signals_watch
- A production-ready reactive widget for signals_flutter with lifecycle callbacks, debouncing, throttling, error handling, and more.
- soundsliced_dart_extensions/soundsliced_dart_extensions
- soundsliced_dart_extensions/src/dart_extensions
- soundsliced_tween_animation_builder/soundsliced_tween_animation_builder
- soundsliced_tween_animation_builder package
- soundsliced_tween_animation_builder/src/soundsliced_tween_animation_builder
- states_rebuilder_extended/src/states_rebuilder_extended
- states_rebuilder_extended/states_rebuilder_extended
- ticker_free_circular_progress_indicator/src/ticker_free_circular_progress_indicator
- ticker_free_circular_progress_indicator/ticker_free_circular_progress_indicator
- ticker_free_circular_progress_indicator package
- week_calendar/src/week_calendar
- week_calendar/week_calendar
- week_calendar package