Releases: fluttersdk/wind
v1.0.0-alpha.6
What's New
Added
- CSS Positioning:
relativeandabsoluteposition types with Stack/Positioned rendering - Offset Utilities:
top-*,right-*,bottom-*,left-*offset tokens using spacing scale - Inset Shortcuts:
inset-*,inset-x-*,inset-y-*for multi-side offsets - Negative Offsets:
-top-*,-inset-*for negative positioning - Arbitrary Position Values:
top-[24px],left-[12px]bracket syntax (px only)
Developer Experience
- New PositionParser (18th parser) with 26 unit tests
- 8 widget tests for Stack/Positioned rendering
- Full documentation:
doc/layout/positioning.md - Interactive example page with 6 demo sections
Full Changelog: 1.0.0-alpha.5...1.0.0-alpha.6
v1.0.0-alpha.5
🐛 Bug Fixes
- Flex Space Distribution: flex-1 + justify-between no longer breaks layout — shrink-0 children are skipped during container-level Flexible wrapping (#45)
- shrink-0 Semantics: shrink-0 no longer creates a Flexible wrapper — correctly preserves intrinsic size matching CSS flex-shrink: 0 behavior (#45)
🔧 Improvements
- GitHub Copilot Config: Added Copilot instructions converted from Claude Code configuration (#46)
Full Changelog: 1.0.0-alpha.4...1.0.0-alpha.5
v1.0.0-alpha.4
✨ New Features
- WDynamic Custom Icons:
customIconsprop for user-defined icon mappings in dynamic rendering - Theme Callbacks:
onThemeChangedcallback onWindTheme— fires on user-initiated theme toggles for persistence - Reset to System Theme:
resetToSystem()method onWindThemeController— re-enables automatic system brightness sync - SVG Preserve Colors:
preserve-colorsutility class to skip ColorFilter onWSvg, ideal for QR codes and multi-color logos
🐛 Bug Fixes
- WButton Spinner Size: Increased default loading spinner size from 16 to 20 for better visibility
- WButton Spinner Color: Spinner now falls back to text color, then auto-computes contrast via W3C luminance when no color is resolvable
🔧 Improvements
- CI/CD: Publish pipeline with validate gate (analyze + format + test) before pub.dev publish
- Security: Added SECURITY.md and Dependabot configuration
- Developer Experience: Added CLAUDE.md, path-scoped rules, and editor hooks for AI-assisted development
- Community: Added GitHub issue templates (bug report, feature request, documentation) and LLM skill
Full Changelog: 1.0.0-alpha.2...1.0.0-alpha.4
v1.0.0-alpha.2
📦 Package Improvements
- Description: Shortened package description to comply with pub.dev 180-character limit
- Publishing: Enhanced pub.dev compatibility and package metadata
Full Changelog: https://github.com/fluttersdk/wind/blob/v1/CHANGELOG.md
v1.0.0-alpha.1 - First Alpha Release
Changelog
All notable changes to this project will be documented in this file.
This project follows Semantic Versioning 2.0.0.
[1.0.0-alpha.1] - 2026-02-05
🎉 First Alpha Release
Wind v1.0.0-alpha.1 marks the first public preview of the complete architectural rewrite. This release focuses on code quality, CI/CD infrastructure, and ensuring a solid foundation for the v1 stable release.
✨ What's Included
Core Widgets:
WDiv- Utility-first container with flex, grid, and overflow supportWText- Typography widget with cascading text stylesWInput/WFormInput- Form inputs with validation and state stylingWButton- Interactive button with loading statesWCheckbox/WFormCheckbox- Checkbox with custom stylingWSelect/WFormSelect/WFormMultiSelect- Dropdown with search and taggingWDatePicker/WFormDatePicker- Calendar-based date pickerWPopover- Overlay positioning systemWIcon,WImage,WSvg,WSpacer- Media and spacing utilitiesWAnchor- State management for hover/focus/custom statesWKeyboardActions- iOS keyboard toolbar management
Utility Classes:
- Layout:
flex,grid,wrap,flex-row,flex-col,gap-* - Sizing:
w-*,h-*,min-*,max-*,w-1/2,aspect-*,w-[200px] - Spacing:
p-*,px-*,py-*,m-*,mx-*,my-* - Typography:
text-*,font-*,uppercase,underline,truncate - Colors:
bg-*,text-*,border-*with/50opacity modifiers - Effects:
shadow-*,opacity-*,ring-*,rounded-* - Transitions:
duration-*,ease-*,animate-* - States:
hover:,focus:,disabled:,loading:, custom states - Responsive:
sm:,md:,lg:,xl:,2xl: - Platform:
ios:,android:,web:,mobile: - Dark Mode:
dark:prefix for all utilities
Theme System:
WindTheme/WindThemeData- Customizable design tokens- Runtime theme toggling with reactive updates
- Default Tailwind-compatible color palette
- Typography, spacing, and sizing scales
🔧 Code Quality & Infrastructure
- Zero Analyzer Issues: Full compliance with
flutter_lints5.0.0 - 835 Tests Passing: Comprehensive test coverage across all widgets and parsers
- CI/CD Ready: Automated publishing via GitHub Actions with OIDC
- Flutter 3.29+ Support: Using latest stable APIs (
toARGB32()) - Clean Code Standards: No custom linter exceptions, proper formatting
🐛 Bug Fixes
- Fixed hover state test timing issues with
addPostFrameCallback - Resolved deprecated
.valueusage by migrating to.toARGB32() - Fixed curly braces in flow control structures
- Replaced unnecessary
ContainerwithSizedBoxfor whitespace - Updated
.where()type checks to use.whereType<T>()
📦 Dependencies
flutter_svg: ^2.0.0- SVG rendering supportkeyboard_actions: ^4.2.1- iOS keyboard managementflutter_lints: ^5.0.0- Code quality enforcement
⚠️ Breaking Changes from v0
This is a complete rewrite. Migration from v0 requires updating all widget names and class syntax. See README.md for the new API.
📚 Documentation
- Full widget documentation: wind.fluttersdk.com
- AI agent integration guides:
docs/claude/ - Example application included in
/example
🚀 What's Next
This alpha release is feature-complete for core functionality. Upcoming releases will focus on:
- Community feedback and bug fixes
- Performance optimizations
- Additional widgets (WFormTextArea, WSlider, etc.)
- Enhanced documentation and examples
- Stable v1.0.0 release
[1.0.0-alpha.9] - 2026-02-04
✨ New Features
WKeyboardActions Widget
- Added: New
WKeyboardActionswidget for iOS keyboard management. - Problem Solved: iOS numeric keyboards lack a "Done" button, making it impossible to dismiss the keyboard.
- Solution: Wraps form content with a keyboard toolbar showing Done button and optional field navigation.
- Package: Integrated
keyboard_actionspackage (v4.2.1).
Usage:
class MyForm extends StatefulWidget {
@override
State<MyForm> createState() => _MyFormState();
}
class _MyFormState extends State<MyForm> {
final _amountFocus = FocusNode();
final _quantityFocus = FocusNode();
@override
void dispose() {
_amountFocus.dispose();
_quantityFocus.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return WKeyboardActions(
focusNodes: [_amountFocus, _quantityFocus],
toolbarClassName: 'bg-gray-100 dark:bg-gray-800',
child: Column(
children: [
WFormInput(
focusNode: _amountFocus,
label: 'Amount',
type: InputType.number, // Done button appears!
),
WFormInput(
focusNode: _quantityFocus,
label: 'Quantity',
type: InputType.number,
),
],
),
);
}
}Props:
focusNodes: List of FocusNodes for inputs needing keyboard actionsplatform: Target platform ('ios','android','all') - default'all'nextFocus: Enable up/down navigation between fields - defaulttruetoolbarClassName: Wind className for toolbar styling (supportsbg-*,dark:bg-*)closeWidgetBuilder: Custom close button builder
Re-exports:
keyboard_actionspackage is re-exported for advanced usage
[1.0.0-alpha.8] - 2026-01-02
✨ New Features
Named Max-Width Sizes
- Added: Tailwind-compatible named max-width values for
max-w-*classes. - Classes:
max-w-xs(320px),max-w-sm(384px),max-w-md(448px),max-w-lg(512px),max-w-xl(576px),max-w-2xl(672px),max-w-3xl(768px),max-w-4xl(896px),max-w-5xl(1024px),max-w-6xl(1152px),max-w-7xl(1280px),max-w-prose(1040px). - Usage:
WDiv(className: "max-w-sm p-4 bg-white rounded-lg", ...).
Border-0 Support
- Added:
border-0now correctly removes borders. - Added: Shade-less border colors now work:
border-white,border-black,border-transparent.
🐛 Bug Fixes
WDiv Max-Width Constraint Override
- Fixed:
max-w-smand other max-width constraints were being overridden by explicit width values. - Behavior: Max-width constraints now take precedence over width when explicitly set.
- Impact: Cards with
max-w-smnow correctly constrain to 384px instead of expanding to full width.
[1.0.0-alpha.7] - 2026-01-01
🐛 Bug Fixes
WDiv Fractional Sizing in Scroll Contexts
- Fixed:
w-full/h-fullnow works correctly inside scroll views (overflow-auto). - Behavior: Uses
LayoutBuilderto detect unbounded constraints and appliesMediaQuery.of(context).sizefor full-size factors instead ofFractionallySizedBox. - Impact: Enables proper Tailwind-to-Flutter conversion where scrollable containers wrap full-viewport content with flex centering.
Flex Centering with Full Size
- Fixed:
justify-centeranditems-centernow work correctly withh-full/w-fullandmin-h-full/min-w-full. - Behavior: Column with
h-full,min-h-full, or explicit height now usesMainAxisSize.maxinstead of.min, allowing vertical centering to work. - Impact:
flex flex-col items-center justify-center h-fullormin-h-fullnow properly centers content like Tailwind.
Background Fill with Full Size
- Fixed:
bg-*colors now properly fill entire parent area when combined withw-full/h-full. - Behavior: Container uses
width: double.infinityandheight: double.infinitywhen full-size is requested. - Impact:
w-full h-full bg-slate-950now fills the entire viewport with the background color.
✨ New Features
Tailwind v4 Color Shades
- Added: 950 shade for all color palettes.
- Colors: All 22 colors now have 950 shade (slate, gray, zinc, neutral, stone, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose).
- Examples:
bg-slate-950,text-indigo-950,border-red-950, etc.
Space Utilities
- Added:
space-x-*andspace-y-*utilities for spacing between children. - Usage:
space-y-6adds vertical gap of 24px (6 × 4) between children. - Implementation: Internally mapped to
gap-xandgap-yfor Flutter compatibility.
[1.0.0-alpha.6] - 2026-01-01
✨ New Features
WPopover Widget
- Overlay System: Flexible popover for dropdowns, menus, and tooltips.
- Alignment: 6 supported positions (bottomLeft, bottomCenter, bottomRight, etc.).
- Styling: Full Wind
classNamesupport for overlay container. - Interaction:
triggerBuilderandcontentBuilderfor maximum flexibility. - Auto-Close: Built-in tap-outside handling via
TapRegion.
[1.0.0-alpha.5] - 2025-12-26
✨ New Features
Extended Widget Suite
- WSelect: Powerful dropdown with single/multi-select, search, pagination (infinite scroll), tagging (
onCreateOption), and full custom builders. - WCheckbox: Utility-first checkbox with
checked:state styling and custom icon support. - WImage: Network/Asset image wrapper with
object-fit,aspect-ratio, androundedutilities. Supportsasset://schema. - WSvg: SVG rendering with
fill-,stroke-coloring and parent style inheritance. - WIcon: Tailwind-styled Icon wrapper that honors parent text styles (
text-{color},text-{size}).
Animation System (Explicit)
- Animation Utilities:
animate-spin,animate-pulse,animate-bounce,animate-ping. - WindAnimationWrapper: Integrated wrapper that handles explicit animations automatically.
- Widget Integration:
WDiv,WIcon,WText(via WDiv wrapper) support animation classes.
Implicit Animations (Transitions)
- Duration:
duration-{ms}enables implicit animations on properties. - **Ea...
0.0.4
0.0.3
Added
- Display Control (
hide,show): Added new utility classes for responsive visibility control. Widgets now support class-based display toggling usinghide,show,lg:show,md:hide, etc. DisplayParser: New parser for handling display-related utility classes, with full support for screen breakpoints.- New Example Page:
/layouts/displayadded to demonstrate display utilities in action (example/lib/pages/layout/display.dart). applyBorderColor&applyBorderRadiusValue: New helper methods inBorderParserfor parsing border color and border radius values.
Changed
- Widgets Logging: Improved debug logging via
hasDebugClassName, now prints parsed class names and widgets (WText,WFlex,WFlexible,WContainer, etc.). WFlexible:childis now nullable. ReturnsSpacerifchildisnull.WContainer: Now wrapsContainerwithClipRRectif aborderRadiusis specified.- Shadow Color Logic: Changed
BoxShadowcolor alpha parsing from.withValues(alpha: 25)to.withValues(alpha: 0.1)for better consistency.
Fixed
- Fixed alignment mapping by adding support for
alignment-leftandalignment-right. - Fixed text alignment handling using
text-left,text-center, etc., viaAlignmentParser.applyTextAlignment. - Improved padding parser to return the original widget if padding is zero (prevents unnecessary widget wrapping).
Removed
- Deprecated custom
RenderObjectinWGapin favor of a simplerStatelessWidgetusingSizedBox.
This version introduces foundational support for display utilities and improves debugging and widget flexibility. It’s recommended to update to benefit from responsive visibility and streamlined layout logic.
0.0.2
- Added Github workflow for publishing package to pub.dev
- Updated README.md with installation and usage instructions
- Added example application to demonstrate usage
0.0.1
- Initial release