{"id":32295392,"url":"https://github.com/m4dgenius0/stack_board_plus","last_synced_at":"2026-02-22T18:02:31.940Z","repository":{"id":305164348,"uuid":"1022115246","full_name":"M4DGENIUS0/stack_board_plus","owner":"M4DGENIUS0","description":"An advanced, stable tool for building photo editing and canvas-based apps with layers, transformations, and interactive elements.","archived":false,"fork":false,"pushed_at":"2025-08-28T13:37:29.000Z","size":17942,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-01T04:02:59.442Z","etag":null,"topics":["android","editing-tools","flutter","flutter-apps","ios","mobile-app"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/stack_board_plus","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/M4DGENIUS0.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,"zenodo":null}},"created_at":"2025-07-18T13:30:28.000Z","updated_at":"2025-08-28T13:37:32.000Z","dependencies_parsed_at":"2025-08-25T15:26:20.559Z","dependency_job_id":"84042cdd-8a3b-48ac-aa7e-1a15954e0bd3","html_url":"https://github.com/M4DGENIUS0/stack_board_plus","commit_stats":null,"previous_names":["m4dgenius0/flex_board","m4dgenius0/stack_board_plus"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/M4DGENIUS0/stack_board_plus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M4DGENIUS0%2Fstack_board_plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M4DGENIUS0%2Fstack_board_plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M4DGENIUS0%2Fstack_board_plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M4DGENIUS0%2Fstack_board_plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/M4DGENIUS0","download_url":"https://codeload.github.com/M4DGENIUS0/stack_board_plus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M4DGENIUS0%2Fstack_board_plus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29721054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T15:10:41.462Z","status":"ssl_error","status_checked_at":"2026-02-22T15:10:04.636Z","response_time":110,"last_error":"SSL_read: 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":["android","editing-tools","flutter","flutter-apps","ios","mobile-app"],"created_at":"2025-10-23T03:55:22.174Z","updated_at":"2026-02-22T18:02:31.935Z","avatar_url":"https://github.com/M4DGENIUS0.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eStackBoardPlus\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    An advanced, stable tool for building photo editing and canvas-based apps with layers, transformations, and interactive elements.\n  \u003c/p\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/M4DGENIUS0/stack_board_plus\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/last-commit/M4DGENIUS0/stack_board_plus?style=flat\u0026color=brightgreen\" alt=\"Last Commit\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/M4DGENIUS0/stack_board_plus\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/languages/top/M4DGENIUS0/stack_board_plus?style=flat\u0026color=blue\" alt=\"Top Language\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/M4DGENIUS0/stack_board_plus\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/languages/count/M4DGENIUS0/stack_board_plus?style=flat\u0026color=orange\" alt=\"Languages Count\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/M4DGENIUS0/stack_board_plus?style=flat\u0026color=blueviolet\" alt=\"License\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\n## Features\n\n\n- **Free Movement System**: Smooth, unrestricted item positioning without grid constraints\n- **Interactive Elements**: Text, shapes, images, SVG graphics, and custom items\n- **Shape Item Support**: Add geometric shapes (rectangle, circle, rounded rectangle, line, star, polygon, heart, half-moon) with customizable fill, stroke, opacity, tilt, and more. Enhanced interaction handling for better user experience.\n- **Transform Operations**: Drag, resize, rotate with intuitive handles\n- **Multi-Selection**: Select and manipulate multiple items simultaneously\n- **Layer Management**: Z-index control for proper layering, plus visual Layers drawer in example\n- **Grid System**: Optional snap-to-grid functionality\n- **Export Capabilities**: Export canvas to various formats\n- **Professional UI**: Modern, color-coded handles with visual feedback\n- **Touch \u0026 Mouse Support**: Optimized for both touch and mouse interactions\n- **SVG Support**: Native SVG rendering with flutter_svg integration\n- **Drawing Mode**: Add freehand drawing/canvas items with full customization, undo/redo, and import/export as JSON. Drawing items support pan, zoom, background, border, gradients, and more.\n\nBelow are real examples of what you can build with StackBoardPlus:\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/add_text.gif?raw=true\" alt=\"Add Text\" width=\"250\"/\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/asset_image.gif?raw=true\" alt=\"Asset Image\" width=\"250\"/\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/clean.gif?raw=true\" alt=\"Clean Canvas\" width=\"250\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/image_from_gallery.gif?raw=true\" alt=\"Gallery Image\" width=\"250\"/\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/import_export.gif?raw=true\" alt=\"Import Export\" width=\"250\"/\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/network_image.gif?raw=true\" alt=\"Network Image\" width=\"250\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/svg.gif?raw=true\" alt=\"SVG Handling\" width=\"250\"/\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/draw_feature.gif?raw=true\" alt=\"Draw on Board\" width=\"250\"/\u003e\n  \u003cimg src=\"https://github.com/M4DGENIUS0/stack_board_plus/blob/main/example/assets/readme/shape.gif?raw=true\" alt=\"Add Shapes\" width=\"250\"/\u003e\n\u003c/p\u003e\n\n\n\n## Enhanced Movement System\n\nStackBoardPlus features a completely redesigned movement system that provides:\n\n- ✅ **Smooth Free Movement** - No grid constraints during drag operations\n- ✅ **Professional Handles** - Color-coded, modern design with shadows\n- ✅ **Smart Interaction** - Dynamic cursors and visual feedback\n- ✅ **Adaptive UI** - Handles that adapt to item size and context\n- ✅ **Responsive Design** - Optimized for both desktop and mobile\n\nSee [ENHANCED_MOVEMENT.md](ENHANCED_MOVEMENT.md) for detailed information.\n\n## Getting Started\n\n### Installation\n\nAdd StackBoardPlus to your `pubspec.yaml`:\n\n```yaml\ndependencies:\n  stack_board_plus: ^0.0.7\n```\nOR\n```yaml\ndependencies:\n  stack_board_plus:\n    git: https://github.com/M4DGENIUS0/stack_board_plus.git\n```\n\n### Basic Usage\n\n```dart\nimport 'package:stack_board_plus/stack_board_plus.dart';\n\nclass MyCanvasApp extends StatefulWidget {\n  @override\n  _MyCanvasAppState createState() =\u003e _MyCanvasAppState();\n}\n\nclass _MyCanvasAppState extends State\u003cMyCanvasApp\u003e {\n  late StackBoardPlusController _controller;\n\n  @override\n  void initState() {\n    super.initState();\n    _controller = StackBoardPlusController();\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      body: StackBoardPlus(\n        controller: _controller,\n        elevation: 6.0, \n        onItemSelected: (item) {\n          print('Selected: ${item.id}');\n        },\n      ),\n    );\n  }\n}\n```\n\n## Examples\n\nCheck out the comprehensive examples in the `example/` directory:\n\n- **Professional Demo** (`main.dart`): Clean, modular interface with all item types and tools\n- **Modular Architecture**: Organized into `models/`, `pages/`, `dialogs/`, `widgets/`, `mixins/`, and `utils/` for easy debugging and maintenance\n- **Developer Guide** (`DEVELOPER_GUIDE.md`): Technical documentation\n- **Reorganization Guide** (`REORGANIZATION_README.md`): Details about the new modular structure\n\n\nTo run the example:\n\n```bash\ncd example\nflutter pub get\nflutter run\n```\n\nOr use the provided scripts:\n- Windows: `run_example.bat`\n- PowerShell: `run_example.ps1`\n\n## Item Types\n\n### Text Items\n```dart\nfinal textItem = TextStackItem(\n  id: 'text_1',\n  position: const Offset(100, 100),\n  size: const Size(200, 50),\n  textContent: 'Hello StackBoardPlus!',\n  style: const TextStyle(fontSize: 18, color: Colors.black),\n);\ncontroller.addItem(textItem);\n```\n\n### Shape Items\n```dart\nfinal shapeItem = StackShapeItem(\n  data: StackShapeData(\n    type: StackShapeType.circle, // or rectangle, roundedRectangle, star, polygon, heart, halfMoon\n    fillColor: Colors.blue,\n    strokeColor: Colors.blue.shade800,\n    strokeWidth: 3,\n    opacity: 1.0,\n    tilt: 0.0,\n    width: 100,\n    height: 100,\n    flipHorizontal: false,\n    flipVertical: false,\n    endpoints: 5, // for star/polygon\n  ),\n  size: const Size(100, 100),\n);\ncontroller.addItem(shapeItem);\n```\n\n### Image Items\n```dart\nfinal imageItem = ImageStackItem(\n  id: 'image_1',\n  position: const Offset(200, 200),\n  size: const Size(120, 80),\n  imageProvider: NetworkImage('https://example.com/image.jpg'),\n);\ncontroller.addItem(imageItem);\n```\n\n### SVG Items\nStackBoardPlus now supports comprehensive SVG rendering from multiple sources!\n\n```dart\n// 1. SVG from string content\nfinal svgItem = StackImageItem.svg(\n  svgString: '''\n\u003csvg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n  \u003cpath d=\"M12 2L14.09 8.26L22 9L16 14.74L17.18 22.5L12 19.77L6.82 22.5L8 14.74L2 9L9.91 8.26L12 2Z\" \n        fill=\"#FFD700\" stroke=\"#FF6B35\" stroke-width=\"2\"/\u003e\n\u003c/svg\u003e''',\n  size: const Size(150, 150),\n  fit: BoxFit.contain,\n  semanticLabel: 'Golden Star',\n);\n\n// 2. SVG from network URL\nfinal svgNetworkItem = StackImageItem.svgNetwork(\n  url: 'https://example.com/icon.svg',\n  size: const Size(120, 120),\n  color: Colors.blue, // Tint color\n);\n\n// 3. SVG from assets\nfinal svgAssetItem = StackImageItem.svgAsset(\n  assetName: 'assets/icons/my_icon.svg',\n  size: const Size(100, 100),\n  fit: BoxFit.contain,\n);\n\n// 4. SVG from file (e.g., from gallery)\nfinal svgFileItem = StackImageItem.svgFile(\n  file: File('/path/to/file.svg'),\n  size: const Size(200, 200),\n  color: Colors.red,\n);\n\n// Add to board\ncontroller.addItem(svgItem);\n```\n\n**SVG Features:**\n- ✅ String content, Network URLs, Assets, and Files\n- ✅ Color tinting and blend modes\n- ✅ Automatic SVG detection by file extension\n- ✅ Loading indicators for network SVGs\n- ✅ Full transform support (drag, resize, rotate)\n- ✅ Accessibility support\n\n## Configuration\n\n```dart\nStackBoardPlusConfig(\n  enableMultiSelect: true,     // Allow multiple item selection\n  enableSnapToGrid: false,     // Disable for free movement\n  showGrid: false,             // Hide grid for clean appearance\n  minItemSize: 20,             // Minimum item size\n  maxItemSize: 500,            // Maximum item size\n  backgroundColor: Colors.white, // Canvas background\n)\n```\n\n## Advanced Features\n\n- **Layer Management**: Control item z-index and stacking order\n  - Controller APIs: `moveItemOnTop`, `moveItemToBottom`, `moveItemForward`, `moveItemBackward`, `moveItemToIndex`\n  - Example Layers drawer with previews and quick actions\n- **Export System**: Export canvas to PNG, SVG, or custom formats\n- **Undo/Redo**: Built-in history management\n- **Custom Items**: Create your own interactive elements\n- **Property Editing**: Real-time property modification\n- **Keyboard Shortcuts**: Customizable key bindings\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- 📋 [Issues](https://github.com/M4DGENIUS0/stack_board_plus/issues) - Report bugs or request features\n- 💬 [Discussions](https://github.com/M4DGENIUS0/stack_board_plus/discussions) - Community support\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed list of changes and updates.\n\n---\n\n**StackBoardPlus** - Building the future of interactive canvas applications in Flutter 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4dgenius0%2Fstack_board_plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm4dgenius0%2Fstack_board_plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4dgenius0%2Fstack_board_plus/lists"}