Cómo Colocar Texto en un Trazado SVG: Incluyendo una Animación Básica
La etiqueta <textPath> permite dibujar texto a lo largo de un trazado (<path>), como líneas, curvas o círculos, ideal para logotipos curvos o sellos. Aunque este tutorial se centra en <textPath>, incluimos un ejemplo con <animate> para mostrar una animación básica del texto, que exploraremos más a fondo en futuros artículos. Veamos los ejemplos con su código y explicaciones.
Ejemplo 1: Texto en una Curva Cuadrática
Este ejemplo muestra un texto siguiendo una curva cuadrática definida por un <path>.
<svg width="400" height="200" viewBox="0 0 400 200" xmlns="http://www.w3.org/2000/svg">
<path id="curva" d="M 50 150 Q 200 50 350 150" fill="none" stroke="black" />
<text font-size="20" fill="blue">
<textPath href="#curva">Texto en una curva</textPath>
</text>
</svg>
Resultado visual:
Explicación de elementos:
- <svg>: Contenedor SVG con
width="400",height="200",viewBox="0 0 400 200"para escalabilidad, yxmlns="http://www.w3.org/2000/svg"para el espacio de nombres. - <path>: Define una curva cuadrática con
id="curva",d="M 50 150 Q 200 50 350 150", sin relleno (fill="none") y contorno negro (stroke="black"). - <text>: Contenedor del texto con
font-size="20"yfill="blue". - <textPath>: Vincula el texto al trazado con
href="#curva", renderizando "Texto en una curva".
Ejemplo 2: Texto en un Trazado Circular
Este ejemplo usa un <path> circular para un sello, con atributos nuevos en <textPath>.
<svg width="400" height="400" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
<path id="circulo" d="M 200 200 m -100 0 a 100 100 0 1 0 200 0 a 100 100 0 1 0 -200 0" fill="none" stroke="black" />
<text font-size="20" fill="purple">
<textPath href="#circulo" startOffset="25%" side="left">Sello Circular CreadorLogos</textPath>
</text>
</svg>
Resultado visual:
Novedades:
- Circular <path>:
d="M 200 200 m -100 0 a 100 100 0 1 0 200 0 a 100 100 0 1 0 -200 0"crea un círculo de radio 100. - <textPath> atributos:
startOffset="25%": Desplaza el texto al 25% del trazado.side="left".
- <text> color:
fill="purple".
Ejemplo 3: Texto en un Trazado con Esquinas
Aquí, el texto siguiendo un <path> con líneas quebradas.
<svg width="400" height="200" viewBox="0 0 400 200" xmlns="http://www.w3.org/2000/svg">
<path id="esquinas" d="M 50 150 L 150 50 L 250 150 L 350 50" fill="none" stroke="black" />
<text font-size="20" fill="red">
<textPath href="#esquinas">Texto en trazado con esquinas</textPath>
</text>
</svg>
Resultado visual:
Novedades:
- Trazado con esquinas:
d="M 50 150 L 150 50 L 250 150 L 350 50"usaLpara líneas rectas. - <text>color:
fill="red".
Ejemplo 4: Texto Estilizado en una Curva
Este ejemplo usa CSS en un <style> para estilizar el texto.
<svg width="400" height="200" viewBox="0 0 400 200" xmlns="http://www.w3.org/2000/svg">
<style>
.texto-curva {
font-size: 24px;
font-family: Arial, sans-serif;
fill: green;
font-style: italic;
font-weight: bold;
}
</style>
<path id="curva" d="M 50 150 Q 200 50 350 150" fill="none" stroke="black" />
<text class="texto-curva">
<textPath href="#curva">Texto estilizado en curva</textPath>
</text>
</svg>
Resultado visual:
Novedades:
- <style>: Estilos CSS para
.texto-curvaconfont-size: 24px,font-family: Arial, sans-serif,fill="green",font-style: italic,font-weight: bold. - <text> clase:
class="texto-curva".
Ejemplo 5: Texto Animado en una Curva
Aunque las animaciones no son el foco de este tutorial, incluimos un ejemplo con <animate> para mover el texto a lo largo de un <path>, como adelanto de futuros tutoriales.
<svg width="400" height="200" viewBox="0 0 400 200" xmlns="http://www.w3.org/2000/svg">
<path id="curva" d="M 50 150 Q 200 50 350 150" fill="none" stroke="black" />
<text font-size="20" fill="blue">
<textPath href="#curva">
Texto animado en curva
<animate attributeName="startOffset" from="0%" to="100%" dur="5s" repeatCount="indefinite" />
</textPath>
</text>
</svg>
Resultado visual:
Novedades:
- <animate>: Anima
startOffsetde <textPath> desde0%a100%en 5 segundos, repitiéndose (repeatCount="indefinite").
Ejemplo 6: Texto Accesible en una Curva
Este ejemplo añade accesibilidad con <title> y <desc>.
<svg width="400" height="200" viewBox="0 0 400 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="accessible-title">
<title id="accessible-title">Texto accesible en una curva</title>
<desc>Un texto azul que sigue una curva cuadrática en un gráfico SVG accesible</desc>
<path id="curva" d="M 50 150 Q 200 50 350 150" fill="none" stroke="black" />
<text font-size="20" fill="blue">
<textPath href="#curva">Texto accesible en curva</textPath>
</text>
</svg>
Resultado visual:
Novedades:
- <title>: Título accesible con
id="accessible-title". - <desc>: Descripción para accesibilidad.
- <svg> atributos:
role="img"yaria-labelledby="accessible-title".
Propiedades Aplicables a <textPath>
La etiqueta
Atributos Principales de
href: Referencia al identificador delal que se vincula el texto. Usa el formato href="#id", dondeides el identificador del trazado. Es obligatorio para quefuncione.
Ejemplo:<textPath href="#curva">vincula el texto al. startOffset: Especifica el desplazamiento inicial del texto comienza en el trazado, expresado como un valor numérico (en unidades de coordenadas) o un porcentaje del largo total del camino. Útil para posicionar el texto.
Ejemplo:startOffset="25%"inicia el texto en el 25% del trazado.side(SVG2): Define en qué lado del trazado el texto se muestra ("left" o "right"). Nota: El soporte es limitado en navegadores más antiguos.
Ejemplo:side="left"coloca el texto a la izquierda del trazado.method: Controla cómo se ajusta el texto al trazado. Valores:align"(ajusta el texto para que se adapte al curvatura) ostretch(deforma el texto para llenar el trazado). Por defecto esalign.
Ejemplo:method="stretch"deforma el texto para que coincida con las distancias del camino.spacing: Define el espaciado entre caracteres. Valores:auto(ajusta automáticamente) oexact(usa el espacio exacto definido). Por defecto esauto.
Ejemplo:spacing="exact"respeta el espaciado definido en la fuente.textLength: Especifica la longitud total del texto en unidades de coordenadas, forzando al navegador a ajustar el texto para que encaje en esa longitud.
Ejemplo:textLength="200"estira o comprime el texto para que ocupe 200 unidades.lengthAdjust: Define cómo se ajusta el texto cuando se usatextLength. Valores:spacing(ajusta el espaciado entre caracteres) ospacingAndGlyphs(ajusta tanto el espaciado como el tamaño de los glifos).
Ejemplo:lengthAdjust="spacingAndGlyphs"escala los glifos para ajustarse.
Propiedades de Estilo Aplicables
Además de los atributos específicos, font-size, fill, font-family, font-weight, y otras. Estas propiedades se aplican mediante atributos de presentación o CSS dentro de un
Resultado visual:
Explicación del ejemplo:
href="#curva": Vincula el texto al trazado conid="curva".startOffset="10%": Desplaza el texto al 10% del trazado.textLength="250": Fuerza el texto a ocupar 250 unidades.lengthAdjust="spacingAndGlyphs": Escala los glifos para ajustarse atextLength.- Estilos CSS: Aplica
font-size: 20px,font-family: 'Helvetica', sans-serif,fill: teal, yfont-weight: boldmediante la clasetexto-estilizado.
Texto a Trazado en CreadorLogos.com
Si prefieres no programar SVG manualmente o usar software profesional, CreadorLogos.com ofrece una alternativa online rápida y fácil de usar. A continuación, te explicamos cómo crear un texto que recorra un trazado (<path>) en esta plataforma, ideal para logotipos o figuras SVG personalizadas. Todos los elementos en CreadorLogos son transformables y animables, como en un editor SVG.
Paso 1: Accede a CreadorLogos.com
Ingresa a https://creadorlogos.com/crear-logos.php. Te recomendamos usar el modo de navegación privada para asegurarte de que estás utilizando la última versión de la plataforma. Aquí podrás crear logotipos o figuras SVG añadiendo elementos personalizados.
Paso 2: Crear el Texto y el Camino
Para que el texto recorra un camino, necesitas dos elementos: un texto y un <path>. Sigue estos pasos:
- Crear el texto: Usa el menú de la derecha para añadir un texto personalizado, como explicamos en nuestro tutorial anterior sobre cómo usar texto en SVG.
- Crear el camino: Selecciona una figura (círculo, curva, cuadrado, polígono, etc.) desde el menú de diseño. Asegúrate de:
- Configurar la figura sin fondo (solo contorno) para que sea un <path>.
- Activar la casilla "Crear Camino de Texto" para que la figura se convierta en un <path> en lugar de una primitiva como <rect> o <circle>.
- Opcionalmente, especificar las medidas reales de ancho y largo de la figura si las conoces.
Paso 3: Configurar Texto a Trazado
En el menú "Texto a Trazado", selecciona la figura y el texto que deseas que recorra el camino. Puedes personalizar:
- Tamaño de las letras: Ajusta el tamaño del texto.
- Inicio del texto: Define el desplazamiento inicial (similar a
startOffset). - Longitud del texto: Controla cuánto texto se muestra.
- Orientación del texto: Elige la dirección o alineación.
- Ocultar camino: Decide si el trazado es visible o no en el resultado final.

Paso 4: Finalizar y Exportar
Confirma tus opciones, y el texto se adaptará automáticamente a la figura. Puedes:
- Exportar como PNG con fondo transparente.
- Guardar como SVG vectorial.
- Ver el código SVG para repasarlo según este tutorial.
- Probar con figuras como estrellas, arcos u otros trazados para experimentar.
Aquí tienes un ejemplo animado creado rápidamente en CreadorLogos.com:
Crea tu logotipo personalizado con texto rodeando una figura
¡Ahora es tu turno! Visita CreadorLogos.com, crea tu propio logotipo con texto en un trazado, y experimenta con animaciones y transformaciones. Investiga, prueba con diferentes formas y comparte tus creaciones. ¡Diseña algo único!