Skip to content

Preset Typography

Fournit un ensemble de classes prose que vous pouvez utiliser pour ajouter des valeurs par défaut typographiques au HTML vanilla.

Code Source

Installation

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

Ce preset est inclus dans le package unocss, vous pouvez aussi l'importer depuis là :

ts
import { presetTypography } from 'unocss'

Utilisation

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

export default defineConfig({
  presets: [
    presetAttributify(), // requis quand on utilise le mode attributify
    presetWind3(), // requis
    presetTypography(),
  ],
})
html
<article class="text-base prose prose-truegray xl:text-xl">
  {{ markdown }}
  <p class="not-prose">Du texte</p>
</article>
html
<article text-base prose prose-truegray xl="text-xl">
  {{ markdown }}
  <p class="not-prose">Du texte</p>
</article>

WARNING

Note : not-prose ne peut être utilisé que comme classe, pas comme attribut.

Points forts

Toute taille de police

Appliquez n'importe quelle taille de police pour le corps que vous aimez et prose mettra à l'échelle les styles pour les éléments HTML respectifs. Par exemple, prose text-lg a une taille de police de corps de 1.125rem et h1 sera mis à l'échelle avec cette taille 2.25 fois. Voir tous les éléments HTML supportés.

Toute couleur

Appliquez n'importe quelle couleur avec prose-${colorName} par UnoCSS (ex. prose-coolgray, prose-sky) puisque prose n'a aucune couleur par défaut. Voir toutes les couleurs disponibles. Par exemple, prose prose-truegray utilisera les couleurs respectives pour les éléments HTML respectifs.

Mode sombre avec un seul utilitaire

Appliquez le mode sombre typographique avec prose-invert (la couleur de fond doit être gérée par les utilisateurs). Par exemple, prose dark:prose-invert utilisera les couleurs inversées en mode sombre.

Votre propre style

Les styles des éléments non dans prose resteront les mêmes. Pas de réinitialisation de style, comme UnoCSS.

Annuler avec l'utilitaire not

Appliquez not-prose aux éléments pour annuler les styles typographiques. Par exemple, <table class="not-prose"> ignorera les styles de ce preset pour l'élément table (NOTE : l'utilitaire not n'est utilisable qu'en classe puisqu'il n'est utilisé que dans le sélecteur CSS et non scanné par UnoCSS).

Options de compatibilité

Ce preset utilise des pseudo-classes qui ne sont pas largement supportées, mais vous pouvez les désactiver. (#2064)

  • Si vous activez noColonNot ou noColonWhere, not-prose sera indisponible.
  • Si vous activez noColonIs, le mode attributify aura un comportement incorrect.

Utilitaires

RègleStyles par cette règle
proseVoir sur GitHub.

Couleurs

Règles (couleur)
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

Options

Ce preset a les configurations selectorName et cssExtend pour les utilisateurs qui aiment remplacer ou étendre.

TIP

Les déclarations CSS passées à cssExtend vont

  • remplacer les styles intégrés si les valeurs sont en conflit, sinon
  • être fusionnées profondément avec les styles intégrés.

selectorName

  • Type: string
  • Défaut: prose

Le nom de classe pour utiliser les utilitaires typographiques. Pour annuler les styles aux éléments, utilisez-le comme not-${selectorName} qui est par défaut not-prose.

TIP

L'utilitaire not n'est disponible qu'en classe.

cssExtend

  • Type: Record<string, CSSObject>
  • Défaut: undefined

Étendre ou remplacer les sélecteurs CSS avec un bloc de déclaration CSS.

compatibility

  • Type: TypographyCompatibilityOptions
  • Défaut: undefined

Voir Options de compatibilité.

WARNING

Notez que cela affectera certaines fonctionnalités.

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

Exemple

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

export default defineConfig({
  presets: [
    presetAttributify(), // requis si on utilise le mode attributify
    presetWind3(), // requis
    presetTypography({
      selectorName: 'markdown', // maintenant utilisez comme `markdown markdown-gray`, `not-markdown`
      // cssExtend est un objet avec le sélecteur CSS comme clé et
      // le bloc de déclaration CSS comme valeur comme écrire du CSS normal.
      cssExtend: {
        'code': {
          color: '#8b5cf6',
        },
        'a:hover': {
          color: '#f43f5e',
        },
        'a:visited': {
          color: '#14b8a6',
        },
      },
    }),
  ],
})

Remerciements

Released under the MIT License.