Компонент растрирует текст или SVG-контур в сетку точек и оживляет её на Skia: точки отталкиваются от пальца или курсора, по нажатию расходятся ударной волной, а по знаку периодически пробегает блик. Точки знака красятся в фирменный цвет, остальные — в цвет поля.
Источником может быть короткий текст (text) или путь SVG (svgPath). Кадры считаются на UI-потоке Reanimated и останавливаются, когда приложение свёрнуто или (в вебе) монограмма ушла за пределы экрана; при «Уменьшении движения» она остаётся статичной. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedpnpm add @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedyarn add @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedbun add @shopify/react-native-skia react-native-gesture-handler react-native-reanimatedСкопируйте эти файлы в src/shared/components/organisms/dot-monogram/:
Код доступен по подпискеPro
Исходник «Точечная монограмма» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Точечная монограмма» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
text?Тип string
svgPath?Тип string
viewBox?Тип number
size?Тип number
resolution?Тип number
dotScale?Тип number
inkColor?Тип string
inkOnly?Тип boolean
shimmer?Тип boolean
interactive?Тип boolean
dotColor?Тип string
background?Тип string
floatAmplitude?Тип number
repelRadius?Тип number
repelStrength?Тип number
pulseStrength?Тип number
showPulseRing?Тип boolean
theme?Тип "dark" | "light"
ariaLabel?Тип string
style?Тип StyleProp<ViewStyle>