Skip to Content
Mix 2.0 is in development! You can access the Mix 1.0 docs here.
DocsWidgetsStyleWidgets

StyleWidgets

Mix is designed to extend Flutter’s core capabilities by introducing a set of enhanced widgets known as StyleWidgets. These widgets seamlessly integrate with Flutter’s familiar workflow, but add powerful styling features that make it easier to build composable and expressive UIs.

At the heart of this system, StyleWidgets accept a Style object as a parameter. This object lets you define a wide range of visual attributes—such as color, padding, margin, and more—in a clear and composable way. Among these, the most commonly used is the Box widget, which is equivalent to Flutter’s Container.

Prebuilt StyleWidgets

To make styling even more convenient, Mix provides a collection of prebuilt StyleWidgets. These widgets are designed to cover the most common UI needs and each comes with its own style property, allowing you to apply Mix styles directly and consistently.

Box

As already mentioned, the Box widget is like Flutter’s Container, it can be styled with BoxStyler. Learn more here.

final style = BoxStyler() .size(100, 100) .color(Colors.blue); Box( style: style, );

FlexBox, ColumnBox and RowBox

These are equivalent to the Flex, Column and Row widgets wrapped with a Container, they can be styled with FlexBoxStyler. Learn more here.

final flexStyle = FlexBoxStyler() .mainAxisAlignment(MainAxisAlignment.spaceBetween) .color(Colors.blue) .direction(Axis.vertical); FlexBox( style: flexStyle, children: [Text('Item 1'), Text('Item 2'), Text('Item 3')], );

StyledText

StyledText is equivalent to Flutter’s Text widget, it can be styled with TextStyler. Learn more here.

final style = TextStyler() .color(Colors.blue) .fontSize(20); StyledText( 'Hello, World!', style: style, )

StyledIcon

StyledIcon is equivalent to Flutter’s Icon widget, it can be styled with IconStyler. Learn more here.

final iconStyle = IconStyler() .color(Colors.blue) .size(30); StyledIcon(icon: Icons.ac_unit, style: iconStyle);

StyledImage

StyledImage is equivalent to Flutter’s Image widget, it can be styled with ImageStyler. Learn more here.

final imageStyle = ImageStyler() .width(200) .height(150); StyledImage( image: NetworkImage('https://example.com/image.png'), style: imageStyle, );

Pressable and PressableBox

This is equivalent to Flutter’s GestureDetector, MouseRegion, and Focus widgets but with enhanced interaction state management and styling capabilities. Learn more here.

Pressable( onPress: () => print('Pressed'), onLongPress: () => print('Long pressed'), onFocusChange: (focused) => print('Focus: $focused'), autofocus: true, child: StyledText('Interactive Button'), );
PressableBox( style: BoxStyler() .color(Colors.blue) .paddingAll(16) .borderRounded(8), onPress: () => print('PressableBox pressed'), child: StyledText('Styled Button'), );