Skip to content

Card

Card is a versatile container component for grouping related content. It supports multiple visual variants and can be made interactive with press handlers.

Hexagram 1
The Creative
Heaven over Heaven. Pure yang energy representing creative power and initiative.

Default variant with subtle background distinction from the page.

Elevated Card
Subtle surface elevation for visual hierarchy.
<Card variant="elevated">
<Text style={styles.title}>Elevated Card</Text>
<Text>Subtle surface elevation for visual hierarchy.</Text>
</Card>

Card with visible border, useful for forms and interactive lists.

Outlined Card
Clear boundary with transparent background.
<Card variant="outlined">
<Text style={styles.title}>Outlined Card</Text>
<Text>Clear boundary with transparent background.</Text>
</Card>

Solid background, ideal for call-to-action sections.

Filled Card
Stronger visual presence for emphasis.
<Card variant="filled">
<Text style={styles.title}>Filled Card</Text>
<Text>Stronger visual presence for emphasis.</Text>
</Card>

sm
md
lg
PaddingValueUsage
none0Custom internal layouts
sm8pxCompact cards, lists
md16pxDefault, most cases
lg24pxFeature cards, modals

sm
md
lg
RadiusValueUsage
sm8pxCompact, inline cards
md12pxDefault container style
lg16pxFeature cards, modals

Cards can be made pressable with visual feedback.

Tap to Select
This card responds to press interactions.
<Card
variant="elevated"
onPress={() => navigation.navigate('Detail', { id })}
accessibilityLabel="View hexagram details"
>
<Text style={styles.title}>Tap to Select</Text>
<Text>This card responds to press interactions.</Text>
</Card>

PropTypeDefaultDescription
variant'elevated' | 'outlined' | 'filled''elevated'Visual style
padding'none' | 'sm' | 'md' | 'lg''md'Internal padding
radius'sm' | 'md' | 'lg''md'Border radius
onPress() => void-Press handler (makes card interactive)
accessibilityLabelstring-Required for pressable cards
styleViewStyle-Custom style overrides
childrenReactNode-Card content

import { Card } from '@synchronicity/react-native';
import { View, Text } from 'react-native';
function HexagramCard({ hexagram, onPress }) {
return (
<Card
variant="elevated"
padding="md"
radius="lg"
onPress={onPress}
accessibilityLabel={`View ${hexagram.name}`}
>
<View style={styles.header}>
<Text style={styles.number}>{hexagram.number}</Text>
<Text style={styles.symbol}>{hexagram.symbol}</Text>
</View>
<Text style={styles.title}>{hexagram.name}</Text>
<Text style={styles.subtitle}>{hexagram.chinese}</Text>
<Text style={styles.body}>{hexagram.description}</Text>
</Card>
);
}