You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,8 @@
1
+
## 1.0.5
2
+
3
+
- Now the package is more focused on being an additional utility, I think it's more realistic to treat it as such, and not as a replacement for the widgets themselves
4
+
- Updated package vision, description and explanations in the README
5
+
1
6
## 1.0.4
2
7
3
8
- Fixed `SizedBox` extensions to accept `int` values
> **Want to 10× your Flutter UI development speed?**
19
-
> Use `exui`. It’s the fastest way to build clean, maintainable UIs, no wrappers, no boilerplate.
18
+
> **Accelerate your Flutter UI development, without compromising clarity.**
19
+
> `exui` helps you build clean, maintainable UIs faster, with no wrappers and zero boilerplate.
20
20
21
-
Stop wasting time on widget nesting and boilerplate. **`exui`** is a modern, zero-dependency Flutter extension library that makes your UI code faster, cleaner, and more expressive. It provides expressive, chainable extensions for **most used Flutter widgets**—with no reliance on Material, Cupertino, or external libraries. Just pure Dart and Flutter, designed to work seamlessly in any project.
21
+
**`exui`** is a lightweight, zero-dependency extension library for Flutter that enhances your UI code with expressive, chainable utilities. It streamlines common layout and styling patterns using pure Dart and Flutter, no reliance on Material, Cupertino, or third-party frameworks.
22
+
23
+
Designed to work seamlessly in any project, `exui` makes your widget code more concise, readable, and efficient, all while keeping full control over your widget tree.
22
24
23
25
### ✅ Features
24
26
@@ -28,28 +30,27 @@ Stop wasting time on widget nesting and boilerplate. **`exui`** is a modern, zer
28
30
-**Zero dependencies** - Pure Dart. No bloat. Add it to any project safely.
29
31
-**Battle-tested** - backed by **hundreds of unit tests** to ensure safety and reliability.
30
32
-**Exceptional documentation** - every extension is well documented with clear examples and fast navigation.
31
-
-**Amazing shorthands** - `.paddingAll`, `.center`, `.expanded`, `.sizedBox`, and more!
32
33
33
34
---
34
35
35
36
### ✨ All `exui` Extensions:
36
37
37
-
`exui` includes a focused set of pure Flutter extensions, no Material or Cupertino dependencies - so you stay in control of your widget tree and design system. This core library contains **chainable, declarative enhancements** for layout, styling, interaction, and more. Each section below links to detailed documentation for a specific extension group. (Emojis only added to distinguish easily between extensions)
38
+
Each section below links to detailed documentation for a specific extension group. (Emojis only added to distinguish easily between extensions)
[🔣 `icon` - Create and Style Icons](#-icon--quickly-create-and-style-icons)
79
80
80
81
> `exui` is built on **pure Flutter** (`flutter/widgets.dart`) and avoids bundling unnecessary Material or Cupertino designs by default. For convenience, optional libraries are provided for those who want seamless integration with Flutter’s built-in design systems.
@@ -101,51 +102,150 @@ Stop wasting time on widget nesting and boilerplate. **`exui`** is a modern, zer
101
102
102
103
### `exui` Vision
103
104
104
-
What if every widget in your Flutter app could instantly do more, with less code?
105
+
**`exui`** is a practical toolkit for Flutter UI development — focused on saving time, reducing boilerplate, and writing layout code that’s readable, consistent, and fun.
106
+
107
+
This isn’t about replacing widgets — it’s about using **concise, chainable extensions** to help you build better UIs faster. You stay in full control of your widget tree and design system.
105
108
106
-
That’s the bold vision behind **`exui`**: to radically streamline UI development by extending **every core Flutter widget**with powerful, chainable, and expressive enhancements. No wrappers. No boilerplate. Just pure Flutter.
109
+
Whether you're working on layout, spacing, visibility, or sizing, `exui` gives you expressive helpers for the most common tasks — with zero dependencies and seamless integration into any codebase.
107
110
108
-
While most packages offer a handful of helpers or rely on custom widget trees, `exui` takes a more ambitious approach:
111
+
### Here are just a few examples:
109
112
110
-
> **A zero-dependency extension library with over 200 chainable utilities—designed to accelerate development, reduce clutter, and bring elegance to every line of UI code.**
113
+
---
111
114
112
-
Whether you're prototyping ideas or building production-grade applications, `exui` helps you move faster without sacrificing clarity or control.
115
+
#### 📏 Padding
116
+
117
+
**With `exui`:**
113
118
114
119
```dart
115
-
"Click me"
116
-
.text()
117
-
.paddingAll(12)
118
-
.redBox()
119
-
.clipCircular()
120
-
.onTap(() => print("Tapped!"));
120
+
Text("Hello").paddingAll(16)
121
+
```
122
+
123
+
**Without:**
124
+
125
+
```dart
126
+
Padding(
127
+
padding: EdgeInsets.all(16),
128
+
child: Text("Hello"),
129
+
)
130
+
```
131
+
132
+
With additional extensions for quickly adding specific padding: `paddingHorizontal`, `paddingVertical`, `paddingOnly`, `paddingSymmetric`, `paddingLeft`, `paddingRight`, `paddingTop`, `paddingBottom`
133
+
134
+
---
135
+
136
+
#### ↔️ Expanded
137
+
138
+
**With `exui`:**
139
+
140
+
```dart
141
+
Text("Stretch me").expanded3
142
+
```
143
+
144
+
**Without:**
145
+
146
+
```dart
147
+
Expanded(
148
+
flex: 3,
149
+
child: Text("Stretch me"),
150
+
)
121
151
```
122
152
123
-
Each `.text()`, `.marginAll()`, or `.icon()` you use replaces multiple layers of nested widgets with a single, readable chain. Multiply that across an entire app—and the productivity gains are exponential.
153
+
With additional extensions for quickly adding specific flex values: `expanded2`, `expanded3`, `expanded4`, `expanded5`, `expanded6`, `expanded7`, `expanded8` or `expandedFlex(int)`
> ⚡ **Stop wasting time on verbose nesting and boilerplate.**
146
-
> ✨ **Start composing clean, maintainable UIs with ease.**
173
+
With additional extensions for quickly adding specific center factors: `centerWidth(double?)`, `centerHeight(double?)` or with parameters `center({widthFactor, heightFactor})`
174
+
175
+
---
176
+
177
+
#### ↕️ Gaps
178
+
179
+
**With `exui`:**
180
+
181
+
```dart
182
+
Column(
183
+
children: [
184
+
Text("A"),
185
+
16.gapColumn,
186
+
Text("B"),
187
+
],
188
+
)
189
+
```
190
+
191
+
**Without:**
192
+
193
+
```dart
194
+
Column(
195
+
children: [
196
+
Text("A"),
197
+
SizedBox(height: 16),
198
+
Text("B"),
199
+
],
200
+
)
201
+
```
202
+
203
+
With additional extensions for quickly adding specific gap values: `gapRow`, `gapColumn` or with parameters `gap({row, column})` or `gapVertical` or `gapHorizontal` etc.
With additional extensions for quickly adding specific visibility conditions: `hide()``visibleIfNot(bool)` or `visibleIfNull(bool)` and more.
222
+
223
+
---
224
+
225
+
#### 🚧 Constraints
226
+
227
+
**With `exui`:**
228
+
229
+
```dart
230
+
Image.asset("logo.png").maxWidth(200)
231
+
```
232
+
233
+
**Without:**
234
+
235
+
```dart
236
+
ConstrainedBox(
237
+
constraints: BoxConstraints(maxWidth: 200),
238
+
child: Image.asset("logo.png"),
239
+
)
240
+
```
241
+
242
+
With additional extensions for quickly adding specific constraints: `constrainedWidth`, `constrainedHeight`, `minWidth`, `maxWidth`, `minHeight`, `maxHeight` or with parameters `constrained({minWidth, maxWidth, minHeight, maxHeight})` or `constrainedBox(BoxConstraints)`
243
+
244
+
---
245
+
246
+
These are just a few of the 200+ utilities in `exui`. Every method is chainable, production-safe, and built with clarity in mind.
147
247
148
-
This isn’t just a utility library. It’s a **declarative layer on top of Flutter**—one that feels native, scales cleanly, and fits seamlessly into any project.
248
+
> **From layout to constraints, visibility to spacing — `exui` keeps your UI code clean, fast, and Flutter-native.**
149
249
150
250
Welcome to **`exui`**.
151
251
@@ -619,9 +719,9 @@ _[⤴️ Back](#-all-exui-extensions) → All `exui` Extensions_
619
719
620
720
---
621
721
622
-
### ↕️ `gap` - Add Spacing Using Double Extensions
722
+
### ↕️ `gap` - Add Spacing Using Number Extensions
623
723
624
-
Use doubles to create `SizedBox` widgets with clear, expressive syntax. These extensions turn raw numbers into layout spacing—perfect for columns, rows, and consistent vertical/horizontal gaps.
724
+
Use doubles or ints to create `SizedBox` widgets with clear, expressive syntax. These extensions turn raw numbers into layout spacing—perfect for columns, rows, and consistent vertical/horizontal gaps.
625
725
626
726
- `sizedWidth` — `SizedBox(width: this)`
627
727
- `sizedHeight` — `SizedBox(height: this)`
@@ -634,30 +734,30 @@ All extensions return a `SizedBox` and are ideal for use in layouts to avoid mag
0 commit comments