martes, 30 de agosto de 2022

👨‍💻 Propiedad Css text-stroke

Propiedad Text-stroke

Con la llegada de CSS3 tenemos características que nos facilitan la construcción de sitios web, al igual que tenemos nuevas propiedades muy curiosas, muchas de estas características aún no son compatibles con todos los navegadores o incluso ninguno, a pesar de ello vale la pena conocerlas para así estar preparados.

Una propiedad curiosa que tenemos es text-stroke la cual nos permite poner trazo al texto (no sombra como lo hace text-shadow), por ahora solo funciona en WebKit, pero esperemos que más adelante podamos verlo con el resto de navegadores.

Antes de continuar con la descripción, hay que mencionar que este método sólo funciona para Web-kit por lo que hay que tener cuidado al momento de utilizarlo y estar consientes que sólo lucirá bien en Chrome y Safari.

Es especialmente útil si se desea utilizar letras y fondo del mismo color.

Con text-stroke podemos definir los pixeles y el color de nuestro trazo de la manera que lo expone la aplicación siguiente:

.aplicacion {
    
    color: yellow;
    font-size: 45px;
}

.aplicacion {  
   -webkit-text-stroke-width: 2px;
   -webkit-text-stroke-color: crimson;
}

Al igual que con muchas propiedades de CSS, podemos hacerlo más fácil:

.aplicacion{  
   -webkit-text-stroke: 2px crimson;
}

Veamos su funcionamiento en un ejemplo que queda transformado con la aplicación CSS precedente


  
<p class="aplicacion ">El stroke en este texto es de color rojo.</p>

Resultado:

El stroke en este texto es de color rojo.

El objetivo de este efecto es mostrar nuestro texto como si se subrayara el contorno de las letras, creando un trazo que puede adaptarse al tamaño y color deseado.

Propiedad -webkit-text-stroke

No estándar: esta función no es estándar y no está en una pista de estándares. No lo use en sitios de producción frente a la Web: no funcionará para todos los usuarios. También puede haber grandes incompatibilidades entre las implementaciones y el comportamiento puede cambiar en el futuro.

La propiedad CSS -webkit-text-stroke especifica el ancho y el color de los trazos para los caracteres de texto. Esta es una propiedad abreviada de las propiedades de mano larga -webkit-text-stroke-width y -webkit-text-stroke-color .

/ * Valores de ancho y color * /
-webkit-text-stroke: 4px navy;
text-stroke: 4px navy;

/ * Valores globales * /
-webkit-text-stroke: inherit;
-webkit-text-stroke: initial;
-webkit-text-stroke: unset;
text-stroke: inherit;
text-stroke: initial;
text-stroke: unset;

Definición Formal

Valor inicial como cada una de las propiedades de la taquigrafía:
Se aplica a todos los elementos
inheritance si
Valor calculado como cada una de las propiedades de la taquigrafía:
Tipo de animación >como cada una de las propiedades de la taquigrafía:

Sintaxis formal

<length> || <color>where <color> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hwb()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>where <rgb()> = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) | rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )<rgba()> = rgba( <percentage>{3} [ / <alpha-value> ]? ) | rgba( <number>{3} [ / <alpha-value> ]? ) | rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? )<hsl()> = hsl( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsl( <hue>, <percentage>, <percentage>, <alpha-value>? )<hsla()> = hsla( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsla( <hue>, <percentage>, <percentage>, <alpha-value>? )<hwb()> = hwb( [<hue> | none] [<percentage> | none] [<percentage> | none] [ / [<alpha-value> | none] ]? )where <alpha-value> = <number> | <percentage><hue> = <number> | <angle>

Valores

El ancho del trazo.
El color del trazo.

Propiedad text-fill-color

Un problema que tenemos ahora al usar text-stroke es que si tenemos un color de fuente igual al color de fondo.

HolaChrome

Se va a ver bien para los navegadores que lo soportan, pero para los otros navegadores, simplemente no se va a ver.

Esto es un grave problema ya que las personas pueden pensar que es un error o que simplemente no hay nada, por suerte tenemos una solución: text-fill-color, el cuál anulara color sin importar el orden.

Las propiedades CSS para lograrlo son:

.texto-con-bordes {
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #f34573;
}

See the Pen Tuco: Text Stroke by CSS Tianguis (@css-tianguis) on CodePen.

 
h1 {  
   color: black;
   -webkit-text-fill-color: white;
   -webkit-text-stroke-width: 2px;
   -webkit-text-stroke-color: black;
}

HolaChrome

De esta manera, podemos usar text-stroke sin temor a que no pueda verse en los navegadores que no lo soportan.

Navegadores donde lo podemos ver:

Navegadores donde por ahora no funciona:

HolaFirefox

Ahora depende de nosotros como es que vamos a usar esta propiedad …

Compatibilidad del navegador

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Androide de cromo Firefox para Android Opera Android Safari en IOS Samsung Internet
-webkit-text-stroke
4
15
49
No
15
3
4
18
49
14
2
1.0

Resumen

Podemos usar la propiedad text-stroke en un texto para aplicar bordes a una fuente en CSS. Necesitamos usar el prefijo webkit antes de la propiedad text-stroke para usar la función. Sin embargo, solo funciona en los navegadores basados en web-kit como Safari y Chrome. La propiedad text-stroke nos permite decorar el texto en aplicaciones de dibujo vectorial como Adobe Illustrator. La propiedad es la abreviatura de las otras dos propiedades, text-stroke-width y text-stroke-color. Por lo tanto, podemos definir el ancho y el color del borde de un texto con la propiedad text-stroke.

Generadores online



Bibliografía consultada:


https://www.lawebera.es/como-hacer/ejemplos-css/propiedades-css3-textos.php

https://filisantillan.com/blog/text-stroke/

https://css-tianguis.com/truco-css-text-stroke-agrega-bordes-a-textos/

https://runebook.dev/es/docs/css/-webkit-text-stroke


Bibliografía complementaria:


https://css-tricks.com/text-stroke-stuck-middle/

https://filisantillan.com/blog/text-stroke/

https://developer.mozilla.org/en-US/docs/Web/CSS/paint-order