division 0.2.0 division: ^0.2.0 copied to clipboard
A common use Widget inspired by HTML/ CSS. The goal of this widget is to simplify styling and facilitate for reusability. The styling syntax is heavily inspired by CSS.
division #
A flutter widget inspired by HTML/CSS
Getting Started #
This package is all about giving a simple common use widget inspired by HTML/ CSS. The widget has 3 main parameters. Style: everything related to styling, gesture: all gesture functions and child. As simple as that!
The basic widget #
Division(style: [], gesture: [], child: Widget);
Example #
import 'package:division/division.dart'
Division(
style: [
S.height(100.0),
S.width(500.0),
S.minWidth(500.0),
S.align('center'),
S.alignChild('center'),
S.padding(vertical: 20.0, horizontal: 10.0),
S.margin(horizontal: 30.0),
S.backgroundColor(hex: '55ffff'),
S.borderRadius(all: 20.0),
S.boxShadow(hex: '55ffff', spread: -10.0, blur: 20.0, offset: [0.0, 15.0]),
//instead of S.boxShadow() you can use S.elevation(double)
],
gesture: [
G.onTap(() => print('Division widget pressed!')),
],
child: Text('Centered text inside the division widget'),
)
Having one list of all styling improves readability. But maybe more important, it makes it very easy to store the style in variables and share the same style accross many widgets.
Style Property #
The S
class is responsible for everything stylingwise
-
S.height(), S.minHeight(), S.maxHeight(), S.width(), S.minWidth(), S.maxWidth()
- Expects a double -
S.align()
- Alignment of the Division widget. Expects a String. Valid values:'center'
,'top'
,'bottom'
,'left'
,'right'
,'topLeft'
,'topRight'
,'bottomLeft'
and'bottomRight'
-
S.alignChild()
- Alignment of the child widget. Expects a String. Valid values:'center'
,'top'
,'bottom'
,'left'
,'right'
,'topLeft'
,'topRight'
,'bottomLeft'
and'bottomRight'
-
S.padding()
- You can choose how you want your padding to work. Eighter specify theall
parameter with a double, thehorizontal
andvertical
parameter with a double ortop
,bottom
,left
andright
parameter with a double. -
S.margin()
- You can choose how you want your padding to work. Eighter specify theall
parameter with a double, thehorizontal
andvertical
parameter with a double ortop
,bottom
,left
andright
parameter with a double. -
S.backgroundColor()
- Expects eighter thehex
parameter as a 6 digit hex color,rgba
parameter in the [r,g,b,a] format or the normal flutterColor
format. -
S.borderRadius()
- Expects eighter theall
parameter as a double ortopLeft
,topRight
,bottomLeft
andbottomRight
parameters as a double -
S.boxShadow()
- Expects acolor
parameter in the form of eighter thehex
parameter, thergba
parameter or the standartcolor
parameter. Expectsspread
parameter as a double, theblur
parameter as a double. Theoffset
parameter can eighter be specified as aList
with one item. That single item will apply on both the horizontal and the vertical axis. Theoffset
parameter can also be specified with aList
of 2 items, which will apply on the horizontal and vertical axis. -
S.elevation()
- An alternative toS.boxShadow()
with prestyled shadow effect. The elevation is controlled by a double as the first parametr.aligned
andcolor
are both optional parameters.
Future features
S.animate()
- Animates between a old and new style property. Expects aduration
parameter in milliseconds, acurve
parameter and aonly
parameter witch contains a list of the style properties the animation is going to get applied to. What it might look like:S.animate(duration: 500, curve: 'ease-in', only: ['width', 'margin'])
Gesture Property #
The G
class is responsible for all the gestures
Contains all the properties found in the GestureDetector widget, works as expected
Gesture property example
Division(
gesture: [
G.onTap(() => print('pressed')),
G.onLongPressStart((details) => print(details.globalPosition))
]
)
Child Property #
Widget child