Skip to content

Preset de Tipografía ​

Proporciona un conjunto de clases de prosa que puedes usar para añadir valores predeterminados tipográficos a HTML vanilla.

Código Fuente

Instalación ​

bash
pnpm add -D @unocss/preset-typography
bash
yarn add -D @unocss/preset-typography
bash
npm install -D @unocss/preset-typography
bash
bun add -D @unocss/preset-typography

TIP

Este preset está incluido en el paquete unocss, también puedes importarlo desde ahí:

ts
import { presetTypography } from 'unocss'

Uso ​

js
import {
  defineConfig,
  presetAttributify,
  presetTypography,
  presetWind3
} from 'unocss'

export default defineConfig({
  presets: [
    presetAttributify(), // requerido si usas modo attributify
    presetWind3(), // requerido
    presetTypography(),
  ],
})
html
<article class="text-base prose prose-truegray xl:text-xl">
  {{ markdown }}
  <p class="not-prose">Algún texto</p>
</article>
html
<article text-base prose prose-truegray xl="text-xl">
  {{ markdown }}
  <p class="not-prose">Algún texto</p>
</article>

WARNING

Nota: not-prose solo puede usarse como clase, no como atributo.

Destacados ​

Cualquier tamaño de fuente ​

Aplica cualquier tamaño de fuente para el cuerpo que te guste y prose escalará los estilos para los respectivos elementos HTML. Por ejemplo, prose text-lg tiene tamaño de fuente de cuerpo 1.125rem y h1 escalará con ese tamaño 2.25 veces. Consulta todos los elementos HTML soportados.

Cualquier color ​

Aplica cualquier color con prose-${colorName} por UnoCSS (ej. prose-coolgray, prose-sky) ya que prose no tiene ningún color por defecto. Consulta todos los colores disponibles. Por ejemplo, prose prose-truegray usará los respectivos colores para los respectivos elementos HTML.

Modo oscuro con una sola utilidad ​

Aplica modo oscuro tipográfico con prose-invert (el color de fondo necesita ser manejado por los usuarios). Por ejemplo, prose dark:prose-invert usará los colores invertidos en el modo oscuro.

Tu propio estilo ​

Los estilos de elementos no dentro de prose permanecerán igual. Sin restablecimiento de estilos, igual que UnoCSS.

Deshacer con la utilidad not ​

Aplica not-prose a los elementos para deshacer los estilos tipográficos. Por ejemplo, <table class="not-prose"> omitirá los estilos de este preset para el elemento table (NOTA: la utilidad not solo es usable en clase ya que solo se usa en selector CSS y no es escaneada por UnoCSS).

Opciones de compatibilidad ​

Este preset usa algunas pseudo-clases que no son ampliamente soportadas, pero puedes deshabilitarlas. (#2064)

  • Si habilitas noColonNot o noColonWhere, not-prose no estará disponible.
  • Si habilitas noColonIs, el modo attributify tendrá un comportamiento incorrecto.

Utilidades ​

ReglaEstilos por esta regla
proseConsulta en GitHub.

Colores ​

Reglas (color)
prose-rose
prose-pink
prose-fuchsia
prose-purple
prose-violet
prose-indigo
prose-blue
prose-sky
prose-cyan
prose-teal
prose-emerald
prose-green
prose-lime
prose-yellow
prose-amber
prose-orange
prose-red
prose-gray
prose-slate
prose-zinc
prose-neutral
prose-stone

Opciones ​

Este preset tiene configuraciones selectorName y cssExtend para usuarios que les gusta sobrescribir o extender.

TIP

Las declaraciones CSS pasadas a cssExtend:

  • sobrescribirán los estilos integrados si los valores son conflictivos, de lo contrario
  • se fusionarán profundamente con los estilos integrados.

selectorName ​

  • Tipo: string
  • Predeterminado: prose

El nombre de clase para usar las utilidades tipográficas. Para deshacer los estilos a los elementos, úsalo como not-${selectorName} que por defecto es not-prose.

TIP

La utilidad not solo está disponible en clase.

cssExtend ​

  • Tipo: Record<string, CSSObject>
  • Predeterminado: undefined

Extender o sobrescribir selectores CSS con bloque de declaración CSS.

compatibility ​

  • Tipo: TypographyCompatibilityOptions
  • Predeterminado: undefined

Consulta Opciones de compatibilidad.

WARNING

Ten en cuenta que afectará algunas funciones.

ts
interface TypographyCompatibilityOptions {
  noColonWhere?: boolean
  noColonIs?: boolean
  noColonNot?: boolean
}

Ejemplo ​

ts
import { presetTypography } from '@unocss/preset-typography'
import { defineConfig, presetAttributify, presetWind3 } from 'unocss'

export default defineConfig({
  presets: [
    presetAttributify(), // required if using attributify mode
    presetWind3(), // required
    presetTypography({
      selectorName: 'markdown', // now use like `markdown markdown-gray`, `not-markdown`
      // cssExtend is an object with CSS selector as key and
      // CSS declaration block as value like writing normal CSS.
      cssExtend: {
        'code': {
          color: '#8b5cf6',
        },
        'a:hover': {
          color: '#f43f5e',
        },
        'a:visited': {
          color: '#14b8a6',
        },
      },
    }),
  ],
})

Reconocimiento ​

Released under the MIT License.