Todos los componentes (204)
Selector de color
Elección · ColorPicker · .amset-color
Qué es y cuándo usarlo
Elegir un color: un botón con la muestra y el valor escrito, y un panel con el área de saturación y brillo, la tira de tono, el campo hexadecimal y los colores guardados. Esas tripas están sueltas en ColorPanel (Panel de color), que tiene su propia ficha, para montarlas en un panel propio.
Cuándo usarlo
- Colores que elige quien usa la aplicación y que se guardan: el color de marca de la tienda, el de una etiqueta, el fondo de un cartel.
- El valor entra y sale como texto (
#A16207, o el formato que digaoutputFormat:hex,rgb,hsl,hsby sus versiones con alfa), que es lo que se guarda en una base de datos. Se controla convalueyonChange, o se deja suelto coninitialValue.alphaChannelañade la tira de transparencia. samplespone a mano los colores de siempre.sizeyvariantson los de todos los campos: el botón mide 30, 36 o 44 px, y el panel (área, hexadecimal y colores guardados) crece con él.disableddeja ver el color sin abrir el panel.
Cuándo no
- Los colores de la propia librería: son tokens en
oklch(), que este selector no entiende, y no se editan desde aquí. - Elegir el color de un producto entre los que hay:
VariantPicker.
Teclado: Tab llega al botón; Intro o Espacio abren el panel, y Escape lo cierra y devuelve el foco al botón. Dentro, el área y las tiras se mueven con las flechas y saltan con Re Pág y Av Pág; los colores guardados se recorren con las flechas (Inicio y Fin van a los extremos) y se eligen con Intro o Espacio; el hexadecimal se escribe.
Accesibilidad: el botón se llama con la etiqueta y el valor («Color de marca #A16207»), no con un cuadrado mudo; la ayuda (hint) y el error (error) se leen como su descripción. El área y las tiras son deslizadores que dicen su canal y su valor, y cada color guardado se anuncia con su nombre en palabras, no con su hexadecimal. Si el texto que llega en value no es un color, lo dice («No se entiende el color «pistacho»») en vez de pintar un negro y callarse. El botón lleva el anillo de 2 px de los campos, también con el panel abierto; el tirador y los colores guardados, el de los botones, y el elegido se marca con un aro. Con el dedo, los colores guardados y las tiras miden 44 px y el área crece.
Movimiento: el panel entra como todos los flotantes; el tirador crece al apuntarlo y al arrastrarlo, y los colores guardados crecen al apuntarlos y ceden al pulsarlos.
Aspecto fino: el botón, --amset-color-sample (el cuadrado de dentro) y las variables de los campos, --amset-field-*. El panel, en .amset-color__panel (va en el flotante, fuera del selector): --amset-color-panel-width, --amset-color-area-height, --amset-color-strip-height (la barra), --amset-color-strip-touch (la zona que se pulsa), --amset-color-thumb y --amset-color-sample-side (los colores guardados).
Cómo se ve
Así se verá:Pedido urgente#3b5bdb
<ColorPicker label="Color de la etiqueta" value={color} onChange={setColor} samples={guardados} />Props
Se importa con import { ColorPicker } from '@amset/ui'. Las obligatorias van marcadas.
| Prop | Tipo | Para qué sirve |
|---|---|---|
labelobligatoria | string | Obligatoria: un campo sin etiqueta visible no entra en la biblioteca. |
alphaChannel | boolean | Añade la tira de transparencia y saca el color con alfa. |
className | string | Se une a las clases de la biblioteca, no las sustituye. |
disabled | boolean | El boton no se pulsa y el panel no se abre; el color sigue a la vista. |
error | string | — |
hint | string | — |
initialValue | string | — |
onChange | (color: string) => void | Llega el color ya en `outputFormat`, para guardarlo tal cual. |
outputFormat | ColorFormat | — |
samples | readonly string[] | — |
size | "sm" | "md" | "lg" | — |
value | string | Controlado. Cualquier color en texto: `#2563eb`, `rgb(37 99 235)`, `hsl(217 91% 53%)`. |
variant | FieldVariant | — |
Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.
Mandos
Estas variables CSS son la forma de adaptarlo. Se declaran sobre el selector del componente, no en :root: la hoja las redeclara en la propia regla y una declaración en el mismo elemento gana siempre.
| Variable | Por defecto |
|---|---|
--amset-color-sample | calc(var(--amset-field-height) - 0.75rem) |
Cómo se cambia
.amset-color {
--amset-color-sample: ...;
}En el banco de pruebas
Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech:
