¿Qué hay bajo el puntero?

Bookmark
Rate this content

¿La prueba de impacto es fácil, verdad? Aprende cómo el editor de lienzo de tldraw decide qué forma está debajo del cursor del usuario. Esta charla es una inmersión profunda en quinientas de las líneas de código más confusas en tldraw, el SDK de lienzo infinito.

This talk has been presented at React Advanced 2025, check out the latest edition of this React Conference.

Steve Ruiz
Steve Ruiz
30 min
28 Nov, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hablemos de Tealdraw, una aplicación versátil con una función de pizarra similar a Miro y Excalitraw. Tealdraw ofrece un SDK, tealdraw.dev, que permite creaciones innovadoras como una simulación de líquido. Los desafíos en Tealdraw incluyeron la optimización de la prueba de impacto, la gestión de la lógica de selección y el abordaje de las interacciones de formas. La vista de geometría de depuración permite un manejo eficiente de los datos del lienzo y la detección de impactos. El enfoque de Tealdraw para la prueba de impacto involucra cajas delimitadoras, navegación por la jerarquía de formas y manejo de interacciones de usuario con polígonos. La charla explora las elecciones tecnológicas, la resolución de niveles de lógica y la utilización de máscaras CSS en Tealdraw, enfatizando la importancia de la interacción del usuario y los procesos eficientes de prueba de impacto.
Available in English: What's Under the Pointer?

1. Exploring Tealdraw and Hit Testing

Short description:

Hablemos de Tealdraw, una aplicación versátil con una función de pizarra similar a Miro y Excalitraw. Tealdraw ofrece un SDK, tealdraw.dev, que permite creaciones innovadoras como una simulación de líquido. El SDK aborda problemas complejos de lienzo, lo que lo hace ideal para construir componentes interactivos como pruebas de impacto para el desarrollo de juegos.

Hablemos de Tealdraw y hablemos de, entre todas las cosas, pruebas de impacto y clics, cosas así. Solo por curiosidad, ¿cuántas personas conocen Tealdraw o han oído hablar de Tealdraw? Hey, está bien, no está tan mal. Genial. Bueno, Tealdraw es un par de cosas diferentes. Es esto. Es una aplicación, tealdraw.com. Pizarra gratuita. Puedes mover cosas. Funciona un poco como Miro, funciona un poco como Excalitraw, si alguna vez lo has usado.

Tealdraw también es una startup que hace tealdraw.com. Y además de tealdraw.com, Tealdraw, la startup, también hace tealdraw.dev, que es el SDK que puedes usar para hacer cosas como esta. Tengo una larga lista de favoritos, pero siempre me gusta mucho este donde tienes una, yo no hice esto, por cierto, pero esta es una gran simulación de líquido. Fantástico. Se ejecuta en el navegador, súper rápido. Pero el autor también usó Tealdraw como una especie de entorno de edición usando la pizarra. No necesariamente para cosas de pizarra, sino usando parte de la geometría dentro de Tealdraw para interactuar con la simulación de líquido. Así que bastante impresionante lo que puedes hacer con Tealdraw.

Y la razón por la que esto funciona, y la razón por la que supongo que funciona como un SDK, es porque resolvemos muchos de los problemas realmente complicados involucrados en el lienzo por ti. Y puedes construir sobre eso. Si alguna vez has intentado construir una de estas cosas, es como un mapa o un editor de texto o algo así. Bastante complejo internamente, pero también esas partes complejas son simplemente la forma en que debería funcionar. Así que un buen lugar para un SDK. No tan lejos. Hoy, voy a hablar sobre lo que está bajo el puntero. Originalmente, esto era lo que estaba bajo el cursor. Pero luego sucedió el cursor, y pensamos que la gente se confundiría. Así que es lo que está bajo el puntero. Se trata de pruebas de impacto. La idea general de si has hecho desarrollo de juegos o cosas así, podrías haber pasado mucho tiempo en pruebas de impacto, todo el punto de, como, ¿qué estoy...? ¿Dónde está mi puntero? ¿Qué estoy sobrevolando? ¿En qué estoy a punto de hacer clic? Cosas así.

2. Addressing Shape Interactions in Tealdraw

Short description:

Al desarrollar Tealdraw, surgieron desafíos al determinar las interacciones de los usuarios con las formas y las pruebas de impacto. Usando eventos DOM y rutas SVG ocultas, Tealdraw logró diferenciar entre varias formas y sus comportamientos de interacción. Aprovechar los componentes de React en el lienzo permitió mecanismos intrincados de pruebas de impacto, mejorando la experiencia del usuario y la funcionalidad.

Así que vamos a entrar en ello. Cuando Tealdraw comenzó, era yo queriendo jugar con flechas y formas y texto y cosas así. Y asegurándome de que las cosas se unieran perfectamente y hacer todo este tipo de cosas de carrete de demostración. Pero para hacer eso, tuve que resolver algunos de estos problemas. Así que uno de ellos es cuando tienes un montón de diferentes tipos de formas, algunas de ellas están cerradas y abiertas y llenas y no llenas. Todas están superpuestas y cosas así. ¿Cómo determinamos sobre qué está pasando el usuario? Normalmente en el navegador no tenemos que pensar en eso, porque los botones simplemente funcionan cuando haces clic en ellos. Todos tienen oyentes de eventos que ocultan ese tipo de pruebas de impacto, etcétera, de ti.

En el antiguo Tealdraw, el Tealdraw original, usé eventos DOM para esto. Así que así es como funcionaría esto. También te lo mostraré por aquí. Déjame volver a eso. Así que tenías formas huecas, tenías formas llenas, tenías estas formas abiertas, que son ninguna de las dos. Y queremos seleccionar una forma hueca si estamos cerca del borde. No queremos tener que ir exactamente al borde, porque eso podría ser muy, muy delgado. Pero queremos estar cerca de él. Y para una forma llena, queremos estar cerca del borde o en el medio de ella. Esto funciona para formas abiertas también.

Y así, la forma en que hice eso en el Tealdraw original fue usando una especie de ruta SVG oculta. Así que todo en Tealdraw es tanto el antiguo Tealdraw como el nuevo Tealdraw es DOM, ¿verdad? Es un montón de componentes de React en el lienzo. El lienzo en sí no usa un elemento de lienzo, solo tiene componente de React, componente de React, componente de React, componente de React. Y aunque no lo creas, eso simplemente funciona. Puedes poner muchas cosas en el lienzo, incluso si es React. Tienes que tener mucho cuidado, pero puedes hacerlo. Así que en ese mundo, cuando estaba usando elementos DOM, tenías la forma normal. Y luego detrás de ella, estaba haciendo una especie de ruta oculta solo para absorber esa prueba de impacto del navegador, ¿verdad? Así que la forma negra tiene eventos de puntero ninguno. Pero esta especie de ruta oculta detrás de ella es la que tiene los eventos de puntero. Y así es como obtienes este tipo de, ya sabes, prueba de impacto cercana, ¿verdad? Bien. Ahora tendría que ajustar el tamaño de eso basado en el zoom. ¿Verdad? Porque necesitaba que estuviera en el espacio de la página o en el espacio de la pantalla en lugar de la página.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
El Lado Oscuro de los Micro-Frontends
React Advanced 2025React Advanced 2025
29 min
El Lado Oscuro de los Micro-Frontends
In the Talk, various key points were discussed regarding micro-front-end architecture. These included challenges with micro-intents, common mistakes in system design, the differences between micro-intents and components, granularity in software architecture, optimizing micro-front-end architecture, efficient routing and deployment strategies, edge computing strategies, global state and data sharing optimization, managing data context, governance and fitness functions, architectural testing, adaptive growth, value of micro-frontends, repository selection, repo structures, and web component usage.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Masterclass
AI Coding SummitAI Coding Summit
86 min
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Masterclass
Workshop
Stepan Suvorov
Stepan Suvorov
Únete a una sesión enfocada de 2 horas que cubre el propósito de MCP, su arquitectura, implementación práctica de servidores y direcciones futuras. Diseñado para desarrolladores y arquitectos de sistemas que buscan integrar datos contextuales con modelos de ML de manera efectiva. Agenda:- Introducción & ¿Por qué MCP? Desafíos clave que MCP resuelve y beneficios principales.- Profundización en la Arquitectura: componentes, interacciones, principios de escalabilidad. - Construyendo tu propio Servidor MCP: recorrido guiado con fragmentos de código y mejores prácticas; demostración en vivo o revisión de código.- Futuro de los Desarrollos de MCP: potenciales mejoras, tendencias emergentes, escenarios del mundo real.
Puntos Clave:- Comprensión clara del razonamiento detrás de MCP.- Perspectiva sobre patrones de diseño y consideraciones de escalado.- Pasos prácticos para implementar un servidor prototipo.- Conciencia de las tendencias futuras y cómo aplicar MCP en proyectos.