Skip to content

Typography Preset

Bietet eine Reihe von Prosa-Klassen, die Sie verwenden können, um typografische Standardeinstellungen zu Vanilla HTML hinzuzufügen.

Quellcode

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

Dieses Preset ist im unocss Paket enthalten, Sie können es auch von dort importieren:

ts
import { presetTypography } from 'unocss'

Verwendung

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

export default defineConfig({
  presets: [
    presetAttributify(), // erforderlich bei Verwendung des Attributify-Modus
    presetWind3(), // erforderlich
    presetTypography(),
  ],
})
html
<article class="text-base prose prose-truegray xl:text-xl">
  {{ markdown }}
  <p class="not-prose">Einiger Text</p>
</article>
html
<article text-base prose prose-truegray xl="text-xl">
  {{ markdown }}
  <p class="not-prose">Einiger Text</p>
</article>

WARNING

Hinweis: not-prose kann nur als Klasse verwendet werden, nicht als Attribut.

Highlights

Beliebige Schriftgröße

Wenden Sie eine beliebige Schriftgröße für den Body an, die Sie mögen, und prose skaliert die Styles für die jeweiligen HTML-Elemente. Zum Beispiel hat prose text-lg die Body-Schriftgröße 1.125rem und h1 skaliert mit dieser Größe 2,25-mal. Siehe alle unterstützten HTML-Elemente.

Beliebige Farbe

Wenden Sie eine beliebige Farbe mit prose-${colorName} von UnoCSS an (z.B. prose-coolgray, prose-sky), da prose standardmäßig keine Farbe hat. Siehe alle verfügbaren Farben. Zum Beispiel verwendet prose prose-truegray die jeweiligen Farben für die jeweiligen HTML-Elemente.

Dark Mode mit einem einzigen Utility

Wenden Sie typografischen Dark Mode mit prose-invert an (Hintergrundfarbe muss von Benutzern behandelt werden). Zum Beispiel verwendet prose dark:prose-invert die invertierten Farben im Dark Mode.

Ihr eigener Stil

Styles von Elementen außerhalb von prose bleiben gleich. Kein Style-Reset, genau wie UnoCSS.

Rückgängig machen mit not Utility

Wenden Sie not-prose auf die Elemente an, um die typografischen Styles rückgängig zu machen. Zum Beispiel überspringt <table class="not-prose"> die Styles dieses Presets für das table Element (HINWEIS: Das not Utility ist nur als Klasse verwendbar, da es nur im CSS-Selektor verwendet wird und nicht von UnoCSS gescannt wird).

Kompatibilitätsoptionen

Dieses Preset verwendet einige Pseudo-Klassen, die nicht weit verbreitet unterstützt werden, aber Sie können sie deaktivieren. (#2064)

  • Wenn Sie noColonNot oder noColonWhere aktivieren, wird not-prose nicht verfügbar sein.
  • Wenn Sie noColonIs aktivieren, hat der Attributify-Modus ein falsches Verhalten.

Utilities

RegelStyles durch diese Regel
proseSiehe auf GitHub.

Farben

Regeln (Farbe)
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

Optionen

Dieses Preset hat selectorName und cssExtend Konfigurationen für Benutzer, die gerne überschreiben oder erweitern möchten.

TIP

Die an cssExtend übergebenen CSS-Deklarationen werden

  • die eingebauten Styles überschreiben, wenn die Werte kollidieren, sonst
  • tief zusammengeführt mit eingebauten Styles.

selectorName

  • Typ: string
  • Standard: prose

Der Klassenname, um die typografischen Utilities zu verwenden. Um die Styles für die Elemente rückgängig zu machen, verwenden Sie es wie not-${selectorName}, was standardmäßig not-prose ist.

TIP

Das not Utility ist nur als Klasse verfügbar.

cssExtend

  • Typ: Record<string, CSSObject>
  • Standard: undefined

Erweitern oder überschreiben Sie CSS-Selektoren mit CSS-Deklarationsblock.

compatibility

  • Typ: TypographyCompatibilityOptions
  • Standard: undefined

Siehe Kompatibilitätsoptionen.

WARNING

Beachten Sie, dass es einige Funktionen beeinflussen wird.

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

Beispiel

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

export default defineConfig({
  presets: [
    presetAttributify(), // erforderlich, wenn Attributify-Modus verwendet wird
    presetWind3(), // erforderlich
    presetTypography({
      selectorName: 'markdown', // jetzt verwenden wie `markdown markdown-gray`, `not-markdown`
      // cssExtend ist ein Objekt mit CSS-Selektor als Schlüssel und
      // CSS-Deklarationsblock als Wert, wie beim Schreiben von normalem CSS.
      cssExtend: {
        'code': {
          color: '#8b5cf6',
        },
        'a:hover': {
          color: '#f43f5e',
        },
        'a:visited': {
          color: '#14b8a6',
        },
      },
    }),
  ],
})

Danksagung

Released under the MIT License.