Библиотека MUI предоставляет мощные инструменты для построения интерфейсов на React. Компоненты CardHeader, CardContent и CardActions являются составными частями компонента Card, позволяя структурировать карточки данных в приложениях.
CardHeader используется для отображения верхней части карточки, обычно содержащей заголовок, подзаголовок и аватар. Основные свойства:
title — основной заголовок карточки. Может быть строкой
или компонентом React.subheader — подзаголовок, например, описание или
дата.avatar — компонент аватара (обычно Avatar
из MUI), отображаемый слева.action — компонент для размещения действий в правой
части заголовка, например, кнопки.disableTypography — отключает встроенную типографику,
позволяя полностью управлять стилями заголовка и подзаголовка.Пример использования:
import { Card, CardHeader, Avatar, IconButton } from '@mui/material';
import MoreVertIcon from '@mui/icons-material/MoreVert';
<Card>
<CardHeader
avatar={<Avatar alt="User" src="/static/images/avatar/1.jpg" />}
action={
<IconButton>
<MoreVertIcon />
</IconButton>
}
title="Заголовок карточки"
subheader="Подзаголовок или дата"
/>
</Card>
Особенности:
action.sx или
styled.CardContent предназначен для основной информации внутри карточки: текста, таблиц, изображений или любых React-компонентов.
Основные особенности:
sx для кастомизации
стилей.Пример использования:
import { Card, CardContent, Typography } from '@mui/material';
<Card>
<CardContent>
<Typography variant="h6" component="div">
Основная информация
</Typography>
<Typography variant="body2" color="text.secondary">
Здесь можно разместить описание, текст или другие элементы интерфейса.
</Typography>
</CardContent>
</Card>
Особенности:
padding) настраиваются через
sx={{ padding: 2 }}.Typography.CardMedia для отображения
изображений.CardActions располагается внизу карточки и служит для размещения интерактивных элементов: кнопок, иконок и ссылок.
Ключевые свойства:
disableSpacing — отключает автоматические отступы между
действиями.sx — позволяет изменять отступы, выравнивание и другие
стили.Пример использования:
import { Card, CardActions, Button } from '@mui/material';
<Card>
<CardActions>
<Button size="small">Поделиться</Button>
<Button size="small">Подробнее</Button>
</CardActions>
</Card>
Особенности:
justifyContent
в sx.onClick и др.).Эти три компонента часто используются вместе для создания полноценной карточки:
import { Card, CardHeader, CardContent, CardActions, Avatar, IconButton, Typography, Button } from '@mui/material';
import MoreVertIcon from '@mui/icons-material/MoreVert';
<Card sx={{ maxWidth: 345 }}>
<CardHeader
avatar={<Avatar alt="User" src="/static/images/avatar/1.jpg" />}
action={
<IconButton>
<MoreVertIcon />
</IconButton>
}
title="Заголовок карточки"
subheader="Подзаголовок"
/>
<CardContent>
<Typography variant="body2" color="text.secondary">
Здесь располагается текстовое содержимое карточки. Можно использовать списки, ссылки и даже вложенные компоненты.
</Typography>
</CardContent>
<CardActions>
<Button size="small">Поделиться</Button>
<Button size="small">Подробнее</Button>
</CardActions>
</Card>
Особенности сочетания:
sx, styled или классические CSS-классы.Эти компоненты обеспечивают строгую и гибкую структуру карточек, упрощают поддержание визуальной консистентности и позволяют создавать сложные интерфейсы с минимальными усилиями. Их комбинирование с другими компонентами MUI, такими как CardMedia, Typography, Button и IconButton, создаёт полностью функциональные карточки для любого приложения.