{"id":31723349,"url":"https://github.com/furkantektas/timeline_list","last_synced_at":"2025-10-09T04:50:25.729Z","repository":{"id":45354882,"uuid":"165036083","full_name":"furkantektas/timeline_list","owner":"furkantektas","description":"Timeline widget for flutter","archived":false,"fork":false,"pushed_at":"2024-12-01T22:17:03.000Z","size":6155,"stargazers_count":392,"open_issues_count":11,"forks_count":88,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-12-01T23:19:40.239Z","etag":null,"topics":["android","dart","flutter","ios","package","timeline","widget"],"latest_commit_sha":null,"homepage":null,"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/furkantektas.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":"2019-01-10T10:03:42.000Z","updated_at":"2024-10-18T19:32:05.000Z","dependencies_parsed_at":"2024-12-01T23:29:35.987Z","dependency_job_id":null,"html_url":"https://github.com/furkantektas/timeline_list","commit_stats":{"total_commits":24,"total_committers":5,"mean_commits":4.8,"dds":"0.41666666666666663","last_synced_commit":"27c8354c2e3170408fad88302150842618caa9af"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/furkantektas/timeline_list","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkantektas%2Ftimeline_list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkantektas%2Ftimeline_list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkantektas%2Ftimeline_list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkantektas%2Ftimeline_list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/furkantektas","download_url":"https://codeload.github.com/furkantektas/timeline_list/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/furkantektas%2Ftimeline_list/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000695,"owners_count":26082921,"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-09T02:00:07.460Z","response_time":59,"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":["android","dart","flutter","ios","package","timeline","widget"],"created_at":"2025-10-09T04:50:20.124Z","updated_at":"2025-10-09T04:50:25.722Z","avatar_url":"https://github.com/furkantektas.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flutter Timeline Widget\n[![pub package](https://img.shields.io/pub/v/timeline_list.svg)](https://pub.dartlang.org/packages/timeline_list) [![Flutter Timeline List Web Demo](https://img.shields.io/badge/Web_demo-blue?logo=googlechrome\u0026logoColor=white\u0026link=https%3A%2F%2Ffurkantektas.github.io%2Ftimeline_list%2F)](https://furkantektas.github.io/timeline_list/)\n\nA highly customizable Flutter widget for displaying vertical timelines with custom markers, icons, and flexible positioning options.\n\n![Flutter Timeline List Screenshot](./doc/timeline-grid.png)\n\n\u003e [!WARNING]\n\u003e 🦚 The documentation was created using LLMs. If you notice any errors or typos, please submit a Pull Request or create an issue.\n\n## Features\n\n- 🎯 Three timeline positions: `start` (left), `center`, or `end` (right)\n- 🎨 Fully customizable markers with any widget as content or icon\n- 📍 Flexible icon alignment: `top`, `center`, or `bottom` of markers\n- 🎯 Individual marker positioning for centered timelines\n- 🔄 Support for reversed timeline order\n- 📱 Custom scroll physics and controller support\n\n## Installation\n\nAdd this to your package's `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  timeline_list: ^0.1.0\n```\n\n## Usage\n\n### Simple Timeline\n\n![Flutter Simple Timeline List Screenshot](doc/timeline-simple.png)\n\n```dart\nimport 'package:timeline_list/timeline_list.dart';\n\nTimeline(\n  children: [\n    Marker(child: Text(\"Step 1\")),\n    Marker(child: Text(\"Step 2\")),\n    Marker(child: Text(\"Step 3\"))\n  ],\n)\n```\n\n### Onboarding Example\n\nHere's a more advanced example showing an onboarding timeline with custom icons:\n\n![Flutter Onboarding Timeline List Screenshot](doc/timeline-onboarding.png)\n\n```dart\nvar checkIcon = Container(\n    width: 16,\n    height: 16,\n    decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.green),\n    child: Icon(Icons.check, color: Colors.white, size: 12));\nvar emptyIcon = Container(\n    width: 16,\n    height: 16,\n    decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.grey));\nreturn Scaffold(\n    appBar: AppBar(title: const Text(\"Onboarding example\")),\n    body: Column(children: [\n      Timeline.builder(\n        context: context,\n        markerCount: 10,\n        properties: TimelineProperties(\n            iconAlignment: MarkerIconAlignment.center,\n            iconSize: 16,\n            timelinePosition: TimelinePosition.start),\n        markerBuilder: (context, index) =\u003e Marker(\n          child: Padding(\n            padding: const EdgeInsets.all(8.0),\n            child: Text(\"Step ${index + 1}\"),\n          ),\n          icon: index \u003e= 8 ? emptyIcon : checkIcon,\n          position: MarkerPosition.left,\n        ),\n      ),\n    ]));\n```\n\n## Customization\n\n### Timeline Properties\n\n- `timelinePosition`: Controls the overall timeline position (`start`, `center`, `end`)\n- `iconAlignment`: Sets icon alignment relative to marker content\n- `iconSize`: Defines the size of marker icons\n- `lineWidth`: Sets the width of connecting lines\n- `lineColor`: Customizes the color of connecting lines\n- `itemGap`: Controls spacing between markers\n- `iconGap`: Sets gap between icon and marker content\n\n### Marker Properties\n\n- `child`: The main content widget of the marker\n- `icon`: Optional custom icon widget\n- `position`: Marker position for centered timelines (`left`, `right`)\n- `onTap`: Optional callback for marker tap events\n- `maxWidth`: Maximum width constraint for marker content\n\n## Examples\n\nCheck out the [`example/`](https://github.com/furkantektas/timeline_list/tree/master/example) folder for complete sample applications, including:\n- Fully featured timeline with custom icons and widgets\n- Simple onboarding flow\n\n## Contributing\n\nThis repo is looking for maintainers. Contributions are welcome! Please feel free to submit a Pull Request.\n\n[Thank you for all the contributors!](https://github.com/furkantektas/timeline_list/graphs/contributors)\n\n- [@samramez](https://github.com/samramez)\n- [@stijn1989](https://github.com/stijn1989)\n- [@JJCLane](https://github.com/JJCLane)\n- [@mjhansen3](https://github.com/mjhansen3)\n\n---\n\nSponsored by:\n\u003cdiv style=\"text-align: center; background-color: #fff; padding: 20px\"\u003e\n\u003ca href=\"https://ehlibyte.com\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://ehlibyte.com/images/ehlibyte-logo.svg?raw=true\" alt=\"ehlibyte games\" width=\"80\" height=\"80\" style=\"margin: 0 auto; display: block;\"\u003e\n\u003c/a\u003e\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkantektas%2Ftimeline_list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffurkantektas%2Ftimeline_list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffurkantektas%2Ftimeline_list/lists"}