FLUTTER ECOSYSTEM

rxlabz/cyclop

A Flutter color palette with eyedropper, HSL, RGB and Material colors

cyclop project cover
Stars
119
Forks
39
Last push (UTC)
Sep 29, 2023
Project status
Active
Erick Ghaumez GitHub avatar
GITHUB User

Erick Ghaumez ↗

Idea, Design, Code... test, learn, share and 🔁 Freelance Software UIngineer & Trainer #Flutter #Dartlang

RX LabzLyon, FranceOfficial website ↗
LanguagesDartHTMLSwiftShellKotlinObjective-C

Technical topics

Packages published by this repository

Dependencies used

Dependency list 6 items

Original README

English project snapshot. Visit GitHub for the latest content.

Expand / collapse project README

Cyclop Pub Version

Cyclop logo

A flutter colorpicker with an eyedropper tool. Works on mobile, desktop & web ( CanvasKit)

Demo

Desktop & tablet Mobile
Cyclop desktop eyedropper Cyclop onmobile
Material HSL RVB Custom
Cyclop material Cyclop hsl Cyclop hsl Cyclop hsl
Light theme Dark theme
Cyclop light Cyclop dark
Eyedropper

Select a color from your Flutter mobile or desktop screen.

Cyclop eye dropper

To use the eyedropper you need to wrap the app in the EyeDrop widget.

@override
  Widget build(BuildContext context) {
    return EyeDrop(
      child: Builder(
        builder: (context) => Scaffold(
          backgroundColor: backgroundColor,
          body: Container(
            child: ColorButton(
              key: Key('c1'),
              color: color1,
              config: ColorPickerConfig(enableEyePicker = true),
              size: 32,
              elevation: 5,
              boxShape: BoxShape.rectangle, // default : circle
              swatches: swatches,
              onColorChanged: (value) => setState(() => color1 = value),
            ),
          ),
        ),
      ),
    );
  }
Customisable
  • disable opacity slider
  • disable eye dropping
  • disable swatch library
  • Circle or Square color buttons
ColorButton(
  key: Key('c1'),
  color: color1,
  config: ColorPickerConfig(
    this.enableOpacity = true,
    this.enableLibrary = false,
    this.enableEyePicker = true,
  ),
  boxShape: BoxShape.rectangle, // default : circle
  size: 32,
  swatches: swatches,
  onColorChanged: (value) => setState( () => color1 = value ),
 );

ColorButton(
  key: Key('c2'),
  color: color2,
  config: ColorPickerConfig(enableEyePicker: false),
  size: 64,
  swatches: swatches,
  onColorChanged: (value) => setState( () => color2 = value ),
  onSwatchesChanged: (newSwatches) => setState(() => swatches = newSwatches),
 );