Гид по технологиям

Добавление селектора цвета в React с react-color

5 min read Frontend Обновлено 08 Jan 2026
React селектор цвета с react-color
React селектор цвета с react-color

Вид сверху: руки с маркерами выделяют и пишут на листах бумаги.

Добавление селектора цвета в React‑приложение упрощает выбор цвета и повышает удобство. Селекторы полезны в графических редакторах, в редакторах тем, кастомизации профиля и в любых интерфейсах с визуальной настройкой. Библиотека react-color предоставляет набор готовых виджетов и гибкие свойства для настройки.

Быстрый план действий

  1. Установите пакет через npm или yarn.
  2. Подключите нужный компонент селектора.
  3. Передавайте color и обработчики onChange / onChangeComplete.
  4. Добавьте управление состоянием и интеграцию с UI (Tailwind/CSS).

Добавление селектора цвета в приложение

react-color делает подключение простым. Сначала создайте базовое React‑приложение (create-react-app или Vite). Затем установите библиотеку:

npm i react-color

После установки импортируйте и используйте нужный компонент. Пример из оригинальной документации, который отрисует базовый SketchPicker:

import React from 'react'  
import { SketchPicker } from 'react-color'  
  
class Component extends React.Component {  
  render() {  
    return   
  }  
}  
  
export default Component

Этот код рендерит базовый селектор. Он показывает текущий HEX и позволяет выбирать цвет визуально.

Пример на функциональном компоненте

Ниже — тот же сценарий, но в современном стиле с хуком useState:

import React, { useState } from 'react'
import { SketchPicker } from 'react-color'

export default function ColorPickerExample() {
  const [color, setColor] = useState('#ff0000')

  const handleChange = (newColor) => {
    setColor(newColor.hex)
  }

  return (
    

Выбранный цвет: {color}

) }

Этот подход удобен для интеграции с формами и стейтом приложения.

Обзор react-color

react-color предоставляет несколько визуальных реализаций селектора:

  • SketchPicker — гибкий и популярный вариант.
  • ChromePicker — стильный, похож на Chrome DevTools.
  • Block, Twitter, Github — компактные варианты для простых задач.

Каждый компонент имеет набор props для управления размерами, цветом и поведением.

Приложение React в браузере с виджетом селектора цвета

Доступные props

Основные props, которые вы скорее всего будете применять:

  • width: ширина селектора в пикселях.
  • height: высота селектора в пикселях.
  • color: начальный цвет (HEX, rgb или объект).
  • onChange: вызывается при каждом изменении цвета.
  • onChangeComplete: вызывается после завершения изменения (например, отпускание мыши).

Пример использования props из исходного материала:

import React from 'react'  
import { SketchPicker } from 'react-color'  
  
class Component extends React.Component {  
  
  render() {  
    return (  
       console.log(color)}  
        onChangeComplete={(color, event)=> console.log(color)}  
        />  
      )  
  }  
}  
  
export default Component

Этот код отрисует селектор шириной 200px, с начальным цветом #ff0000 и двумя обработчиками для логирования изменений.

Дополнительные селекторы и опции

react-color включает и ChromePicker. Пример импорта:

import { ChromePicker } from 'react-color';

Использование ChromePicker с опцией disableAlpha:

Селектор цвета ChromePicker в приложении React

ChromePicker поддерживает те же props, что и SketchPicker, плюс дополнительные опции для управления альфа‑каналом и внешним видом.

Практические советы по UX и доступности

  • Показывайте текущий код цвета (HEX и/или rgba).
  • Позвольте вводить значение вручную в текстовом поле.
  • Для мобильных устройств предоставьте крупный tappable‑интерфейс.
  • Обеспечьте контраст фокуса и метки для клавиатурной навигации.
  • Если приложение поддерживает темы, храните выбранный цвет в глобальном стейте или backend.

Важная заметка: если альфа‑канал не нужен, отключайте его через disableAlpha для простоты и предсказуемости результата.

Интеграция с Tailwind и стилями

  • Встраивайте селектор в модальные окна или панели настроек.
  • Для Tailwind используйте утилиты для отступов и размеров: max-w, p, rounded.
  • Храните пользовательские цвета в виде CSS custom properties (–user-accent) для быстрой подстановки в стили.

Альтернативные подходы

  • React‑input[type=color] — нативный input с минимальным функционалом.
  • react-colorful — легковесная альтернатива с современными хуками.
  • Собственный компонент на canvas — когда нужен уникальный UX или производительность.

Когда использовать альтернативу: если вам нужен минимальный пакет и быстрая загрузка — выбирайте react-colorful или нативный input. react-color хорош для готовых, богатых UI‑виджетов.

Ментальные модели и эвристики

  • Если выбор цвета — второстепенная функция, предоставьте компактный Block/Twitter‑виджет.
  • Если пользователь должен точно подобрать цвет, отдайте SketchPicker и поле для ввода HEX.
  • Если требуется согласованность с браузером — используйте ChromePicker.

Критерии приёмки

  • Селектор корректно отображается в основных браузерах (Chrome, Firefox, Safari).
  • onChange и onChangeComplete вызываются и передают ожидаемые значения.
  • Можно задать начальный цвет и получить его обратно для сохранения.
  • Интерфейс доступен с клавиатуры и для экранных читалок (aria‑метки для полей ввода).

Тестовые сценарии

  • Выбор цвета мышью должен обновлять превью и поле с HEX.
  • Ввод валидного HEX вручную должен обновлять селектор.
  • Отключение альфа должно скрывать ползунок прозрачности.
  • Проверка на мобильных устройствах: касание и прокрутка работают корректно.

Сравнение вариантов в одном месте

ВариантРазмерУдобствоКогда выбирать
SketchPickerСреднийВысокоеТочная настройка и оттенки
ChromePickerСреднийУдобноИнспектор‑подобный UX
Block/TwitterМелкийБыстроПростая палитра
react-colorfulОчень лёгкийБазовоеБыстрая загрузка

Короткий чеклист разработчика

  • Установить react-color.
  • Подключить нужный Picker в компонент.
  • Добавить управление состоянием цвета.
  • Обработать onChange и onChangeComplete.
  • Добавить поддержку ручного ввода цвета.
  • Проверить доступность и мобильность.

Справочник терминов

  • SketchPicker — визуальный селектор с палитрой и вводом цвета.
  • ChromePicker — селектор в стиле Chrome DevTools.
  • alpha — канал прозрачности цвета.

Краткий итог

Добавление селектора цвета через react-color ускоряет реализацию настроек цвета и улучшает UX. Библиотека предлагает готовые компоненты, настраиваемые props и простую интеграцию с React‑стейтом. При необходимости выбирайте более лёгкие альтернативы или нативный input для оптимизации загрузки.

Summary

  • Подключите npm i react-color.
  • Используйте SketchPicker или ChromePicker по задаче.
  • Реализуйте onChange и сохранение выбранного цвета.
  • Проверьте доступность и мобильность интерфейса.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить запись трофеев на PS5
Гайды

Отключить запись трофеев на PS5

Как делать хорошие фотографии для блога
Фотография

Как делать хорошие фотографии для блога

Facebook Dating — как работает и как настроить
Знакомства

Facebook Dating — как работает и как настроить

Безопасность при онлайн‑знакомствах — практическое руководство
Онлайн-знакомства

Безопасность при онлайн‑знакомствах — практическое руководство

Безопасный профиль в онлайн‑знакомствах
Конфиденциальность

Безопасный профиль в онлайн‑знакомствах

Meetville — обзор сайта знакомств
Обзоры

Meetville — обзор сайта знакомств