{"id":13789963,"url":"https://github.com/letsar/flutter_scatter","last_synced_at":"2025-10-08T12:15:39.764Z","repository":{"id":48311256,"uuid":"156092900","full_name":"letsar/flutter_scatter","owner":"letsar","description":"A widget that displays a collection of dispersed and non-overlapping children","archived":false,"fork":false,"pushed_at":"2021-03-26T22:16:10.000Z","size":1189,"stargazers_count":91,"open_issues_count":5,"forks_count":17,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T09:58:19.081Z","etag":null,"topics":["dart","flutter","flutter-package","flutter-widget"],"latest_commit_sha":null,"homepage":"","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/letsar.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}},"created_at":"2018-11-04T14:53:04.000Z","updated_at":"2025-05-22T07:27:02.000Z","dependencies_parsed_at":"2022-09-21T10:50:17.798Z","dependency_job_id":null,"html_url":"https://github.com/letsar/flutter_scatter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/letsar/flutter_scatter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsar%2Fflutter_scatter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsar%2Fflutter_scatter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsar%2Fflutter_scatter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsar%2Fflutter_scatter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/letsar","download_url":"https://codeload.github.com/letsar/flutter_scatter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsar%2Fflutter_scatter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278941218,"owners_count":26072653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dart","flutter","flutter-package","flutter-widget"],"created_at":"2024-08-03T22:00:35.269Z","updated_at":"2025-10-08T12:15:39.719Z","avatar_url":"https://github.com/letsar.png","language":"Dart","readme":"# flutter_scatter\n\nA widget that displays a collection of dispersed and non-overlapping children.\n\n[![Pub](https://img.shields.io/pub/v/flutter_scatter.svg)](https://pub.dartlang.org/packages/flutter_scatter)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=QTT34M25RDNL6)\n\nCan be used to create word clouds:\n![Word Cloud](https://raw.githubusercontent.com/letsar/flutter_scatter/master/doc/images/word_cloud.png)\n\n## Features\n\n* Built-in delegates (Spirals, Align, Ellipse).\n* Allow you to specify how to align chlidren.\n\n## Getting started\n\nIn the `pubspec.yaml` of your flutter project, add the following dependency:\nThe latest version is [![Pub](https://img.shields.io/pub/v/flutter_scatter.svg)](https://pub.dartlang.org/packages/flutter_scatter)\n\n```yaml\ndependencies:\n  ...\n  flutter_scatter: ^latest_version\n```\n\nIn your library add the following import:\n\n```dart\nimport 'package:flutter_scatter/flutter_scatter.dart';\n```\n\nFor help getting started with Flutter, view the online [documentation](https://flutter.io/).\n\n## Widgets\n\nYou can simply create a `Scatter` by providing a delegate and a list of widgets.\n\nThe delegate is responsible for computing positions.\nFor example if you want to position your widgets on a circle, you will use the `EllipseScatterDelegate`:\n\n```dart\nreturn Center(\n    child: Scatter(\n    delegate: EllipseScatterDelegate(\n        a: 185.0,\n        b: 185.0,\n        step: 1.0 / count,\n    ),\n    children: widgets,\n    ),\n);\n```\n\n![Ellipse](https://raw.githubusercontent.com/letsar/flutter_scatter/master/doc/images/circle.png)\n\nIt may be useful to choose how children are aligned with the computed positions. By default, the center of the widgets will be placed on the positions generated by the delegate.\nIf you want to be left aligned, you will change the `alignment` argument of the `Scatter` to be `Alignment.topLeft`.\n\nBy default, the Scatter will not try to fill gaps (for performance reasons). You can override this behavior by setting the `fillGaps` argument to `true`.\n\nFor example this is what the above word cloud would look if the `fillGaps` argument would be set to `false`:\n![fillGaps to false](https://raw.githubusercontent.com/letsar/flutter_scatter/master/doc/images/word_cloud_not_filled.png)\n\n## Delegates\n\n`Scatter` has built-in delegates which can be highly parameterized:\n\n### Spirals\n\n* ArchimedeanSpiralScatterDelegate\n* FermatSpiralScatterDelegate\n* LogarithmicSpiralScatterDelegate\n\n![Spirals](https://raw.githubusercontent.com/letsar/flutter_scatter/master/doc/images/spiral.png)\n\n### Alignments\n\n* AlignScatterDelegate\n\n![Alignments](https://raw.githubusercontent.com/letsar/flutter_scatter/master/doc/images/align.png)\n\n### Ellipses\n\n* EllipseScatterDelegate\n\n![Ellipses](https://raw.githubusercontent.com/letsar/flutter_scatter/master/doc/images/ellipse.png)\n\n## Examples\n\nYou can find more examples in this [app](https://github.com/letsar/flutter_scatter/tree/master/example).\n\n## Changelog\n\nPlease see the [Changelog](https://github.com/letsar/flutter_scatter/blob/master/CHANGELOG.md) page to know what's recently changed.\n\n## Contributions\n\nFeel free to contribute to this project.\n\nIf you find a bug or want a feature, but don't know how to fix/implement it, please fill an [issue](https://github.com/letsar/flutter_scatter/issues).  \nIf you fixed a bug or implemented a new feature, please send a [pull request](https://github.com/letsar/flutter_scatter/pulls).\n","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=QTT34M25RDNL6"],"categories":["Packages"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletsar%2Fflutter_scatter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fletsar%2Fflutter_scatter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletsar%2Fflutter_scatter/lists"}