flutter widget builder for nodejs
flutter-builder uses dynamic for handling dynamic configurable data such as button action handling.
CoLI: Computer Language Interface
yarn add @bridged.xyz/flutter-builder
const text = new Text("this is written in typescript", {textStyle: new TextStyle(color: Colors.black)})
console.log(text.build().finalize())
// >>
// Text("this is written in typescript", textStyle: TextStyle(color: Colors.black))
build widget tree
- ts ClassTree -> dart ClassTree
const text = new Text("this is written in typescript", {textStyle: new TextStyle(color: Colors.black)})
const row = new Row({children: [
text,
]})
console.log(row.build().finalize())
// >>
// Row(
// children: [
// Text("this is written in typescript", textStyle: TextStyle(color: Colors.black))
// ]
// );
function as function
ts function -> dart in-code function
from
const functionInRow = new Row(
{
children: [
Function.from(_buildWidget())
]
}
)
function _buildWidget(): Widget{
return new Text("π")
}
functionInRow.build().finalize()
// Row(
// children: [
// _buildWidget()
// ]
// )
//
// Widget _buildWidget(){
// return Text("π");
// }
full class build
const classWidget = new StatelessWidget("Component")
const builder = new Row();
classWidget.buildFrom(builder)
classWidget.build()
// class Component extends StatelessWidget{
// @override
// Widget build(BuildContext context){
// return Row();
// }
// }
slots (variables)
const argument = Variable.from("some text")
const text = new Text(argument);
text.build().finalize()
// >>
// final String argument = "some text";
// Text(argument);
widget supported
- β Gradient
- RadialGradient
- β Radius
- β EdgeInsets
- β Color
- β Icon
- β IconData
- Image β XImage
- β
Container
- β BoxDecoration
- β SizedBox
- β Column
- β Row
- β Stack
- β Positioned
- β Align
- β
Text
- β DefaultTextStyle
- RichText
- β Padding
- β Center
- Clip
- ClipRRect
- ClipRect
- ClipOval
- ClipPath
- β Expanded
- Flex
- Flexible
- β Opacity
β οΈ GestureDetector- Placeholder
- β Spacer
- β Transform
- Wrap
- β Divider
- β FlatButton
- β RaisedButton
- FittedBox
- Form
- FormField
- ListView
- horizontal
- vertical
- GirdView
- horizontal
- vertical
- β SingleChildScrollView
- ErrorWidget
- β MediaQuery