Типографика
Универсальные шаблоны для заголовков, основного текста, списков, таблиц и встроенного кода — оформленные в стиле «необрутализм» с акцентом на массивность.
Мы не поставляем никаких типографских стилей по умолчанию. Эта страница — пример того, как с помощью служебных классов оформить текст.
Компонента typography для установки нет — по умолчанию ничего не поставляется. Каждый раздел ниже — copy-paste recipe utility-классов для обычного HTML-элемента (h1–h4, p, blockquote, table, списки, inline code), опирающийся на токены темы: заголовки тяжёлые, рамки толстые.
Когда это пригодится:
- Блоги и docs — мапьте MDX или CMS-вывод на эти классы для единообразной long-form вёрстки.
- Маркетинговые страницы —
h1, Lead и Large закрывают hero-копирайт без отдельной display-type системы. - Когда
@tailwindcss/typography— overkill — скопируйте только нужные элементы вместо prose-плагина.
h1#
Taxing Laughter: The Joke Tax Chronicles
export function TypographyH1() {
return (
<h1 className="scroll-m-20 text-center text-4xl font-extrabold tracking-tight text-balance">h2#
The People of the Kingdom
export function TypographyH2() {
return (
<h2 className="scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0">h3#
The Joke Tax
export function TypographyH3() {
return (
<h3 className="scroll-m-20 text-2xl font-semibold tracking-tight">h4#
People stopped telling jokes
export function TypographyH4() {
return (
<h4 className="scroll-m-20 text-xl font-semibold tracking-tight">p#
The king, seeing how much happier his subjects were, realized the error of his ways and repealed the joke tax.
export function TypographyP() {
return (
<p className="leading-7 [&:not(:first-child)]:mt-6">blockquote#
"After all," he said, "everyone enjoys a good joke, so it's only fair that they should pay for the privilege."
export function TypographyBlockquote() {
return (
<blockquote className="mt-6 border-l-2 pl-6 italic">table#
export function TypographyTable() {
return (
<div className="my-6 w-full overflow-y-auto">list#
- 1st level of puns: 5 gold coins
- 2nd level of jokes: 10 gold coins
- 3rd level of one-liners : 20 gold coins
export function TypographyList() {
return (
<ul className="my-6 ml-6 list-disc [&>li]:mt-2">Строчный код#
@radix-ui/react-alert-dialogexport function TypographyInlineCode() {
return (
<code className="relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold">Лид#
A modal dialog that interrupts the user with important content and expects a response.
export function TypographyLead() {
return (
<p className="text-xl text-muted-foreground">Крупный#
export function TypographyLarge() {
return <div className="text-lg font-semibold">Are you absolutely sure?</div>
}Мелкий#
export function TypographySmall() {
return (
<small className="text-sm leading-none font-medium">Email address</small>Приглушённый#
Enter your email address.
export function TypographyMuted() {
return (
<p className="text-sm text-muted-foreground">Enter your email address.</p>RTL#
Чтобы включить поддержку RTL в Neobrutalism, см. руководство по настройке RTL.
"use client"
import * as React from "react"Доступность#
Эти recipes стилизуют нативные элементы, поэтому семантика уже корректна — сохраняйте её. Уровни заголовков выбирайте по outline документа, а не по размеру: программы чтения с экрана ходят по уровню, так что если h2 выглядит слишком крупным, перестилизуйте его, а не беритесь за h4. Таблицам данных дайте header-строку <th>, чтобы ячейки оставались связанными с колонками, а blockquote оставляйте для настоящих цитат.