eo_color 0.0.12 copy "eo_color: ^0.0.12" to clipboard
eo_color: ^0.0.12 copied to clipboard

outdated

An elegant, object-oriented implementation of the Material Design color palettes and swatches; an alternative to the Flutter's built-in colors.

eo_color #

EO-Color logo

EO principles respected here DevOps By Rultor.com

pub license style: lint PDD status build codecov Hits-of-Code

EO-Color is an Elegant and Object-oriented implementation of the Material Design color palettes. It is intended to be used as:

  • an alternative to the Flutter's built-in colors
  • a base framework for more specific color packages

A key benefit of EO-Color is to improve the source code readability and maintainability by providing a declarative interface. For example, to get a light shade of grey, you just have to declare Grey.light().

Getting Started #

Like any object-oriented package, this one utilizes interfaces to define concepts such as color palettes and swatches. Therefore, it is no surprise that the two core interfaces are Palette and Swatch.

Palette interface #

It represents color palettes from which a color can be picked. Very often, classes provide named constructors in which the desired color is selected to be retrieved afterwards - via color property.

Material Design palette classes

These are classes whose name is the color they represent, such as "Grey". For example: Grey() represents the primary grey color, equivalent to the Flutter's cryptic Colors.grey.shade500; Grey.light()Colors.grey.shade200; Grey.veryDark()Colors.grey.shade900; and so on.

Palettes in action

import 'package:eo_color/palettes.dart';
import 'package:flutter/material.dart';

class Greyish extends StatelessWidget {

  static const _light = Grey.light();

  @override
  Widget build(BuildContext context) {
    return Container(
      color: _light.color,
    );
  }
}

Indexes by named constructors

Index Normal Accent
50 ultraLight
100 veryLight light
200 light ()
300 lighter
400 bitLighter darker
500 ()
600 bitDarker
700 darker dark
800 dark
900 veryDark

Supported palette colors

Swatch interface #

A color swatch is a collection of related colors such as the colors of the rainbow, shades of grey, etc. Its single property colors retrieves several colors at once as an Iterable<Color>. For instance, Greys().colors retrieves ten shades of grey, as defined by the Material Design standard.

Color Swatch Classes

These are classes whose name is the plural of a color, such as "Greys". For example: Greys().colors retrieves an Iterable<Color> containing ten shades of grey; the higher the index, the darker the color.

Swatch in action

import 'package:eo_color/swatches.dart';
import 'package:flutter/material.dart';

/// Rectangle filled with a gradient of ten shades of a Material Design color.
class RectGradient extends StatelessWidget {
  /// Rectangle filled with the given color swatch.
  const RectGradient(Swatch swatch, {Key? key})
      : _swatch = swatch,
        super(key: key);

  /// Rectangle filled with ten shades of grey.
  const RectGradient.grey({Key? key}) : this(const Greys(), key: key);

  // Material Design color swatch.
  final Swatch _swatch;

  @override
  Widget build(BuildContext context) {
    return Container(
      height: kToolbarHeight / 2,
      decoration: BoxDecoration(
        gradient: LinearGradient(
          end: Alignment.bottomLeft,
          begin: Alignment.topRight,
          colors: _swatch.colors.toList(growable: false),
        ),
      ),
    );
  }
}

Supported color swatches

Showcase application #

To run the showcase application:

cd example/
flutter run -d chrome

This should start the color palettes showcase in Chrome.

EO-Color-Showcase

References #

21
likes
0
pub points
19%
popularity

Publisher

verified publisherdartoos.dev

An elegant, object-oriented implementation of the Material Design color palettes and swatches; an alternative to the Flutter's built-in colors.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on eo_color