Smoky Focus Card
Dark-themed event card with smoky gradient fade and overlapping avatar stack.
Component Features and Props
How to Use Smoky Focus Card Component
Installation Guide for Smoky Focus Card
Props
| Property | Type | Default | Description |
|---|---|---|---|
| title | string | - | Event title |
| description | string | - | Event description |
| bgNumber | string | - | Background large typographic element |
| participantCount | string | - | Participant count text |
| imageREQUIRED | ImageSourcePropType | - | Event image |
| onJoinPress | () => void | - | Join action callback |
Install
TERMINAL
$ npx expo install expo-linear-gradientComponent Code
Component.tsx
1import React from 'react';
2import {
3 StyleSheet,
4 View,
5 Text,
6 Image,
7 TouchableOpacity,
8 Dimensions,
9 ImageSourcePropType,
10} from 'react-native';
11import { LinearGradient } from 'expo-linear-gradient';
12
13const { width } = Dimensions.get('window');
14
15interface SmokyCardProps {
16 title?: string;
17 description?: string;
18 bgNumber?: string; // The subtle background text (e.g., '24H')
19 participantCount?: string;
20 image: ImageSourcePropType;Usage
Usage.tsx
import React from 'react';
import { StyleSheet, View, SafeAreaView, StatusBar } from 'react-native';
import SmokyFocusCard from './components/SmokyFocusCard';
export default function App() {
return (
<SafeAreaView style={styles.container}>
<StatusBar barStyle="light-content" />
<SmokyFocusCard
image={{ uri: 'https://images.unsplash.com/photo-1499750310107-5fef28a66643?q=80&w=1000&auto=format&fit=crop' }}
onJoinPress={() => console.log('Joined Camp')}
/>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#121212', // Match the dark theme100%
Interactive Preview running on Expo Web.
Gestures and animations are simulated.
100%
