Skip to content

Releases: fluttersdk/wind

v1.0.0-alpha.6

04 Apr 20:32
35e9aa1

Choose a tag to compare

v1.0.0-alpha.6 Pre-release
Pre-release

What's New

Added

  • CSS Positioning: relative and absolute position 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

31 Mar 19:02
e88b18f

Choose a tag to compare

v1.0.0-alpha.5 Pre-release
Pre-release

🐛 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

24 Mar 15:23

Choose a tag to compare

v1.0.0-alpha.4 Pre-release
Pre-release

✨ New Features

  • WDynamic Custom Icons: customIcons prop for user-defined icon mappings in dynamic rendering
  • Theme Callbacks: onThemeChanged callback on WindTheme — fires on user-initiated theme toggles for persistence
  • Reset to System Theme: resetToSystem() method on WindThemeController — re-enables automatic system brightness sync
  • SVG Preserve Colors: preserve-colors utility class to skip ColorFilter on WSvg, 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

05 Feb 01:40

Choose a tag to compare

v1.0.0-alpha.2 Pre-release
Pre-release

📦 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

05 Feb 01:30

Choose a tag to compare

Pre-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 support
  • WText - Typography widget with cascading text styles
  • WInput / WFormInput - Form inputs with validation and state styling
  • WButton - Interactive button with loading states
  • WCheckbox / WFormCheckbox - Checkbox with custom styling
  • WSelect / WFormSelect / WFormMultiSelect - Dropdown with search and tagging
  • WDatePicker / WFormDatePicker - Calendar-based date picker
  • WPopover - Overlay positioning system
  • WIcon, WImage, WSvg, WSpacer - Media and spacing utilities
  • WAnchor - State management for hover/focus/custom states
  • WKeyboardActions - 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 /50 opacity 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_lints 5.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 .value usage by migrating to .toARGB32()
  • Fixed curly braces in flow control structures
  • Replaced unnecessary Container with SizedBox for whitespace
  • Updated .where() type checks to use .whereType<T>()

📦 Dependencies

  • flutter_svg: ^2.0.0 - SVG rendering support
  • keyboard_actions: ^4.2.1 - iOS keyboard management
  • flutter_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 WKeyboardActions widget 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_actions package (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 actions
  • platform: Target platform ('ios', 'android', 'all') - default 'all'
  • nextFocus: Enable up/down navigation between fields - default true
  • toolbarClassName: Wind className for toolbar styling (supports bg-*, dark:bg-*)
  • closeWidgetBuilder: Custom close button builder

Re-exports:

  • keyboard_actions package 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-0 now 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-sm and 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-sm now 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-full now works correctly inside scroll views (overflow-auto).
  • Behavior: Uses LayoutBuilder to detect unbounded constraints and applies MediaQuery.of(context).size for full-size factors instead of FractionallySizedBox.
  • Impact: Enables proper Tailwind-to-Flutter conversion where scrollable containers wrap full-viewport content with flex centering.

Flex Centering with Full Size

  • Fixed: justify-center and items-center now work correctly with h-full/w-full and min-h-full/min-w-full.
  • Behavior: Column with h-full, min-h-full, or explicit height now uses MainAxisSize.max instead of .min, allowing vertical centering to work.
  • Impact: flex flex-col items-center justify-center h-full or min-h-full now properly centers content like Tailwind.

Background Fill with Full Size

  • Fixed: bg-* colors now properly fill entire parent area when combined with w-full/h-full.
  • Behavior: Container uses width: double.infinity and height: double.infinity when full-size is requested.
  • Impact: w-full h-full bg-slate-950 now 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-* and space-y-* utilities for spacing between children.
  • Usage: space-y-6 adds vertical gap of 24px (6 × 4) between children.
  • Implementation: Internally mapped to gap-x and gap-y for 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 className support for overlay container.
  • Interaction: triggerBuilder and contentBuilder for 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, and rounded utilities. Supports asset:// 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...
Read more

0.0.4

12 Jun 16:22
89ecb68

Choose a tag to compare

  • Updated platform_info dependency to ^5.0.0 for improved platform detection.

0.0.3

09 Jun 12:49

Choose a tag to compare

Added

  • Display Control (hide, show): Added new utility classes for responsive visibility control. Widgets now support class-based display toggling using hide, 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/display added to demonstrate display utilities in action (example/lib/pages/layout/display.dart).
  • applyBorderColor & applyBorderRadiusValue: New helper methods in BorderParser for 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: child is now nullable. Returns Spacer if child is null.
  • WContainer: Now wraps Container with ClipRRect if a borderRadius is specified.
  • Shadow Color Logic: Changed BoxShadow color alpha parsing from .withValues(alpha: 25) to .withValues(alpha: 0.1) for better consistency.

Fixed

  • Fixed alignment mapping by adding support for alignment-left and alignment-right.
  • Fixed text alignment handling using text-left, text-center, etc., via AlignmentParser.applyTextAlignment.
  • Improved padding parser to return the original widget if padding is zero (prevents unnecessary widget wrapping).

Removed

  • Deprecated custom RenderObject in WGap in favor of a simpler StatelessWidget using SizedBox.

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

02 Feb 17:40

Choose a tag to compare

  • 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

02 Feb 17:05

Choose a tag to compare

  • Initial release