В MUI (Material-UI) для отображения текстовых заголовков используется
компонент Typography. Этот компонент обеспечивает
единый подход к стилям текста, соответствующий Material Design. Основные
варианты заголовков представлены свойством variant, которое
определяет визуальный уровень заголовка:
h1 — основной крупный заголовок страницы.h2 — заголовок второго уровня, используется для
выделения крупных блоков контента.h3 — заголовок среднего уровня, часто применяется
внутри секций.h4, h5, h6 — заголовки
меньших уровней, подходящие для подразделов и акцентных элементов.Пример использования:
import Typography from '@mui/material/Typography';
<Typography variant="h1">Главный заголовок</Typography>
<Typography variant="h2">Заголовок второго уровня</Typography>
<Typography variant="h3">Заголовок третьего уровня</Typography>
Свойство component позволяет задавать конкретный
HTML-тег, независимо от визуального стиля. Это особенно важно для
семантики и SEO:
<Typography variant="h2" component="h1">
Визуально h2, но HTML-тег h1
</Typography>
В этом примере заголовок будет выглядеть как h2
визуально, но в HTML-документе будет использоваться тег
h1.
Для изменения цвета текста используется свойство color.
В MUI доступны стандартные цветовые палитры:
<Typography variant="h3" color="primary">
Синий заголовок
</Typography>
<Typography variant="h4" color="textSecondary">
Серый заголовок
</Typography>
Также можно применять пользовательские цвета через объект
sx:
<Typography variant="h5" sx={{ color: '#ff5722' }}>
Оранжевый заголовок
</Typography>
Свойство align задает выравнивание текста:
left, center, right,
justify. Для контроля переноса используется CSS-свойство
noWrap:
<Typography variant="h6" align="center" noWrap>
Центрированный заголовок без переноса
</Typography>
Компонент Typography позволяет управлять интервалами
через систему MUI и свойство gutterBottom, которое
добавляет нижний отступ, соответствующий типографическим стандартам
Material Design:
<Typography variant="h2" gutterBottom>
Заголовок с нижним отступом
</Typography>
Для более гибкой настройки используют sx:
<Typography variant="h4" sx={{ marginTop: 3, marginBottom: 2 }}>
Заголовок с индивидуальными отступами
</Typography>
Для обеспечения адаптивного дизайна MUI поддерживает свойство
variantMapping, которое позволяет переопределять
соответствие уровня заголовка HTML-тегам в зависимости от контекста:
<Typography variant="h3" variantMapping={{ h3: 'h2' }}>
Заголовок h3 визуально, но HTML-тег h2
</Typography>
Для изменения размеров текста в зависимости от ширины экрана
применяют системные функции theme.breakpoints:
import { useTheme } from '@mui/material/styles';
const theme = useTheme();
<Typography
variant="h2"
sx={{
fontSize: { xs: '1.5rem', sm: '2rem', md: '3rem' },
}}
>
Адаптивный заголовок
</Typography>
MUI позволяет создавать полностью кастомизированные заголовки через
styled или sx. Пример с
styled:
import { styled } from '@mui/material/styles';
import Typography from '@mui/material/Typography';
const CustomHeader = styled(Typography)(({ theme }) => ({
color: theme.palette.secondary.main,
fontWeight: 700,
textTransform: 'uppercase',
letterSpacing: '0.1em',
}));
<CustomHeader variant="h3">Кастомизированный заголовок</CustomHeader>
variant) и HTML-тег
(component) для семантики.color, gutterBottom и sx.sx и
theme.breakpoints.styled или систему sx.Эти подходы обеспечивают точное соблюдение Material Design, семантическую правильность HTML и гибкость для адаптивного интерфейса.