Taha Effortless Widgets

taha_effortless_widgets is a Flutter package that provides a collection of reusable and customizable widgets to simplify and enhance your Flutter development process. These widgets are designed to save time and effort, allowing you to focus on building great apps.

Features

  • TButton: Customizable button with various states (idle, loading, success, fail).
  • TContainer: Flexible container with options for gradients, shadows, and shapes.
  • TCarouselIndicators: Carousel indicators with customizable active and inactive states.
  • TDottedLine: Dotted line widget with customizable dash length, gap, and color.
  • TExpandableWidget: Expandable container with animation for hiding/showing content.
  • TGridViewBuilder: Simplified grid view with flexible cross-axis count and spacing.
  • TGridView: Fixed-count grid view for arranging items in a grid layout.
  • TListView: Customizable list view with optional separators and scroll direction.
  • TPageView: Page view widget with customizable scroll direction and page controller.
  • TPageViewBuilder: Page view builder widget with customizable scroll direction and page controller.
  • TRichText: Rich text widget for combining multiple text styles in a single widget.
  • TTextFormField: Flexible text form field with extensive customization options.
  • TText: Simplified text widget with options for styling and shadow.
  • TVisibility: Conditional visibility widget for showing or hiding content.
  • Notch: Decorative notch for UI separation.
  • VerticalSpace & HorizontalSpace: Widgets for adding vertical or horizontal spacing.
  • VerticalLine & HorizontalLine: Widgets for drawing vertical or horizontal lines.
  • TCircularProgress: Customizable circular progress indicator.

Installation

Add taha_effortless_widget to your pubspec.yaml:

dependencies:
  taha_effortless_widget: ^0.0.1

Examples

We will implement this design in two different ways

1- Normal Code with flutter


GestureDetector(
  onTap: () {
                
              },
              child: Container(
                padding: const EdgeInsets.symmetric(
                  horizontal: 20,
                  vertical: 10,
                ),
                decoration: BoxDecoration(
                  color: Colors.redAccent,
                  borderRadius: const BorderRadius.only(
                    topLeft: Radius.circular(10),
                    bottomRight: Radius.circular(10),
                  ),
                  boxShadow: [
                    BoxShadow(
                        blurRadius: 5,
                        spreadRadius: 3,
                        color: Colors.black.withOpacity(0.05))
                  ],
                ),
                child: const Text(
                  "Button",
                  style: TextStyle(
                    color: Colors.white,
                    fontSize: 18,
                    fontWeight: FontWeight.w300,
                    shadows: [
                      BoxShadow(
                        color: Colors.black26,
                        blurRadius: 5,
                        blurStyle: BlurStyle.outer,
                        spreadRadius: 2,
                        offset: Offset(3, 0),
                      ),
                    ],
                  ),
                ),
              ),
            ),            

2- Code using effortless widgets


 TButton(
   onTap: () {},
  backgroundColor: Colors.redAccent,
  radius: 10,
  withShadow: true,
  radiusSides: const [RadiusSides.topLeft, RadiusSides.bottomRight],
  child: const TText(
  "Button",
  color: Colors.white,
  withShadow: true,
  ),
),             

Contributing

Contributions are welcome! Please open an issue or submit a pull request if you have any improvements or suggestions.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Author

Developed by Taha Chabana.