Logotipo de Zephyrnet

Agregar soporte de tipografía fluida a los temas de bloque de WordPress

Fecha:

La tipografía fluida es una forma elegante de "describir las propiedades de la fuente, como el tamaño o la altura de la línea, que se escalan de manera fluida según el tamaño de la ventana gráfica". Es también conocido por otros nombres, como tipografía receptiva, tipo flexible, tipo fluido, tipografía de tamaño de ventana gráfica, tipografía fluida e incluso texto de visualización receptivo.

Aquí se presenta una ejemplo de tipografía fluida que puedes tocar en vivo (cortesía de Documentación MDN). CSS-Tricks ha cubierto la tipografía fluida extensivamente también. Pero el punto aquí no es presentarte la tipografía fluida, sino cómo usarla. Más específicamente, quiero mostrarle cómo implementar una tipografía fluida en WordPress 6.1, que recientemente introdujo una función de tipo fluido directamente en el Editor de bloques de WordPress.

Abre tu style.css archivo, bofetada en una regla de estilo con fantasía clamp()-ing en el font-size propiedad, y bueno para ir, ¿verdad? Claro, eso le dará un texto fluido, pero ¿obtener los controles del Editor de bloques que le permitan aplicar el tipo fluido en cualquier parte de su sitio de WordPress? Eso requiere un enfoque diferente en estos días bloqueados.

Soporte de tipografía fluida en Gutenberg

Algunos desarrolladores de temas de WordPress han estado usando el clamp() función para definir un fluido font-size, en sus temas de WordPress, incluso en temas de "bloque" más nuevos como Veintidós, veinte veintitrés, Y otros.

Pero el complemento de Gutenberg, el que contiene desarrollo experimental para las funciones de WordPress Block y Site Editor, introdujo soporte para tipografía fluida. a partir de la versión 13.8. Eso abrió la puerta para implementar a nivel de tema para que el tipo fluido se pueda aplicar a elementos y bloques específicos directamente en el Editor de bloques. CSS-Tricks incluso recibió un reconocimiento en el Solicitud de extracción que fusionó la función.

Ese trabajo se convirtió en parte de WordPress Core en WordPress 6.1. Rich Tabor, uno de los primeros defensores de la tipografía fluida en el Editor de bloques dice:

[La tipografía fluida] también es parte de hacer que WordPress sea más poderoso, aunque no más complicado (que todos sabemos que es todo un desafío). […] La tipografía fluida simplemente funciona. De hecho, creo que funciona muy bien.

Este Hacer que las publicaciones de WordPress se destaquen el enfoque adoptado para admitir la función a nivel de bloque, de modo que se aplique un tamaño de fuente fluido a los bloques de forma dinámica de forma predeterminada. Existen algunos beneficios a esto, por supuesto:

  • Proporciona una forma para que los autores de temas activen la tipografía fluida sin preocuparse por implementarla en el código.
  • Aplica tipografía fluida a entidades tipográficas específicas, como elementos o bloques, de forma mantenible y reutilizable.
  • Permite flexibilidad en términos de unidades de tamaño de fuente (p. ej. px, rem, emy %).

Ahora que esta nueva función está disponible en el Editor de bloques de WordPress de forma predeterminada, los autores de temas pueden aplicar una tipografía uniforme y fluida sin escribir código adicional.

Bloques que admiten configuración de tipografía y espaciado

Gutenberg 14.1 lanzado el 16 de septiembre de 2022, e introdujo configuraciones tipográficas en un montón de bloques. Eso significa que la configuración de texto para esos bloques se estableció en CSS antes y también tuvo que cambiarse en CSS. Pero esos bloques ahora proporcionan controles de fuente y espaciado en la interfaz del Editor de bloques.

Actualmente, ese trabajo está programado para agregarse a WordPress 6.1, como se detalla en esta publicación de blog de Make WordPress. Y con él hay un número ampliado de bloques que admiten tipografía.

Lista ilustrada de 60 bloques de WordPress que obtienen compatibilidad con tipografía y tamaño de fuente en WordPress 6.1.
Bloques de WordPress que admitirán la configuración de tipografía en la próxima versión de WordPress 6.1.

Declarar tipo fluido en un tema de bloque de WordPress

Entonces, ¿cómo utilizamos esta nueva tipografía fluida en WordPress? La respuesta está en theme.json, un archivo nuevo específico para bloquear temas que contiene un montón de configuraciones de temas en pares clave:valor.

Veamos una regla para una fuente grande en theme.json donde contentSize: 768px y estamos trabajando con un widesize: 1600px diseño. Así es como podemos especificar un CSS font-size usando el clamp() función:

"settings": {
  "appearanceTools": true,
  "layout": {
    "contentSize": "768px",
    "wideSize": "1600px"
  },
  "typography": {
    "fontSizes": [ 
      {
        "name": "Large",
        "size": "clamp(2.25rem, 6vw, 3rem)",
        "slug": "large"
      }
    ]
  }
}

A partir de WordPress 6.1, solo rem, em y px Se admiten unidades.

Eso es genial y funciona, pero con la nueva función de tipo de fluido en realidad usaríamos un enfoque diferente. Primero, optamos por una tipografía fluida en settings.typography, que tiene una nueva fluid propiedad:

"settings": {
  "typography": {
    "fluid": true
  }
}

Luego especificamos nuestro settings.fontSizes como antes, pero con una nueva fluidSize propiedad donde podemos establecer el min y max valores de tamaño para nuestra gama de tipos de fluidos.

"settings": {
  "appearanceTools": true,
  "layout": {
    "contentSize": "768px",
    "wideSize": "1600px"
  },
  "typography": {
    "fontSizes": [ 
      {
        "size": "2.25rem",
        "fluidSize": {
          "min": "2.25rem",
          "max": "3rem"
        },
        "slug": "large",
        "name": "Large"
      }
    ]
  }
}

Eso es realmente. Acabamos de agregar letra fluida a un tamaño de fuente llamado "Grande" con un rango que comienza en 2.25rem y escala hasta 3rem. Ahora, podemos aplicar la fuente "Grande" a cualquier bloque con configuración de fuente.

¿Cómo funciona esto bajo el capó? Rich Tabor ofrece una buena explicación, Como lo hace esta solicitud de extracción en GitHub. En resumen, WordPress convierte la theme.json properties en la siguiente regla CSS:

.has-large-font-size {
  font-size: clamp(36px, calc(2.25rem + ((1vw - 7.68px) * 1.4423)), 48px);
}

…que se aplica al elemento, digamos un bloque de párrafo:

...

Inicialmente, me resultó difícil entender y envolver en mi mente el concepto de CSS. clamp() funcionar sin aprender también sobre el min(), max()y calc() funciones. Esta herramienta de calculadora me ayudó bastante, especialmente para determinar qué valores usar en mis propios proyectos temáticos.

Para propósitos de demostración, usemos la calculadora para definir nuestro font-size rango para que el tamaño sea 36px en un 768px ancho de ventana y 48px en un 1600px ancho de ventana.

Ingresar valores en la calculadora en línea para tipografía fluida.

La calculadora genera automáticamente el siguiente CSS:

/* 36px @ 768px increasing to 48px @ 1600px */
font-size: clamp(36px, calc(2.25rem + ((1vw - 7.68px) * 1.4423)), 48px);

La calculadora proporciona opciones para seleccionar unidades de entrada como px, remy em. si seleccionamos rem unidad, la calculadora genera lo siguiente clamp() valor:

/* 2.25rem @ 48rem increasing to 3rem @ 100rem */
font-size: clamp(2.25rem, calc(2.25rem + ((1vw - 0.48rem) * 1.4423)), 3rem);

Entonces, esos valores mínimo y máximo corresponden a la fluidSize.min y fluidSize.max Valores en theme.json. min el valor se aplica en las vistas que son 768px ancho y abajo. Entonces el font-size aumenta a medida que crece el ancho de la ventana gráfica. Si la ventana gráfica es más ancha que 1600px, el max se aplica y el font-size está tapado allí.

Ejemplos

Existen instrucciones de prueba detalladas en la solicitud de incorporación de cambios que introdujo la función. Hay incluso más instrucciones de prueba de Publicación previa al lanzamiento de Justin Tadlock en Make WordPress.

Ejemplo 1: establecer una nueva configuración de fuente fluida

Comencemos con el conjunto de instrucciones de Justin. Lo usé en una versión modificada de la predeterminada. Veinte veintitrés tema que se encuentra actualmente en desarrollo.

Primero, asegurémonos de que estamos ejecutando el complemento Gutenberg (13.8 y superior) o WordPress 6.1, luego opte por el tipo fluido en el settings.typography.fluid propiedad en el theme.json archivo:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1600px"
    },
    "typography": {
      "fluid": true
    }
  }
}

Ahora, dejemos el settings.typography.fontSizes ejemplos ahí:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1600px"
    },
    "typography": {
      "fluid": true
      "fontSizes": [
        {
          "name": "Normal",
          "size": "1.125rem",
          "fluid": {
            "min": "1rem",
            "max": "1.5rem"
          },
          "slug": "normal"
        }
      ]
    }
  }
}

Si todo funciona correctamente, ahora podemos dirigirnos al Editor de bloques de WordPress y aplicar la configuración de fuente "Normal" a nuestro bloque:

La interfaz del editor de bloques de WordPress que muestra un bloque de párrafo y la configuración de tipografía fluida para él.

¡Agradable! Y si guardamos e inspeccionamos ese elemento en la parte delantera, este es el marcado:

Inspeccionando el bloque de párrafo de WordPress en DevTools.

Muy bueno. Ahora asegurémonos de que el CSS esté realmente allí:

DevTools que muestra la propiedad personalizada de tamaño de fuente para la tipografía fluida del bloque de párrafo de WordPress.

Bien bien. Expongamos esa propiedad personalizada de CSS para ver si realmente está sujetando las cosas:

Revelando el valor de la propiedad personalizada en DevTools, mostrando una función de abrazadera CSS.

¡Parece que todo está funcionando tal como lo queremos! Veamos otro ejemplo…

Ejemplo 2: Exclusión de una configuración de fuente del tipo fluido

Esta vez, sigamos el instrucciones de la solicitud de extracción fusionada con un guiño a este ejemplo de Carolina Nymark que muestra cómo podemos desactivar el tipo fluido en una configuración de fuente específica.

He utilizado el tema vacío como se indica en las instrucciones y abrió el theme.json archivo para la prueba. Primero, optamos por el tipo de fluido exactamente como lo hicimos antes:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1000px"
    },
    "typography": {
      "fluid": true
    }
  }
}

Esta vez, estamos trabajando con más pequeños wideSize valor de 1000px en lugar de 1600px. Esto debería permitirnos ver el tipo de fluido funcionando en un rango exacto.

Bien, vamos a definir algunos tamaños de fuente personalizados en settings.typography.fontSizes:

{
  "version": 2,
  "settings": {
    "typography": {
      "fluid": true,
      "fontSizes": [
        {
          "size": ".875rem",
          "fluid": {
            "min": "0.875rem",
            "max": "1rem"
        },
          "slug": "small",
          "name": "Small"
        },
        {
          "size": "1rem",
          "fluid": {
            "min": "1rem",
            "max": "1.5rem"
          },
          "slug": "normal",
          "name": "Normal"
        },
        {
          "size": "1.5rem",
          "fluid": {
            "min": "1.5rem",
            "max": "2rem"
          },
          "slug": "large",
          "name": "Large"
        },
        {
          "size": "2.25rem",
          "fluid": false,
          "slug": "x-large",
          "name": "Extra large"
        }
      ]
    }
  }
}

Tenga en cuenta que hemos aplicado la función de tipo fluido solo en las configuraciones de fuente "Normal", "Medio" y "Grande". "Extra grande" es el extraño donde el fluid el objeto está configurado en false.

la interfaz del editor de bloques de WordPress con cuatro bloques de párrafo, cada uno con una configuración de tamaño de fuente diferente.

Lo que WordPress hace desde aquí, a través de la Motor estilo Gutenberg — es aplicar las propiedades que establecemos en CSS clamp() funciones para cada configuración de tamaño de fuente que haya optado por el tipo fluido y un valor de tamaño único para la configuración Extra grande:

--wp--preset--font-size--small: clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 0.24), 1rem);
--wp--preset--font-size--medium: clamp(1rem, 1rem + ((1vw - 0.48rem) * 0.962), 1.5rem);
--wp--preset--font-size--large: clamp(1.5rem, 1.5rem + ((1vw - 0.48rem) * 0.962), 2rem);
--wp--preset--font-size--x-large: 2.25rem;

Veamos el marcado en la parte delantera:

Inspeccionar los bloques de párrafo de WordPress en DevTools.

¡Buen comienzo! Confirmemos que el .has-x-large-font-size la clase está excluida del tipo de fluido:

Se muestra la propiedad personalizada de tamaño de fuente para la configuración de fuente Extra grande en DevTools.

Si exponemos la --wp--preset--font-size--x-large variable, veremos que se establece en 2.25rem.

Revelando el valor de la propiedad personalizada de tamaño de fuente Extra grande, que muestra 2.25 rem.

¡Eso es exactamente lo que queremos!

Temas de bloques que admiten tipografía fluida

Muchos temas de WordPress ya hacen uso de la clamp() Función para tipo fluido en temas de bloque y clásicos. Un buen ejemplo del uso de tipografía fluida es el recientemente lanzado Veinte veintitrés tema predeterminado.

He revisado todos los temas de bloque de Directorio de temas de bloques de WordPress, examinando theme.json archivo de cada tema y para ver cuántos temas de bloque actualmente admiten tipografía fluida (no es la nueva función, ya que todavía está en el complemento de Gutenberg al momento de escribir este artículo) usando el CSS clamp() función. De los 146 temas que revisé, la mayoría de ellos usaba un clamp() función para definir el espaciado. Un poco más de la mitad de ellos usaban clamp() para definir los tamaños de fuente. los Alara el tema es el único que se puede usar clamp() para definir el tamaños de contenedores de diseño.

Es comprensible que solo unos pocos temas lanzados recientemente contengan la nueva función de tipografía fluida. Pero aquí están los que encontré que lo definen en theme.json:

Y si lees mi publicación anterior aquí sobre CSS-Tricks, el Bloques de Gopher TT2 El tema que utilicé para la demostración también se actualizó para admitir la función de tipografía fluida.

Reacciones seleccionadas a las características de tipografía fluida de WordPress

¡Tener una tipografía fluida en WordPress a nivel de configuración es súper emocionante! Pensé en compartir algunos pensamientos de personas de la comunidad de desarrolladores de WordPress que han comentado al respecto.

Matias Ventura, el arquitecto principal del proyecto Gutenberg:

rico tabor:

Como uno de los mayores esfuerzos para hacer que la publicación de páginas bellamente ricas en WordPress, la tipografía fluida es una gran experiencia ganadora tanto para las personas que crean con WordPress como para quienes consumen el contenido.

desarrollador automático Ramón Dodd comentó en la solicitud de extracción:

Compare esa idea con tamaños de fuente que respondan a tamaños de ventana de visualización específicos, como los definidos por preguntas de los medios, pero no haga nada entre esos tamaños. theme.json ya permite a los autores insertar sus propios valores de tamaño de fuente fluidos. Esto no cambiará, pero este PR lo ofrece a las personas que no quieren preocuparse por los detalles de implementación.

Nick Croft, autor de GenesisWP:

Brian Garner, diseñador y promotor principal de desarrolladores en WPEngine:

algunos desarrolladores pensar algunas características deben ser opcionales. jason cristo de Automattic dice:

Me encanta el poder de la tipografía fluida, sin embargo, tampoco creo que deba habilitarse de forma predeterminada. Su uso (y los detalles del mismo) son decisiones de diseño importantes que deben tomarse con cuidado.

También puede encontrar un montón de comentarios más en el oficial instrucciones de prueba para la función.

Terminando

La función de tipografía fluida en WordPress es todavía en desarrollo activo en el momento de escribir este artículo. Entonces, en este momento, los autores del tema deben proceder a usarlo, pero con precaución y esperando algunos posibles cambios antes de que se lance oficialmente. justin advierte autores de temas que usan esta función y sugiere estar atento a los siguientes dos problemas de GitHub:

También hay todavía un montón de trabajo en proceso sobre tipografía y otras herramientas de WordPress relacionadas con el diseño. Si te interesa mira esto ticket de GitHub de seguimiento de tipografía y problemas de GitHub relacionados con las herramientas de diseño.

Recursos

Utilicé los siguientes artículos cuando investigaba el tipo fluido y cómo WordPress lo está implementando como una característica.

Tutoriales y opiniones

Trucos CSS

punto_img

Información más reciente

punto_img