<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Con Criterio: Herramientas]]></title><description><![CDATA[Demos interactivas de herramientas reales: cómo funcionan, cuándo usarlas y cuándo no. Construidas y probadas en contexto de desarrollo real.]]></description><link>https://www.concriterio.blog/s/herramientas</link><image><url>https://substackcdn.com/image/fetch/$s_!_0cB!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7352102a-975a-44e6-8c38-2cce1ed25978_512x512.png</url><title>Con Criterio: Herramientas</title><link>https://www.concriterio.blog/s/herramientas</link></image><generator>Substack</generator><lastBuildDate>Wed, 08 Apr 2026 10:17:19 GMT</lastBuildDate><atom:link href="https://www.concriterio.blog/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Pol Marzà]]></copyright><language><![CDATA[es]]></language><webMaster><![CDATA[hazloconcriterio@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hazloconcriterio@substack.com]]></itunes:email><itunes:name><![CDATA[Pol Marzà]]></itunes:name></itunes:owner><itunes:author><![CDATA[Pol Marzà]]></itunes:author><googleplay:owner><![CDATA[hazloconcriterio@substack.com]]></googleplay:owner><googleplay:email><![CDATA[hazloconcriterio@substack.com]]></googleplay:email><googleplay:author><![CDATA[Pol Marzà]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Fabric.js: La librería que convierte píxeles en objetos que puedes tocar]]></title><description><![CDATA[Como construir un editor visual en el navegador sin tocar la API de canvas a pelo.]]></description><link>https://www.concriterio.blog/p/fabricjs-la-libreria-que-convierte</link><guid isPermaLink="false">https://www.concriterio.blog/p/fabricjs-la-libreria-que-convierte</guid><pubDate>Wed, 08 Apr 2026 06:01:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4660a8cf-39bb-420e-89e9-c35c29fc7f5a_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hola, soy Pol Marz&#224;. Cada semana escribo una nueva edici&#243;n de <strong>Con Criterio</strong>, la newsletter sobre construir productos digitales con IA, con planificaci&#243;n, m&#233;todo y sin atajos. Si te han reenviado este email, puedes suscribirte aqu&#237;:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/subscribe?&quot;,&quot;text&quot;:&quot;Suscr&#237;bete ahora&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.concriterio.blog/subscribe?"><span>Suscr&#237;bete ahora</span></a></p><p><em>Esta es una nueva secci&#243;n dentro de la newsletter donde hablo sobre distintas herramientas que encuentro. Te explico qu&#233; es, c&#243;mo funciona, c&#243;mo integrarla y luego te muestro una demo que he construido y que cuelgo en <strong><a href="https://concriterio.tools">concriterio.tools</a></strong> </em></p><blockquote><p>Hoy hablamos de <strong><a href="https://fabricjs.com">Fabric</a></strong></p></blockquote><div><hr></div><p>Cuando Figma no exist&#237;a y Flash empezaba a morir, los desarrolladores que quer&#237;an crear editores gr&#225;ficos en el navegador, se encontraban con un problema: el canvas de HTML era muy limitado para un trabajo interactivo. Pod&#237;as dibujar formas, s&#237;, pero no pod&#237;as seleccionarlas. No pod&#237;as moverlas y el navegador no recordaba nada de lo que hab&#237;as pintado.</p><div class="callout-block" data-callout="true"><p>El elemento <strong><a href="https://www.nexy.ai/es/concept/canvas-de-html5">&lt;canvas&gt; de HTML5</a></strong> es un &#225;rea rectangular en una p&#225;gina web dise&#241;ada para dibujar gr&#225;ficos din&#225;micos utilizando JavaScript. Funciona como un lienzo digital al que se accede mediante c&#243;digo, permitiendo la creaci&#243;n de animaciones, juegos y visualizaciones interactivas.</p></div><p>Fabric.js naci&#243; en 2010, creado por <strong>Juriy Zaytsev</strong>, como soluci&#243;n a esa complejidad. Surgi&#243; de la necesidad pr&#225;ctica de tener una forma m&#225;s accesible de crear aplicaciones gr&#225;ficas interactivas en el navegador. Su autor estaba construyendo un editor para personalizar ropa online. La interactividad que necesitaba solo exist&#237;a en Flash. As&#237; que construy&#243; la capa que faltaba.</p><h2>Qu&#233; es exactamente</h2><p>Fabric.js es como una caja de herramientas que te permite trabajar de manera m&#225;s intuitiva: en lugar de pensar en p&#237;xeles individuales, trabajas con objetos (rect&#225;ngulos, im&#225;genes, textos) que puedes mover, rotar y modificar f&#225;cilmente. </p><p>La librer&#237;a maneja autom&#225;ticamente las cosas complicadas: detecta cu&#225;ndo haces clic en una forma, permite arrastrar objetos, rotar figuras con el rat&#243;n y gestiona el redibujado de todo el canvas. T&#250; defines qu&#233; hay en el canvas y Fabric se encarga del resto.</p><h2>Cu&#225;ndo usarlo vs cu&#225;ndo no</h2><p>Usa Fabric cuando el usuario necesita manipular elementos visuales directamente: editores de im&#225;genes, constructores de slides, herramientas de anotaci&#243;n, configuradores de producto. Cualquier aplicaci&#243;n donde los usuarios necesiten interactuar visualmente con elementos en pantalla. </p><p>No lo uses para visualizaciones de datos o juegos donde el rendimiento del render importa m&#225;s que la interactividad de objetos. Para eso hay opciones m&#225;s ligeras. Fabric es un editor de objetos, no un motor de juego.</p><p><strong>Pricing</strong>: MIT, libre. Sin tokens, sin tiers. Es una librer&#237;a npm.</p><div class="callout-block" data-callout="true"><p>Una <strong><a href="https://www.nexy.ai/es/concept/libreria-npm">librer&#237;a npm</a></strong> es esencialmente un paquete de c&#243;digo reutilizable para JavaScript. NPM (Node Package Manager) es la herramienta que permite a los desarrolladores encontrar, instalar y gestionar estas librer&#237;as (o paquetes) en sus proyectos.</p></div><h2>C&#243;mo se integra</h2><p>bash</p><pre><code><code>npm install fabric</code></code></pre><p>typescript</p><pre><code><code>import { Canvas, FabricImage, FabricText } from 'fabric'

const canvas = new Canvas('canvas-element', { width: 800, height: 600 })

// Cargar imagen
const img = await FabricImage.fromURL('/foto.jpg')
canvas.add(img)

// A&#241;adir texto que el usuario puede mover y escalar
const text = new FabricText('Tu texto aqu&#237;', {
  left: 100, top: 100,
  fontSize: 32, fill: '#ffffff',
})
canvas.add(text)

// Exportar como PNG
const dataURL = canvas.toDataURL({ format: 'png' })</code></code></pre><p>Con eso tienes selecci&#243;n, movimiento y escala de objetos funcionando por defecto. <code>.toJSON()</code> serializa el estado completo del canvas para guardarlo. <code>.loadFromJSON()</code> lo restaura. Un detalle: si encuentras ejemplos con <code>fabric.Canvas</code> son de v5 &#8212; en v6 el API cambi&#243; a imports con nombre.</p><h2>La demo</h2><p>He montado un editor de memes en <strong><a href="https://fabric.concriterio.tools/">fabric.concriterio.tools</a></strong> para que veas c&#243;mo funciona en real. Puedes cargar una imagen, a&#241;adir capas de texto con distintas tipograf&#237;as, moverlas y escalarlas directamente sobre el canvas, y descargar el resultado como PNG.</p><p>Todo el c&#243;digo est&#225; en el repositorio p&#250;blico de Github, listo para que te lo puedas descargar y modificar a tu gusto.</p><p> (Accede a &#233;l a trav&#233;s de <strong><a href="https://github.com/HombreFeliz/fabricjs-concriterio-tools">enlace</a></strong>)</p><h2>Recapitulemos</h2><p>Hay una categor&#237;a de interfaces que no se resuelven bien con HTML y CSS: las que el usuario edita visualmente, donde los elementos se mueven, se superponen y se transforman. Para eso existe el canvas. Y para trabajar con el canvas sin volverte loco, existe Fabric. Si alguna vez tienes que construir algo donde el usuario &#8220;dise&#241;a&#8221; en lugar de solo &#8220;rellenar formularios&#8221;, esta librer&#237;a es el punto de partida.</p><div><hr></div><p><em>Si esta entrega de Con Criterio te ha resultado &#250;til, no olvides compartirla :)</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.concriterio.blog/p/fabricjs-la-libreria-que-convierte?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Compartir&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.concriterio.blog/p/fabricjs-la-libreria-que-convierte?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Compartir</span></a></p><p></p>]]></content:encoded></item></channel></rss>