Skip to content

This Flutter plugin provides a simple and customizable parallax effect for your applications. Easily create stunning visual experiences by incorporating parallax scrolling into your widgets.

License

Notifications You must be signed in to change notification settings

raphrmx/simple_parallax

Repository files navigation

SimpleParallax Plugin for Flutter

Pub Version Maintainer License Maintenance Flutter Status Generic badge

This parallax Flutter plugin that adds elegant parallax effects to your widgets using two different modes: a container mode and a widget mode. This plugin helps create dynamic and visually appealing user interfaces with scrolling effects.

Features

  • Smooth parallax scrolling for background images.
  • Configurable scroll speed for the parallax effect.
  • Simple integration with your existing Flutter projects.
  • Uses provider for state management ensuring efficient updates.

Installation

Add simple_parallax to your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  simple_parallax: ^0.1.0

Replace ^0.1.0 with the latest version from pub.dev.

Usage

The simple_parallax plugin provides two main widgets to create parallax effects:

Container Mode (SimpleParallaxContainer)

The container mode is used to add a parallax effect to a child widget with a background image.

Exemple

import 'package:flutter/material.dart';
import 'package:simple_parallax/simple_parallax.dart';

void main() => runApp(const MyApp());

/// App demo
class MyApp extends StatelessWidget {
  /// App demo constructor
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: SizedBox(
            //height: 300,
            //width: 600,
            child: SimpleParallaxContainer(
              //height: 300,
              imagePath: 'assets/images/background.webp',
              speed: 0.3,
              autoSpeed: true,
              decal: 1.0,
              child: Column(
                children: List<Widget>.generate(
                  20,
                      (int index) => Container(
                    height: 100,
                    margin: const EdgeInsets.symmetric(vertical: 10),
                    color: Colors.white.withOpacity(0.8),
                    child: Center(child: Text('Item $index')),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Widget Mode (SimpleParallaxWidget)

The widget mode allows you to apply a parallax effect to multiple child widgets within a list.

Exemple

import 'package:flutter/material.dart';
import 'package:simple_parallax/simple_parallax.dart';

void main() => runApp(const MyApp());

/// App demo
class MyApp extends StatelessWidget {
  /// App demo constructor
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SimpleParallaxWidget(
          children: <Widget>[
            Container(
              color: Colors.red,
              padding: const EdgeInsets.symmetric(vertical: 200, horizontal: 0),
              child: const SizedBox(
                height: 50,
              ),
            ),
            const SimpleParallaxItem(
              imagePath: 'assets/images/background.webp',
              height: 300,
              child: Center(
                child: Text('TEST 1'),
              ),
            ),
            Container(
              color: Colors.greenAccent,
              child: const SizedBox(
                height: 250,
              ),
            ),
            const SimpleParallaxItem(
              imagePath: 'assets/images/background.webp',
              height: 300,
              child: Center(
                child: Text('TEST 2'),
              ),
            ),
            Container(height: 500, color: Colors.blueGrey),
          ],
        ),
      ),
    );
  }
}

API

SimpleParallaxContainer

  • imagePath (required): Path to the background image.
  • child (required): The child widget to be displayed over the background image.
  • speed (optional): Parallax effect speed. Default value is 0.3.
  • autoSpeed (optional): Automatically calculates the speed based on the child widget's size.
  • decal (optional): Offset for the background image. Default value is 1.0.
  • height (optional): Height of the container. If not specified, uses the height of the screen.

SimpleParallaxWidget

  • children (required): List of child widgets with parallax effect.

SimpleParallaxItem

  • imagePath (required): Path to the background image.
  • child (optional): Child widget to be displayed over the background image.
  • speed (optional): Parallax effect speed. Default value is 0.3.
  • decal (optional): Offset for the background image. Default value is 1.5.
  • width (optional): Width of the item.
  • height (optional): Height of the item.

Contributing

Contributions are welcome! To contribute to this plugin, please follow these steps:

  1. Fork the GitHub repository.
  2. Create a branch for your feature or fix.
  3. Submit a pull request with a description of your changes.

License

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

About

This Flutter plugin provides a simple and customizable parallax effect for your applications. Easily create stunning visual experiences by incorporating parallax scrolling into your widgets.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published