Blob Flutter package
Add fancy blobs to your flutter apps.
You can now imagine many usage of blobs into your app (button, loader, background…).
Features
- blob layout
- blob button
- customize your blob as you want
Roadmap
- improve documentation
- migrate shader to umbra
- shader: wait for flutter glsl int / array support
- shader: wait for flutter glsl output support
- shader: create a gradient version
- button: add push effects
- button: provide custom method to let user create it’s own on push effects
Getting started
install the flutter_blob
package.
Usage
Layout
BlobLayout.from(
blobs: myBlobsList,
blobsColor: Colors.blue,
)
or using the builder function (recommended)
BlobLayout.builder(
builder: (Size areaSize) => [
RotatingParticle.random(area),
RotatingParticle.random(area),
RotatingParticle.random(area),
RotatingParticle.random(area),
RotatingParticle.random(area),
RotatingParticle.random(area),
RotatingParticle.random(area),
RotatingParticle.random(area),
],
blobsColor: Colors.blue,
)
You must provide exactly 8 blob
This is due to a current limitation of the flutter shader support
An example is available in the example folder of this repository.
Button
For now buttons only support icon.
BlobButton.bouncing(
onTap: () => print("do w/e you want"),
backgroundColor: Colors.amber[900],
icon: Icon(
Icons.add,
color: Colors.white,
size: 32,
),
)
You must provide exactly 8 blob
This is due to a current limitation of the flutter shader support
An example is available in the example folder of this repository.
Customize
The blob is generated using multiple particles that attracts each others.
A shader calculate the energy between those particles for each pixel of a canvas.
You can customize your blob effects combining 8 particles.
The is 3 types of particles available in this package (feel free to create yours or suggest some ?)
- BasicParticle
(randomly goes on one way and when touch a border bounce to the other side) - EjectedParticle
(Generated on the center and randomly goes out. Once it touch a border, it’s generated on the center again) - RotatingParticle
(randomly move in a circle around the center.)
How it works
// coming soon
Additional information
- ? contributions or ideas accepted
- ? I made this package learning how shaders works.
I’m always open to learn new things.
Don’t hesitate suggesting any improvement, I love it.
Social
You can reach me on:
@mcflyDev on twitter
Comments are closed.