IconButton — это компонент библиотеки Material-UI
(MUI) для создания интерактивных кнопок, содержащих иконки. Он
предназначен для компактного представления действий, таких как удаление,
добавление, редактирование или навигация. В отличие от обычной кнопки
Button, IconButton минимален по размеру и
визуально сосредоточен на значке.
color — задаёт цвет кнопки.
Поддерживаются значения: default, primary,
secondary, error, info,
success, warning. Пример использования:
<IconButton color="primary">
<DeleteIcon />
</IconButton>size — определяет размер кнопки.
Возможные значения: small, medium,
large. Удобно использовать для разных контекстов
интерфейса:
<IconButton size="small">
<EditIcon />
</IconButton>edge — управление позиционированием
кнопки в контейнере, обычно используется для AppBar: start,
end, false.
<IconButton edge="start">
<MenuIcon />
</IconButton>disabled — делает кнопку
неактивной. В этом состоянии она не реагирует на события клика:
<IconButton disabled>
<AddIcon />
</IconButton>onClick — функция-обработчик
нажатия кнопки:
<IconButton onCl ick={() => console.log("Нажата кнопка")}>
<FavoriteIcon />
</IconButton>MUI поддерживает интеграцию с библиотекой @mui/icons-material, что
позволяет использовать сотни готовых иконок. Для добавления иконки
достаточно импортировать нужный компонент и поместить его внутрь
IconButton:
import IconButton from '@mui/material/IconButton';
import DeleteIcon from '@mui/icons-material/Delete';
<IconButton>
<DeleteIcon />
</IconButton>
Иконка автоматически наследует цвет и размер кнопки, что обеспечивает консистентный стиль интерфейса.
<IconButton sx={{ bgcolor: 'primary.main', '&:hover': { bgcolor: 'primary.dark' } }}>
<DeleteIcon />
</IconButton>
import { styled } from '@mui/material/styles';
import IconButton from '@mui/material/IconButton';
const CustomIconButton = styled(IconButton)(({ theme }) => ({
backgroundColor: theme.palette.success.main,
'&:hover': {
backgroundColor: theme.palette.success.dark,
},
}));
<CustomIconButton>
<CheckIcon />
</CustomIconButton>
Для повышения удобства пользователя кнопки с иконками часто сопровождаются подсказками:
import Tooltip from '@mui/material/Tooltip';
<Tooltip title="Удалить элемент">
<IconButton>
<DeleteIcon />
</IconButton>
</Tooltip>
Tooltip позволяет сразу понять назначение кнопки без текста на интерфейсе.
IconButton активно применяется в верхних панелях
навигации. Например, для кнопки меню:
import AppBar from '@mui/material/AppBar';
import Toolbar from '@mui/material/Toolbar';
import MenuIcon from '@mui/icons-material/Menu';
<AppBar position="static">
<Toolbar>
<IconButton edge="start" color="inherit" aria-label="menu">
<MenuIcon />
</IconButton>
</Toolbar>
</AppBar>
Свойство edge помогает позиционировать кнопку в начале
или конце панели.
MUI позволяет легко интегрировать эффекты при нажатии и наведении. Например, можно добавить пульсацию при клике:
<IconButton
sx={{
transition: 'transform 0.2s',
'&:active': {
transform: 'scale(0.9)',
},
}}
>
<FavoriteIcon />
</IconButton>
Такое поведение делает интерфейс более живым и отзывчивым.
IconButton, опираться на узнаваемые иконки.aria-label для
доступности:<IconButton aria-label="удалить">
<DeleteIcon />
</IconButton>
IconButton совместно с
компонентами Stack или ButtonGroup для
консистентного выравнивания.IconButton в MUI — мощный инструмент для создания
компактных, удобных и визуально привлекательных элементов управления,
идеально подходящих для действий с иконками в интерфейсах на React.