Block a user
@zen/skia-motion (0.1.1)
Published 2026-08-22 21:57:49 +02:00 by zenblazer
Installation
@zen:registry=https://git.zencloudgalaxy.com/api/packages/zenblazer/npm/npm install @zen/skia-motion@0.1.1"@zen/skia-motion": "0.1.1"About this package
Skia-baserade rörelse- och effektkomponenter för Expo, per kategori (biljett #69, karta #57).
@zen/skia-motion
Skia-baserade rörelse- och effektkomponenter för Expo. Se docs/adr/0001-paketyta.md
i huvudrepot (zenblazer/skia-motion-lab) för hur den här katalogens src/
byggs (node tools/paketera.js, körs innan npm publish) — redigera aldrig
src/ här direkt, den är genererad och gitignoread.
Installera
npx expo install @shopify/react-native-skia react-native-reanimated \
react-native-worklets react-native-gesture-handler expo-haptics expo-sensors
npm install @zen/skia-motion
Kräver en development build (inte Expo Go) eftersom Skia/Reanimated/worklets
har native delar. Se peer-intervallen i package.json.
Import
import { MotionProvider, ShaderCanvas, createOmniShaderComponent } from '@zen/skia-motion';
import { SparklineTrend } from '@zen/skia-motion/dataviz';
import { BreathingFAB } from '@zen/skia-motion/micro';
En sub-export per Kategori: core (även tillgänglig från roten),
dataviz, spatial, hypnotic, generative, liquid, particles,
typography, depth, physics, micro, optics.
Vad en komponent lovar
- Named export, en per fil,
interface <Namn>Propsexporteras också. - Alla rörelserelaterade props är valfria med rimliga defaults — en
komponent renderas och animerar med noll obligatoriska props utöver de som
bär faktisk data (t.ex.
dataiSparklineTrend). - Två motion-props är konventionen genom hela biblioteket när de är
relevanta:
animating?: boolean(komponentens egen kontinuerliga animation) ochenabled?: boolean(per-komponent override av det globala motion-läget). MotionProviderkrävs inte. Varje komponent läser motion-läget viauseMotionEnabled, som faller tillbaka på{ enabled: true, reducedMotion: false }när ingenMotionProviderfinns i trädet.MotionProviderär en valfri, global kill switch/reduced-motion-källa — inte ett kontrakt komponenterna kräver av konsumenten.- Reduced motion är komponentens eget ansvar. När
reducedMotionär sant (viaMotionProvider, eller OS-inställningen om providern saknas via ReanimatedsuseReducedMotion()i vissa komponenter) fryser kontinuerlig animation till ett statiskt men korrekt tillstånd — aldrig ett tomt eller trasigt UI. Det finns inget globalt fallback-UI; varje komponent avgör själv sin statiska form. - Gestbärande komponenter (i huvudsak
micro/*) kräverGestureHandlerRootViewnågonstans ovanför sig i trädet, perreact-native-gesture-handlers eget krav.
Vad som inte ingår i v1
- Ingen webb. Skia på webben (
@shopify/react-native-skia2.6.2 via CanvasKit) har en känd, ofixad GPU-yteläcka vid omstorlek (docs/research/rn-skia-webblacka.mdi huvudrepot, fixad uppströms i 2.7.0). Paketet gör inget uttalande om webbstöd förrän Skia-versionen och ett"browser"-exportvillkor är utredda. - Showcase, registry,
tools/, och tester följer inte med — de är Labbets angelägenhet, inte Paketets. - Ingen byggd
.d.ts; TypeScript-källan typas direkt av konsumentenstsc.
Version
0.0.1 är ett skelett — se wayfinder-karta #57. Ärende #72 publicerar
0.1.0 när ett demo-bevis finns. Den här katalogen publiceras inte av
ärende #69.
Dependencies
Peer Dependencies
| ID | Version |
|---|---|
| @shopify/react-native-skia | >=2.6.2 <2.7.0 |
| expo | >=57.0.0 <58 |
| expo-haptics | >=57.0.0 <58 |
| expo-sensors | >=57.0.0 <58 |
| react | >=19.0.0 |
| react-native | >=0.86.0 <1 |
| react-native-gesture-handler | >=2.32.0 <4 |
| react-native-reanimated | >=4.0.0 <5 |
| react-native-worklets | >=0.10.0 <1 |
Details
2026-08-22 21:57:49 +02:00
Assets (1)
Versions (3)
View all
npm
1
UNLICENSED
latest
985 KiB
skia-motion-0.1.1.tgz
985 KiB