

<InteractiveDemo
  name="color-editor"
  controls="[
  {
    type: 'boolean',
    name: 'showAlphaChannel',
    defaultValue: false,
  },
  {
    type: 'boolean',
    name: 'showFormatSelector',
    defaultValue: true,
  },
]"
/>

## Installation [#installation]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npx shadcn@latest add @dotui/color-editor
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm dlx shadcn@latest add @dotui/color-editor
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn dlx shadcn@latest add @dotui/color-editor
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bun x shadcn@latest add @dotui/color-editor
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Usage [#usage]

Use a color editor to let users adjust a color with a saturation/brightness area, channel sliders, and format-aware fields. Standalone, it manages its own color value; inside a [Color Picker](/docs/components/color-picker), it edits the picker's color instead.

```tsx
import { ColorEditor } from '@/components/ui/color-editor'
```

```tsx
<ColorEditor defaultValue="#5100FF" />
```

### Composition [#composition]

The default children render an area row and a fields row. Pass your own children to reorder, drop, or extend them.

```tsx
import {
  ColorEditor,
  ColorEditorArea,
  ColorEditorFields,
} from '@/components/ui/color-editor'
```

```tsx
<ColorEditor>
  <ColorEditorArea showAlphaChannel />
  <ColorEditorFields defaultFormat="rgb" />
</ColorEditor>
```

## Examples [#examples]

<Examples className="sm:grid-cols-2">
  <Example name="color-editor/demos/alpha-channel" title="Alpha channel" />

  <Example name="color-editor/demos/with-color-picker" title="In a color picker" />

  <Example name="color-editor/demos/composition" title="Custom composition" />
</Examples>

## API Reference [#api-reference]

### ColorEditor [#coloreditor]

<Reference name="color-editor" />

### ColorEditorArea [#coloreditorarea]

<Reference name="color-editor-area" />

### ColorEditorFields [#coloreditorfields]

<Reference name="color-editor-fields" />
