Mix

Flutter styling without
the boilerplate.

Fluent, chainable styles. Reactive variants. Design tokens. Build design systems that scale.

Why Mix

Less nesting. More clarity.

Without Mix
Container(
  padding: EdgeInsets.all(16),
  decoration: BoxDecoration(
    color: Colors.blue,
    borderRadius: BorderRadius.circular(8),
  ),
  child: ...
)
With Mix
// Style can live outside the widget
final cardStyle = BoxStyler()
    .color(Colors.blue)
    .padding(.all(16))
    .borderRadius(.circular(8));

// Widget stays clean
Box(style: cardStyle, child: ...)
Features

Style composition, reactive variants and design tokens — in one package.

Mix uses Dart's type system to make styles composable and type-safe. Chain methods to build styles, compose them with variants, and let the framework handle the rest.

Intuitive styling

Define size, color, and shape in a single fluent chain. Each method returns a new style — readable, composable, and type-safe.

See the styling guide
Loading source...
Waiting...

Context-reactive variants

Declare hover behaviour inline — colour, scale, and shadow all react to state without conditional logic.

Explore variants
Loading source...
Waiting...

Powerful animations

Define keyframe timelines with multiple property tracks directly inside styles. No external animation controllers needed.

Animation docs
Loading source...
Waiting...
Three projects

One toolkit for styling, components and behaviour.

Each project keeps its own documentation. Search and navigation span all three.

Mix

Styling system for Flutter: utility-first styles, tokens, variants, and animation.

Remix

Flutter components built on Mix and Naked UI, with the Fortal design system.

Naked UI

Headless Flutter widgets: behavior, semantics, and interaction state without styling.

Get started

Add Mix to your project.

flutter pub add mix