Releases: conceptadev/mix
Mix 1.5.3 "Nielsen"
Highlights
FlexBox
Gets a Dedicated Spec and Utility
In this release, FlexBox now has its own dedicated utility: $flexbox
. Previously, you styled FlexBox using either $flex or $box
. With $flexbox
, you get a utility that combines attributes from both, offering a more intuitive and efficient way to handle a common use case in most applications.
This enhancement simplifies your code by reducing the need to use both box and any flex widget, making it easier to define layouts with different children.
FlexBox(
direction: Axis.vertical,
style: Style(
$flexbox.chain
..flex.mainAxisAlignment.center()
..flex.crossAxisAlignment.center()
..flex.gap(12)
..padding.all(12)
..color.red()
..border.all.color.redAccent(),
),
children: const [
Text('Hello'),
Text('World'),
],
),
Important Note: Starting with the next major version, FlexBox will exclusively use $flexbox
. This change ensures that FlexBox styling is fully aligned with the existing API conventions in Mix, offering a more consistent developer experience.
Introducing the Remix Playground
Remix now includes a fully interactive playground, allowing you to explore and preview all available components in one place.
Try out the playground today to get hands-on with Remix components and unlock new possibilities for your UI design!
Introducing Design Token Support in mix_generator
The mix_generator and mix_annotation now include full support for design token generation. With this update, you can effortlessly define your design tokens and let the generator handle creating everything needed to integrate them into your MixThemeData.
Simply annotate a class with @MixableToken
, specifying the token type, and the generator will do the rest. This feature supports all design token categories: Radius, Color, Space, and TextStyle.
@MixableToken(Color)
class CustomColors {
final Color primary;
final Color surface;
const CustomColors({
required this.primary,
required this.surface,
});
Map<ColorToken, Color> toMap() => _$CustomColorsToMap(this);
}
Directly in Styles:
The generated code supports you reference tokens directly in your styles for a cleaner, more declarative approach:
$box.color.$primary()
Access from Context:
You can also access tokens dynamically through the context
context.$color.primary()
This update ensure consistency across your app while reducing boilerplate. The added utilities make tokens easier to use, improving developer productivity.
Packages Updates
mix
- v1.5.3
- REFACTOR: Solve dcm lint issues (#519).
- FIX: Order of modifiers implementation on Box, Image and Text (#529).
- FIX: reset modifiers and directives when using fluentAPI (#482).
- FEAT: Add spring curve (#503).
- FEAT: Create StrokeAlignUtility (#496).
- FEAT: Utilities for text height behavior (#495).
- FEAT: Rewrite FlexBox as a Mix's primitive component (#517).
- FEAT: Add
SpecConfiguration
(#483). - DOCS: Add section for
TokenResolver
(#537).
remix
- v0.0.3
- REFACTOR: Create a new Architecture for remix's components (#446).
- REFACTOR(remix): improve widgetbook navigation (#524).
- REFACTOR: Add in code documentation and rename params for each component (#514).
- REFACTOR: Remix progress (#429).
- REFACTOR: small fixes on remix (#512).
- REFACTOR: Rewrite Fortaleza theme using the new code gen for tokens (#528).
- REFACTOR: Remix was rewritten using Fluent API (#476).
- REFACTOR: Rewrite all components in the new Archtecture (#467).
- FIX: Textfield helper Text (#531).
- FIX: Toast animation trigger (#530).
- FEAT: Create Textfield (#511).
- FEAT: Chip component (#504).
- FEAT: implement toast component (#503).
- FEAT: Card has child instead of children parameter (#499).
- FEAT: Create dark base theme for Remix (#498).
- FEAT: remix-styling-configuration (#483).
- FEAT: Segmented control (#479).
- FEAT: Accordion component (#433).
- FEAT: Slider component (#509).
- FEAT: Add more directives to Colors (#477).
- FEAT: Menu Item Component (#508).
- FEAT: Add group feature to Radio (#435).
- FEAT: Create Select component (#448).
- FEAT: Add parameter onEnd for AnimatedStyle (#458).
- FEAT: button supports component builder (#444).
- FEAT: Create a theme for Remix (#470).
- FEAT: Refactor Remix components (#428).
- FEAT: Remix improvements and further improvements (#410).
- FEAT: Rewrite FlexBox as a Mix's primitive component (#517).
mix_annotations
- v0.3.1
- FEAT: Create code gen for design tokens (#521).
mix_generator
- v0.3.2
- REFACTOR: Rewrite Fortaleza theme using the new code gen for tokens (#528).
- FIX: Shadow list animation (#445).
- FEAT: Create code gen for design tokens (#521).
- FEAT: Rewrite FlexBox as a Mix's primitive component (#517).
- FEAT: Fluent API (#475).
- FEAT: Remix improvements and further improvements (#410).
- DOCS: improve mix theme data features explanations (#404).
mix_lint
- v0.1.2
- FEAT: Rewrite FlexBox as a Mix's primitive component (#517).
What's Changed
- feat: Utilities for text height behavior by @tilucasoli in #495
- feat: Create StrokeAlignUtility by @tilucasoli in #496
- feat: Create dark base theme for Remix by @tilucasoli in #498
- feat: Card has child instead of children parameter by @tilucasoli in #499
- feat: implement toast component by @tilucasoli in #503
- feat: Chip component by @tilucasoli in #504
- feat: Improve spring curve by @tilucasoli in #507
- feat: Add Dark Theme by @tilucasoli in #510
- feat: Menu Item Component by @tilucasoli in #508
- feat: Slider component by @tilucasoli in #509
- feat: Create Textfield by @tilucasoli in #511
- refactor: small fixes on remix by @tilucasoli in #512
- chore: improve the package scores by @hesham04Dev in #513
- feat: Bring TextStyle properties to the root of TextSpecUtility by @tilucasoli in #516
- feat: Rewrite FlexBox as a Mix's primitive component by @tilucasoli in #517
- refactor: Solve dcm lint issues by @tilucasoli in #519
- refactor: Modernize MediaQuery usage by @cabaucom376 in #520
- refactor: Add in code documentation and rename params for each component by @tilucasoli in #514
- docs: Update creating-a-widget.md by @cabaucom376 in #518
- fix: Token was not being resolved correctly by @tilucasoli in #525
- feat: Create code gen for design tokens by @tilucasoli in #521
- refactor(remix): improve widgetbook navigation by @yousinix in #524
- fix: Order of modifiers implementation on Box, Image and Text by @tilucasoli in #529
- fix: Toast animation trigger by @tilucasoli in #530
- fix: Textfield helper Text by @tilucasoli in #531
- docs: Add section for
TokenResolver
by @tilucasoli in #537 - refactor: Rewrite Fortaleza theme using the new code gen for tokens by @tilucasoli in #528
- chore: version packages by @github-actions in #543
New Contributors
- @hesham04Dev made their first contribution in #513
- @cabaucom376 made their first contribution in #520
- @yousinix made their first contribution in #524
Full Changelog: mix-1.5.2...mix-1.5.3
Mix 1.5.2 "Nielsen"
Packages Updates
mix
- v1.5.2
- REFACTOR: ShapeBorder merge (#490).
- FEAT: Improve error messages (#491).
- FEAT: add error state to MixWidgetState (#489).
What's Changed
- feat: Add state error on MixWidgetState by @tilucasoli in #489
- refactor: ShapeBorder merge by @tilucasoli in #490
- feat: Improve error messages by @tilucasoli in #491
- chore: version packages by @github-actions in #493
Full Changelog: mix-1.5.1...mix-1.5.2
Mix 1.5.1 "Nielsen"
Packages Updates
mix
- v1.5.1
- FEAT: Add MixOutlinedBorder (#487).
What's Changed
- feat: Add MixOutlinedBorder by @tilucasoli in #487
- chore: version packages by @github-actions in #488
Full Changelog: mix-1.5.0...mix-1.5.1
Mix 1.5.0 "Nielsen"
Jakob Nielsen, a leading figure in UI/UX design, transformed the field with his Ten Usability Heuristics and emphasis on user-centered design. His work highlights the importance of intuitive, efficient interfaces and usability testing. Nielsen’s mantra, “users are not like you,” serves as a reminder to prioritize real user needs, making his contributions essential in shaping modern digital experiences.
Release Notes
Highlights
New Feature: Fluent API
The fluent API allows for more expressive and readable code when working with Mix specifications and utilities. It enables chaining of method calls and provides a more intuitive way to configure and build Mix components.
Key Points:
- Simplified and more concise code when defining Mix specifications.
- Improved readability and maintainability of the codebase.
- Enhanced developer experience and productivity.
final style = Style(
$text.chain
..uppercase()
..textAlign.center()
..style.color.blue()
..style.fontSize(20),
);
New Feature: Remove All Previous Spec Modifiers and Color Directives
This feature gives developers greater control over their Style
s by allowing them to clear any spec modifier or color directive and start fresh with new ones.
Key Points:
- Added a method to remove all previously applied Spec Modifiers and Color Directives
final style = Style(
$box.chain
..width(100)
..height(100)
..color.red()
..color.withHue(200)
..color.withSaturation(0.3)
..color.withLightness(0.3)
..color.resetDirectives()
..color.withAlpha(140)
);
In this example, all previous directives are ignored after the resetDirectives
attribute.
Refactor: Generic Brightness Detection
Previously, $on.dark relied on Material design because it was using Theme.of(context), causing issues when using the Cupertino theme. With this update, brightness detection works consistently across different design systems, ensuring better compatibility and reliability.
Key Points:
- Replaced Theme.of(context) with MediaQuery for brightness detection.
- Ensures compatibility with both Material and Cupertino design systems.
What's Changed
- refactor: Rewrite all components in the new Archtecture by @tilucasoli in #467
- feat: Fold MixThemeData into single root by @Solido in #466
- chore: linting by @leoafarias in #474
- feat: create a theme for Remix by @leoafarias in #470
- fix: Style when merged with an AnimatedStyle should generate a AnimatedStyle by @tilucasoli in #472
- feat: Fluent API by @leoafarias in #475
- feat: implement a way to clear inline modifiers by @tilucasoli in #478
- feat: Add more directives to Colors by @tilucasoli in #477
- refactor: Remix was rewritten using Fluent API by @tilucasoli in #476
- feat: Accordion component by @tilucasoli in #433
- feat: Segmented control by @tilucasoli in #479
- chore: consolidate spec attribute and dto by @leoafarias in #480
- fix: Update OnBrightnessVariant to use
MediaQuery
instead ofTheme
by @doug-orchard in #471 - fix: reset modifiers and directives when using fluentAPI by @tilucasoli in #482
- feat: transform.translate by @tilucasoli in #484
- feat: remix-styling-configuration by @leoafarias in #483
- chore: version packages by @github-actions in #485
- chore: version packages by @github-actions in #486
New Contributors
- @doug-orchard made their first contribution in #471
Full Changelog: mix-1.4.6...mix-1.5.0
Mix 1.4.6 "Norman"
Packages Updates
mix
- v1.4.6
- FIX(docs): fix fn level docs for Style::applyVariants (#460).
- FIX: Shadow list animation (#445).
- FIX: SpecModifiers were taking a long time to animate. (#457).
- FEAT: Create mouse cursor Decorator (#263).
- FEAT: Add parameter onEnd for AnimatedStyle (#458).
- FEAT:
SingleChildScrollView
widget modifier (#427). - FEAT: Remix improvements and further improvements (#410).
mix_annotations
- v0.3.0
- FIX: SpecModifiers were taking a long time to animate. (#457).
mix_generator
- v0.3.0
What's Changed
- fix: Shadow list animation by @tilucasoli in #445
- chore: Remove example by @tilucasoli in #449
- chore: Update google fonts by @tilucasoli in #450
- refactor: Create a new Architecture for remix's components by @tilucasoli in #446
- ci: Fix lint by @tilucasoli in #451
- feat:
SingleChildScrollView
widget modifier by @Maksimka101 in #427 - fix: Transform.rotate couldn't be applied as specModifiers by @tilucasoli in #455
- fix: SpecModifiers were taking a long time to animate. by @tilucasoli in #457
- feat: Add parameter onEnd for AnimatedStyle by @tilucasoli in #458
- docs: Fix an outdated comment by @m-sadegh-sh in #456
- docs: Adding
$
sign in dart code example by @withden in #459 - fix(docs): Fix fn level docs for Style::applyVariants by @canewsin in #460
- feat: Create Select component by @tilucasoli in #448
- feat: Create mouse cursor Decorator by @tilucasoli in #263
- feat: Add group feature to Radio by @tilucasoli in #435
- chore: version packages by @github-actions in #464
New Contributors
- @m-sadegh-sh made their first contribution in #456
- @withden made their first contribution in #459
- @canewsin made their first contribution in #460
Full Changelog: mix-1.4.5...mix-1.4.6
Mix 1.4.5 "Norman"
Packages Updates
mix
- v1.4.5
- FIX: HitTestBehavior when there is an Interectable in the tree (#437).
- FEAT: Create a specific utility to Transform.rotate (#434).
- FEAT: TargetPlatform and web variants (#431).
What's Changed
- feat: Refactor Remix components by @tilucasoli in #428
- docs: review the theming documentation by @tilucasoli in #430
- docs: remove the custom component doc by @tilucasoli in #432
- feat: TargetPlatform and web variants by @leoafarias in #431
- refactor: Remix progress by @tilucasoli in #429
- fix: HitTestBehavior when there is a Interectable in the tree by @tilucasoli in #437
- feat: Create a specific utility to Transform.rotate by @tilucasoli in #434
- chore: version packages by @github-actions in #438
- feat: button supports component builder by @tilucasoli in #444
- chore: Support to Flutter 3.24.0 by @tilucasoli in #440
Full Changelog: mix-1.4.4...mix-1.4.5
Mix 1.4.4 "Norman"
Packages Updates
mix
- v1.4.4
- FIX: Pressable disposes controller only if it creates it (#424).
What's Changed
- fix: Pressable disposes controller only if it creates it by @tilucasoli in #424
- chore: version packages by @github-actions in #426
Full Changelog: mix-1.4.3...mix-1.4.4
Mix 1.4.3 "Norman"
Packages Updates
mix
- v1.4.3
- FIX: Breakpoint utility merge exception (#421).
What's Changed
- ci: analysis improvements by @leoafarias in #412
- fix: breakpoint utility merge exception by @leoafarias in #421
Full Changelog: mix-1.4.2...mix-1.4.3
Mix 1.4.2 "Norman"
Packages Updates
mix
- v1.4.2
- FIX: FlexSpecWidget prioritizes the direction in spec (#414).
What's Changed
- fix: FlexSpecWidget prioritizes the direction in spec by @tilucasoli in #414
- chore: version packages by @github-actions in #418
Full Changelog: mix-1.4.1...mix-1.4.2
Mix 1.4.1 "Norman"
Packages Updates
mix
- v1.4.1
- FIX: Added missing widget state utilities (#411).
- FIX: Correct handling of individual border sides (#408).
- DOCS: improve mix theme data features explanations (#404).
mix_generator
- v0.2.2+1
- DOCS: improve mix theme data features explanations (#404).
remix
- v0.0.2+1
- DOCS: improve mix theme data features explanations (#404).
What's Changed
- chore: version packages by @github-actions in #402
- ci: improvements for publish pipeline by @tilucasoli in #405
- docs: improve mix theme data features explanations by @tilucasoli in #404
- chore: Removed base keyword from attributes by @leoafarias in #406
- docs: Add documentation for extract attributes by @tilucasoli in #403
- fix: Correct handling of individual border sides by @tilucasoli in #408
- refactor: Added missing utilities by @leoafarias in #409
- fix: Added missing widget state utilities by @leoafarias in #411
- chore: version packages by @github-actions in #413
Full Changelog: mix-v1.4.0...mix-1.4.1