![Banner](https://raw.githubusercontent.com/hyper-designed/box_transform/main/docs/assets/banner.png)

# Box Transform

[Box Transform][github] provides packages that allow you to programmatically handle box resizing and dragging.
It provides highly flexible, programmatically resizable and draggable boxes that can be used in any Dart or Flutter
project.

## Package

| Package               | Pub                                                                                                                            | Description                                                                                                              |
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| box_transform         | [![Pub Version](https://img.shields.io/pub/v/box_transform?label=Pub)](https://pub.dev/packages/box_transform)                 | A pure Dart implementation for box transformation operations that does not rely on Flutter.                              |
| flutter_box_transform | [![Pub Version](https://img.shields.io/pub/v/flutter_box_transform?label=Pub)](https://pub.dev/packages/flutter_box_transform) | A Flutter implementation that provides a flexible, customizable and easy to use interface tailored for Flutter projects. |


## Features

* 📏 **Dimension Constraining:** Set maximum and minimum constraints to keep boxes within specific boundaries while resizing.
* 🔁 **Flipping Mechanics:** Advanced positional-flipping when resizing hits extreme values with hard constraints.
* 🔒 **Drag Clamping:** Specify clamping boxes to keep your transformable boxes within a specific region.
* 🎨 **Flexible Resizing Modes:** Choose from four different resizing modes for more flexibility in how boxes are resized.
* 📍 **Customizable Anchor Points:** Define resizing corner-handles to anchor different parts of the box when resizing.
* 🎨 **Customizable Handles:** Use default resizing handles or define your own custom handles.
* 🚀 **Easy Integration:** Integrate Box Transform into your Dart or Flutter project with ease.

| Moving/Dragging | Resizing | Rotation |
|-----------------|----------|----------|
| ✅               | ✅        | 🚧       |

## Getting Started

See [Getting Started](/flutter_get_started) guide for more details.

### Live Demo: [Box-transformer Playground][demo]

## Contributing

See [CONTRIBUTING.md][contributing] for details.

See [DEVELOPMENT.md][development] for development setup.

## Authors

<table>
    <tbody>
    <tr>
        <td align="center"><a href="https://github.com/BirjuVachhani"><img
            src="https://avatars.githubusercontent.com/u/20423471?s=100" width="100px;" alt=""/><br/><sub><b>Birju
            Vachhani</b></sub></a></td>
        <td align="center"><a href="https://github.com/SaadArdati"><img
            src="https://avatars.githubusercontent.com/u/7407478?v=4" width="100px;" alt=""/><br/><sub><b>Saad
            Ardati</b></sub></a></td>
    </tr>
    </tbody>
</table>

Feel free to join our Discord server for any inquiries or support.

<table>
    <tbody>
    <tr>
        <td><a href="https://discord.gg/yrahEhCqTJ"><img src="https://raw.githubusercontent.com/hyper-designed/box_transform/main/docs/assets/discord.png" width="200px"/></a></td>
    </tr>
    </tbody>
</table>

![discord](discord.jpg)

[github]: https://github.com/hyper-designed/box_transform
[pubdev]:  https://pub.dev/packages/box_transform
[demo]:  https://boxtransform-demo.hyperdesigned.dev
[contributing]:  https://github.com/hyper-designed/box_transform/blob/main/CONTRIBUTING.md
[development]:  https://github.com/hyper-designed/box_transform/blob/main/development.md
