Coder Social home page Coder Social logo

widdershin / cycle-color-picker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from raquelxmoss/cycle-color-picker

0.0 3.0 0.0 976 KB

A color picker component for Cycle.js

Home Page: https://raquelxmoss.github.io/cycle-color-picker/

License: MIT License

HTML 2.16% JavaScript 94.07% CSS 3.77%

cycle-color-picker's Introduction

Cycle Color Picker

A color picker component for Cycle.js. Cycle Color Picker is developed for usage within Cycle applications using xstream.

Color Picker in Action

Installation

$ npm install --save cycle-color-picker

Usage

Import Cycle Color Picker into your project. Cycle Color Picker takes in a stream of colors, and returns a stream of colors based on the user's input.

Check out the example

// index.js
import ColorPicker from 'cycle-color-picker';

Create a Color Picker component, passing it a stream of colors, as well as the DOM driver and Mouse driver.

You can pass colors to Cycle Color Picker as hex, rgb(a), hsl(a), or a named color (e.g. aliceblue). If no color is passed to Cycle Color Picker, the initial color will default to white. You'll also need to pass in a DOM driver.

const props$ = xs.of({color: '#C3209f'});
const colorPicker = ColorPicker({DOM, props$});

Cycle Color Picker returns DOM, and color$, which you can access in your app. To display Cycle Color Picker, pass its DOM into your view function.

Here's a simple example of a Color Picker that changes the background color of the app. To see how to use Cycle Color Picker with Cycle's isolate function, check out the example.

import xs from 'xstream';
import {run} from '@cycle/xstream-run';
import {div, makeDOMDriver} from '@cycle/dom';
import ColorPicker from 'cycle-color-picker';

const drivers = {
  DOM: makeDOMDriver('.app'),
};

function view (state) {
  const containerStyle = {background: state.color};

  return (
    div('.container', {style: containerStyle}, [state.vtree])
  );
}

function main ({DOM}) {
  const props$ = xs.of({color: '#C3209F'});
  const colorPicker = ColorPicker({DOM, props$});

  const state$ = xs.combine(
    colorPicker.DOM,
    colorPicker.color$
  );

  return {
    DOM: state$.map(([vtree, color]) => view({vtree, color}))
  };
}

run(main, drivers);

FAQ

Can I use multiple color pickers within my app?

Yes! Cycle Color Picker can be used with Cycle's isolate(). Read the documentation for isolate(), and check out the example.

Can I use this with RxJs?

Not yet! I'm hoping to work towards stream library diversity soon.

Thanks

  • To Nick Johnstone for help and advice, particularly with architecture concerns ๐Ÿ˜‡๐Ÿ‘
  • To React Color for heaps of inspiration, and for saving me from doing some maths ๐ŸŽจ๐Ÿ‘
  • To TinyColor for being such a great library for converting colors โœจ๐Ÿ‘

cycle-color-picker's People

Contributors

raquelxmoss avatar

Watchers

Nick Johnstone avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.