Skip to content

Typography preset

Cung cấp một tập hợp các lớp prose bạn có thể dùng để thêm các mặc định kiểu chữ vào HTML thuần.

Mã nguồn

Cài đặt

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

Preset này được bao gồm trong gói unocss, bạn cũng có thể import nó từ đó:

ts
import { presetTypography } from 'unocss'

Sử dụng

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

export default defineConfig({
  presets: [
    presetAttributify(), // required when using attributify mode
    presetWind3(), // required
    presetTypography(),
  ],
})
html
<article class="text-base prose prose-truegray xl:text-xl">
  {{ markdown }}
  <p class="not-prose">Some text</p>
</article>
html
<article text-base prose prose-truegray xl="text-xl">
  {{ markdown }}
  <p class="not-prose">Some text</p>
</article>

WARNING

Lưu ý: not-prose chỉ có thể được dùng như một lớp, không phải như một thuộc tính.

Điểm nổi bật

Bất kỳ kích thước font nào

Áp dụng bất kỳ kích thước font nào cho body bạn muốn và prose sẽ tỷ lệ các kiểu cho các phần tử HTML tương ứng. Ví dụ, prose text-lg có kích thước font body 1.125remh1 sẽ tỷ lệ với kích thước đó 2.25 lần. Xem tất cả các phần tử HTML được hỗ trợ.

Bất kỳ màu nào

Áp dụng bất kỳ màu nào với prose-${colorName} bởi UnoCSS (v.d. prose-coolgray, prose-sky) vì prose không có màu nào theo mặc định. Xem tất cả màu có sẵn. Ví dụ, prose prose-truegray sẽ dùng các màu tương ứng cho các phần tử HTML tương ứng.

Chế độ tối với một tiện ích duy nhất

Áp dụng chế độ tối kiểu chữ với prose-invert (màu nền cần được xử lý bởi người dùng). Ví dụ, prose dark:prose-invert sẽ dùng các màu đảo ngược trong chế độ tối.

Kiểu của riêng bạn

Kiểu của các phần tử không nằm trong prose sẽ giữ nguyên. Không có đặt lại kiểu giống như UnoCSS.

Hoàn tác với tiện ích not

Áp dụng not-prose cho các phần tử để hoàn tác các kiểu chữ. Cho ví dụ, <table class="not-prose"> sẽ bỏ qua các kiểu bởi preset này cho phần tử table (LƯU Ý: tiện ích not chỉ có thể dùng trong lớp vì nó chỉ được dùng trong CSS selector & không được quét bởi UnoCSS).

Tùy chọn tương thích

Preset này dùng một số lớp giả không được hỗ trợ rộng rãi, nhưng bạn có thể tắt chúng. (#2064)

  • Nếu bạn bật noColonNot hoặc noColonWhere, not-prose sẽ không khả dụng.
  • Nếu bạn bật noColonIs, chế độ attributify sẽ có hành vi sai.

Tiện ích

Quy tắcKiểu bởi quy tắc này
proseXem trên GitHub.

Màu sắc

Quy tắc (màu)
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

Tùy chọn

Preset này có cấu hình selectorNamecssExtend cho những người dùng muốn ghi đè hoặc mở rộng.

TIP

Các khai báo CSS được truyền vào cssExtend sẽ

  • ghi đè các kiểu tích hợp nếu giá trị xung đột, ngược lại
  • được hợp nhất sâu với các kiểu tích hợp.

selectorName

  • Kiểu: string
  • Mặc định: prose

Tên lớp để dùng các tiện ích kiểu chữ. Để hoàn tác các kiểu cho các phần tử, dùng nó như not-${selectorName} mà theo mặc định là not-prose.

TIP

Tiện ích not chỉ khả dụng trong lớp.

cssExtend

  • Kiểu: Record<string, CSSObject>
  • Mặc định: undefined

Mở rộng hoặc ghi đè các bộ chọn CSS với khối khai báo CSS.

compatibility

  • Kiểu: TypographyCompatibilityOptions
  • Mặc định: undefined

Xem Tùy chọn tương thích.

WARNING

Lưu ý rằng nó sẽ ảnh hưởng đến một số tính năng.

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

Ví dụ

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',
        },
      },
    }),
  ],
})

Lời cảm ơn

Released under the MIT License.