diff --git a/README.md b/README.md
index bf4be666..c7e4c615 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,10 @@
Репозиторий UI kit на основе Prime Faces, Prime Flex для React Native
+Документация компонентов:
+
+- [Skeleton](src/components/Skeleton/Skeleton.md)
+
## Installation
**Yarn**
diff --git a/design-tokens/input/tokens.json b/design-tokens/input/tokens.json
index 2fd926ba..52924de5 100644
--- a/design-tokens/input/tokens.json
+++ b/design-tokens/input/tokens.json
@@ -4269,8 +4269,8 @@
},
"skeleton": {
"extend": {
- "minWidth": "{dimension.size.900}",
- "height": "{dimension.size.900}"
+ "minWidth": "{dimension.size.400}",
+ "minHeight": "{dimension.size.400}"
},
"colorScheme": {
"light": {
@@ -4286,7 +4286,7 @@
}
}
},
- "root": { "borderRadius": "{dimension.borderRadius.400}" }
+ "root": { "borderRadius": "{dimension.borderRadius.350}" }
},
"slider": {
"colorScheme": {
diff --git a/src/components/Skeleton/Skeleton.md b/src/components/Skeleton/Skeleton.md
new file mode 100644
index 00000000..03627b7d
--- /dev/null
+++ b/src/components/Skeleton/Skeleton.md
@@ -0,0 +1,44 @@
+# Skeleton
+
+Декоративный плейсхолдер с анимацией градиента для загружаемого контента.
+
+## Использование
+
+```tsx
+import { View } from 'react-native'
+import { Skeleton } from '@cdek-it/react-native-ui-kit'
+
+export function ProfileLoading() {
+ return (
+
+
+
+
+ )
+}
+```
+
+Используйте внутри `ThemeContextProvider` UI Kit: Skeleton в нём анимируются
+синхронно. Размер и форму задавайте через `style`. Размеры по умолчанию не
+заданы.
+
+## Props
+
+Собственных props нет. Поддерживаются нативные props View, кроме `onLayout`.
+
+Полный контракт — [SkeletonProps](./Skeleton.tsx).
+
+## Доступность
+
+Skeleton декоративный: `accessible` всегда `false`. Описание, роль и состояние
+загрузки задавайте общему контейнеру. После загрузки замените плейсхолдеры
+контентом, обновите описание контейнера и сбросьте `accessibilityState.busy`.
+
+## Макет
+
+[Skeleton в Figma](https://www.figma.com/design/Q1BWgZ7zoV5UzlBOnjW0cM/UI-Kit--DS--v2.1?node-id=5221-12465&m=dev)
diff --git a/src/components/Skeleton/Skeleton.stories.tsx b/src/components/Skeleton/Skeleton.stories.tsx
index ef1ade57..accee6bc 100644
--- a/src/components/Skeleton/Skeleton.stories.tsx
+++ b/src/components/Skeleton/Skeleton.stories.tsx
@@ -13,7 +13,12 @@ const meta: Meta = {
title: 'Misc/Skeleton',
component: Skeleton,
render: () => (
-
+
diff --git a/src/components/Skeleton/Skeleton.tsx b/src/components/Skeleton/Skeleton.tsx
index fe9036ea..cc29c4dc 100644
--- a/src/components/Skeleton/Skeleton.tsx
+++ b/src/components/Skeleton/Skeleton.tsx
@@ -1,22 +1,20 @@
import { memo, useCallback, useContext, useEffect, useRef } from 'react'
-import { View } from 'react-native'
+import { View, type ViewProps } from 'react-native'
import Animated, {
useAnimatedStyle,
useSharedValue,
} from 'react-native-reanimated'
import Svg, { Defs, LinearGradient, Rect, Stop } from 'react-native-svg'
-import type { ViewProps } from 'react-native-svg/lib/typescript/fabric/utils'
import { StyleSheet } from 'react-native-unistyles'
import { SkeletonContext } from '../../utils/SkeletonContext'
-interface SkeletonProps extends ViewProps {}
+export interface SkeletonProps extends Omit {}
/**
* Используется для отображения контента в момент загрузки
- * @see https://www.figma.com/design/4TYeki0MDLhfPGJstbIicf/UI-kit-PrimeFace-(DS)?node-id=5241-3731
- * @see https://www.figma.com/design/Q1BWgZ7zoV5UzlBOnjW0cM/UI-Kit--DS--v2.1?node-id=24043-15545
+ * @see https://www.figma.com/design/Q1BWgZ7zoV5UzlBOnjW0cM/UI-Kit--DS--v2.1?node-id=5221-12465
*/
export const Skeleton = memo(({ style, testID, ...rest }) => {
const {
@@ -48,6 +46,7 @@ export const Skeleton = memo(({ style, testID, ...rest }) => {
return (
(({ style, testID, ...rest }) => {
]}
testID={SkeletonTestId.animatedView}
>
-