zeba_academy_visibility 0.0.1 copy "zeba_academy_visibility: ^0.0.1" to clipboard
zeba_academy_visibility: ^0.0.1 copied to clipboard

A lightweight Flutter visibility detection package with fade, slide animations, and visibility percentage tracking.

πŸ“„ zeba_academy_visibility β€” README.md πŸ“¦ Package Name

zeba_academy_visibility

πŸ“Œ Description

A lightweight Flutter package for detecting widget visibility inside scroll views with:

Visibility percentage tracking Fade & slide animations on visibility Once-only trigger support Smooth scroll-based detection ✨ Features

βœ” Visibility detection inside scroll views βœ” Visibility percentage (0.0 β†’ 1.0) βœ” Fade animation support βœ” Slide animation support βœ” Once-only visibility trigger βœ” Lightweight & performance friendly βœ” Easy integration in any Flutter app

πŸš€ Installation

Add dependency in pubspec.yaml:

dependencies: zeba_academy_visibility: ^0.0.1

Then run:

flutter pub get 🧠 Basic Usage πŸ‘οΈ Visibility Detection import 'package:flutter/material.dart'; import 'package:zeba_academy_visibility/zeba_academy_visibility.dart';

class ExamplePage extends StatelessWidget { final controller = VisibilityController();

ExamplePage({super.key});

@override Widget build(BuildContext context) { return Scaffold( body: ListView( children: [ ZebaVisibilityDetector( controller: controller, visibilityThreshold: 0.5, onVisibilityChanged: (isVisible, fraction) { debugPrint("Visible: $isVisible | $fraction"); }, child: Container( height: 200, color: Colors.blue, child: const Center( child: Text( "Hello Visibility", style: TextStyle(color: Colors.white), ), ), ), ), ], ), ); } } 🎬 Fade Animation ZebaFadeVisibility( isVisible: true, child: Container( height: 150, color: Colors.green, child: const Center( child: Text("Fade In"), ), ), ) 🎞️ Slide Animation ZebaSlideVisibility( isVisible: true, beginOffset: Offset(0, 0.3), child: Container( height: 150, color: Colors.orange, child: const Center( child: Text("Slide In"), ), ), ) πŸ” Once Only Trigger final controller = VisibilityController();

if (controller.hasBeenVisible) { debugPrint("Widget already visible once"); } πŸ“Š Visibility Properties Property Description isVisible Current visibility state visibleFraction Visibility percentage (0.0 - 1.0) hasBeenVisible True once widget is seen βš™οΈ How It Works Detects widget position on screen Compares with viewport bounds Calculates visible portion Converts to percentage Triggers updates via controller πŸ“ Package Structure lib/ β”œβ”€β”€ zeba_academy_visibility.dart β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ visibility_detector_widget.dart β”‚ β”œβ”€β”€ visibility_builder.dart β”‚ β”œβ”€β”€ visibility_controller.dart β”‚ β”œβ”€β”€ animation/ β”‚ β”‚ β”œβ”€β”€ fade_visibility.dart β”‚ β”‚ β”œβ”€β”€ slide_visibility.dart ⚑ Use Cases Scroll-based animations Content engagement tracking Feed-style UI (Instagram-like apps) Learning apps (Zeba Academy use case) Lazy animation loading πŸ§ͺ Example App

See /example folder for full working demo.

πŸ“œ License

This package is licensed under:

GNU General Public License v3.0 (GPL-3.0)

You are free to:

Use Modify Distribute

But any modified version must remain open-source under GPL-3.0.

πŸ‘¨β€πŸ’» About Developer

✨ Sufyan bin Uzayr Open-source developer passionate about building useful Flutter tools.

🌐 https://sufyanism.com πŸ”— https://www.linkedin.com/in/sufyanism

πŸŽ“ Zeba Academy

πŸš€ Learn coding & development at:

https://zeba.academy https://code.zeba.academy https://www.youtube.com/@zeba.academy https://www.instagram.com/zeba.academy πŸ’™ Final Note

If you like this package, consider ⭐ starring the repo and contributing.

0
likes
140
points
5
downloads

Documentation

API reference

Publisher

verified publisherzeba.academy

Weekly Downloads

A lightweight Flutter visibility detection package with fade, slide animations, and visibility percentage tracking.

Homepage

Topics

#flutter #visibility #animation #scroll #ui

License

GPL-3.0 (license)

Dependencies

flutter

More

Packages that depend on zeba_academy_visibility