Accordion

Компонент для создания раскрывающихся/сворачивающихся блоков контента.

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

Обязательная обёртка для всего сворачивающегося контента - компонент Accordion.

Заголовок для триггера разворачивающегося блока необходимо вкладывать в подкомпонент Accordion.Summary, который наследует все свойства компонента SimpleCell.

Сворачивающийся контент необходимо вкладывать в подкомпонент Accordion.Content.

Компонент поддерживает работу как в неконтролируемом режиме, так и контролируемом. Это стандартное поведение React-компонентов, прочитать про это можно в документации React ↗.

Для использования неконтролируемого режима достаточно просто не передавать expanded или передавать defaultExpanded, если требуется задать значение по умолчанию.

Используйте свойства expanded и onChange для контролируемого управления состоянием компонента.

// Неконтролируемое состояние, раскрыт по умолчанию
<Accordion defaultExpanded>
  <Accordion.Summary>Заголовок</Accordion.Summary>
  <Accordion.Content>
    <Div>Контент</Div>
  </Accordion.Content>
</Accordion>;
 
// Контролируемое состояние, раскрыт по умолчанию
const [expanded, setExpanded] = React.useState(true);
return (
  <Accordion expanded={expanded} onChange={setExpanded}>
    <Accordion.Summary>Заголовок</Accordion.Summary>
    <Accordion.Content>
      <Div>Контент</Div>
    </Accordion.Content>
  </Accordion>
);

Компонент Group позволяет отображать несколько Accordion.

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

Используйте свойства ExpandIcon и CollapseIcon для кастомизации иконок раскрытия/сворачивания.

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

Компонент поддерживает следующие анимационные эффекты:

  • плавное раскрытие/сворачивание контента;
  • автоматический расчет высоты содержимого;
  • поддержка прерывания анимации при быстром клике.

По умолчанию контент монтируется, даже если он не развернут. Такое поведение предусмотрено с учётом серверного рендеринга и SEO.

Если внутри контента находится большая иерархия компонентов или если у вас много аккордеонов, то для улучшения производительности передавайте свойство unmountOnCollapsed, которое позволяет не монтировать контент, пока он не развернут и размонтирует компонент при сворачивании.

<Accordion unmountOnCollapsed />

Доступность реализована на основе рекомендаций из Accordion WAI-ARIA design pattern ↗.

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

Значение по умолчанию.

По умолчанию: false
disabledboolean

Блокировка взаимодействия с компонентом.

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

Управляет раскрытием и скрытием контента.

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

Используется для генерации id для заголовка и контента(a11y).

По умолчанию: -
onChange((newValue: boolean) => void)

Возвращает новое значение при изменении раскрытия/сворачивания контента.

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

Нужно ли удалять из DOM контент при сворачивании.

По умолчанию: false
СвойствоОписание
activatedboolean

Позволяет управлять activated-состоянием извне.

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

Deprecated: Since 7.3.0.

Свойство устарело и будет удалено в v8, используйте свойство activeMode.

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

Длительность показа active-состояния.

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

Стиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active.

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

Иконка 24|28 или <Switch />. Располагается справа от indicator.

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

Иконка 12. Добавится справа от текста subtitle.

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

Иконка 12 или <Badge />. Добавится справа от текста children.

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

Иконка 12. Добавится слева от текста subtitle.

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

Иконка 12 или <Badge />. Добавится слева от текста children.

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

Deprecated: Since 7.3.0.

Свойство устарело и будет удалено в v8, используйте свойство className.

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

Deprecated: Since 7.3.0.

Свойство устарело и будет удалено в v8, используйте свойство style.

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

Иконка 28 или <Avatar size={28|32|40|48|72} />.

По умолчанию: -
borderRadiusMode"auto" | "inherit"

Задает border-radius элементу В режиме auto на маленьких экранах border-radius: 0, иначе определяется токеном --vkui--size_border_radius--regular.

По умолчанию: -
chevronSize"s" | "m"

Размер chevron.

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

Иконка для сворачивания контента.

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

Блокировка взаимодействия с компонентом.

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

Иконка для раскрытия контента.

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

Дополнительная строка текста под children и subtitle.

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

Стиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс при :focus-visible

По умолчанию: -
getRootRefRef<HTMLElement>
По умолчанию: -
hasActiveboolean

Указывает, должен ли компонент реагировать на active-состояние.

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

Указывает, должен ли компонент реагировать на hover-состояние.

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

Позволяет родительскому компоненту иметь hovered-cостояние при наведении на любой дочерний элемент. По умолчанию состояние hovered у родителя сбрасывается.

Присваивается родителькому компоненту.

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

Deprecated: Since 7.3.0.

Свойство устарело и будет удалено в v8, используйте свойство hoverMode.

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

Позволяет управлять hovered-состоянием извне.

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

Стиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover.

По умолчанию: -
iconPosition"after" | "before"

Позиция иконки.

По умолчанию: after
indicatorReactNode

Контейнер для текста справа от children.

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

Включает многострочный режим для отображения текста.

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

Дополнительная строка текста над children.

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

Дополнительная строка текста под children.

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

Позволяет родительскому компоненту показывать hovered-состояние при наведении на текущий дочерний компонент.

Присваивается дочернему компоненту.

По умолчанию: -
СвойствоОписание
getRefRef<HTMLDivElement>
По умолчанию: -
getRootRefRef<HTMLDivElement>
По умолчанию: -