mix_winds 0.1.0-alpha.1
mix_winds: ^0.1.0-alpha.1 copied to clipboard
Tailwind-like class utilities mapped to Mix 2.0 stylers.
0.1.0-alpha.1 #
- First functional
mix_windsrelease on pub.dev, replacing the name-reservation placeholder. Uses the released Mix 2.2.0 and hostedmix_protocolalpha for development-time wire-contract checks;mix_protocolremains optional at runtime for applications that need portable JSON.
0.1.0-alpha.0 (tagged but not published) #
- Requires
mix2.2.0-beta.5 or later. The package uses focus-visible variants, semantics roles, and gradient transforms that were added after 2.1.0, so the previous^2.1.0constraint could not resolve a working build. - Export
TwCompilationandTwLayoutPlanfor typed compilation results and read-only runtime layout inspection. - Match zero-viewport padding and border activation to Mix, and share responsive widths through nested Tw flex scopes so reserved and applied margins agree.
- Derive layout inset merge order from the actual emitted style groups, and project the plan's padding and border widths from those groups so the plan cannot disagree with the rendered style.
- Widget compilation keeps external margin out of box and flex Stylers; the
layout plan owns it, so semantic widgets no longer strip margin from every
resolved spec. Direct
TwParsercompilation still retains margin. - Preserve intrinsic measurement for text, headings, spans, and icons with static margins or padding, and for responsive margins when a viewport or enclosing Tw flex scope supplies the width.
- Match zero-basis padding and border accounting to the emitted style's variant merge order so responsive flex children retain equal content space.
- Validate each supported utility ledger family through Mix Protocol.
- Check resolved styles, target diagnostics, and runtime plans in Dart, and
pin one encoded document per ledger family under
schema/fixturesfor the repository's Ajv schema check. - Encode
focus-visiblethrough the additive Protocol v1 selector. - Normalize static viewport sizing before routing to prevent incorrect unsupported diagnostics.
- Breaking: Renamed the package from
mix_tailwindstomix_winds. Update the dependency name and changepackage:mix_tailwinds/mix_tailwinds.dartimports topackage:mix_winds/mix_winds.dart. No public API symbol changed; theTw*types andtw*functions keep their names because they still map Tailwind CSS utilities.mix_tailwindsis discontinued on pub.dev at0.0.1-alpha.1. - Fixed zero-basis flex growth with unequal child margin, padding, or border.
When positive content space remains, Tailwind-owned flex containers now
reserve those non-content extents before distributing it, while delegating
both layout passes to Flutter's
RenderFlexand retaining nativeRow/Columncompatibility. - Corrected
min-w-autocompatibility reporting. Flutter has no equivalent flex-item automatic-minimum phase, so the utility is now reported as unsupported instead of invoking a no-op escape hatch. - Fixed
self-start,self-end, andself-center, which silently did nothing whenever the container carried anitems-*utility. A flex holding a self-aligned child now renders through aRenderFlexthat offsets those children after it has measured its cross axis, so the override also works in the common case of a row nested inside a column. - Breaking:
TwConfig.standard()now contains only Tailwind CSS 4.3.1 defaults. The fixture-onlybrand-500,cardspacing/radius,3xlbreakpoint, andshadow-cardvalues were removed; add project values withTwConfig.copyWithor explicit Mix composition. - Breaking (experimental alpha): Removed
TwPressablein favor ofButton; renameonPresstoonPressed. A nullonPresseddisables the control unlessonLongPresssupplies an action, and semantics are always button semantics. Its margin stays outside the pressed, tappable, and semantic border box. - Added class-first lowercase convenience functions for
Div, text, headings,Button,TwIcon, andTruncatedP. They return the concrete uppercase widgets; use those const-capable constructors for advanced options. H1throughH6now expose matching Flutter semantics heading levels 1 through 6.- Generated every supported default theme namespace from a checked-in, versioned Tailwind 4.3.1 snapshot, including the complete stock palette and corrected radii, blurs, font line heights, leading, and tracking values.
- Resolve
tracking-*em values against the final font size and preserve an explicitleading-*over font-size defaults in either class order, including inherited default text styles. - Fixed nested interaction variants, routed
focus-visiblethrough input modality, and removed the non-Tailwindtheme-midnightdark-mode alias. - Fixed fixed/fraction/full/auto responsive width behavior under stretched
Flutter constraints. Responsive
w-autoandh-autonow clear earlier fixed constraints explicitly. - Visual comparisons now enforce per-example, per-width acceptance contracts and generate a filterable, browser-smoked HTML light-table report after successful and failed runs.
- Added a source-backed web showcase for five product-scale examples with Tailwind/Flutter code comparison, published parity evidence, linkable viewports, and one-engine single/multi-view Flutter embedding modes. Showcase builds reject incomplete, malformed, or stale parity evidence by validating the canonical viewport set and a content fingerprint of their source inputs.
- Breaking (experimental alpha): Removed the legacy
TwResolver, thewrapDefaultTextStylestyler extensions, and unusedTwConfiglookup helpers. UseTwParser, standard Mix composition, and the public config maps instead. - Breaking (experimental alpha): Removed the unused semantic AST and plugin
registry that were previously exported from
tw_semantic.dart. - Restored the hosted
mix: ^2.1.0dependency so the package remains publishable by the repository release workflow. - Added structured
TwDiagnosticreporting throughonDiagnostic; ignored adaptations and unsupported candidates no longer disappear silently. The token-onlyonUnsupportedcallback remains as a deprecated shim. - Added
TwParser.compileBox,compileFlex,compileText, andcompileIconto return the Styler, deterministic diagnostics, and a read-only runtime layout plan from one candidate pass. Compiled Stylers now retain transition animation for portable Mix Protocol encoding. - Build the runtime plan from the compiler's typed utility semantics instead of interpreting class strings a second time, keeping runtime classification in lockstep with routing and configured values.
- Fixed runtime classification and plan evaluation for external box/flex margins and implicit vertical-flex alignment under bounded versus unbounded constraints.
- Flex parents now hand prepared compilations to built-in direct children, so parent measurement and child rendering share one parse while diagnostics are still delivered exactly once by the child.
- Preserve keyed flex child state through prepared compilation and cross-axis gap wrappers when children are reordered.
- Report unsupported interactive external margins during semantic widget compilation. Direct Box and Flex styler compilation retains supported variants.
- Skip negative arbitrary external margins so semantic widgets do not receive invalid padding or overwrite an earlier positive margin.
- Require every nested viewport breakpoint before applying a semantic layout utility, independent of the breakpoint order.
- Breaking (experimental alpha): Removed the token-level
TwParserhelperslistTokens,setTokens,wantsFlex, andparseAnimationFromTokens. Use the target-specificcompile*methods; the parsed candidate program is now package-internal. - Resolve conflicting utilities in canonical registry order across translated styles and constraint-aware widget behavior, so class-string order no longer changes base, variant, flex-axis, gap, or self-alignment output.
- Report unsupported
basis-*flex item utilities throughonDiagnosticinstead of silently ignoring fraction, full, arbitrary, or unknown values. - Keep supported
basis-autoand spacing-scale basis utilities quiet while preserving the existing pixel-basis runtime behavior. - Made the parser registry reproducible from a committed compact Tailwind registry snapshot and added a named Melos generation script.
0.0.1-alpha.1 #
- Initial alpha release of
mix_tailwinds. - Experimental Tailwind-like class utilities mapped to Mix 2.0 stylers.