import React from "react"; import { View, StyleSheet, TouchableOpacity, ViewStyle, StyleProp, } from "react-native"; import { useTheme } from "../contexts/ThemeContext"; type CardVariant = "default" | "elevated" | "bordered" | "gradient"; interface MinimalCardProps { children: React.ReactNode; variant?: CardVariant; onPress?: () => void; style?: StyleProp; padding?: number; } export function MinimalCard({ children, variant = "default", onPress, style, padding = 20, }: MinimalCardProps) { const { colors } = useTheme(); const cardStyles = [ styles.base, { backgroundColor: colors.surface, padding: padding, }, variant === "default" && styles.default, variant === "elevated" && { ...styles.elevated, backgroundColor: colors.surfaceElevated, }, variant === "bordered" && { borderWidth: 1, borderColor: colors.border, }, variant === "gradient" && { backgroundColor: colors.surfaceElevated, }, style, ]; if (onPress) { return ( {children} ); } return {children}; } const styles = StyleSheet.create({ base: { borderRadius: 20, }, default: { shadowColor: "#000", shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.08, shadowRadius: 8, elevation: 3, }, elevated: { shadowColor: "#000", shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.12, shadowRadius: 16, elevation: 6, }, });