Skip to content

Releases: conceptadev/mix

Mix 1.5.3 "Nielsen"

06 Dec 13:48
8cc7d4a
Compare
Choose a tag to compare

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.

Widgetbook

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

New Contributors

Full Changelog: mix-1.5.2...mix-1.5.3

Mix 1.5.2 "Nielsen"

02 Oct 20:45
cc18c6f
Compare
Choose a tag to compare

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

Full Changelog: mix-1.5.1...mix-1.5.2

Mix 1.5.1 "Nielsen"

26 Sep 13:24
a7a0fcc
Compare
Choose a tag to compare

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"

17 Sep 17:52
Compare
Choose a tag to compare
Frame 37@2x

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 Styles 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

New Contributors

Full Changelog: mix-1.4.6...mix-1.5.0

Mix 1.4.6 "Norman"

27 Aug 12:57
46c351b
Compare
Choose a tag to compare

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

  • FIX: SpecModifiers were taking a long time to animate. (#457).
  • FIX: Shadow list animation (#445).

What's Changed

New Contributors

Full Changelog: mix-1.4.5...mix-1.4.6

Mix 1.4.5 "Norman"

09 Aug 22:25
0d9bc96
Compare
Choose a tag to compare

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

Full Changelog: mix-1.4.4...mix-1.4.5

Mix 1.4.4 "Norman"

02 Aug 23:24
92923c6
Compare
Choose a tag to compare

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"

01 Aug 16:35
06e8b62
Compare
Choose a tag to compare

Packages Updates

mix - v1.4.3

  • FIX: Breakpoint utility merge exception (#421).

What's Changed

Full Changelog: mix-1.4.2...mix-1.4.3

Mix 1.4.2 "Norman"

01 Aug 00:24
2f9c46f
Compare
Choose a tag to compare

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"

30 Jul 14:44
87e009e
Compare
Choose a tag to compare

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