create_atom 2.0.0  create_atom: ^2.0.0 copied to clipboard
create_atom: ^2.0.0 copied to clipboard
An animated widget that displays atom with three electrons revolving around a nucleus at its center.
create_atom  |   
  
  #
 #
An animated widget that displays atom with a three electrons revolving around a nucleus at its center.
|  |  |  | 
|---|---|---|
| size: 200 | size: 100 | size: 50 | 
Some Famous logos using Atom #
| Name | Code | Logo | 
|---|---|---|
| React Logo | 
        Atom(
          size: 200.0,
          orbit1Angle: math.pi / 2,
          orbit2Angle: math.pi / 6,
          orbit3Angle: - math.pi / 6,
          orbitsColor: Color(0xFF00D8FF),
          electronsColor: Color(0xFF00D8FF),
          nucleusColor: Color(0xFF00D8FF),
        ),
         |  | 
| Atom Text Editor Logo | 
        Container(
          width: 300.0,
          height: 300.0,
          color: Color(0xFF323232),
          child: Atom(
            size: 200.0,
            orbit1Angle: math.pi / 1.9,
            orbit2Angle: math.pi / 5,
            orbit3Angle: -math.pi / 7,
            orbitsColor: Color(0xFFEED9B7),
            electronsColor: Color(0xFFEED9B7),
            nucleusColor: Color(0xFFEED9B7),
          ),
        ),
         |  | 
Features #
- Can be scaled upto any size within parent widget boundaries
- Smooth animations with mathematically pre-derived ellipse path equation
- Transparent background for flexible usage with colors
- 3 electron orbits (support for more may come later)
- Orbits angle can be changed
- Orbits color can be changed (support for individual color may come later)
- Nucleus color can be changed
- Electrons color can be changed (support for individual color may come later)
- Individual electron's revolution duration can be changed
- Any widget can be added in the center instead of nucleus
Getting Started #
In the pubspec.yaml of your flutter project, add the following dependency:
dependencies:
  ...
  create_atom: ^2.0.0
In your library add the following import:
import 'package:create_atom/create_atom.dart';
After that run flutter pub get
For help getting started with Flutter, view the online documentation.
Usage #
...
child: Atom(
  size: 100.0,
),
...
Yeah, just like that.
All properties are optional except size property.
You will get a black atom by default.
centerWidget property usage -
Assign centerWidget with any widget to display that Widget instead of nucleus.
...
child: Atom(
  size: 100.0,
  centerWidget: Text("At Center"),
),
...
Note: If both nucleusColor and centerWidget are set then the Widget will get preference.
Properties #
Definitions -
| Property | Definition | 
|---|---|
| size | Defines size of the atom's container | 
| orbit1angle | Defines 1st orbit's angle in radians | 
| orbit2angle | Defines 2nd orbit's angle in radians | 
| orbit3angle | Defines 3rd orbit's angle in radians | 
| nucleusColor | Defines Nucleus Color | 
| orbitsColor | Defines Orbits Color | 
| electronsColor | Defines Electrons Color | 
| animDuration1 | Defines Animation Duration of 1st electron | 
| animDuration2 | Defines Animation Duration of 2nd electron | 
| animDuration3 | Defines Animation Duration of 3rd electron | 
| centerWidget | Defines a widget to display at center | 
Types and Initial Values -
| Property | Type | Initial Value | 
|---|---|---|
| size | double | null(required) | 
| orbit1angle | double | 0.0(Radians),0.0(Degrees) | 
| orbit2angle | double | pi/3(Radians),60.0(Degrees) | 
| orbit3angle | double | -pi/3(Radians),-60.0(Degrees) | 
| nucleusColor | Color | Colors.black | 
| orbitsColor | Color | Colors.black | 
| electronsColor | Color | Colors.black | 
| animDuration1 | Duration | Duration(seconds: 1) | 
| animDuration2 | Duration | Duration(seconds: 2) | 
| animDuration3 | Duration | Duration(seconds: 3) | 
| centerWidget | Widget | null | 
Example App #
Checkout here - https://abhi011999.github.io/create_atom_flutter/ #
 
 
Changelog #
Breaking Changes from v1.4.0 kindly see changelog #
See CHANGELOG.md for recent changes.
Contributions #
You can be of great help if you want to improve or add anything !
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
License #
Package and all code within licensed under MIT License.