Skeleton

Набор компонентов для создания скелетов загрузки (placeholders).

Тип анимации

Тип анимации задаётся с помощью свойства animationType.

ЗначениеОписание
shimmerБегущий градиент (по умолчанию)
pulseПульсация фона
Live Editor

Result

LineSkeleton

Быстрый старт

Live Editor

Result

Props

RectSkeleton

Быстрый старт

Live Editor

Result

Props

TextSkeleton

Быстрый старт

Live Editor

Result

Props

withSkeleton

HOC withSkeleton позволяет применить анимацию скелетона к любому компоненту. При skeleton={true} заменяется фоновый цвет компонента, добавляется градиент, а текст становится прозрачным.

Быстрый старт

Live Editor

Result

Тип анимации

Тип анимации задаётся через проп animationConfig с обязательным полем type.

Live Editor

Result

Кастомные цвета

Поля customGradientColor (для shimmer) и customFadeInColor / customFadeOutColor (для pulse) позволяют задать произвольные цвета анимации.

Live Editor

Result

Доступность

При использовании withSkeleton необходимо воспользоваться атрибутами WAI ARIA. Пример с кнопкой:

import React, { useState } from 'react';
import { Button, withSkeleton } from '@salutejs/plasma-web';

const ButtonSkeleton = withSkeleton(Button);

export default function App() {
const [skeleton, setSkeleton] = useState(false);

return (
<ButtonSkeleton
type="button"
text={skeleton ? 'Загрузка' : 'Нажмите'}
skeleton={skeleton}
aria-busy={skeleton}
onClick={() => setSkeleton((prevValue) => !prevValue)}
/>
);
}

При skeleton={true} и aria-busy={true} screen-reader оповещает пользователя о соответствующем статусе компонента.