{"id":23900744,"url":"https://github.com/cod-e-codes/flutter_scroll_animation","last_synced_at":"2026-04-20T13:36:05.177Z","repository":{"id":259146637,"uuid":"871410736","full_name":"Cod-e-Codes/flutter_scroll_animation","owner":"Cod-e-Codes","description":"A Flutter package enabling smooth, scroll-driven animations. Widgets seamlessly animate into view as they enter the viewport, enhancing the user experience.","archived":false,"fork":false,"pushed_at":"2024-10-12T16:39:12.000Z","size":287,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-23T19:26:25.898Z","etag":null,"topics":["animations","flutter","flutter-package","scroll-driven","viewport"],"latest_commit_sha":null,"homepage":"https://github.com/Cod-e-Codes/flutter_scroll_animation","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cod-e-Codes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-11T23:00:47.000Z","updated_at":"2024-12-12T18:16:40.000Z","dependencies_parsed_at":"2024-10-23T01:32:35.014Z","dependency_job_id":null,"html_url":"https://github.com/Cod-e-Codes/flutter_scroll_animation","commit_stats":null,"previous_names":["cod-e-codes/flutter_scroll_animation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cod-e-Codes/flutter_scroll_animation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fflutter_scroll_animation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fflutter_scroll_animation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fflutter_scroll_animation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fflutter_scroll_animation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cod-e-Codes","download_url":"https://codeload.github.com/Cod-e-Codes/flutter_scroll_animation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cod-e-Codes%2Fflutter_scroll_animation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32049081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animations","flutter","flutter-package","scroll-driven","viewport"],"created_at":"2025-01-04T20:37:34.206Z","updated_at":"2026-04-20T13:36:05.163Z","avatar_url":"https://github.com/Cod-e-Codes.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter_scroll_animation\n\n`flutter_scroll_animation` is a Flutter package that provides scroll-driven animations. Widgets become visible and animate into view as they enter the viewport, allowing for smooth and dynamic UI transitions.\n\n## Features\n\n- Detect when widgets come into view and animate them with customizable sliding and fading effects.\n- New features include scaling, rotation, and looping animations.\n- Custom visibility thresholds for triggering animations at specified points.\n- Optional delay for staggered animations.\n- Highly flexible and easy to integrate into any Flutter app.\n- Customizable animation duration, direction, curves, and behavior on exit.\n\n## Getting Started\n\nTo use this package, add `flutter_scroll_animation` to your `pubspec.yaml` file.\n\n\n```yaml\ndependencies:\n  flutter_scroll_animation: ^0.0.1\n```\n\nThen, run:\n\n```bash\nflutter pub get\n```\n\n## Usage\n\nHere is an example of how to use the `ScrollAnimationWidget` in your app:\n\n```dart\nimport 'package:flutter/material.dart';\nimport 'package:flutter_scroll_animation/flutter_scroll_animation.dart';\n\nvoid main() {\n  runApp(const MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  const MyApp({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter Scroll Animation Example',\n      theme: ThemeData(primarySwatch: Colors.blue),\n      home: const ExampleScreen(),\n    );\n  }\n}\n\nclass ExampleScreen extends StatelessWidget {\n  const ExampleScreen({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text('Scroll Animation Example')),\n      body: ListView.builder(\n        itemCount: 20,\n        itemBuilder: (context, index) {\n          return Padding(\n            padding: const EdgeInsets.all(16.0),\n            child: ScrollAnimationWidget(\n              index: 'item_$index',\n              alignment: index.isEven ? Alignment.centerRight : Alignment.centerLeft,\n              child: Card(\n                child: ListTile(\n                  title: Text('Item $index'),\n                ),\n              ),\n            ),\n          );\n        },\n      ),\n    );\n  }\n}\n```\n\n## Customization\n\nYou can customize the duration and the curve of the animation by passing them as parameters to `ScrollAnimationWidget`. Here’s an example:\n\n```dart\nScrollAnimationWidget(\n  index: 'item_1',\n  alignment: Alignment.centerLeft,\n  duration: Duration(milliseconds: 700),\n  curve: Curves.easeInOut,\n  child: YourWidget(),\n)\n```\n\nYou can now enable scaling and rotation animations by setting the `enableScale` and `enableRotation` properties.\n\n```dart\nScrollAnimationWidget(\nindex: 'scale_icon',\nalignment: Alignment.center,\nenableScale: true, // Enable scale animation\nenableRotation: true, // Enable rotation animation\nduration: Duration(milliseconds: 800),\nchild: Icon(Icons.star, size: 50, color: Colors.amber),\n)\n```\n\nYou can loop animations continuously by setting the `loopAnimation` property, and alternate the looping direction by setting `alternate`.\n\n```dart\nScrollAnimationWidget(\n  index: 'looping_text',\n  alignment: Alignment.centerLeft,\n  loopAnimation: true, // Loop animation continuously\n  alternate: true,     // Alternate between forward and reverse\n  duration: Duration(seconds: 2),\n  child: Text('Looping Animation'),\n)\n```\n\nStagger animations by specifying a delay before the animation starts.\n```dart\nScrollAnimationWidget(\n  index: 'delayed_button',\n  alignment: Alignment.centerLeft,\n  delay: Duration(milliseconds: 500), // Delay animation by 500ms\n  child: ElevatedButton(\n    onPressed: () {},\n    child: Text('Delayed Animation'),\n  ),\n)\n```\n\nYou can customize the percentage of visibility needed to trigger the animation using `visibilityThreshold`.\n```dart\nScrollAnimationWidget(\n  index: 'custom_visibility',\n  alignment: Alignment.centerLeft,\n  visibilityThreshold: 0.5, // Trigger animation when 50% visible\n  duration: Duration(milliseconds: 600),\n  child: Container(\n    width: 150,\n    height: 150,\n    color: Colors.blue,\n    child: Center(child: Text('50% Visible')),\n  ),\n)\n```\n\n## Advanced Customization\n\nThe package provides many additional customization options:\n- `reverseOnExit`: Reverse the animation when the widget exits the viewport.\n- `resetOnScroll`: Reset the animation when the widget is scrolled out of view.\n- `onAnimationStart` and `onAnimationEnd`: Optional callbacks to handle events when the animation starts and ends.\n\nExample of using advanced options:\n```dart\nScrollAnimationWidget(\n  index: 'advanced_example',\n  alignment: Alignment.center,\n  reverseOnExit: true,\n  enableFade: true,\n  resetOnScroll: true,\n  onAnimationStart: () =\u003e print('Animation started!'),\n  onAnimationEnd: () =\u003e print('Animation ended!'),\n  child: Text('Advanced Scroll Animation'),\n)\n```\n\n## Additional Information\n\nFor more examples, see the `example` folder in the repository. If you encounter any issues, have feature requests, or want to contribute, feel free to open an issue or submit a pull request on GitHub.\n\n- Visit the [GitHub repository](https://github.com/cod-e-codes/flutter_scroll_animation) for more details, support, and contributions.\n- File an issue if you encounter bugs or have suggestions.\n- Contributions are welcome! Please read the contribution guidelines before submitting pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcod-e-codes%2Fflutter_scroll_animation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcod-e-codes%2Fflutter_scroll_animation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcod-e-codes%2Fflutter_scroll_animation/lists"}