Alert используется как статичное уведомление для акцента на информации в контенте, требующего внимания или действий.
import { Alert } from 'vienna-ui';
Prop | Type | Default | Description |
---|---|---|---|
actions | ReactNode | Блок для кнопок | |
design | AlertDesign | undefined | ||
dynamic | boolean | undefined | Контролирует динамическую ширину компонента | |
noIcon | boolean | undefined | Контролирует отображение иконки | |
compactBelow | number | undefined | Контролирует отображение коммпактного режима, когда ширина просмотра меньше заданного числа | |
compact | ResponsiveProp<boolean, Breakpoints> | undefined |
Prop | Type | Default | Description |
---|---|---|---|
title | ReactNode |
<Alert title='Важно!'>Информация о некритичных подробностях</Alert>
Внешний вид контролируется параметром design
. Доступно 4 варианта дизайна - plain
, success
, warning
, error
.
Дизайн plain
используется для нейтральных уведомлений.
<Alert title='Важно!'>Информация о некритичных подробностях</Alert>
Дизайн success
используется для успешных уведомлений.
<Alert title='Успешно!' design='success'>
Информация об успешном результате действия
</Alert>
Дизайн warning
используется для предупреждений.
<Alert title='Внимание!' design='warning'>
Информация о критичных последствиях действия
</Alert>
Дизайн error
используется для ошибок.
<Alert title='Ошибка!' design='error'>
Информация об ошибке в результате действия
</Alert>
Дизайн accent
используется для нейтральных уведомлений.
<Alert title='Важно!' design='accent'>
Информация о некритичных подробностях
</Alert>
Параметр title
является опциональным.
<Alert design='success'>Информация об успешном результате действия</Alert>
Передав параметр noIcon
можно убрать иконку из уведомления.
<Alert design='success' noIcon>
Информация об успешном результате действия
</Alert>
<Alert title='Ошибка!' design='error' noIcon>
Информация об ошибке в результате действия
</Alert>
По умолчанию компонент занимает 100% ширины родителя. Если передан параметр dynamic
, то ширина компонента равна ширине контента.
<Alert title='Успешно!' design='success'>
Обычный Alert
</Alert>
<Alert title='Успешно!' design='success' dynamic={true}>
Динамический Alert
</Alert>
Комопнент поддерживает компактный режим отображения. Параметр compact
включает отображение в компактном виде.
<Alert compactBelow={1024} title='Успешно!' design='success'>
Информация об успешном результате действия
</Alert>
<Alert title='Успешно!' design='success' compact>
Информация об успешном результате действия
</Alert>
<Alert title='Успешно!' design='success' noIcon compact>
Информация об успешном результате действия
</Alert>
<Alert title='Успешно!' design='success' noIcon dynamic compact>
Информация об успешном результате действия
</Alert>
Компонент поддерживает свойство actions
, куда можно передать JSX объект с кнопками. Поддерживается 2 вида дизайнов кнопок 'primary' - вариант по умолчанию, не требующий явно указывать свойство design
, и ghost
. При этом при начличии actions
нотификация всегда отображается в компактном режиме.
<Alert
title='Важно!'
actions={
<Groups>
<Button>Complete</Button>
<Button design='ghost'>Cancel</Button>
</Groups>
}>
Информация о некритичных подробностях
</Alert>
<Alert
title='Успешно!'
design='success'
actions={
<Groups>
<Button>Complete</Button>
<Button design='ghost'>Cancel</Button>
</Groups>
}>
Информация об успешном результате действия
</Alert>
<Alert
title='Внимание!'
design='warning'
actions={
<Groups>
<Button>Complete</Button>
<Button design='ghost'>Cancel</Button>
</Groups>
}>
Информация о критичных последствиях действия
</Alert>
<Alert
title='Ошибка!'
design='error'
actions={
<Groups>
<Button>Complete</Button>
<Button design='ghost'>Cancel</Button>
</Groups>
}>
Информация об ошибке в результате действия
</Alert>
<Alert
title='Важно!'
design='accent'
actions={
<Groups>
<Button>Complete</Button>
<Button design='ghost'>Cancel</Button>
</Groups>
}>
Информация о некритичных подробностях
</Alert>
Для компонента Alert, адаптив применяется к свойству compact
, что позволяет перевести в компактный режим при достижении соответствующего размера ширины экрана. Для этого свойству нужно задать объект вида { <breakpoint name>: <boolean value> }
Основные значения breakpoints:
defaultBreakpoints = {
s: 768,
m: 1024,
l: 1920,
xl: 2560,
};
systemBreakpoints: Breakpoints = {
/* xs */
xs: `(max-width: ${defaultBreakpoints.s - 1}px)`,
/* s */
s: `(min-width: ${defaultBreakpoints.s}px)`,
belowS: `(max-width: ${defaultBreakpoints.s - 1}px)`,
/* m */
m: `(min-width: ${defaultBreakpoints.m}px)`,
belowM: `(max-width: ${defaultBreakpoints.m - 1}px)`,
/* l */
l: `(min-width: ${defaultBreakpoints.l}px)`,
belowL: `(max-width: ${defaultBreakpoints.l - 1}px)`,
/* xl */
xl: `(min-width: ${defaultBreakpoints.xl}px)`,
};
Следующий код переведёт компонент в компактный режим на экранах от 768px до 1024px.
<Alert title='Успешно!' design='success' compact={{ base: false, s: true, m: false }}>
Я обычный текст успешно адаптированный
</Alert>