Elimina fondos de imágenes directamente en el navegador con WebGPU o WebAssembly, sin subirlas a ningún servidor.
lokesh/color-thief
Biblioteca JavaScript que extrae los colores dominantes y las paletas de colores de imágenes en el navegador y en Node.js.
- Estrellas
- 13,658
- Forks
- 1,310
- Issues abiertos
- 0
- Último commit
- hace 3 meses
¿Qué es?
Color Thief recibe una imagen (un elemento img, un canvas, un fotograma de video, una ruta de archivo o un Buffer en Node) y devuelve su color dominante, una paleta de varios colores o muestras semánticas como Vibrant, Muted, DarkVibrant y LightMuted. Cada resultado es un objeto Color con funciones auxiliares para obtener valores hex, RGB, HSL, OKLCH y CSS, además de recomendaciones de color para el texto y relaciones de contraste WCAG.
La misma API funciona en el navegador y en Node.js, con funciones síncronas para el navegador y funciones asíncronas para ambos entornos. También ofrece extracción progresiva de paletas, extracción en tiempo real de video o canvas mediante observe(), muestreo de regiones con coordenadas fraccionarias y salida Display P3 para imágenes de gama amplia. La extracción se puede cancelar con un AbortSignal y la biblioteca no tiene dependencias en tiempo de ejecución. Incluye tipos de TypeScript.
La CLI complementaria, colorthief-cli, muestra los colores como muestras ANSI, JSON o propiedades personalizadas de CSS. En Node, la decodificación de imágenes depende de sharp.
Funciones clave
- 01Extrae el color dominante, una paleta de varios colores o muestras semánticas de una imagen.
- 02Ofrece la misma API en el navegador y en Node.js, con variantes síncronas y asíncronas.
- 03Actualiza paletas en tiempo real a partir de elementos video, canvas o img mediante observe().
- 04Muestrea una región de una imagen usando coordenadas fraccionarias independientes de la resolución.
- 05Devuelve objetos Color con valores hex, RGB, HSL, OKLCH y CSS, además de relaciones de contraste WCAG.
- 06Incluye una CLI que muestra muestras ANSI, JSON o variables CSS.
Casos de uso
- Elegir un color de fondo o de acento que combine con la foto de un producto o de un álbum en una página web.
- Crear efectos de iluminación ambiental o degradados que sigan la reproducción de un video.
- Comprobar la accesibilidad del contraste del texto frente a los colores dominantes de una imagen.
- Generar variables de color CSS por lotes a partir de imágenes en un script de compilación.
Temas
Preguntas frecuentes
- ¿Qué es color-thief?
- Biblioteca JavaScript que extrae los colores dominantes y las paletas de colores de imágenes en el navegador y en Node.js. Color Thief recibe una imagen (un elemento img, un canvas, un fotograma de video, una ruta de archivo o un Buffer en Node) y devuelve su color dominante, una paleta de varios colores o muestras semánticas como Vibrant, Muted, DarkVibrant y LightMuted. Cada resultado es un objeto Color con funciones auxiliares para obtener valores hex, RGB, HSL, OKLCH y CSS, además de recomendaciones de color para el texto y relaciones de contraste WCAG.
- ¿color-thief es gratuito? ¿Qué licencia tiene?
- color-thief es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿color-thief sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de color-thief fue el 3 ago 2026.
- ¿Para qué puedo usar color-thief?
- Elegir un color de fondo o de acento que combine con la foto de un producto o de un álbum en una página web. Crear efectos de iluminación ambiental o degradados que sigan la reproducción de un video. Comprobar la accesibilidad del contraste del texto frente a los colores dominantes de una imagen. Generar variables de color CSS por lotes a partir de imágenes en un script de compilación.
- ¿Dónde consigo color-thief?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lokesh/color-thief
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Reimplementación en TypeScript del cliente ADB que funciona en navegadores Chromium, Node.js y Electron, y se conecta a dispositivos Android mediante WebUSB.
Framework personalizable en TypeScript para crear editores de texto enriquecido sobre React, con un núcleo sin esquema y basado en plugins.
Un framework de React para crear aplicaciones web full-stack, con herramientas basadas en Rust que aceleran las compilaciones.
Una versión de FFmpeg en WebAssembly y JavaScript que permite grabar, convertir y transmitir video y audio desde el navegador.
Toolkit de JavaScript para renderizar y editar diagramas de procesos BPMN 2.0 en el navegador.