ModalCardBase

Базовый компонент для создания модальных карточек с гибким содержимым. Используется как основа для ModalCard.

Связанные компоненты:

Загружается...

Задаётся свойством icon. Рекомендуется использовать:

  • контурные иконки размером 56px (<Icon56...Outline />);
  • аватары размером 72px(<Avatar size={72} src={...} />).
  • Свойство title отвечает за основной заголовок.
  • Свойство description отвечает за поясняющий текст.
  • Свойство actions используется для задания группы кнопок (Button).
  • Свойство outsideButtons используется для дополнительных элементов управления (только для десктопа). Рекомендуется использовать компонент ModalOutsideButton

Свойство preventClose отключает закрытие по нажатию, свайпу или клавише ESC.

Компонент автоматически адаптируется под все устройства, но с помощью свойство size можно определить максимальную ширину для десктопа (по умолчанию 450px).

Через свойство dismissButtonMode=inside|outside|none можно задать вид кнопки закрытия. Согласно нашим дизайн-гайдам, dismissButtonMode=outside отображается только для compact-режима (десктопная и планшетные версии). Для iOS всегда будет применяться dismissButtonMode=inside в regular-режиме (мобильная версия).

По умолчанию верхний отступ от кнопок действий actions равняется 16px. Согласно дизайн-системе отступ может быть больше в зависимости от того какие данные отображаются внутри ModalCardBase. Если необходимо увеличить отступ, то передавайте в actions компонент Spacing.

Загружается...

Если ModalCardBase является модальным окном, то ему, или его родителю, надо добавить аттрибуты role="dialog" и aria-modal="true", чтобы пользователи клавиатуры или скринридера не могли выйти за пределы модального окна пока оно не закрылось.

Также у ModalCardBase обязательно должно быть имя — краткое название. Благодаря этому пользователи вспомогательных технологий знают, что это за элемент и какое у него содержимое.

Задать имя можно с помощью следующих способов:

  • используя свойство title. Тогда следует также передать aria-labelledby и titleId так, чтобы они имели одинаковые значения, чтобы можно было связать title и модальное окно. Мы не делаем этого автоматически потому что не можем быть уверены на каком уровне будут заданы role и aria-modal;
  • используя свойство aria-label;
  • используя свойство aria-labelledby. Если не использовать свойство title, то можно передать id любого контейнера с текстом;

Чтобы кнопка для закрытия была доступной для ассистивных технологий, мы передаем в нее скрытый визуально текст, который сможет прочитать скринридер. Для изменения текста, передайте его в dismissLabel.

СвойствоОписание
actionsReactNode

Кнопки-действия. Принимает Button ↗ с параметрами:

  • size="l" mode="primary" stretched
  • size="l" mode="secondary" stretched.

Для набора кнопок используйте ButtonGroup ↗ с параметрами:

  • gap="s" mode="horizontal" stretched
  • gap="m" mode="vertical" stretched.
По умолчанию: -
descriptionReactNode

Описание.

По умолчанию: -
descriptionComponentElementType<any, keyof IntrinsicElements>

Позволяет поменять тег используемый для описания.

По умолчанию: span
dismissButtonMode"none" | "inside" | "outside"

Расположение кнопки закрытия (внутри и вне popout'a).

Доступно только в compact-режиме.

На iOS в regular-режиме всегда включен inside.

⚠️ ВНИМАНИЕ: использование none скрывает крестик, это негативно сказывается на пользовательском опыте.

По умолчанию: outside
dismissLabelstring

Текст кнопки закрытия. Делает ее доступной для ассистивных технологий.

По умолчанию: Закрыть
getRootRefRef<HTMLDivElement>
По умолчанию: -
iconReactNode

Иконка.

Может быть компонентом иконки, например, <Icon56MoneyTransferOutline />, или <Avatar size={72} src="" />.

По умолчанию: -
modalDismissButtonTestIdstring

Передает атрибут data-testid для кнопки закрытия.

По умолчанию: -
onCloseVoidFunction

Обработчик закрытия модального окна.

По умолчанию: -
outsideButtonsReactNode

Управляющие элементы под кнопкой закрытия.

Доступно только в compact-режиме. Рекомендуется размещать иконки размера 20, обернутые в ModalOutsideButton.

По умолчанию: -
preventCloseboolean

Позволяет отключить возможность закрытия модальной страницы (смахивание, клавиша ESC, нажатие на подложку).

⚠️ ВНИМАНИЕ: использование этой опции негативно сказывается на пользовательском опыте.

По умолчанию: -
sizenumber

Задаёт контенту максимальную ширину для десктопной версии.

По умолчанию: -
titleReactNode

Заголовок карточки.

По умолчанию: -
titleComponentElementType<any, keyof IntrinsicElements>

Позволяет поменять тег используемый для заголовка.

По умолчанию: span
titleIdstring

Позволяет задать id для заголовка. Используется, чтобы связать модальное окно и title через aria-labelledby, тем самым задав модальному окну имя через title.

По умолчанию: -