Back to Hooks

useEyeDropper

useEyeDropper.tsx

useEyeDropper

UTILITY

// Color picker from screen elements using EyeDropper API

Quick Usage

const { isSupported, isOpen, color, error, open } = useEyeDropper();

Features

EyeDropper API
Color Selection
Browser Support
Error Handling

When to Use

Perfect for design tools, color palette generators, accessibility tools, or any app requiring color selection from screen elements.

Interactive Example

⚠️ EyeDropper API not supported
💡 Click the button to open your browser's native color picker tool. You can then click anywhere on your screen to select a color!

Complete Example

import { useEyeDropper } from '@usegrand/react-hokss';

function ColorPicker() {
  const { isSupported, isOpen, color, error, open } = useEyeDropper();

  const handlePickColor = async () => {
    if (isSupported) {
      await open();
    }
  };

  return (
    <div>
      <button 
        onClick={handlePickColor} 
        disabled={!isSupported || isOpen}
      >
        {isOpen ? 'Picking...' : 'Pick Color'}
      </button>
      
      {!isSupported && (
        <p>EyeDropper API not supported in this browser</p>
      )}
      
      {color && (
        <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>
          <div 
            style={{ 
              width: '50px', 
              height: '50px', 
              backgroundColor: color,
              border: '1px solid #ccc'
            }} 
          />
          <span>Selected: {color}</span>
        </div>
      )}
      
      {error && <p style={{ color: 'red' }}>Error: {error}</p>}
    </div>
  );
}

API Reference

Parameters

Returns

UseEyeDropperReturn

Object containing eye dropper state and control function

isSupported

Boolean indicating if EyeDropper API is supported

isOpen

Boolean indicating if color picker is currently open

color

Selected color in sRGBHex format (e.g., '#ff0000')

error

Error message if color selection failed

open

Function to open the native color picker