Generador de filtros CSS

Ajusta las propiedades filter de CSS con deslizadores y visualiza el resultado en tiempo real. Copia el código generado.

Controles de filtro

Vista previa

Vista previa de los filtros

CSS generado


      
    

Cómo usar

  1. Ajusta los deslizadores de filtro: usa los deslizadores para controlar desenfoque, brillo, contraste, saturación, rotación de tono, opacidad, escala de grises, sepia e inversión.
  2. Previsualiza en tiempo real: la imagen o el elemento de ejemplo se actualiza al instante cuando mueves un deslizador.
  3. Copia el CSS: el valor completo de la propiedad filter (p. ej. filter: brightness(1.2) contrast(1.5) saturate(0.8)) está listo para pegarse en tu hoja de estilo.

¿Por qué usar el generador CSS de filtros?

Los filtros CSS permiten aplicar efectos de tratamiento de imagen (desenfoque, contraste, brillo, desplazamientos de color) directamente en el navegador sin Photoshop ni software de edición de imagen. Funcionan sobre imágenes, vídeos y cualquier elemento HTML. Construir la cadena de la propiedad filter a mano exige conocer los nombres exactos de las funciones y los rangos de valores válidos. Este generador ofrece deslizadores intuitivos con retroalimentación visual para obtener exactamente el resultado que quieres.

Funcionalidades

Preguntas frecuentes

¿Se pueden aplicar los filtros CSS a vídeos?

Sí. La propiedad filter CSS funciona en cualquier elemento, incluidos <video>, <img>, <div> y <canvas>. Aplicado a un vídeo, el filtro se renderiza en tiempo real durante la reproducción.

¿Cuál es la diferencia entre filter y backdrop-filter?

filter aplica el efecto al propio elemento y a todos sus hijos. backdrop-filter aplica el efecto al contenido situado detrás (bajo) el elemento, se usa habitualmente para efectos de vidrio esmerilado.

¿Los filtros CSS afectan al rendimiento?

Los filtros con desenfoque o compositing complejo pueden ser exigentes para la GPU. Para filtros animados, asegúrate de que el elemento esté en su propia capa de composición (añade transform: translateZ(0) como pista). Los filtros estáticos sobre imágenes e iconos tienen un impacto mínimo.

Lo que CSS filter realmente hace

La propiedad CSS filter aplica efectos gráficos (desenfoque, ajuste de contraste, cambio de color, sombra paralela) a un elemento y sus hijos antes de que el navegador lo pinte en la pantalla. El procesamiento ocurre completamente en el pipeline de renderizado del navegador, generalmente acelerado por GPU, sin JavaScript involucrado. Los efectos son solo visuales: el HTML subyacente, el archivo que una imagen referencia y el diseño permanecen sin cambios. Una fotografía mostrada con filter: grayscale(1) aún tiene sus colores originales en el archivo; el navegador convierte a escala de grises solo en la visualización.

CSS filter expone diez funciones: blur(px) para desenfoque gaussiano, brightness(n) y contrast(n) para ajustes tonales, saturate(n) para intensidad de color, hue-rotate(deg) para desplazar la rueda de color, opacity(n) para transparencia, grayscale(n) y sepia(n) para efectos de desaturación, invert(n) para salida negativa, y drop-shadow(...) para sombras conscientes de la forma (a diferencia de box-shadow, drop-shadow sigue la forma renderizada real incluyendo transparencia, ideal para sombras en iconos o imágenes PNG con bordes recortados). Las funciones se encadenan: filter: brightness(1.2) contrast(1.3) saturate(0.9) aplica las tres en secuencia.

Por qué esto importa para el diseño web moderno: hace una década, ajustar el brillo, el tono o la saturación de las imágenes para la consistencia del diseño requería preprocesar cada imagen en Photoshop y reexportar. CSS filter trae los mismos ajustes al tiempo de ejecución, aplicados de forma no destructiva. Puedes servir una sola imagen y presentarla de diferentes maneras según el tema, el estado de hover o la preferencia del usuario. También puedes usar filtros para accesibilidad: una foto en escala de grises invertida como marcador de posición, o una superposición de imagen oscurecida para legibilidad de texto con alto contraste. La compensación es el rendimiento para algunos filtros (especialmente el desenfoque) y el hecho de que los filtros también afectan a los hijos, lo que puede cascadear inesperadamente.

Cómo funciona esta herramienta tras bambalinas

Cada control deslizante en la herramienta está vinculado a una sola función de filtro. Cuando mueves un deslizador, JavaScript lee el valor, construye la cadena de función de filtro con ese valor (e.g., brightness(1.4)), y concatena todas las funciones activas en una sola cadena CSS filter. Esa cadena se aplica como un estilo en línea en la imagen de vista previa, produciendo retroalimentación visual inmediata mientras el navegador vuelve a pintar con el nuevo filtro. No se procesan datos de imagen en JavaScript: los cálculos reales a nivel de píxel ocurren dentro del motor de renderizado del navegador, generalmente en la GPU.

El CSS generado mostrado en la caja de código es la misma cadena aplicada a la vista previa. Haz clic en «Copiar CSS» y la herramienta escribe esa cadena en tu portapapeles usando la API moderna navigator.clipboard.writeText(). La cadena está lista para pegar en el atributo style de cualquier elemento o cualquier declaración de clase en tu hoja de estilo. La herramienta también soporta cargar tu propia imagen: elige un archivo y se convierte en una URL blob: temporal en el navegador, nunca subida a ningún lugar, y el filtro se previsualiza en tu imagen real para que puedas marcar el aspecto exacto para tu contenido.

El comportamiento de reinicio es por filtro: cada deslizador tiene su propio botón de reinicio que devuelve solo ese filtro a su valor sin efecto (1 para multiplicadores, 0deg para hue-rotate, 0px para blur). El botón «Restablecer todo» devuelve cada deslizador a neutral simultáneamente. El estado de la herramienta vive solo en memoria; refresca la página y tu combinación de filtros se ha ido. Ningún servidor almacena tus valores de filtro elegidos, ningún análisis rastrea qué combinaciones pruebas. La herramienta es un patio de juegos CSS sin estado, soportado por anuncios.

Breve historia de los filtros CSS

Flujos del mundo real

Trampas comunes y lo que significan

Privacidad: todo sucede en tu navegador

Las herramientas generadoras de CSS vienen en dos sabores: páginas HTML simples corriendo JavaScript del lado del cliente (privadas, rápidas) y editores en la nube que guardan tus proyectos (colaborativos pero con compensaciones de privacidad). Esta herramienta es del primer tipo. Tus valores de deslizador, tu CSS generado, e incluso cualquier imagen que subas para previsualizar permanecen completamente en tu sesión del navegador. Refresca la página y el estado se va a menos que hayas copiado el CSS primero o guardado una captura de pantalla.

La función «subir tu propia imagen» merece una nota de privacidad: cuando eliges un archivo, el navegador crea una URL blob: local apuntando a la memoria, y la vista previa muestra tu imagen con el filtro aplicado. No se hace ninguna solicitud a ningún servidor. Abre la pestaña de Red del navegador mientras subes; verás cero tráfico saliente. La imagen existe solo en la memoria de la pestaña de tu navegador y se borra cuando cierras la pestaña. Para imágenes confidenciales (diseños propietarios, escaneos médicos, capturas protegidas por NDA), esta es la propiedad de privacidad que importa.

Cuándo otra herramienta es la opción correcta

Más preguntas frecuentes

¿Puedo animar los cambios de filtro CSS suavemente?

Sí, con advertencias. La propiedad filter es animable en CSS, y las transiciones entre dos cadenas de filtro con las mismas funciones en el mismo orden interpolan suavemente (blur(0px) brightness(1) a blur(10px) brightness(1.5) funciona). Agregar o quitar funciones a mitad de transición salta abruptamente. Para animación multi-filtro suave, lista cada función que quieras transicionar en los estados de inicio y fin, usando valores neutrales (brightness(1), saturate(1), blur(0px)) donde no quieras que se aplique un filtro específico.

¿CSS filter funciona en imágenes de fondo?

Sí. CSS filter se aplica al elemento entero incluyendo su imagen de fondo, contenido y elementos hijos. Si quieres filtrar solo la imagen de fondo pero no el contenido en primer plano, el enfoque típico es usar un elemento hijo separado para el fondo (e.g., un pseudo-elemento ::before posicionado) con el filtro aplicado, luego colocar el contenido como un hermano sin filtrar encima. La propiedad backdrop-filter también es útil cuando quieres filtrar lo que es visible detrás de un elemento transparente.

¿Los filtros CSS son indexados por motores de búsqueda?

Los filtros CSS son puramente visuales y no cambian el contenido HTML. Los motores de búsqueda indexan el contenido subyacente (texto alt de la imagen, texto circundante) como si el filtro no se hubiera aplicado. Una imagen en escala de grises con filter: grayscale(1) todavía es indexada como la imagen a color original basada en su archivo y texto alt. Esto generalmente es lo que quieres: sin efectos secundarios del filtro en SEO o lectores de pantalla.

¿Por qué drop-shadow se ve diferente de box-shadow?

Box-shadow dibuja una sombra alrededor de la caja rectangular de un elemento, ignorando cualquier transparencia. Drop-shadow (filter) dibuja una sombra que sigue la forma renderizada real, incluyendo regiones transparentes. Para un icono SVG con bordes recortados o un PNG con transparencia, drop-shadow produce una sombra consciente de la forma que coincide con el contorno visible. Box-shadow en el mismo elemento mostraría una sombra rectangular alrededor del cuadro delimitador, lo que se ve mal. Usa drop-shadow para sombras conscientes de la forma, box-shadow para elementos rectangulares.

¿Cuál es la diferencia entre opacity y filter: opacity()?

En la mayoría de los navegadores producen resultados visualmente idénticos. La diferencia técnica: opacity es una propiedad de nivel superior, mientras que filter: opacity() es parte de la cadena de filtros y se compone con otros filtros. Si tienes filter: blur(5px) opacity(0.5), ambos se aplican juntos como una sola operación GPU. Usar opacity fuera de la cadena de filtros funciona igual en la mayoría de los casos. Quédate con opacity para transparencia independiente; usa filter: opacity() solo cuando encadenes con otros filtros.

¿Puedo reiniciar todos los filtros rápidamente?

Sí. Establece filter: none para eliminar todos los filtros en una declaración. Esta es la forma más limpia de reiniciar, especialmente para estados de hover donde quieres eliminar todos los efectos de filtro al salir del hover. Alternativamente, establece cada función de filtro a su valor neutral: filter: brightness(1) contrast(1) saturate(1) blur(0px) hue-rotate(0deg) grayscale(0) sepia(0) invert(0) opacity(1) es funcionalmente equivalente a filter: none pero más verboso.

Herramientas relacionadas

Generador de degradado CSS Convertidor de colores Filtros y efectos de imagen Generador de patrones CSS