排版预设
提供一组散文类,可用于将排版默认值添加到普通 HTML 中。
安装
pnpm add -D @unocss/preset-typographyyarn add -D @unocss/preset-typographynpm install -D @unocss/preset-typography提示
此预设包含在 unocss 包中,您也可以从那里导入它。
import { presetTypography } from 'unocss'使用
import {
defineConfig,
presetAttributify,
presetTypography,
presetUno
} from 'unocss'
export default defineConfig({
presets: [
presetAttributify(), // required when using attributify mode
presetUno(), // required
presetTypography(),
],
})<article class="text-base prose prose-truegray xl:text-xl">
{{ markdown }}
<p class="not-prose">
Some text
</p>
</article><article text-base prose prose-truegray xl="text-xl">
{{ markdown }}
<p class="not-prose">
Some text
</p>
</article>警告
注意:not-prose 只能用作类,不能用作属性。
亮点
任何字体大小
应用您喜欢的任何字体大小到正文,prose 将为相应的 HTML 元素缩放样式。例如,prose text-lg 的正文字体大小为 1.125rem,h1 将根据该大小缩放 2.25 倍。请参阅 所有支持的 HTML 元素。
任何颜色
使用 prose-${colorName}(例如 prose-coolgray、prose-sky)应用 UnoCSS 中的任何颜色,因为 prose 默认没有颜色。请参阅 所有可用颜色。例如,prose prose-truegray 将为相应的 HTML 元素使用相应的颜色。
使用单个实用程序实现暗模式
使用 prose-invert 应用排版暗模式(背景颜色需要由用户处理)。例如,prose dark:prose-invert 将在暗模式下使用反转颜色。
您自己的样式
不在 prose 中的元素的样式将保持不变。没有像 UnoCSS 一样的样式重置。
使用 not 实用程序撤销
将 not-prose 应用于元素以撤销排版样式。例如,<table class="not-prose"> 将跳过此预设对 table 元素的样式(注意:not 实用程序只能在类中使用,因为它仅用于 CSS 选择器,UnoCSS 不扫描)。
兼容性选项
此预设使用一些不支持的伪类,但您可以禁用它们。(#2064)
- 如果您启用
noColonNot或noColonWhere,not-prose将不可用。 - 如果您启用
noColonIs,Attributify 模式将出现错误行为。
实用程序
| 规则 | 此规则的样式 |
|---|---|
prose | 请参阅 GitHub 上的代码。 |
颜色
| 规则(颜色) |
|---|
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 |
选项
此预设具有 selectorName 和 cssExtend 配置,供希望覆盖或扩展的用户使用。
提示
传递给 cssExtend 的 CSS 声明将
- 覆盖内置样式(如果值冲突),否则
- 合并到内置样式中。
selectorName
- 类型:
string - 默认值:
prose
用于排版实用程序的类名。要撤销元素的样式,请使用它,例如 not-${selectorName},默认情况下为 not-prose。
提示
not 实用程序仅在类中可用。
cssExtend
- 类型:
Record<string, CSSObject> - 默认值:
undefined
使用 CSS 声明块扩展或覆盖 CSS 选择器。
compatibility
- 类型:
TypographyCompatibilityOptions - 默认值:
undefined
请参阅 兼容性选项。
警告
请注意,这会影响某些功能。
interface TypographyCompatibilityOptions {
noColonWhere?: boolean
noColonIs?: boolean
noColonNot?: boolean
}示例
import { presetTypography } from '@unocss/preset-typography'
import { defineConfig, presetAttributify, presetUno } from 'unocss'
export default defineConfig({
presets: [
presetAttributify(), // required if using attributify mode
presetUno(), // 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',
},
},
}),
],
})