Optimiza el contenido legible con Typography

Estandarizar los estilos de lectura

Typography es un proyecto diseñado para estilizar los elementos de texto básicos en HTML.

Estilos para elementos html semanticos

Como diseñador web, iniciar nuevos proyectos siempre es emocionante. Sin embargo, hay desafíos en los que me detengo y pierdo la concentración. Uno de estos es el diseño del contenido para los lectores, probablemente el aspecto más importante de cualquier sitio web. Con cada proyecto, este apartado terminaba convirtiéndose en un verdadero dolor de cabeza.

Arrastré este problema durante años hasta que finalmente decidí desarrollar una solución. Mi objetivo era claro: no podía seguir creando estilos de tipografía desde cero en cada proyecto. Necesitaba una solución flexible, fácil de mantener y aplicable a cualquier diseño. Al mismo tiempo, debía ser altamente personalizable sin generar dependencias.

En este artículo, te hablaré sobre Typography, mi proyecto para solucionar este problema. Veremos cómo instalarlo, aplicarlo y los beneficios que aporta para estilizar el contenido destinado a lectores.

Características

  • Herencia: Se integra con tus estilos existentes sin interferencias.
  • Responsive: Se adapta de forma natural sin necesidad de media queries.
  • Moderno: Aprovecha características avanzadas de CSS con amplio soporte.
  • Flexible: Usa una especificidad baja (10) para facilitar la personalización.
  • Desacoplada: Funciona con cualquier estructura HTML sin requerir clases específicas.

Instalar

Sube e incluye el archivo main.min.css antes de cerrar la etiqueta </head>. Si no tienes servidor propio, puedes usar una CDN:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@zkreations/typography@1/main.min.css"/>

Si estas trabajando en un proyecto usando npm, puedes instalar Typography como una dependencia, lo que te permite actualizarlo fácilmente:

npm install @zkreations/typography

Por último, necesitarás incluir el archivo CSS en tu proyecto en desarrollo. Esta es la ruta exacta:

node_modules/@zkreations/typography/main.min.css

Modo de uso

Typography solo requiere de un contenedor con la clase typography para aplicar los estilos. Recuerda que esta destinado a ser usado en contenido legible, por lo que el código de su interior debe ser puramente semántico:

<div class="typography">
  <h1>Heading</h1>
  <p>This is a paragraph...</p>
</div>

Personalizar

Aunque Typography no define un estilo específico a los elementos HTML, más allá de los estilos necesarios para la legibilidad, puedes personalizarlo los aspectos por defecto mediante variables CSS:

Variable Descripción
--typo-border-color Color de los bordes
--typo-caption-size Tamaño de fuentes para los captions
--typo-caption-spacing Espaciado entre captions y el contenido
--typo-code-background Fondo para el código
--typo-code-padding Relleno para el código
--typo-column-min Ancho mínimo de las columnas
--typo-gallery-caption-background Fondo para el caption de la galería
--typo-gallery-caption-color Color del caption de la galería
--typo-gallery-caption-padding Relleno del caption de la galería
--typo-gallery-min Ancho mínimo de la galería
--typo-gallery-spacing Espaciado entre las imágenes de la galería
--typo-heading-spacing Espaciado entre los encabezados y el contenido
--typo-initial-letter Tamaño de la letra capital inicial
--typo-spacing Espaciado entre los elementos
--typo-spoiler-collapse-text Texto de colapso
--typo-spoiler-expand-text Texto de expansión
--typo-spoiler-padding Relleno del spoiler
--typo-table-cell-padding Relleno de celdas de tabla

Componentes

Ademas de los estilos de texto, Typography incluye algunos componentes opcionales que puedes usar para agregar nuevas funciones en el contenido destinado para lectores:

Class Descripción
.typo-align-left Alinea un elemento a la izquierda con float.
.typo-align-right Alinea un elemento a la derecha con float.
.typo-align-center Centra un elemento.
.typo-align-full Expande un elemento al 100% de ancho.
.typo-columns Distribuye los elementos secundarios en columnas.
.typo-gallery Distribuye imágenes en una galería.
.typo-drop-cap Aplica un estilo de letra capital a un párrafo.
.typo-spoiler Crea un spoiler expandible/colapsable.
.typo-table Evita que las tablas se desborden.
.typo-table-fixed Asegura un diseño de columna de tabla fijo.

Anulación de estilos

La hoja de estilos utiliza una baja especificidad de 10 puntos, lo que significa que puedes anular los estilos sin importar si los aplicas antes o después de Typography:

/* Total de especificidad: 11 */
.typography blockquote {
  color: #f00;
  font-style: italic;
}

Diseño desacoplado

Typography se basa en un principio fundamental: no depende de una estructura HTML específica. Desde su concepción, fue diseñado para estilizar elementos HTML básicos sin necesidad de intervención adicional. Además, el uso de sus componentes es opcional y se limita a un contenedor. Incluso si Typography deja de utilizarse, el contenido seguirá siendo legible y accesible.

Conclusión

Typography es una solución sencilla y ligera para estilizar el contenido legible de un sitio web. Con su enfoque en la herencia, la personalización y la compatibilidad con CSS moderno, Typography se adapta y crece junto a ti proyecto. Aunque fue creado para proyectos propios, he preferido compartirlo con la comunidad esperando que sea útil para otros diseñadores y desarrolladores.

Si te ha gustado este proyecto, puedes apoyarlo compartiéndolo o dejando una estrella en GitHub. Cualquier comentario o sugerencia es bienvenida. Muchas gracias por leer.