wandres.dev
Gráficos 2D y visualización

Domina Canvas y SVG
hasta nivel dios

Los dos modelos del gráfico 2D: el contexto de canvas, píxeles y composición, SVG a fondo, filtros, y la visualización de datos.

La ruta

32 niveles, de novato a dios

Cada nivel construye sobre el anterior. Sin saltos, sin huecos.

Ontología Nivel 0 · El mapa del gráfico 2D en la web

Canvas frente a SVG frente a CSS: los tres modelos de gráfico, qué resuelve cada uno, y el mapa del territorio.

Mapa mentalCanvas vs SVGOntología

Raster y vector Nivel 1 · Los dos modelos de imagen

La diferencia profunda entre pintar píxeles y describir formas, y las consecuencias en escalado, memoria y accesibilidad.

RasterVectorModelo

Canvas: el contexto 2D Nivel 2 · Empezar a pintar

getContext, el sistema de coordenadas, el modo inmediato, y por qué el canvas no recuerda lo que dibujaste.

getContextInmediatoCoordenadas

Resolución y DPI Nivel 3 · El canvas nítido en pantallas retina

La diferencia entre tamaño CSS y tamaño de buffer, devicePixelRatio, y el patrón correcto de redimensionado.

DPRBufferNitidez

Formas y rutas Nivel 4 · El modelo de path

beginPath, moveTo, lineTo, las curvas de Bézier y arc, y por qué el orden de las llamadas importa.

PathBézierarc

Trazo y relleno Nivel 5 · Estilos de línea y pintura

lineWidth, cap y join, el patrón de guiones, fillStyle con gradientes y patrones, y la regla de relleno.

strokefillevenodd

Transformaciones Nivel 6 · La matriz del contexto

translate, rotate, scale y transform, la pila con save y restore, y pensar en espacios locales.

Matrizsave/restoreEspacios

Texto en canvas Nivel 7 · Medir y componer

fillText, measureText y sus métricas completas, la línea base, y componer texto multilínea a mano.

fillTextmeasureTextBaseline

Imágenes Nivel 8 · drawImage y sus tres formas

Las tres firmas, el recorte, el sprite sheet, ImageBitmap y la decodificación fuera del hilo principal.

drawImageSpritesImageBitmap

Píxeles Nivel 9 · ImageData y el acceso directo

getImageData y putImageData, el array de píxeles, los filtros a mano, y el coste de leer del canvas.

ImageDataFiltrosCoste

Composición Nivel 10 · globalCompositeOperation

Los operadores de Porter-Duff, los modos de fusión, el recorte con clip, y los efectos que desbloquean.

CompositePorter-Duffclip

Path2D y OffscreenCanvas Nivel 11 · Reutilizar y salir del hilo

Path2D como objeto reutilizable, OffscreenCanvas en un worker, y transferControlToOffscreen.

Path2DOffscreenWorker

Interacción en canvas Nivel 12 · Hit testing sin DOM

isPointInPath, el hit testing por color, mantener un modelo de escena, y la accesibilidad del canvas.

Hit testEscenaA11y

Animación en canvas Nivel 13 · El bucle y el estado

La estructura update y draw, el delta time, el borrado parcial para estelas, y la interpolación.

BucleDeltaEstelas

Rendimiento del canvas Nivel 14 · Lo que realmente cuesta

Los cambios de estado, el canvas de caché, dibujar solo lo sucio, y cuándo el canvas deja de ser la respuesta.

EstadoCachéDirty rect

SVG: el documento Nivel 15 · Un lenguaje, no un formato

SVG es XML en el DOM: el viewBox, preserveAspectRatio, el sistema de coordenadas y las unidades.

viewBoxXMLDOM

Formas SVG Nivel 16 · El catálogo de elementos

rect, circle, ellipse, line, polyline, polygon: sus atributos y cuándo usar cada uno frente a path.

FormasAtributosCatálogo

El elemento path Nivel 17 · El mini-lenguaje de la d

Los comandos M, L, H, V, C, S, Q, T, A y Z, mayúsculas frente a minúsculas, y leer una d a ojo.

pathComandosArcos

Estilar SVG Nivel 18 · Presentación, CSS y herencia

Atributos de presentación frente a CSS, qué se puede estilar, las variables CSS en SVG y la especificidad.

fillCSSHerencia

Reutilizar en SVG Nivel 19 · defs, use, symbol y sprites

El patrón de sprite SVG, use y su shadow DOM, symbol con su propio viewBox, y los límites del estilado.

usesymbolSprite

Gradientes y patrones Nivel 20 · Rellenos complejos

linearGradient y radialGradient, las unidades de gradiente, pattern, y las referencias por id.

Gradientepatternunits

Recorte y máscara Nivel 21 · clipPath y mask en SVG

La diferencia entre recortar y enmascarar, las unidades de contenido, y el uso desde CSS.

clipPathmaskUnidades

Filtros SVG Nivel 22 · El pipeline de primitivas

feGaussianBlur, feColorMatrix, feTurbulence, feDisplacementMap y encadenar primitivas para efectos reales.

filterfeTurbulenceCadena

Texto en SVG Nivel 23 · text, tspan y textPath

Posicionar texto, tspan para tramos, texto sobre una ruta, y el problema de las fuentes en SVG exportado.

texttextPathFuentes

SVG y accesibilidad Nivel 24 · Gráficos que se pueden leer

title y desc, los roles ARIA, cuándo es decorativo, y el patrón para iconos y para gráficas de datos.

ARIAtitleIconos

Optimizar SVG Nivel 25 · SVGO y el flujo desde el diseño

Qué produce Figma e Illustrator, qué quitar sin romper, la precisión decimal, y el SVG inline frente al externo.

SVGOFigmaInline

SVG generado Nivel 26 · Construir gráficos por código

Crear SVG desde JS con el namespace correcto, generar rutas por datos, y el patrón de componente de gráfico.

createElementNSDatosGenerar

Visualización de datos I Nivel 27 · Escalas y ejes

El concepto de escala, mapear dominio a rango, los tipos de escala, y construir un eje a mano.

EscalasDominioEjes

Visualización de datos II Nivel 28 · D3 y el modelo de datos

La filosofía de D3, el join de datos, los generadores de forma, y usar D3 solo para la matemática.

D3JoinGeneradores

Visualización de datos III Nivel 29 · Elegir la representación

Qué gráfico para qué pregunta, los errores clásicos de percepción, el color en datos y el eje truncado.

GráficosPercepciónHonestidad

Canvas o SVG Nivel 30 · El árbol de decisión

El umbral de elementos, la interacción, la accesibilidad, la impresión, y el enfoque híbrido.

DecisiónUmbralHíbrido

Nivel Dios Nivel 31 · Síntesis del gráfico 2D

La arquitectura de un sistema de visualización completo, el mapa de decisiones, y el futuro del 2D en la web.

SíntesisArquitecturaFuturo
160lecciones
32niveles
0→∞de cero a dios

¿Listo para dominar Canvas y SVG?

Empieza por los fundamentos y sube nivel a nivel hasta el dominio total.

Comenzar el camino →