Getting Started

Blossom Color Picker is a blooming, animated color picker for modern web applications. It is available as a standalone vanilla JavaScript class and as thin wrappers for React, Vue, Svelte, and Angular.

Installation

Framework Wrappers

Select your framework and package manager:

npm install @dayflow/blossom-color-picker-react
pnpm add @dayflow/blossom-color-picker-react
yarn add @dayflow/blossom-color-picker-react
bun add @dayflow/blossom-color-picker-react

Vanilla JavaScript

If you want to use the standalone core package directly, install @dayflow/blossom-color-picker:

npm install @dayflow/blossom-color-picker
pnpm add @dayflow/blossom-color-picker
yarn add @dayflow/blossom-color-picker
bun add @dayflow/blossom-color-picker

Import Styles

The React, Vue, Svelte, and Angular packages already import the shared stylesheet for you.

If you are using the standalone vanilla JavaScript package, import the styles manually:

// In App.tsx, main.ts, or your entry file
import '@dayflow/blossom-color-picker/styles.css';

Basic Usage

Framework Wrappers

Select your framework to see how to integrate Blossom Color Picker into your application:

import { useState } from 'react';
import { BlossomColorPicker } from '@dayflow/blossom-color-picker-react';

function App() {
  const [color, setColor] = useState({
    hue: 330,
    saturation: 70,
    alpha: 100,
    layer: 'outer' as const,
  });

  return (
    <BlossomColorPicker
      value={color}
      onChange={setColor}
    />
  );
}
<template>
  <BlossomColorPicker
    :value="color"
    @change="handleChange"
  />
</template>

<script setup>
import { ref } from 'vue';
import { BlossomColorPicker } from '@dayflow/blossom-color-picker-vue';

const color = ref({
  hue: 330,
  saturation: 70,
  alpha: 100,
  layer: 'outer',
});

function handleChange(nextColor) {
  color.value = nextColor;
}
</script>
import { Component } from '@angular/core';
import {
  BlossomColorPickerComponent,
  type BlossomColorPickerColor,
} from '@dayflow/blossom-color-picker-angular';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [BlossomColorPickerComponent],
  template: `
    <blossom-color-picker
      [value]="color"
      (colorChange)="onColorChange($event)"
    />
  `
})
export class AppComponent {
  color = {
    hue: 330,
    saturation: 70,
    alpha: 100,
    layer: 'outer' as const,
  };

  onColorChange(nextColor: BlossomColorPickerColor) {
    this.color = nextColor;
  }
}
<script>
import { BlossomColorPicker } from '@dayflow/blossom-color-picker-svelte';

let color = {
  hue: 330,
  saturation: 70,
  alpha: 100,
  layer: 'outer',
};

function handleChange(nextColor) {
  color = nextColor;
}
</script>

<BlossomColorPicker
  value={color}
  onchange={handleChange}
/>

Vanilla JavaScript

import { BlossomColorPicker } from '@dayflow/blossom-color-picker';
import '@dayflow/blossom-color-picker/styles.css';

const picker = new BlossomColorPicker(document.getElementById('picker'), {
  onChange: color => console.log(color.hex),
});

Next Steps

On this page