Appearance
Styling with ease, effortlessly
No more complex object, Niku offers composing both properties and parent directly without adding another layer of complexity.
Helping you focus on widget itself, no more redundant properties as a widget.
"Hello Niku".n
..bold
..color = Colors.blue
..fontSize = 24;
Shorten and shortcut property
Reduce redundant boilerplate code from your codebase, Niku cover many a lot of common pattern code normally found in Flutter app.
Shorten your code, maintain your sanity. No more confusing complex basic pattern.
n.TextFormField("Value")
..asPassword
..outlined
..borderColor = Colors.blue;
n.Image.assets("takodachi.png")
..cover
..rounded = 8
..useCircleProgress(
color: Colors.blue,
);
);
Says goodbye to Nested-Hell
Nested Hell have been a problem for Flutter for a long time. It's undeniable that it's hard to read and maintain and nobody like that.
With Niku, composing UI is simple, you use cascade notation to compose both properties and parent.
n.Box()
..w = 50
..h = 50
..p = 10 // padding
..bg = Colors.blue
..rounded = 8;
And says hello to Reusable Style
Niku allows you to extract your styling out to anywhere of your code, then reuse it on any widgets.
Without complex styling, helping you to focus on functionality of your apps instead.
// Seperate from your main UI view
class Styles {
static final title = "".n
..fontSize = 72
..color = Colors.black
..bold;
}
// Then main part of your app
"Reusable Style"..apply = Styles.title;
TLDR;
Niku helps you compose your UI declaratively, without headache.
How to get start?
Just add niku to pubspec.yaml and that's it!
Just one line of code away form you to the future of better of experience of developing Flutter apps.
# pubspec.yaml
dependencies:
flutter:
sdk: flutter
niku: 2.3.3
Still not convinced?
Not sure why Niku is created or how does Niku fits to your codebase?
There's an article written by the creator of Niku explaining the behind the scene, thought process, design decision, and why Niku is created in the first place.
Thought Process of Designing a Balance Framework
Behind the scene, why I created it and how I balancing DX and performance