El Lenguaje de las Formas: Entendiendo el Elemento SVG Path

Rate this content
Bookmark

Los beneficios de SVG son vastos: estilizables, accesibles, animables. Y cuando se trata de SVG, el elemento Path es el bloque de construcción de los bloques de construcción. Durante esta presentación, profundizaremos en el lenguaje del camino SVG. No solo aprenderemos a leer datos de camino, sino que también obtendremos la capacidad de manipular caminos sobre la marcha con la ayuda de React, ¡sin necesidad de Adobe Illustrator o la ayuda de un diseñador con poco tiempo disponible!

32 min
17 Jun, 2021

Video Summary and Transcription

Esta Charla presenta el elemento SVG Path, explorando sus comandos y potencial. El orador simplifica el lenguaje de las formas agrupando comandos y encontrando formas alternativas de definir arcos. También presentan una herramienta de edición de caminos que permite una manipulación y visualización sencillas de los datos de camino. La Charla concluye con discusiones sobre rendimiento, limitaciones, recursos recomendados, morphing SVG y la biblioteca FlubberJS para interpolación de caminos.

Available in English

1. Introducción a SVG Path

Short description:

Hola a todos, mi nombre es Monica Wojcichowska y estoy emocionada de hablarles sobre SVGPAP. SVG, como recordatorio, significa Scalable Vector Graphic. Es un lenguaje para describir gráficos 2D y tiene elementos como círculos, rectángulos, líneas y el protagonista de hoy, el elemento de ruta SVG. La ruta tiene un gran potencial ya que no es solo una línea visible, sino un conjunto de instrucciones que se pueden utilizar de diversas formas.

♪ Hola a todos, mi nombre es Monica Wojcichowska y estoy hablando directamente desde Varsovia, Polonia, donde estoy emocionada de hablarles un poco sobre SVGPAP. Pero antes de comenzar, un poco sobre mí. Nací y crecí en Nueva Jersey, pero regresé a mis raíces y actualmente vivo en Polonia y como todos los pierogi que puedo. Si le preguntas a LinkedIn, oficialmente soy una desarrolladora de front-end y una ingeniera de visualización de datos, pero si le preguntas a mis amigos, probablemente te dirán que soy una viajera del mundo y amante de la naturaleza y el deporte.

Pero antes de convertirme en quien, qué y dónde estoy hoy, hubo algunas otras cosas en el camino, como cambiar de carrera en la universidad, cambiar de carrera de marketing a programación, cambiar de país que ya mencioné, y por supuesto, todas las cosas nuevas en el camino, nuevas pasiones, nuevas personas, nuevas aventuras y la aventura continúa. Y la razón por la que les cuento todo esto con un poco más de detalle que una simple introducción en una diapositiva es mostrar con ejemplos que nuestros caminos rara vez son rectos. Se doblan, se retuercen, se giran, y el camino rara vez se ve así. En realidad, se ve más así. E incluso cuando se ve así, a menudo hay algún tipo de obstáculo que lo hace inaccesible. Pero ese es el camino súper abstracto de la vida. Y por mucho que me encantaría hablar de eso, hoy nos centraremos en un camino un poco menos abstracto, el camino SVG en su lugar. Entonces, ¿qué es el SVG? Bueno, el SVG, como recordatorio para la mayoría de ustedes, significa Scalable Vector Graphic y utiliza formas, números y coordenadas en lugar de una cuadrícula de píxeles para renderizar, lo que lo hace independiente de la resolución y escalable infinitamente. Entonces, si quieres un pequeño gráfico, puede que no haya una gran diferencia, pero cuando comienzas a aumentar el tamaño, la diferencia entre el rasterizado, que son los formatos JPEG, PNG, GIF, y el Vector se vuelve inmediatamente claro como se puede ver en estas imágenes. Esto, junto con la interactividad y la accesibilidad, son grandes ventajas cuando se trata de SVG versus rasterizado. Pero lo que es clave para la presentación de hoy es que no es solo un formato de imagen. En realidad, es un lenguaje para describir estos gráficos 2D. Me gusta decir que SVG es a los gráficos lo que HTML es al texto. Es una forma de mostrar llenar el espacio en blanco en una estructura dada. Entonces, donde HTML tiene elementos como divs, encabezados, listas y elementos de párrafo, SVG tiene elementos como el contenedor de grupo, círculos, rectángulos, líneas e incluso para un objeto. Y, por supuesto, el elemento de ruta SVG, que es el protagonista de hoy. ¿Y por qué exactamente es el protagonista? Bueno, porque todas las formas básicas se pueden crear con un elemento de ruta. Entonces, los otros elementos que mencionamos, como el rectángulo, el círculo, se pueden crear usando una ruta. Tenemos algunas formas básicas y formas menos básicas. Y luego tenemos cosas que ni siquiera clasificarías como formas en absoluto. Como este arco que salta por la pantalla o esta batería interactiva a la derecha aquí. También tenemos cosas como recortes, que nos permiten básicamente crear esta máscara y recortar todo lo que está fuera de esa ruta. Como esta tarta de cumpleaños con diferentes fondos. O un texto en una ruta, que nos permite colocar texto a lo largo de una ruta de nuestra elección. Entonces, antes de profundizar, ¿por qué entender la ruta? Bueno, tiene un gran potencial. Una ruta no es solo una línea visible como acabo de mencionar, sino un conjunto de instrucciones que se pueden

2. Explorando el Elemento de Ruta SVG

Short description:

Por placer y propósitos prácticos, exploremos el elemento de ruta en SVG. Es un conjunto de instrucciones representadas por letras y números. SVG proporciona 10 comandos diferentes, cada uno con variantes en mayúsculas y minúsculas. El primer comando, m, se utiliza para moverse a una ubicación. La línea 2 se utiliza para dibujar líneas rectas, mientras que la línea 3 se utiliza para líneas horizontales. El comando v es para líneas verticales. Por último, el comando c se utiliza para crear curvas de Bezier cúbicas.

Más adelante se utiliza de diversas formas diferentes. Por placer, por supuesto, porque a menudo tendemos a disfrutar más de las cosas a medida que las entendemos mejor. Y para propósitos prácticos, como introducir modificaciones o animaciones. Así que echemos un vistazo al elemento de ruta a lo largo de estas líneas.

Imaginemos que un amigo diseñador te da un conjunto de iconos personalizados y quieres hacer una pequeña edición a uno de ellos. No es gran cosa, ¿verdad? Bueno, eso es lo que pensarías, pero detrás de escena, algo que se ve así se parece más a esto. Es una cadena súper larga de números, letras y puntuación.

Así que aprendamos a leer este lenguaje. Cuando aprendemos a leer un libro, no empezamos con el libro completo, sino que empezamos con sus bloques de construcción. Y lo mismo ocurre con la ruta. Tenemos la ruta. Cada ruta requiere un atributo de datos de ruta, que se indica con D, que es esencialmente un conjunto de instrucciones y es cronológico. Podemos leerlo de izquierda a derecha, similar a leer un libro. Y los datos de la ruta están compuestos por diferentes comandos. Cada comando está representado por un conjunto de letras y números, que nos dicen diferentes cosas sobre ese comando.

Así que echemos un vistazo a esos bloques de construcción, esas letras y números. Bueno, SVG nos proporciona 10 comandos diferentes, 10 letras diferentes, y cada comando viene en dos variantes diferentes, mayúsculas y minúsculas. Una letra en mayúscula especifica coordenadas absolutas en la página, y una letra en minúscula especifica coordenadas relativas. Así que nuestro primer comando, m, significa mover a. Básicamente, recoger un lápiz y colocarlo en una ubicación específica, así que solo necesitamos especificar la ubicación x e y. Línea 2. Esto tiene que ver con dibujar líneas rectas de un punto a otro. Así que nuevamente, solo necesitamos especificar las coordenadas x e y de nuestro punto final. Línea 3. A continuación, tenemos la línea horizontal, aquí solo necesitamos proporcionar un valor x porque se asume que el valor y es el mismo que antes. Lo mismo ocurre con v, la línea vertical, solo necesitamos proporcionar un valor y. Y luego vienen las curvas. Hay un número infinito de curvas de Bezier por ahí, pero solo dos simples que están disponibles en el elemento de ruta, y esas son la cuadrática y la cúbica. Así que c significa curva de Bezier cúbica. Y se utiliza para crear una curva suave. Así que necesitamos definir dos puntos, dos puntos de control,

3. Comprendiendo los Comandos de la Ruta SVG

Short description:

Y estos dos puntos de control describen la pendiente de la curva en el punto de inicio y el punto final. La curva suave de Bézier, curva cúbica de Bézier, es similar a la curva cúbica, excepto que el punto de control del primer punto se calcula automáticamente como una reflexión del punto de control del comando cúbico o cúbico suave anterior. Luego tenemos la curva cuadrática de Bézier. Ahora pasamos a los arcos. Pero eso todavía es muchas letras para aprender de golpe, ¿y si pudiéramos simplificar esto? Bueno, V, H y Z son realmente solo atajos para expresar una línea que conecta dos puntos. Podemos agrupar las curvas cúbicas junto con las curvas S que pueden ser representadas por curvas C. Lo mismo ocurre con las curvas cuadráticas y podemos dejar los arcos por sí mismos. Pero también porque las curvas cuadráticas, que requieren tres puntos para definirlas, pueden ser escritas como curvas cúbicas, que requieren cuatro puntos, también podemos agrupar todas estas curvas juntas, ya que las cuadráticas pueden ser representadas por cúbicas. Y con una definición adecuada de los puntos de control, donde el primer punto de control es igual al segundo punto de control, que es igual al punto medio del inicio y el final, todas las líneas también pueden ser escritas como curvas cúbicas. Así que básicamente nos quedan solo tres comandos para entender el lenguaje de las formas. Pero hay algo que todavía me molesta de esto y es el comando de arco y todas las variables necesarias para definirlo. Entonces, como ya estamos en el estado de ánimo de simplificación, vamos a por todas. Y resulta que también podemos definir un arco como una curva. Ahora, esto no es una relación uno a uno donde un arco es igual a una curva. Pero el arco puede, con algunas matemáticas complejas, ser aproximado por una serie de curvas cúbicas. Y este nivel de minimalismo me hace muy feliz.

y un punto final. Y estos dos puntos de control describen la pendiente de la curva en el punto de inicio y el punto final. Básicamente, la curva comenzará en la dirección del primer punto de control y se doblará para llegar en la dirección del segundo punto de control.

La curva suave de Bézier, curva cúbica de Bézier, es similar a la curva cúbica, excepto que el punto de control del primer punto se calcula automáticamente como una reflexión del punto de control del comando cúbico o cúbico suave anterior. Y si el comando cúbico suave no sigue a otro comando S o C, entonces se asume que ambos puntos de control son iguales. Ambos puntos de control son iguales. Luego tenemos la curva cuadrática de Bézier. Entonces, este es un comando de curva ligeramente más simple que SVG nos proporciona. Y en este caso, solo necesitamos proporcionar un punto de control que es la pendiente en el punto de inicio y final. T significa curva cuadrática de Bézier suave y funciona de manera similar a su contraparte cúbica suave y luego calcula automáticamente el punto de control como la reflexión de la curva Q o T anterior.

Ahora pasamos a los arcos. Los arcos son secciones de círculos o elipses. No voy a entrar en demasiados detalles aquí, ya que la documentación de MDN hace un gran trabajo en eso. Pero desde un nivel alto requiere bastantes argumentos más que nuestras curvas o líneas, como el radio X e Y, rotación y algunas banderas que definen qué opciones de color queremos para cualquier dos puntos dados. Y Z representa un camino cerrado que básicamente dibuja una línea desde nuestra posición actual de regreso al punto inicial en la ruta. Pero eso todavía es muchas letras para aprender de golpe, ¿y si pudiéramos simplificar esto? Bueno, V, H y Z son realmente solo atajos para expresar una línea que conecta dos puntos. Entonces, tomemos la notación no abreviada y expresemoslos como una línea en su lugar. Podemos agrupar las curvas cúbicas junto con las curvas S que pueden ser representadas por curvas C. Lo mismo ocurre con las curvas cuadráticas y podemos dejar los arcos por sí mismos. Así que eso es un poco de simplificación. Pero también porque las curvas cuadráticas, que requieren tres puntos para definirlas, pueden ser escritas como curvas cúbicas, que requieren cuatro puntos, también podemos agrupar todas estas curvas juntas ya que las cuadráticas pueden ser representadas por cúbicas. Y con una definición adecuada de los puntos de control donde el primer punto de control es igual al segundo punto de control, que es igual al punto medio del inicio y el final, todas las líneas también pueden ser escritas como curvas cúbicas. Así que básicamente nos quedan solo tres comandos para entender el lenguaje de las formas. Realmente necesitamos entender el significado de M, C y A. Y eso es mucho más manejable para comprender que una cadena enorme de números y letras. Pero hay algo que todavía me molesta de esto y es el comando de arco y todas las variables necesarias para definirlo. Entonces, como ya estamos en el estado de ánimo de simplificación, vamos a por todas. Y resulta que también podemos definir un arco como una curva. Ahora, esto no es una relación uno a uno donde un arco es igual a una curva. Pero el arco puede, con algunas matemáticas complejas, ser aproximado por una serie de curvas cúbicas. Y este nivel de minimalismo me hace muy feliz.

4. Presentación de la Herramienta de Edición de Rutas

Short description:

¡Y las cosas son geniales! Sabemos cómo leer algo como esto. Tenemos una mejor idea de lo que representa estos datos de ruta. Pero si queremos introducir una edición, primero necesitamos encontrar el lugar exacto dentro de los datos de ruta donde queremos introducir esa edición. Así que me gustaría presentarles una herramienta que he creado que hace precisamente esto. Pero qué divertido sería si solo dijera, usa esta herramienta, y ya está. En lugar de simplemente usarla para hacer lo que queremos, vamos a ver cómo se hizo detrás de escena dada nuestra nueva comprensión del lenguaje de las rutas.

¡Y las cosas son geniales! Sabemos cómo leer algo como esto. Tenemos una mejor idea de lo que representa estos datos de ruta. Pero si queremos introducir una edición, primero necesitamos encontrar el lugar exacto dentro de los datos de ruta donde queremos introducir esa edición. Así que me gustaría presentarles una herramienta que he creado que hace precisamente esto. Pero qué divertido sería si solo dijera, usa esta herramienta, y ya está. En lugar de simplemente usarla para hacer lo que queremos, vamos a ver cómo se hizo detrás de escena dada nuestra nueva comprensión del lenguaje de las rutas.

Entonces, para ver dónde estamos en la ruta, primero necesitamos dividirla en segmentos. Afortunadamente, sabemos que los segmentos son comandos. Entonces, el pseudocódigo se ve así. Primero, analizamos nuestros datos de ruta en formato JSON, un formato que conocemos y amamos. Y eso es más fácil de trabajar que una cadena en la mayoría de los casos. Luego podemos transformar nuestros datos de ruta a formato absoluto, solo la versión en mayúsculas para obtener el punto de inicio y el punto final de cada una de las curvas y cada uno de los segmentos para que quede claro. Luego hagamos la herramienta, rendericemos una sola ruta por comando. Las escalaremos adecuadamente para que la herramienta sea utilizable para rutas grandes y pequeñas. Y agregaremos algunos eventos, como el mouseover para que podamos obtener información mientras nos desplazamos sobre un segmento en particular. Y un evento de cambio, por ejemplo, si editamos el valor de los datos de ruta para que nuestros segmentos se actualicen. Y utilizando una biblioteca llamada datos de ruta SVG, podemos aplicar las transformaciones que estamos buscando. Entonces, básicamente, echando un vistazo rápido al código aquí, esta función, obtener comandos de ruta como curvas cúbicas, está aplicando todas esas transformaciones. Primero, analizamos en formato JSON, hacemos que los valores sean absolutos y luego los normalizamos para obtener solo las curvas cúbicas que estamos buscando. Si tenemos todo en un formato, en el formato C, será más fácil trabajar con ello. Luego, necesitamos obtener nuestra ruta de un solo segmento. Entonces, para todos los segmentos, queremos crear una ruta separada. Solo necesitamos definir el punto de inicio donde queremos tomar nuestro lápiz y colocarlo, y luego la curva. Luego obtenemos nuestros segmentos. Creamos una ruta, aplicamos el efecto mouseover y un efecto de clic para obtener más información, los coloreamos según sea necesario y les proporcionamos los datos que acabamos de definir. Si echamos un vistazo a la herramienta y cómo funciona, deberíamos tener algo de interactividad. Ahora puedo ver en la lista a la izquierda exactamente dónde estoy. También puedo cambiar esto a formato analizado, lo que facilita aún más el trabajo. Por ejemplo, si quiero aplicar una edición aquí.

5. Manipulación y Visualización de Rutas

Short description:

Encontramos el lugar en la ruta y ahora podemos ir de los datos a lo visual y de la representación visual de vuelta a los datos utilizando la funcionalidad de clic y arrastre. Al representar cada comando como una versión de Bezier cúbica y agregar funcionalidad de arrastre a los puntos, podemos actualizar los datos de la ruta y visualizar los cambios en tiempo real. Echemos un vistazo a la herramienta en acción y comencemos a manipular los puntos para crear un efecto más ventoso.

Y hermoso. No sé si eso es hermoso, pero aplicamos la edición. Ahí vamos. Entonces, misión cumplida. ¡Genial! Lo logramos. Encontramos el lugar en la ruta. Pero ¿no sería un poco más fácil si esta manipulación de rutas fuera de doble sentido? Si pudiéramos ir de los data a lo visual y también de la representación visual de vuelta a los data. Bueno, para hacerlo, necesitaríamos algún tipo de funcionalidad de clic y arrastre. Cuando hacemos clic en una parte de lo visual, sus data se actualizan en consecuencia. Y aquí es donde nuevamente la simplificación de los comandos en el formato de Bezier cúbica es realmente útil.

Entonces, nuestro pseudocódigo nuevamente se vería algo así como representar cada comando como la versión de Bezier cúbica. Renderizar los puntos definidos por ese comando. Es decir, el punto final y los dos puntos de control. Agregar funcionalidad de clic y arrastre a estos puntos. En este caso, vamos a usar React Dragable. Al arrastrar, actualizamos los data de la ruta que se encuentra en nuestro estado local. Y una vez que el arrastre termina, tenemos una devolución de llamada que actualizará los data de la ruta que se encuentran globalmente entre la lista y la visualización. Echemos un vistazo al pseudocódigo simplificado. Aquí, obtenemos nuestros puntos que queremos visualizar. Les proporcionamos los comandos de la ruta. Y para cada uno de los comandos, creamos un segmento con controladores de arrastre. Y proporcionamos esos controladores de arrastre a los elementos arrastrables de React. Entonces, si nuestros puntos son visibles, manejamos ese arrastre y al detenerlo tenemos una devolución de llamada que actualizará nuestros data. Echemos un vistazo a la herramienta en acción. Y comencemos desde el principio. Escalémoslo como queramos. Ya exploramos nuestros segmentos, así que no necesitamos hacer eso. Pero ahora estamos interesados en estos puntos. Digamos que quiero hacer que esto parezca aún más ventoso que el original. Arrastro estos puntos en cualquier dirección.

6. Explorando la Edición y Animación de Rutas

Short description:

Curvemos esto aquí. Y también puedo cambiar los puntos de control para doblar como desee. Mi tiempo es corto. Solo un par de ejemplos rápidos para mostrar lo que se puede hacer. La ruta es algo hermoso, no solo basado en el producto, sino en el proceso de su creación, en el lenguaje que utiliza para llegar allí. Muchas gracias.

Curvemos esto aquí. Y también puedo cambiar los puntos de control para doblar como desee. Y pudimos aplicar algunas ediciones. Así que puedo copiar todo esto y luego usarlo en alguna animación o como desee más adelante. Así que, voilà. Editar texto a gráfico y de gráfico a texto. La calle de doble sentido que estábamos buscando. Y una vez que puedas ajustar todas tus rutas, solo imagina todo el potencial de animación.

Mi tiempo es corto. Y solo un par de ejemplos rápidos para mostrar lo que puedes hacer ejemplos rápidos para mostrar lo que se puede hacer. El primero muestra nuestro clip aquí y estamos usando una animación de interpolación de Pop Motion combinada con Flubber, lo que nos permite hacer la transición de una ruta a la siguiente. Entonces aquí, solo tenemos tres versiones para ajustar una original y estamos cambiando de una a la otra. En nuestro próximo ejemplo, aquí estamos usando D3, que es mi favorito, mi elección para la animación de un estado a otro, donde básicamente lo combinamos con una animación de color. Y cosas como esta realmente pueden agregar mucho mucho sabor a tu sitio o aplicación. Pero las posibilidades son realmente infinitas con la biblioteca de animación que elijas.

Entonces, para concluir en una nota filosófica, solo quería decir que la ruta es algo hermoso, no solo basado en el producto, sino en el proceso de su creación, en el lenguaje que utiliza para llegar allí. Entonces, la estructura no limita ni obstaculiza nuestra libertad, sino que nos capacita para realizarla. Muchas gracias. Los enlaces a las diapositivas al repositorio, donde se encuentra la herramienta, además de la herramienta en sí, se pueden encontrar aquí, así como también parte de mi información. Si tienes alguna pregunta o comentarios o especialmente destinos turísticos principales para nómadas digitales amantes del surf como yo, no dudes en comunicarte y revisar los recursos que he enlazado aquí también.

QnA

Q&A sobre Rendimiento y Limitaciones

Short description:

Hola. Hola. Gracias de nuevo por unirse a nosotros. De hecho, tenemos algunas preguntas de su audiencia, así que vamos a entrar en ello, si eso está bien para ti. La primera pregunta es sobre el rendimiento. En términos de rendimiento, ¿hay algo importante en lo que pensar? ¿El camino SVG tiene alguna limitación en cuanto a lo que puede dibujar, o básicamente se puede hacer cualquier cosa con SVG? Si alguien quiere aprender sobre SVG en general, ¿hay algún recurso que te guste especialmente o que recomendarías seguir?

Hola. Hola. Gracias de nuevo por unirse a nosotros. De hecho, tenemos algunas preguntas de su audiencia, así que vamos a entrar en ello, si eso está bien para ti.

Suena genial. Genial. Entonces la primera pregunta es sobre el rendimiento. En términos de rendimiento, ¿hay algo importante en lo que pensar? Por ejemplo, ¿es mejor renderizar un solo camino largo o múltiples caminos pequeños? Esa es una buena pregunta, y de hecho estaba pensando en eso al hacer la herramienta que discutí, así como en general. Entonces, la documentación no entra en detalles cuando se trata del rendimiento de la propiedad de datos del camino SVG. Pero por experiencia personal, hay una ligera diferencia, ¿qué un solo camino más largo es el ganador? Pero nuevamente, esto es solo a partir de pruebas de referencia personal, y en mi herramienta utilizo un enfoque donde renderizo segmentos sobre el camino largo único, y el camino largo único se renderiza más rápido. Entonces, eso es algo a tener en cuenta. Pero nuevamente, es una diferencia mínima y, idealmente, en un mundo ideal, los diferentes segmentos o partes diferentes del camino largo se renderizarían en paralelo. Entonces, nuevamente, una ligera diferencia, pero el camino largo único es el ganador.

Eso es increíble. Habría adivinado completamente que serían varios caminos cortos, pero supongo que si la diferencia no es tan grande. Genial. ¿El camino SVG tiene alguna limitación en cuanto a lo que puede dibujar, o básicamente se puede hacer cualquier cosa con SVG?

Esa también es una buena pregunta. Así que hablé mucho sobre cómo es como el bloque de construcción definitivo, cómo puedes dibujar todo con él. Una limitación es cuando se trata del comando de arco. En realidad, no se puede dibujar o tiene dificultades para dibujar un círculo completo o una elipse completa. Eso se debe a que estás definiendo el punto de inicio y el punto final como el mismo punto, y hay un número infinito de círculos que básicamente se podrían crear a partir de este único punto de inicio y final. Entonces, una forma de solucionarlo es crear el punto final con un ligero desplazamiento desde el punto de inicio, podría ser mínimo, pero nuevamente, alguna diferencia para que sepa dónde comenzar y dónde terminar, y luego conectarlos con un segmento de camino separado. O tener círculos, por ejemplo. Entonces, nuevamente, se puede dibujar cualquier cosa con el camino SVG, pero tal vez no con un solo comando.

Increíble. Los círculos son formas realmente especiales, ¿verdad? Lo son. Genial. Tenemos un par de preguntas más. Veamos. Si alguien quiere aprender sobre SVG en general, ¿hay algún recurso que te guste especialmente o que recomendarías

Recursos Recomendados y Morfismo SVG

Short description:

Cuando se trata de recursos, se recomienda encarecidamente la documentación de MDM del camino SVG. Para limpiar SVGs, herramientas como SVGOMG pueden ser útiles. Al trabajar con SVG, es cuestión de preferencia si dibujar caminos manualmente o usar iconos predefinidos. Los iconos predefinidos son un buen punto de partida para aprender. En cuanto al morfismo SVG, se puede usar CSS pero con limitaciones. Un enfoque como el uso de Flubber puede ser efectivo.

¿Siguiendo? Sí, claro. En cuanto a los recursos que utilicé, los incluí en la presentación en la última diapositiva. Así que recomiendo encarecidamente los recursos que están allí. Pero un gran reconocimiento va a la documentación. La documentación de MDM del camino SVG es clara. Es legible. Puede llevar algo más de tiempo leer todo. Pero respondió la mayoría de mis preguntas cuando se trataba de entender. Y en cuanto a las herramientas, hay diferentes herramientas disponibles para limpiar SVGs. Y así que algunos otros recursos, cuando estaba creando ejemplos para esta presentación o jugando, utilicé SVGOMG, y sé que también es bastante popular en la comunidad para limpiar SVGs. Sí. Esas son dos que recomendaría desde el principio. Sí, eso es genial. ¿Y qué hay de las herramientas que recomendarías para los desarrolladores al trabajar con SVG? Y, como, cuando están aprendiendo, ¿recomiendas dibujar cosas manualmente, como en un IDE en línea o usar alguna herramienta visual? Bueno, creo que eso es solo cuestión de preferencia, si quieres dibujar los caminos tú mismo. Eso podría ser útil si estás tratando de aprender los comandos en particular y lo que hacen los diferentes puntos de control y cómo afectan la forma de la curva. Pero lo que generalmente haría es tomar un icono predefinido, porque los iconos suelen ser un solo camino o, si no, no son una colección completa de caminos, que podría ser una imagen SVG completa. Pero los iconos son un buen punto de partida. Así que también son SVGs, pero no son como el gráfico completo con muchas cosas sucediendo. Así que son un buen lugar, un buen lugar para aprender. Oh, ese es un buen consejo. Voy a anotarlo. Mike pregunta, hola Mónica, ¿has experimentado con el morfismo SVG? Si es así, ¿qué enfoques prefieres? Por ejemplo, JS, CSS, etc. Así que sí, experimentado es una buena palabra para mi experiencia con el morfismo SVG. No diría que soy una experta en ello. Y sí, hay múltiples enfoques para esto. Técnicamente podrías usar CSS para eso, pero tus datos de camino necesitan tener la misma estructura exacta. Así que la forma 1 y la forma 2 deben tener la misma longitud y CSS. Y hay limitaciones para el morfismo solo con CSS. Pero se puede hacer. Así que un enfoque que he utilizado, y también lo tengo en mi sitio personal, es usar Flubber.

FlubberJS y Creación de SVG

Short description:

FlubberJS es una biblioteca pequeña y fácil de usar que te permite interpolar entre diferentes caminos. No requiere que los caminos tengan la misma longitud ni el mismo número de puntos o comandos. Si necesitas funciones de morfismo especializadas, es posible que debas escribir las tuyas propias, pero Flubber logra el efecto deseado. Al buscar SVGs, suelo buscar iconos gratuitos para evitar problemas legales. También hay otras herramientas disponibles que imitan a Adobe Illustrator para crear SVGs. ¡Gracias por unirte a nosotros y diviértete en tu sala de Zoom!

Entonces, FlubberJS. Es una biblioteca pequeña y fácil de usar. Defines el primer forma o el primer camino y el segundo camino y simplemente interpolas entre los dos. Y ahí, los caminos no necesitan tener la misma longitud. No necesitan tener la misma cantidad de puntos o comandos. Y produce el efecto que busco. Entonces, nuevamente, si quisieras alguna función de morfismo especializada o algo así, entonces podrías experimentar con escribir la tuya propia, pero Flubber básicamente logra lo que yo quería obtener de él. Genial. La gente quiere saber, supongo que ya has hablado un poco sobre comenzar con iconos, pero si tienes alguna otra herramienta que uses en tu flujo de trabajo y cómo comienzas a crear SVGs o los obtienes en general. De acuerdo. Yo, generalmente solo busco iconos gratuitos en Google. No quiero tener problemas legales al usar iconos que no se me permite usar. Pero sí, hay otras herramientas disponibles que son similares a Adobe Illustrator. No tengo una licencia de Adobe Illustrator. Lo he usado antes, pero en el día a día, especialmente como desarrollador, no como diseñador completo, simplemente voy a sitios que imitan eso. No tengo los nombres en la punta de la lengua, pero existen. Así que eso es genial. Eso es todo por ahora. Recuerda que puedes visitar a Mónica en su sala de conferencias después de esto. Mónica, muchas gracias por unirte y espero que te diviertas en tu sala de Zoom. Gracias. Fue genial estar aquí.

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

React Summit Remote Edition 2021React Summit Remote Edition 2021
36 min
SVGs to Make Your Blog Stand Out
Are dev blogs dying out? No, they're not! Blogs are making a comeback. But sadly, most of them are lacking personal style. So, what can developers do to make their blogs unique and prettier? In this talk, I’ll show you how SVGs (as React Components) can help you take your blog from dull to awesome.
React Summit Remote Edition 2021React Summit Remote Edition 2021
15 min
Graphics, as a Function of State / Graphic = fn(state)
Applying the React principle of “UI is a function of state” to SVGs and Graphic Design. We will talk about using systems of componentization and state management to create and manage SVGs. Viewers will leave the session with a firm understanding of creative coding practices and a new viewpoint for building systems in JavaScript.