Skip to content

CoinFlip

An animated coin component for I Ching divination. Displays heads (yang/乾) or tails (yin/坤) with realistic flip animation.

import { CoinFlip, CoinValue } from '@synchronicity/react-native';

In traditional I Ching coin casting:

  • Heads (乾) = 3 points (yang side)
  • Tails (坤) = 2 points (yin side)
<CoinFlip side="heads" />
<CoinFlip side="tails" />
const [side, setSide] = useState<CoinSide>('heads');
const [flipping, setFlipping] = useState(false);
const handleFlip = () => {
setFlipping(true);
};
const handleComplete = () => {
setFlipping(false);
setSide(Math.random() > 0.5 ? 'heads' : 'tails');
};
<CoinFlip
side={side}
flipping={flipping}
onPress={handleFlip}
onFlipComplete={handleComplete}
/>
<CoinFlip side="heads" size="sm" />
<CoinFlip side="heads" size="md" />
<CoinFlip side="heads" size="lg" />
<View style={{ alignItems: 'center' }}>
<CoinFlip side="heads" />
<CoinValue side="heads" />
</View>
PropTypeDefaultDescription
side'heads' | 'tails'requiredCurrent side showing
size'sm' | 'md' | 'lg''md'Size of coin
flippingbooleanfalseWhether coin is flipping
flipDurationnumber500Animation duration (ms)
onFlipComplete() => void-Called when flip ends
onPress() => void-Press handler
disabledbooleanfalseDisable interaction
styleViewStyle-Custom styles
PropTypeDefaultDescription
side'heads' | 'tails'requiredCoin side
size'sm' | 'md' | 'lg''md'Text size
styleViewStyle-Custom styles
  • Uses accessibilityRole="button" for interactive coins
  • Provides accessibilityLabel with current side
  • Disables during animation with accessibilityState