Cores Interativas
Escolha de cor por área, controle deslizante, amostra e seletor em célula, usados na personalização da Marca.
Quatro peças formam o conjunto de cores interativas do Admin: ColorArea (saturação e brilho num quadro), ColorSlider (um canal por vez), ColorSwatch (a amostra) e CellColorPicker (a célula que abre o seletor num popover). A página de Marca junta as quatro para a pessoa escolher a cor da loja. As três primeiras vêm do HeroUI v3 e o CellColorPicker do Pro; todas passam pela fachada @rastreio-x/ui, junto com parseColor.
import {
CellColorPicker,
ColorArea,
ColorSlider,
ColorSwatch,
parseColor,
} from "@rastreio-x/ui";
Área de cor
ColorArea mapeia dois canais nos eixos X e Y. No modelo hsb, o par usual é saturação e brilho; o matiz vem de um ColorSlider. O onChange entrega um objeto Color; use color.toString("hex") para gravar.
Controle deslizante
ColorSlider ajusta um canal (hue, saturation, brightness e outros). A trilha mostra o degradê do canal e o Thumb a posição. Sempre dê um aria-label com o nome do canal.
Amostra
ColorSwatch mostra uma cor, em cinco tamanhos (xs a xl) e dois formatos (circle e square). aria-label e colorName dão o nome da cor para leitores de tela.
Seletor em célula
CellColorPicker é uma linha com rótulo, valor e amostra que abre um popover. O conteúdo do popover é livre, e quase sempre é uma ColorArea com um ColorSlider. variant="secondary" usa o fundo secundário da superfície.
No Admin
Na página de Marca, o campo de cor é um TextField com o hex e um CellColorPicker com a área e o matiz. Aqui, o seletor completo.
Anatomia
| Peça | Partes |
|---|---|
ColorArea | ColorArea, ColorArea.Thumb |
ColorSlider | ColorSlider, .Track, .Thumb, .Output |
ColorSwatch | ColorSwatch |
CellColorPicker | CellColorPicker, .Trigger, .Label, .ValueDisplay, .Swatch, .Popover |
Propriedades
Área de cor (ColorArea):
Controle deslizante (ColorSlider):
Amostra (ColorSwatch):
Seletor em célula (CellColorPicker):
Gatilho (CellColorPicker.Trigger):
Popover (CellColorPicker.Popover):
Animações
O polegar acompanha o ponteiro sem animação própria, e o anel de foco aparece só com o teclado. O popover do CellColorPicker tem transição de entrada e saída herdada do HeroUI. O selo acima é indicativo (análise estática de CSS dos pacotes). A folha global da fachada reduz transições CSS a 0,01 ms com prefers-reduced-motion; o arraste não depende de animação e continua igual.
Acessibilidade
ColorAreaeColorSlidersão controles do React Aria: setas movem o polegar,PageUpePageDowndão passos maiores,HomeeEndvão aos extremos.- A área de cor expõe dois sliders (um por eixo), cada um com o valor em texto; mantenha
aria-labeldescritivo ("Saturação e brilho"). - A cor nunca é a única informação: o
CellColorPicker.ValueDisplaymostra o hex, e o campo de texto ao lado aceita o valor digitado. - Verifique o contraste do texto sobre a cor escolhida antes de aplicar: a Marca calcula o contraste por tema e ajusta o tom quando preciso.
Boas práticas
Faça
Evite
- Una
ColorArea(saturação e brilho) a umColorSliderde matiz: é o conjunto mais familiar. - Dê o nome da cor ao
ColorSwatch(aria-labeloucolorName). - Use
CellColorPickerquando o espaço é de formulário; useColorAreasolta só em telas dedicadas à cor. - Não use cor para representar estado; as cores do seletor são da Marca, não do sistema.