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

Добавление селектора цвета в 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
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро