ButtonSkeleton — это компонент, предназначенный для визуализации загрузки кнопки, когда данные ещё не готовы к отображению. Он позволяет поддерживать консистентный интерфейс и улучшает восприятие пользователем состояния ожидания без резких скачков контента. В библиотеке Carbon Components Svelte этот компонент является частью системы скелетон-компонентов, которые имитируют будущий контент.
Компонент ButtonSkeleton импортируется из пакета
carbon-components-svelte:
<script>
import { ButtonSkeleton } from 'carbon-components-svelte';
</script>
После импорта его можно использовать как отдельный элемент в любом контейнере интерфейса:
<ButtonSkeleton />
По умолчанию ButtonSkeleton отображается как стандартная кнопка с эффектом скелетона: серый прямоугольник с мягкой анимацией пульсации. Это помогает пользователю понять, что на этом месте будет интерактивный элемент, но он пока недоступен.
Компонент поддерживает разные размеры кнопки через проп
size:
<ButtonSkeleton size="sm" />
<ButtonSkeleton size="md" />
<ButtonSkeleton size="lg" />
ButtonSkeleton может имитировать разные стили кнопок Carbon:
Применение стиля осуществляется через проп kind:
<ButtonSkeleton kind="primary" />
<ButtonSkeleton kind="secondary" />
<ButtonSkeleton kind="danger" />
Эти значения соответствуют визуальной теме Carbon, обеспечивая единообразие интерфейса даже в состоянии загрузки.
ButtonSkeleton не требует ручного контроля состояния загрузки, так как предназначен только для отображения скелетона. Однако важно учитывать доступность:
on:click, так как
кнопка временно неактивна.По умолчанию ButtonSkeleton использует CSS-анимацию пульсации. Можно изменить скорость или стили, добавив собственные классы:
<ButtonSkeleton class="custom-skeleton" />
<style>
.custom-skeleton {
animation-duration: 1.5s;
border-radius: 8px;
}
</style>
ButtonSkeleton хорошо сочетается с TextSkeleton, CheckboxSkeleton, SelectSkeleton для построения комплексных форм и интерфейсов в состоянии загрузки:
<TextSkeleton width="150px" />
<ButtonSkeleton />
<SelectSkeleton />
Такой подход позволяет создавать согласованные скелетон-структуры, минимизируя визуальные скачки при загрузке данных.
Использование ButtonSkeleton повышает восприятие интерфейса, делает страницы более отзывчивыми и поддерживает визуальную консистентность, особенно при асинхронной загрузке данных.