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

Доступность

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

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

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 оповещает пользователя о соответствующем статусе компонента.