diff --git a/CHANGELOG.md b/CHANGELOG.md index cbb322e..148acfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ This project follows [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0. --- -## [1.0.0] - TBD +## [1.0.0] - 2026-06-09 First stable release. wind is utility-first, Tailwind-syntax styling for Flutter; v1.0.0 is a complete rewrite of the 0.0.x line with a fresh API surface, a 19-parser pipeline with cached resolution, dark-mode pairs as a first-class contract, and a contracts-based debug bridge for external tooling. All public APIs follow Semantic Versioning 2.0.0 from this point forward. diff --git a/lib/src/widgets/w_keyboard_platform.dart b/lib/src/widgets/w_keyboard_platform.dart index ed20bf9..38d2efd 100644 --- a/lib/src/widgets/w_keyboard_platform.dart +++ b/lib/src/widgets/w_keyboard_platform.dart @@ -4,7 +4,7 @@ /// Pass a value as the `platform` parameter on `WKeyboardActions`. The /// string-based API (`'ios'`, `'android'`, `'all'`) maps to this enum /// internally; consumers that prefer a typed constant may use this directly -/// once the barrel export lands in a later step. +/// (exported from `package:fluttersdk_wind/fluttersdk_wind.dart`). enum WKeyboardPlatform { /// Show the toolbar only on Android. android, diff --git a/pubspec.yaml b/pubspec.yaml index d8b9506..357e1ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,6 +11,10 @@ topics: - responsive - design-system +screenshots: + - description: "Wind example gallery: Tailwind-syntax className UI rendered with W-prefix widgets, dark mode, and responsive breakpoints." + path: screenshots/wind-gallery-overview.png + environment: sdk: ">=3.4.0 <4.0.0" flutter: ">=3.27.0" diff --git a/screenshots/wind-gallery-overview.png b/screenshots/wind-gallery-overview.png new file mode 100644 index 0000000..c732d9a Binary files /dev/null and b/screenshots/wind-gallery-overview.png differ diff --git a/skills/wind-ui/SKILL.md b/skills/wind-ui/SKILL.md index b586d7e..dfbb181 100644 --- a/skills/wind-ui/SKILL.md +++ b/skills/wind-ui/SKILL.md @@ -1,12 +1,12 @@ --- name: wind-ui -description: "fluttersdk_wind 1.0: utility-first Flutter styling with Tailwind-syntax className strings. 22 public widgets (WDiv, WText, WButton, WInput, WSelect, WCheckbox, WDatePicker, WPopover, WAnchor, WIcon, WImage, WSvg, WSpacer, WBreakpoint, WDynamic, WKeyboardActions, WindAnimationWrapper + 5 WForm* wrappers) consume className through a 19-parser pipeline that emits a cached immutable WindStyle. Prefixes stack freely (dark: / hover: / focus: / md: / lg: / ios: / android: / web: / mobile: / selected: / loading: / disabled: / error: / checked: / custom). Last class wins; unknown tokens fail silently. Every color token (bg-, text-, border-, ring-, shadow-, fill-) needs a dark: pair in the same className. TRIGGER when: writing or editing any UI in a Flutter app that depends on `fluttersdk_wind`; any className string; any W-prefix widget; any WindTheme / WindThemeData reference; the user mentions Tailwind for Flutter, utility-first, className, or wind-ui. DO NOT TRIGGER when: backend / API / state-management work that does not touch a widget tree; Flutter projects that do not have fluttersdk_wind in pubspec.yaml; Material-only widgets (Scaffold, AppBar, Dialog) without Wind content inside them." +description: "fluttersdk_wind 1.0: utility-first Flutter styling with Tailwind-syntax className strings. 22 public widgets (WDiv, WText, WButton, WInput, WSelect, WCheckbox, WDatePicker, WPopover, WAnchor, WIcon, WImage, WSvg, WSpacer, WBreakpoint, WDynamic, WKeyboardActions, WindAnimationWrapper + 5 WForm* wrappers) consume className through a 19-parser pipeline (19 implementation files organized into 12 token families for teaching) that emits a cached immutable WindStyle. Prefixes stack freely (dark: / hover: / focus: / md: / lg: / ios: / android: / web: / mobile: / selected: / loading: / disabled: / error: / checked: / custom). Last class wins; unknown tokens fail silently. Every color token (bg-, text-, border-, ring-, shadow-, fill-) needs a dark: pair in the same className. TRIGGER when: writing or editing any UI in a Flutter app that depends on `fluttersdk_wind`; any className string; any W-prefix widget; any WindTheme / WindThemeData reference; the user mentions Tailwind for Flutter, utility-first, className, or wind-ui. DO NOT TRIGGER when: backend / API / state-management work that does not touch a widget tree; Flutter projects that do not have fluttersdk_wind in pubspec.yaml; Material-only widgets (Scaffold, AppBar, Dialog) without Wind content inside them." when_to_use: | Any task that produces, modifies, or audits Wind-styled Flutter UI: composing a className string, picking the right W-widget for a use case, integrating with a Form / FormField, customizing WindThemeData, wiring dark-mode pairs, debugging an unexpected layout, recovering from RenderFlex overflow, building a popover or dropdown, rendering a JSON tree via WDynamic, wiring Wind.installDebugResolver for kDebugMode tooling, or migrating a Tailwind className from web. Apply BEFORE writing the first line of UI in a Wind-using file, not as an audit pass. -version: 2.0.4 +version: 2.0.5 --- - + # Wind UI 1.0